My Project
ParaScriptingNPL.h
1 //-----------------------------------------------------------------------------
2 // Copyright (C) 2004 - 2006 ParaEngine Dev Studio, All Rights Reserved.
3 // Date: 2004.5
4 // Description: API for NPL.
5 //-----------------------------------------------------------------------------
6 #pragma once
7 #include <boost/shared_ptr.hpp>
8 #include "ParaScriptingGlobal.h"
9 
10 
11 namespace luabind
12 {
13  namespace adl {
14  class object;
15  }
16  using adl::object;
17 }
18 
19 struct lua_State;
20 
21 namespace ParaScripting
22 {
23  using namespace luabind;
24  using namespace std;
25 
34  {
35  public:
40 
41  NPL::CNPLRuntimeState* m_rts;
42 
44  bool IsValid();
45 
47  const char* GetName() const;
48 
49  object GetField(const char* sFieldname, const object& output);
50  void SetField(const char* sFieldname, const object& input);
51 
56  int Start();
57 
61  bool Stop();
62 
68  void Reset();
69  void Reset1(const char* onResetScode);
70 
81  object GetStats(const object& input);
82 
88  int GetCurrentQueueSize();
89 
95  int GetProcessedMsgCount();
96 
100  int GetMsgQueueSize();
101 
105  void SetMsgQueueSize(int nSize = 500);
106 
109  void WaitForMessage();
110 
114  void WaitForMessage2(int nMessageCount);
115 
121  object PeekMessage(int nIndex, const object& inout);
122 
130  object PopMessageAt(int nIndex, const object& inout);
131  };
132 
137  class PE_CORE_DECL CNPL
138  {
139  public:
186  static int activate(const object& sNPLFilename, const object& sCode);
187  static int activate1(const object& sNPLFilename);
188  static int activate3(const object& sNPLFilename, const object& sCode, int channel);
189  static int activate5(const object& sNPLFilename, const object& sCode, int channel, int priority, int reliability);
191  static int activate2_(const char * sNPLFilename, const char* sCode);
193  static int activate_(const char * sNPLFilename, const char* sCode, int channel, int priority, int reliability);
194 
199  static void call(const object& sNPLFilename, const object& sCode);
201  static void call_(const char * sNPLFilename, const char* sCode);
202 
220  static void this_(const object& funcActivate);
221  static void this2_(const object& funcActivate, const object& params);
222 
224  static ParaAttributeObject GetAttributeObject();
225 
226 
251  static void load(const object& filePath, bool bReload);
253  static void load_(const char* filePath, bool bReload);
255  static void load1(const object& filePath);
256 
258  static int export_(lua_State* L);
260  static const char* GetFileName(lua_State* L = 0);
261 
267  static void DoString(const object& sCode);
268 
275  static void DoString2(const object& sCode, const char* sFilename);
276 
278  static void DoString_(const char* sCode);
279 
283  static void test(const object& input);
284 
295  static bool SetTimer(const object& nIDEvent, float fElapse, const object& sNeuronFile);
296 
303  static bool KillTimer(const object& nIDEvent);
304 
314  static bool ChangeTimer(const object& nIDEvent, int dueTime, int period);
315 
324  static const string& SerializeToSCode(const char* sStorageVar, const object& input);
325  static const string& SerializeToSCode2(const char* sStorageVar, const object& input, bool sort);
326 
330  static bool IsSCodePureData(const char* sCode);
331 
333  static bool IsPureData(const char* sCode);
334 
336  static bool IsPureTable(const char* sCode);
337 
339  static luabind::object LoadTableFromString(const object& input);
341  static luabind::object LoadObjectFromString(const object& input);
342 
343 
350  static void StartNetServer(const object& server, const object& port);
351 
353  static void StopNetServer();
354 
363  static void AddPublicFile(const string& filename, int nID);
364 
373  static void RegisterEvent(int nType, const char* sID, const char* sScript);
374 
378  static void UnregisterEvent(int nType, const char* sID);
379 
390  static object GetStats(const object& inout);
391 
395  static void ClearPublicFiles();
396 
410  static bool AddNPLRuntimeAddress(const object& npl_address);
411 
417  static string GetIP(const char* nid);
418 
424  static void accept(const object& tid, const object& nid);
425 
427  static void accept_(const char* tid, const char* nid);
428 
430  static void SetProtocol(const char* nid, int protocolType);
431 
432 
442  static void reject(const object& nid);
443 
445  static void reject_(const char* nid, int nReason = 0);
446 
451  static void SetUseCompression(bool bCompressIncoming, bool bCompressOutgoing);
452 
466  static void SetCompressionKey(const object& input);
467 
469  //
470  // old network implementations. functions in this categories are obsoleted at the moment.
471  //
473 
476  static const char* GetSourceName();
482  static void SetSourceName(const char* sName);
483 
493  static void EnableNetwork(bool bEnable, const char* CenterName, const char* password);
494 
504  static void AddDNSRecord(const char * sDNSName, const char* sAddress);
505 
510  static void SetDefaultChannel(int channel_ID);
511 
516  static int GetDefaultChannel();
517 
536  static void SetChannelProperty(int channel_ID, int priority, int reliability);
537 
551  static void ResetChannelProperties();
552 
559  static void GetChannelProperty(int channel_ID, int* priority, int* reliability);
560 
580  static void RegisterWSCallBack(const char * sWebServiceFile, const char * sCode);
585  static void UnregisterWSCallBack(const char * sWebServiceFile);
586 
588  //
589  // downloader functions
590  //
592 
605  static void AsyncDownload(const char* url, const char* destFolder, const char* callbackScript, const char* DownloaderName);
606 
611  static void CancelDownload(const char* DownloaderName);
612 
618  static int Download(const char* url, const char* destFolder, const char* callbackScript, const char* DownloaderName);
619 
621  //
622  // neuron file function
623  //
625 
633 
635 
637 
641  static ParaNPLRuntimeState CreateRuntimeState(const string& name, int type_);
642 
646  static ParaNPLRuntimeState GetRuntimeState(const string& name);
647 
649  static ParaNPLRuntimeState CreateGetRuntimeState(const string& name, int type_);
650 
653  static bool DeleteRuntimeState(ParaNPLRuntimeState runtime_state);
654 
671  static void Compile(const char* arguments);
672 
674  //
675  // new libcUrl interface.
676  //
678 
683  //static bool AppendURLRequest(CURLRequestTask* pUrlTask, const char* sPoolName);
684 
708  static bool AppendURLRequest1(const object& url, const char* sCallback, const object& sForm, const char* sPoolName);
709 
716  static string EncodeURLQuery(const char * baseUrl, const object& sParams);
717 
719  static std::string GetExternalIP();
720 
725  static bool ChangeRequestPoolSize(const char* sPoolName, int nCount);
726 
732  static bool FromJson(const char* sJson, const object& output);
733 
735  static const string& ToJson(const object& output);
736  static const string& ToJson2(const object& output, bool bUseEmptyArray);
737 
742  static bool Compress(const object& output);
743 
747  static bool Decompress(const object& output);
748  };
749 }
A runtime state contains the scripting runtime stack and can be run in a single thread.
Definition: NPLRuntimeState.h:35
Definition: class.hpp:124
Definition: object.hpp:749
Definition: minilua.c:461
Neural Parallel Language functions are in this namespace.
Definition: ParaScriptingNPL.h:137
Definition: PEtypes.h:507
it represents an attribute object associated with an object.
Definition: ParaScriptingGlobal.h:458
A runtime state contains the scripting runtime stack and can be run in a single thread.
Definition: ParaScriptingNPL.h:33
for luabind, The main drawback of this approach is that the compilation time will increase for the fi...
Definition: luaSQLite.cpp:1971