2727#include < memory>
2828#include < IJavaScriptEngine.h>
2929#include < IJavaScriptContext.h>
30+ #include < IExternalApplicationHandler.h>
3031#include < ModuleSettings.h>
3132#include < condition_variable>
3233#include < list>
@@ -76,19 +77,19 @@ namespace JsRuntime {
7677 IJavaScriptContext* consoleContext = nullptr ;
7778 ModuleSettings moduleSettings{};
7879 };
79-
80+
8081 struct ApplicationDetails {
8182 uint32_t id;
8283 std::string url;
8384 };
84-
85+
8586 enum RequestType{
8687 CREATE=0 ,
8788 RUN,
8889 TERMINATE,
8990 RUNSCRIPT
9091 };
91-
92+
9293 struct ApplicationRequest
9394 {
9495 ApplicationRequest (uint32_t id, RequestType requestType, std::string url=" " , bool enableHttp=false , bool enableXHR=false , bool enableWebSocket=false , bool enableWebSocketEnhanced=false , bool enableFetch=false , bool enableJSDOM=false , bool enableWindow=false , bool enablePlayer=false ): mId (id), mRequestType (requestType), mUrl (url), mEnableHttp (enableHttp), mEnableXHR (enableXHR), mEnableWebSocket (enableWebSocket), mEnableWebSocketEnhanced (enableWebSocketEnhanced), mEnableFetch (enableFetch), mEnableJSDOM (enableJSDOM), mEnableWindow (enableWindow), mEnablePlayer (enablePlayer)
@@ -105,7 +106,7 @@ namespace JsRuntime {
105106 bool mEnableJSDOM ;
106107 bool mEnableWindow ;
107108 bool mEnablePlayer ;
108- };
109+ };
109110 struct ApplicationData {
110111 std::string url;
111112 IJavaScriptContext* context;
@@ -121,19 +122,20 @@ namespace JsRuntime {
121122 void run ();
122123 void setEnvForConsoleMode (ModuleSettings& moduleSettings);
123124 bool runApplication (uint32_t id, std::string url);
124- bool runJavaScript (uint32_t id, std::string code);
125- uint32_t createApplication (ModuleSettings& moduleSettings) ;
125+ bool runJavaScript (uint32_t id, std::string code);
126+ uint32_t createApplication (ModuleSettings& moduleSettings) ;
126127 bool terminateApplication (uint32_t id);
127- std::list<ApplicationDetails> getApplications ();
128- private:
129- bool downloadFile (std::string& url, MemoryStruct& chunk);
128+ std::list<ApplicationDetails> getApplications ();
129+ void setExternalApplicationHandler (std::shared_ptr<IExternalApplicationHandler> handler);
130+ private:
131+ bool downloadFile (std::string& url, MemoryStruct& chunk);
130132 void processDevConsoleRequests ();
131133 void runDeveloperConsole (ModuleSettings moduleSettings);
132134 void createApplicationInternal (ApplicationRequest& appRequest);
133135 void runApplicationInternal (ApplicationRequest& appRequest);
134136 void terminateApplicationInternal (ApplicationRequest& appRequest);
135- void runJavaScriptInternal (ApplicationRequest& appRequest);
136- uint32_t createApplicationIdentifier ();
137+ void runJavaScriptInternal (ApplicationRequest& appRequest);
138+ uint32_t createApplicationIdentifier ();
137139 static size_t write_data (void *ptr, size_t size, size_t nmemb, FILE *stream);
138140 IJavaScriptEngine* mEngine ;
139141 bool mRunning ;
@@ -145,13 +147,9 @@ namespace JsRuntime {
145147 bool mEnableWebSocketServer ;
146148 bool mEssosInitialized ;
147149 bool mConsoleMode ;
148- std::mutex mUserMutex ;
150+ std::mutex mUserMutex ;
149151 std::map<uint32_t , ApplicationData> mContextMap ;
150- std::vector<ApplicationRequest> gPendingRequests ;
151- };
152+ std::vector<ApplicationRequest> gPendingRequests ;
153+ std::shared_ptr<IExternalApplicationHandler> mExternalApplicationHandler ;
154+ };
152155};
153-
154-
155-
156-
157-
0 commit comments