42
43 using namespace std;
44
45 // Config file sections
46 #define CONFIG_SECTION_APPLICATION _T("CONFIG_SECTION_APPLICATION")
47 #define CONFIG_SECTION_JAVAOPTIONS _T("CONFIG_SECTION_JAVAOPTIONS")
48 #define CONFIG_SECTION_APPCDSJAVAOPTIONS _T("CONFIG_SECTION_APPCDSJAVAOPTIONS")
49 #define CONFIG_SECTION_ARGOPTIONS _T("CONFIG_SECTION_ARGOPTIONS")
50 #define CONFIG_SECTION_APPCDSGENERATECACHEJAVAOPTIONS \
51 _T("CONFIG_SECTION_APPCDSGENERATECACHEJAVAOPTIONS")
52
53 // Config file keys.
54 #define CONFIG_VERSION _T("CONFIG_VERSION")
55 #define CONFIG_MAINJAR_KEY _T("CONFIG_MAINJAR_KEY")
56 #define CONFIG_MAINMODULE_KEY _T("CONFIG_MAINMODULE_KEY")
57 #define CONFIG_MAINCLASSNAME_KEY _T("CONFIG_MAINCLASSNAME_KEY")
58 #define CONFIG_CLASSPATH_KEY _T("CONFIG_CLASSPATH_KEY")
59 #define CONFIG_MODULEPATH_KEY _T("CONFIG_MODULEPATH_KEY")
60 #define APP_NAME_KEY _T("APP_NAME_KEY")
61 #define CONFIG_SPLASH_KEY _T("CONFIG_SPLASH_KEY")
62 #define CONFIG_APP_ID_KEY _T("CONFIG_APP_ID_KEY")
63 #define CONFIG_APP_MEMORY _T("CONFIG_APP_MEMORY")
64 #define CONFIG_APP_DEBUG _T("CONFIG_APP_DEBUG")
65 #define CONFIG_APPLICATION_INSTANCE _T("CONFIG_APPLICATION_INSTANCE")
66
67 #define JVM_RUNTIME_KEY _T("JVM_RUNTIME_KEY")
68 #define JPACKAGE_APP_DATA_DIR _T("CONFIG_APP_IDENTIFIER")
69
70 struct WideString {
71 size_t length;
72 wchar_t* data;
73
74 WideString() { length = 0; data = NULL; }
75 };
76
77 struct MultibyteString {
78 size_t length;
79 char* data;
80
81 MultibyteString() { length = 0; data = NULL; }
82 };
83
84 class Process {
85 protected:
86 std::list<TString> FOutput;
87
183 virtual TCHAR* ConvertStringToFileSystemString(TCHAR* Source,
184 bool &release) = 0;
185
186 // Caller must free result using delete[].
187 virtual TCHAR* ConvertFileSystemStringToString(TCHAR* Source,
188 bool &release) = 0;
189
190 // Returns:
191 // Windows=C:\Users\<username>\AppData\Local
192 // Linux=~/.local
193 // Mac=~/Library/Application Support
194 virtual TString GetAppDataDirectory() = 0;
195
196 virtual TString GetPackageAppDirectory() = 0;
197 virtual TString GetPackageLauncherDirectory() = 0;
198 virtual TString GetPackageRuntimeBinDirectory() = 0;
199 virtual TString GetAppName() = 0;
200
201 virtual TString GetConfigFileName();
202
203 virtual TString GetBundledJVMLibraryFileName(TString RuntimePath) = 0;
204
205 // Caller must free result.
206 virtual ISectionalPropertyContainer* GetConfigFile(TString FileName) = 0;
207
208 virtual TString GetModuleFileName() = 0;
209 virtual TString GetPackageRootDirectory() = 0;
210
211 virtual Module LoadLibrary(TString FileName) = 0;
212 virtual void FreeLibrary(Module Module) = 0;
213 virtual Procedure GetProcAddress(Module Module, std::string MethodName) = 0;
214
215 // Caller must free result.
216 virtual Process* CreateProcess() = 0;
217
218 virtual bool IsMainThread() = 0;
219
220 // Returns megabytes.
221 virtual TPlatformNumber GetMemorySize() = 0;
222
223 virtual std::map<TString, TString> GetKeys();
|
42
43 using namespace std;
44
45 // Config file sections
46 #define CONFIG_SECTION_APPLICATION _T("CONFIG_SECTION_APPLICATION")
47 #define CONFIG_SECTION_JAVAOPTIONS _T("CONFIG_SECTION_JAVAOPTIONS")
48 #define CONFIG_SECTION_APPCDSJAVAOPTIONS _T("CONFIG_SECTION_APPCDSJAVAOPTIONS")
49 #define CONFIG_SECTION_ARGOPTIONS _T("CONFIG_SECTION_ARGOPTIONS")
50 #define CONFIG_SECTION_APPCDSGENERATECACHEJAVAOPTIONS \
51 _T("CONFIG_SECTION_APPCDSGENERATECACHEJAVAOPTIONS")
52
53 // Config file keys.
54 #define CONFIG_VERSION _T("CONFIG_VERSION")
55 #define CONFIG_MAINJAR_KEY _T("CONFIG_MAINJAR_KEY")
56 #define CONFIG_MAINMODULE_KEY _T("CONFIG_MAINMODULE_KEY")
57 #define CONFIG_MAINCLASSNAME_KEY _T("CONFIG_MAINCLASSNAME_KEY")
58 #define CONFIG_CLASSPATH_KEY _T("CONFIG_CLASSPATH_KEY")
59 #define CONFIG_MODULEPATH_KEY _T("CONFIG_MODULEPATH_KEY")
60 #define APP_NAME_KEY _T("APP_NAME_KEY")
61 #define CONFIG_SPLASH_KEY _T("CONFIG_SPLASH_KEY")
62 #define CONFIG_APP_MEMORY _T("CONFIG_APP_MEMORY")
63 #define CONFIG_APP_DEBUG _T("CONFIG_APP_DEBUG")
64 #define CONFIG_APPLICATION_INSTANCE _T("CONFIG_APPLICATION_INSTANCE")
65
66 #define JAVA_RUNTIME_KEY _T("JAVA_RUNTIME_KEY")
67 #define JPACKAGE_APP_DATA_DIR _T("CONFIG_APP_IDENTIFIER")
68
69 struct WideString {
70 size_t length;
71 wchar_t* data;
72
73 WideString() { length = 0; data = NULL; }
74 };
75
76 struct MultibyteString {
77 size_t length;
78 char* data;
79
80 MultibyteString() { length = 0; data = NULL; }
81 };
82
83 class Process {
84 protected:
85 std::list<TString> FOutput;
86
182 virtual TCHAR* ConvertStringToFileSystemString(TCHAR* Source,
183 bool &release) = 0;
184
185 // Caller must free result using delete[].
186 virtual TCHAR* ConvertFileSystemStringToString(TCHAR* Source,
187 bool &release) = 0;
188
189 // Returns:
190 // Windows=C:\Users\<username>\AppData\Local
191 // Linux=~/.local
192 // Mac=~/Library/Application Support
193 virtual TString GetAppDataDirectory() = 0;
194
195 virtual TString GetPackageAppDirectory() = 0;
196 virtual TString GetPackageLauncherDirectory() = 0;
197 virtual TString GetPackageRuntimeBinDirectory() = 0;
198 virtual TString GetAppName() = 0;
199
200 virtual TString GetConfigFileName();
201
202 virtual TString GetBundledJavaLibraryFileName(TString RuntimePath) = 0;
203
204 // Caller must free result.
205 virtual ISectionalPropertyContainer* GetConfigFile(TString FileName) = 0;
206
207 virtual TString GetModuleFileName() = 0;
208 virtual TString GetPackageRootDirectory() = 0;
209
210 virtual Module LoadLibrary(TString FileName) = 0;
211 virtual void FreeLibrary(Module Module) = 0;
212 virtual Procedure GetProcAddress(Module Module, std::string MethodName) = 0;
213
214 // Caller must free result.
215 virtual Process* CreateProcess() = 0;
216
217 virtual bool IsMainThread() = 0;
218
219 // Returns megabytes.
220 virtual TPlatformNumber GetMemorySize() = 0;
221
222 virtual std::map<TString, TString> GetKeys();
|