6 #include "ParaScripting.h" 7 #include "NPLRuntimeState.h" 8 #include "INPLRuntime.h" 10 #include "NPLCommon.h" 11 #include "IAttributeFields.h" 13 #include <boost/scoped_ptr.hpp> 14 #include <boost/thread/shared_mutex.hpp> 32 class INPLStimulationPipe;
33 class CNPLNameSpaceBinding;
49 ChannelProperty(
int nPriority,
int nReliability):m_nPriority(nPriority),m_nReliability(nReliability){};
53 void Set(
int nPriority,
int nReliability)
55 m_nPriority = nPriority;
56 m_nReliability = nReliability;
82 virtual void Run(
bool bToEnd =
true);
85 virtual void Cleanup();
99 virtual int GetChildAttributeObjectCount(
int nColumnIndex = 0);
102 ATTRIBUTE_METHOD1(
CNPLRuntime, IsServerStarted_s,
bool*) { *p1 = cls->IsServerStarted();
return S_OK; }
103 ATTRIBUTE_METHOD1(
CNPLRuntime, GetHostIP_s,
const char**) { *p1 = cls->GetHostIP().c_str();
return S_OK; }
104 ATTRIBUTE_METHOD1(
CNPLRuntime, GetHostPort_s,
const char**) { *p1 = cls->GetHostPort().c_str();
return S_OK; }
106 ATTRIBUTE_METHOD1(
CNPLRuntime, IsTCPKeepAliveEnabled_s,
bool*) {*p1 = cls->IsTCPKeepAliveEnabled();
return S_OK;}
107 ATTRIBUTE_METHOD1(
CNPLRuntime, SetTCPKeepAlive_s,
bool) {cls->SetTCPKeepAlive(p1);
return S_OK;}
109 ATTRIBUTE_METHOD1(
CNPLRuntime, IsKeepAliveEnabled_s,
bool*) {*p1 = cls->IsKeepAliveEnabled();
return S_OK;}
110 ATTRIBUTE_METHOD1(
CNPLRuntime, SetKeepAlive_s,
bool) {cls->SetKeepAlive(p1);
return S_OK;}
112 ATTRIBUTE_METHOD1(
CNPLRuntime, IsIdleTimeoutEnabled_s,
bool*) {*p1 = cls->IsIdleTimeoutEnabled();
return S_OK;}
113 ATTRIBUTE_METHOD1(
CNPLRuntime, EnableIdleTimeout_s,
bool) {cls->EnableIdleTimeout(p1);
return S_OK;}
115 ATTRIBUTE_METHOD1(
CNPLRuntime, GetIdleTimeoutPeriod_s,
int*) {*p1 = cls->GetIdleTimeoutPeriod();
return S_OK;}
116 ATTRIBUTE_METHOD1(
CNPLRuntime, SetIdleTimeoutPeriod_s,
int) {cls->SetIdleTimeoutPeriod(p1);
return S_OK;}
118 ATTRIBUTE_METHOD1(
CNPLRuntime, GetCompressionLevel_s,
int*) {*p1 = cls->GetCompressionLevel();
return S_OK;}
119 ATTRIBUTE_METHOD1(
CNPLRuntime, SetCompressionLevel_s,
int) {cls->SetCompressionLevel(p1);
return S_OK;}
121 ATTRIBUTE_METHOD1(
CNPLRuntime, GetCompressionThreshold_s,
int*) {*p1 = cls->GetCompressionThreshold();
return S_OK;}
122 ATTRIBUTE_METHOD1(
CNPLRuntime, SetCompressionThreshold_s,
int) {cls->SetCompressionThreshold(p1);
return S_OK;}
124 ATTRIBUTE_METHOD1(
CNPLRuntime, IsAnsiMode_s,
bool*) {*p1 = cls->IsAnsiMode();
return S_OK;}
125 ATTRIBUTE_METHOD1(
CNPLRuntime, EnableAnsiMode_s,
bool) {cls->EnableAnsiMode(p1);
return S_OK;}
127 ATTRIBUTE_METHOD1(
CNPLRuntime, GetMaxPendingConnections_s,
int*) { *p1 = cls->GetMaxPendingConnections();
return S_OK; }
128 ATTRIBUTE_METHOD1(
CNPLRuntime, SetMaxPendingConnections_s,
int) { cls->SetMaxPendingConnections(p1);
return S_OK; }
130 ATTRIBUTE_METHOD1(
CNPLRuntime, GetLogLevel_s,
int*) { *p1 = cls->GetLogLevel();
return S_OK; }
131 ATTRIBUTE_METHOD1(
CNPLRuntime, SetLogLevel_s,
int) { cls->SetLogLevel(p1);
return S_OK; }
138 virtual void SetUseCompression(
bool bCompressIncoming,
bool bCompressOutgoing);
152 virtual void SetCompressionKey(
const byte* sKey=0,
int nSize=0,
int nUsePlainTextEncoding = 0);
161 virtual void SetCompressionLevel(
int nLevel);
162 virtual int GetCompressionLevel();
168 virtual void SetCompressionThreshold(
int nThreshold);
169 virtual int GetCompressionThreshold();
185 virtual void SetTCPKeepAlive(
bool bEnable);
190 virtual bool IsTCPKeepAliveEnabled();
196 virtual void SetKeepAlive(
bool bEnable);
197 virtual bool IsKeepAliveEnabled();
205 virtual void EnableIdleTimeout(
bool bEnable);
206 virtual bool IsIdleTimeoutEnabled();
209 virtual void SetIdleTimeoutPeriod(
int nMilliseconds);
210 virtual int GetIdleTimeoutPeriod();
215 virtual void EnableAnsiMode(
bool bEnable);
216 virtual bool IsAnsiMode();
219 virtual int GetMaxPendingConnections();
220 virtual void SetMaxPendingConnections(
int val);
224 virtual const std::string& GetHostPort();
226 virtual const std::string& GetHostIP();
228 virtual bool IsServerStarted();
253 void NPL_LoadFile(NPLRuntimeState_ptr runtime_state,
const char* filePath,
bool bReload);
298 int NPL_Activate(NPLRuntimeState_ptr runtime_state,
const char * sNeuronFile,
const char *
code = NULL,
int nLength=0,
int channel=0,
int priority=2,
int reliability=3);
301 virtual int Activate(
INPLRuntimeState* pRuntimeState,
const char * sNeuronFile,
const char *
code = NULL,
int nLength=0,
int channel=0,
int priority=2,
int reliability=3);
306 virtual int ActivateLocalNow(
const char * sNeuronFile,
const char *
code = NULL,
int nLength = 0);
320 void NPL_StartNetServer(
const char* server=NULL,
const char* port=NULL);
323 void NPL_StopNetServer();
333 void NPL_AddPublicFile(
const string& filename,
int nID);
338 void NPL_ClearPublicFiles();
345 string NPL_GetIP(
const char* nid);
353 void NPL_accept(
const char* tid,
const char* nid = NULL);
356 void NPL_SetProtocol(
const char* nid,
int protocolType = 0);
366 void NPL_reject(
const char* nid,
int nReason = 0);
368 virtual void StartNetServer(
const char* server=NULL,
const char* port=NULL);
369 virtual void StopNetServer();
370 virtual void AddPublicFile(
const string& filename,
int nID);
371 virtual void ClearPublicFiles();
372 virtual void GetIP(
const char* nid,
char* pOutput);
373 virtual void accept(
const char* tid,
const char* nid = NULL);
374 virtual void reject(
const char* nid,
int nReason = 0);
399 virtual bool CloseJabberClient(
const char* sJID);
417 virtual bool ChangeRequestPoolSize(
const char* sPoolName,
int nCount);
431 virtual void AsyncDownload(
const char* url,
const char* destFolder,
const char* callbackScript,
const char* DownloaderName);
438 virtual void CancelDownload(
const char* DownloaderName);
445 virtual int Download(
const char* url,
const char* destFolder,
const char* callbackScript,
const char* DownloaderName);
466 void NPL_RegisterWSCallBack(
const char * sWebServiceFile,
const char * sCode);
471 void NPL_UnregisterWSCallBack(
const char * sWebServiceFile);
491 bool NPL_SetTimer(NPLRuntimeState_ptr runtime_state,
int nIDEvent,
float fElapse,
const char* sNeuronFile);
501 bool NPL_KillTimer(NPLRuntimeState_ptr runtime_state,
int nIDEvent);
514 bool NPL_ChangeTimer(NPLRuntimeState_ptr runtime_state,
int nIDEvent,
int dueTime,
int period);
524 static INPLStimulationPipe* GetNetworkLayerPipe();
535 virtual void NPL_AddDNSRecord(
const char * sDNSName,
const char* sAddress);
541 virtual void NPL_SetDefaultChannel(
int channel_ID);
546 virtual int NPL_GetDefaultChannel();
566 virtual void NPL_SetChannelProperty(
int channel_ID,
int priority,
int reliability);
580 virtual void NPL_ResetChannelProperties();
588 virtual void NPL_GetChannelProperty(
int channel_ID,
int* priority,
int* reliability);
599 void NPL_EnableNetwork(
bool bEnable,
const char* CenterName,
const char* password);
603 const string& NPL_GetSourceName();
609 void NPL_SetSourceName(
const char* sName);
612 int GetLogLevel()
const;
615 void SetLogLevel(
int val);
619 bool LoadWebServicePlugin();
626 void STI_DoWebServiceFile(
const char* sWebserviceFile,
const char *
code);
629 int TranslatePriorityValue(
int priority);
631 virtual INPLRuntimeState* CreateState(
const char* name, NPLRuntimeStateType type_=NPLRuntimeStateType_NPL);
633 virtual INPLRuntimeState* CreateGetState(
const char* name, NPLRuntimeStateType type_=NPLRuntimeStateType_NPL);
644 NPLRuntimeState_ptr CreateRuntimeState(
const string& name, NPLRuntimeStateType type_=NPLRuntimeStateType_NPL);
650 NPLRuntimeState_ptr GetRuntimeState(
const string& name);
653 NPLRuntimeState_ptr CreateGetRuntimeState(
const string& name, NPLRuntimeStateType type_=NPLRuntimeStateType_NPL);
657 bool DeleteRuntimeState(NPLRuntimeState_ptr runtime_state);
660 NPLRuntimeState_ptr GetMainRuntimeState();
665 bool AddStateToMainThread(NPLRuntimeState_ptr runtime_state);
670 bool RemoveStateFromMainThread(NPLRuntimeState_ptr runtime_state);
685 void SetHostMainStatesInFrameMove(
bool bHostMainStatesInFrameMove);
689 stack <string> m_stackDNS;
692 INPLStimulationPipe* m_pNetPipe;
693 CNPLNameSpaceBinding* m_pNPLNamespaceBinding;
696 int m_nDefaultChannel;
698 std::vector<ChannelProperty> m_channelProperties;
701 std::map <string, string> m_mapWebServiceCallBacks;
712 bool m_bHostMainStatesInFrameMove;
717 typedef std::set<NPLRuntimeState_ptr, NPLRuntimeState_PtrOps> NPLRuntime_Pool_Type;
718 typedef std::vector<NPLRuntimeState_ptr> NPLRuntime_Temp_Pool_Type;
719 typedef std::map<std::string, NPLRuntimeState_ptr> ActiveStateMap_Type;
722 boost::scoped_ptr<CNPLNetServer> m_net_server;
725 NPLRuntime_Pool_Type m_runtime_states;
728 NPLRuntime_Pool_Type m_runtime_states_with_timers;
731 ActiveStateMap_Type m_active_state_map;
734 NPLRuntime_Pool_Type m_runtime_states_main_threaded;
736 NPLRuntime_Temp_Pool_Type m_temp_rts_pool;
739 NPLRuntimeState_ptr m_runtime_state_main;
744 static NPLRuntimeStateType m_defaultNPLStateType;
an attribute class is a collection of attribute fields.
Definition: AttributeClass.h:10
define this to enable debugging of NPL code in visual studio
Definition: INPL.h:9
Definition: EmuCSParaEditGame.cpp:57
void Set(int nPriority, int nReliability)
set properties
Definition: NPLRuntime.h:53
INPLRuntimeState interface for DLL interface.
Definition: INPLRuntimeState.h:27
different physics engine has different winding order.
Definition: EventBinding.h:32
virtual const char * GetAttributeClassName()
a static string, describing the attribute class object's name
Definition: NPLRuntime.h:93
URL request can be a HTTP get/post request etc.
Definition: NPLNetClient.h:45
Option names.
Definition: NPLNetClient.h:252
ChannelProperty()
default to m_nPriority = NPL::MEDIUM_PRIORITY, m_nReliability = NPL::RELIABLE_ORDERED ...
Definition: NPLRuntime.h:48
CNPLRuntime is a wrapper of the NPL application programming interface (NPL API).
Definition: NPLRuntime.h:64
CNPLNetServer * GetNetServer()
get the NPL net server
Definition: NPLRuntime.h:673
Definition: minilua.c:461
NPL interface of a Jabber-XMPP client proxy.
Definition: IParaWebService.h:108
Current NPL configuration settings.
Definition: NPLNetServer.h:16
A common interface for all classes implementing IAttributeFields By implementing this class's virtual...
Definition: IAttributeFields.h:59
Definition: inftrees.h:24
virtual int GetAttributeClassID()
attribute class ID should be identical, unless one knows how overriding rules work.
Definition: NPLRuntime.h:91
virtual const char * GetAttributeClassDescription()
a static string, describing the attribute class object
Definition: NPLRuntime.h:95
for luabind, The main drawback of this approach is that the compilation time will increase for the fi...
Definition: luaSQLite.cpp:1971
interface of NPL web service client.
Definition: IParaWebService.h:466
cross platform mutex
Definition: mutex.h:95
NPL Runtime Environment interface.
Definition: INPLRuntime.h:30
NPLRuntimeStateType
The types of CNPLRuntimeState.
Definition: INPLRuntimeState.h:12