mirror of
https://github.com/Kiritow/MiniEngine.git
synced 2024-03-22 13:11:22 +08:00
StringEngine Added.
This commit is contained in:
parent
7dd70b971a
commit
a2e73c8793
|
@ -2,6 +2,13 @@
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <map>
|
#include <map>
|
||||||
#include <mutex>
|
#include <mutex>
|
||||||
|
#include <fstream>
|
||||||
|
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
#include "rapidxml/rapidxml.hpp"
|
||||||
|
#include "rapidxml/rapidxml_print.hpp"
|
||||||
|
#include "rapidxml/rapidxml_utils.hpp"
|
||||||
|
|
||||||
namespace MiniEngine
|
namespace MiniEngine
|
||||||
{
|
{
|
||||||
|
@ -1157,13 +1164,86 @@ namespace MiniEngine
|
||||||
}
|
}
|
||||||
}/// End of namespace EventHandle
|
}/// End of namespace EventHandle
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
AudioPlayer::_Audio* AudioPlayer::_sysAudio = nullptr;
|
AudioPlayer::_Audio* AudioPlayer::_sysAudio = nullptr;
|
||||||
int AudioPlayer::_sysAudioCounter = 0;
|
int AudioPlayer::_sysAudioCounter = 0;
|
||||||
|
|
||||||
|
struct StringEngine::impl
|
||||||
|
{
|
||||||
|
rapidxml::xml_document<> doc;
|
||||||
|
rapidxml::xml_node<>* root;
|
||||||
|
bool status;
|
||||||
|
};
|
||||||
|
|
||||||
|
StringEngine::StringEngine(std::string StringFile,std::string LanguageTag)
|
||||||
|
{
|
||||||
|
pimpl=new impl;
|
||||||
|
pimpl->status=false;
|
||||||
|
std::ifstream ifs(StringFile);
|
||||||
|
if(!ifs) return;
|
||||||
|
rapidxml::file<> strFile(ifs);
|
||||||
|
pimpl->doc.parse<0>(strFile.data());
|
||||||
|
pimpl->root=pimpl->doc.first_node(LanguageTag.c_str());
|
||||||
|
if(pimpl->root==nullptr) return;
|
||||||
|
|
||||||
|
pimpl->status=true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool StringEngine::ready()
|
||||||
|
{
|
||||||
|
return pimpl->status;
|
||||||
|
}
|
||||||
|
|
||||||
|
int StringEngine::useLanaguage(std::string LanguageTag)
|
||||||
|
{
|
||||||
|
pimpl->root=pimpl->doc.first_node(LanguageTag.c_str());
|
||||||
|
if(pimpl->root==nullptr)
|
||||||
|
{
|
||||||
|
pimpl->status=false;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pimpl->status=true;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string StringEngine::getString(std::string Tag)
|
||||||
|
{
|
||||||
|
if(!ready()) return "";
|
||||||
|
char* context=pimpl->root->first_node(Tag.c_str())->value();
|
||||||
|
if(context==nullptr) return "";
|
||||||
|
else return std::string(context);
|
||||||
|
}
|
||||||
|
|
||||||
|
StringEngine::~StringEngine()
|
||||||
|
{
|
||||||
|
delete pimpl;
|
||||||
|
}
|
||||||
|
|
||||||
}/// End of namespace MiniEngine
|
}/// End of namespace MiniEngine
|
||||||
|
|
||||||
|
|
||||||
|
bool isexist(std::string Path)
|
||||||
|
{
|
||||||
|
return access(Path.c_str(),F_OK)==0;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool canread(std::string Path)
|
||||||
|
{
|
||||||
|
return access(Path.c_str(),R_OK)==0;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool canwrite(std::string Path)
|
||||||
|
{
|
||||||
|
return access(Path.c_str(),W_OK)==0;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool canexecute(std::string Path)
|
||||||
|
{
|
||||||
|
return access(Path.c_str(),X_OK)==0;
|
||||||
|
}
|
||||||
|
|
||||||
/// Default Setup Code
|
/// Default Setup Code
|
||||||
int main(int argc, char* argv[])
|
int main(int argc, char* argv[])
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue
Block a user