#ifndef _SQMG_MANAGER_HPP_ #define _SQMG_MANAGER_HPP_ // ------------------------------------------------------------------------------------------------ #include "Handles.hpp" // ------------------------------------------------------------------------------------------------ namespace SqMod { /* ------------------------------------------------------------------------------------------------ * Allows management of the connection manager. */ class Manager { private: // -------------------------------------------------------------------------------------------- ManagerHnd m_Handle; // Reference to the manager instance. public: /* -------------------------------------------------------------------------------------------- * Default constructor. */ Manager() : m_Handle(HndInit::InitHnd) { /* ... */ } /* -------------------------------------------------------------------------------------------- * Handle constructor. */ Manager(const ManagerHnd & m) : m_Handle(m) { /* ... */ } /* -------------------------------------------------------------------------------------------- * Copy constructor. */ Manager(const Manager & o) = default; /* -------------------------------------------------------------------------------------------- * Move constructor. */ Manager(Manager && o) = default; /* -------------------------------------------------------------------------------------------- * Destructor. */ ~Manager() { // Let the reference handle the deallocation! } /* -------------------------------------------------------------------------------------------- * Copy assignment operator. */ Manager & operator = (const Manager & o); /* -------------------------------------------------------------------------------------------- * Move assignment operator. */ Manager & operator = (Manager && o); /* -------------------------------------------------------------------------------------------- * Used by the script engine to compare two instances of this type. */ Int32 Cmp(const Manager & o) const; /* -------------------------------------------------------------------------------------------- * Used by the script engine to convert an instance of this type to a string. */ CSStr ToString() const { return _SC(""); } /* -------------------------------------------------------------------------------------------- * Used by the script engine to retrieve the name from instances of this type. */ static SQInteger Typename(HSQUIRRELVM vm); /* -------------------------------------------------------------------------------------------- * Create listening connection. */ Connection Bind(CSStr addr) const; /* -------------------------------------------------------------------------------------------- * Create listening connection. */ Connection Bind(CSStr addr, Uint32 flags) const; /* -------------------------------------------------------------------------------------------- * Connect to a remote host. */ Connection Connect(CSStr addr) const; /* -------------------------------------------------------------------------------------------- * Connect to a remote host. */ Connection Connect(CSStr addr, Uint32 flags) const; /* -------------------------------------------------------------------------------------------- * Creates an outbound WebSocket connection. */ Connection ConnectWS(CSStr url) const; /* -------------------------------------------------------------------------------------------- * Creates an outbound WebSocket connection. */ Connection ConnectWS(CSStr url, CSStr protocol) const; /* -------------------------------------------------------------------------------------------- * Creates an outbound WebSocket connection. */ Connection ConnectWS(CSStr url, CSStr protocol, CSStr headers) const; /* -------------------------------------------------------------------------------------------- * Creates an outbound WebSocket connection. */ Connection ConnectWS(CSStr url, CSStr protocol, CSStr headers, Uint32 flags) const; /* -------------------------------------------------------------------------------------------- * Creates outbound HTTP connection. */ Connection ConnectHTTP(CSStr url) const; /* -------------------------------------------------------------------------------------------- * Creates outbound HTTP connection. */ Connection ConnectHTTP(CSStr url, CSStr headers) const; /* -------------------------------------------------------------------------------------------- * Creates outbound HTTP connection. */ Connection ConnectHTTP(CSStr url, CSStr headers, CSStr post) const; /* -------------------------------------------------------------------------------------------- * Creates outbound HTTP connection. */ Connection ConnectHTTP(CSStr url, CSStr headers, CSStr post, Uint32 flags) const; }; } // Namespace:: SqMod #endif // _SQMG_MANAGER_HPP_