Network.pkg 3.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. $#include "Network/Network.h"
  2. class Network
  3. {
  4. bool Connect(const String address, unsigned short port, Scene* scene, const VariantMap& identity = Variant::emptyVariantMap);
  5. void Disconnect(int waitMSec = 0);
  6. bool StartServer(unsigned short port, unsigned int maxConnections = 128);
  7. void StopServer();
  8. void BroadcastMessage(int msgID, bool reliable, bool inOrder, const VectorBuffer& msg, unsigned contentID = 0);
  9. void BroadcastRemoteEvent(StringHash eventType, bool inOrder, const VariantMap& eventData = Variant::emptyVariantMap);
  10. void BroadcastRemoteEvent(const String eventType, bool inOrder, const VariantMap& eventData = Variant::emptyVariantMap);
  11. void BroadcastRemoteEvent(Scene* scene, StringHash eventType, bool inOrder, const VariantMap& eventData = Variant::emptyVariantMap);
  12. void BroadcastRemoteEvent(Scene* scene, const String eventType, bool inOrder, const VariantMap& eventData = Variant::emptyVariantMap);
  13. void BroadcastRemoteEvent(Node* node, StringHash eventType, bool inOrder, const VariantMap& eventData = Variant::emptyVariantMap);
  14. void BroadcastRemoteEvent(Node* node, const String eventType, bool inOrder, const VariantMap& eventData = Variant::emptyVariantMap);
  15. void SetUpdateFps(int fps);
  16. void SetSimulatedLatency(int ms);
  17. void SetSimulatedPacketLoss(float loss);
  18. void RegisterRemoteEvent(StringHash eventType);
  19. void RegisterRemoteEvent(const String eventType);
  20. void UnregisterRemoteEvent(StringHash eventType);
  21. void UnregisterRemoteEvent(const String eventType);
  22. void UnregisterAllRemoteEvents();
  23. void SetPackageCacheDir(const String path);
  24. void SendPackageToClients(Scene* scene, PackageFile* package);
  25. // SharedPtr<HttpRequest> MakeHttpRequest(const String url, const String verb = String::EMPTY, const Vector<String>& headers = Vector<String>(), const String postData = String::EMPTY);
  26. tolua_outside HttpRequest* NetworkMakeHttpRequest @ MakeHttpRequest(const String url, const String verb = String::EMPTY, const Vector<String>& headers = Vector<String>(), const String postData = String::EMPTY);
  27. int GetUpdateFps() const;
  28. int GetSimulatedLatency() const;
  29. float GetSimulatedPacketLoss() const;
  30. Connection* GetServerConnection() const;
  31. bool IsServerRunning() const;
  32. bool CheckRemoteEvent(StringHash eventType) const;
  33. const String GetPackageCacheDir() const;
  34. void StartNATClient();
  35. const String& GetGUID() const;
  36. void DiscoverHosts(unsigned port);
  37. void SetPassword(const String& password);
  38. void SetDiscoveryBeacon(const VariantMap& data);
  39. void SetNATServerInfo(const String& address, unsigned short port);
  40. void AttemptNATPunchtrough(const String& guid, Scene* scene, const VariantMap& identity = Variant::emptyVariantMap);
  41. tolua_property__get_set int updateFps;
  42. tolua_property__get_set int simulatedLatency;
  43. tolua_property__get_set float simulatedPacketLoss;
  44. tolua_readonly tolua_property__get_set Connection* serverConnection;
  45. tolua_readonly tolua_property__is_set bool serverRunning;
  46. tolua_property__get_set String packageCacheDir;
  47. };
  48. Network* GetNetwork();
  49. tolua_readonly tolua_property__get_set Network* network;
  50. ${
  51. #define TOLUA_DISABLE_tolua_NetworkLuaAPI_GetNetwork00
  52. static int tolua_NetworkLuaAPI_GetNetwork00(lua_State* tolua_S)
  53. {
  54. return ToluaGetSubsystem<Network>(tolua_S);
  55. }
  56. #define TOLUA_DISABLE_tolua_get_network_ptr
  57. #define tolua_get_network_ptr tolua_NetworkLuaAPI_GetNetwork00
  58. static HttpRequest* NetworkMakeHttpRequest(Network* network, const String& url, const String& verb = String::EMPTY, const Vector<String>& headers = Vector<String>(), const String postData = String::EMPTY)
  59. {
  60. if (!network)
  61. return 0;
  62. return network->MakeHttpRequest(url, verb, headers, postData).Detach();
  63. }
  64. $}