Pyrogenesis  trunk
Classes | Namespaces | Macros | Functions
JSInterface_VFS.cpp File Reference
#include "precompiled.h"
#include "JSInterface_VFS.h"
#include "lib/file/vfs/vfs_util.h"
#include "ps/CLogger.h"
#include "ps/CStr.h"
#include "ps/Filesystem.h"
#include "scriptinterface/FunctionWrapper.h"
#include "scriptinterface/JSON.h"
#include <sstream>
Include dependency graph for JSInterface_VFS.cpp:

Classes

struct  JSI_VFS::BuildDirEntListState
 

Namespaces

 JSI_VFS
 

Macros

#define PathRestriction_GUI   {L"gui/", L"simulation/", L"maps/", L"campaigns/", L"saves/campaigns/", L"config/matchsettings.json", L"config/matchsettings.mp.json", L"moddata"}
 
#define PathRestriction_Simulation   {L"simulation/"}
 
#define PathRestriction_Maps   {L"simulation/", L"maps/"}
 
#define JS_CHECK_FILE_ERR(err)
 
#define VFS_ScriptFunctions(context)
 

Functions

bool JSI_VFS::PathRestrictionMet (const ScriptRequest &rq, const std::vector< CStrW > &validPaths, const CStrW &filePath)
 
static Status JSI_VFS::BuildDirEntListCB (const VfsPath &pathname, const CFileInfo &fileINfo, uintptr_t cbData)
 
JS::Value JSI_VFS::BuildDirEntList (const ScriptRequest &rq, const std::vector< CStrW > &validPaths, const std::wstring &path, const std::wstring &filterStr, bool recurse)
 
bool JSI_VFS::FileExists (const ScriptRequest &rq, const std::vector< CStrW > &validPaths, const CStrW &filename)
 
double JSI_VFS::GetFileMTime (const std::wstring &filename)
 
unsigned int JSI_VFS::GetFileSize (const std::wstring &filename)
 
JS::Value JSI_VFS::ReadFile (const ScriptRequest &rq, const std::vector< CStrW > &validPaths, const CStrW &filename)
 
JS::Value JSI_VFS::ReadFileLines (const ScriptRequest &rq, const std::vector< CStrW > &validPaths, const CStrW &filename)
 
JS::Value JSI_VFS::ReadJSONFile (const ScriptInterface &scriptInterface, const std::vector< CStrW > &validPaths, const CStrW &filePath)
 
void JSI_VFS::WriteJSONFile (const ScriptInterface &scriptInterface, const std::vector< CStrW > &validPaths, const CStrW &filePath, JS::HandleValue val1)
 
bool JSI_VFS::DeleteCampaignSave (const CStrW &filePath)
 
 JSI_VFS::VFS_ScriptFunctions (GUI)
 
 JSI_VFS::VFS_ScriptFunctions (Simulation)
 
 JSI_VFS::VFS_ScriptFunctions (Maps)
 
void JSI_VFS::RegisterScriptFunctions_ReadWriteAnywhere (const ScriptRequest &rq)
 
void JSI_VFS::RegisterScriptFunctions_ReadOnlySimulation (const ScriptRequest &rq)
 
void JSI_VFS::RegisterScriptFunctions_ReadOnlySimulationMaps (const ScriptRequest &rq)
 

Macro Definition Documentation

◆ JS_CHECK_FILE_ERR

#define JS_CHECK_FILE_ERR (   err)
Value:
/* this is liable to happen often, so don't complain */\
{\
return 0; \
}\
/* unknown failure. We output an error message. */\
else if (err < 0)\
LOGERROR("Unknown failure in VFS %i", err );
const Status VFS_FILE_NOT_FOUND
Definition: vfs.h:40

◆ PathRestriction_GUI

#define PathRestriction_GUI   {L"gui/", L"simulation/", L"maps/", L"campaigns/", L"saves/campaigns/", L"config/matchsettings.json", L"config/matchsettings.mp.json", L"moddata"}

◆ PathRestriction_Maps

#define PathRestriction_Maps   {L"simulation/", L"maps/"}

◆ PathRestriction_Simulation

#define PathRestriction_Simulation   {L"simulation/"}

◆ VFS_ScriptFunctions

#define VFS_ScriptFunctions (   context)
Value:
JS::Value Script_ReadJSONFile_##context(const ScriptInterface& scriptInterface, const std::wstring& filePath)\
{\
return ReadJSONFile(scriptInterface, PathRestriction_##context, filePath);\
}\
void Script_WriteJSONFile_##context(const ScriptInterface& scriptInterface, const std::wstring& filePath, JS::HandleValue val1)\
{\
return WriteJSONFile(scriptInterface, PathRestriction_##context, filePath, val1);\
}\
JS::Value Script_ReadFile_##context(const ScriptInterface& scriptInterface, const std::wstring& filePath)\
{\
return ReadFile(scriptInterface, PathRestriction_##context, filePath);\
}\
JS::Value Script_ReadFileLines_##context(const ScriptInterface& scriptInterface, const std::wstring& filePath)\
{\
return ReadFileLines(scriptInterface, PathRestriction_##context, filePath);\
}\
JS::Value Script_ListDirectoryFiles_##context(const ScriptInterface& scriptInterface, const std::wstring& path, const std::wstring& filterStr, bool recurse)\
{\
return BuildDirEntList(scriptInterface, PathRestriction_##context, path, filterStr, recurse);\
}\
bool Script_FileExists_##context(const ScriptInterface& scriptInterface, const std::wstring& filePath)\
{\
return FileExists(scriptInterface, PathRestriction_##context, filePath);\
}\
JS::Value ReadFileLines(const ScriptRequest &rq, const std::vector< CStrW > &validPaths, const CStrW &filename)
Definition: JSInterface_VFS.cpp:174
JS::Value ReadJSONFile(const ScriptInterface &scriptInterface, const std::vector< CStrW > &validPaths, const CStrW &filePath)
Definition: JSInterface_VFS.cpp:209
Config::Value_type Value
Definition: json_spirit_value.h:182
JS::Value BuildDirEntList(const ScriptRequest &rq, const std::vector< CStrW > &validPaths, const std::wstring &path, const std::wstring &filterStr, bool recurse)
Definition: JSInterface_VFS.cpp:106
void WriteJSONFile(const ScriptInterface &scriptInterface, const std::vector< CStrW > &validPaths, const CStrW &filePath, JS::HandleValue val1)
Definition: JSInterface_VFS.cpp:221
bool FileExists(const ScriptRequest &rq, const std::vector< CStrW > &validPaths, const CStrW &filename)
Definition: JSInterface_VFS.cpp:127
Abstraction around a SpiderMonkey JS::Realm.
Definition: ScriptInterface.h:71
JS::Value ReadFile(const ScriptRequest &rq, const std::vector< CStrW > &validPaths, const CStrW &filename)
Definition: JSInterface_VFS.cpp:153