X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/20072b367cf034ab9124560e4a06d8e32a388d93..114e097d3658e41e7946b5d5ba1ad2ffdc7fe2d9:/projects/rlm_stg/stg_client.h diff --git a/projects/rlm_stg/stg_client.h b/projects/rlm_stg/stg_client.h index d57af7da..b90b0e60 100644 --- a/projects/rlm_stg/stg_client.h +++ b/projects/rlm_stg/stg_client.h @@ -21,15 +21,13 @@ #ifndef STG_CLIENT_H #define STG_CLIENT_H -#include "stg/sgcp_proto.h" // Proto -#include "stg/sgcp_types.h" // TransportType #include "stg/os_int.h" -#include +#include #include #include -#include +#include typedef std::vector > PAIRS; @@ -46,9 +44,10 @@ struct ChannelConfig { ChannelConfig(std::string address); - STG::SGCP::TransportType transport; + std::string transport; std::string key; std::string address; + std::string portStr; uint16_t port; }; @@ -66,26 +65,24 @@ public: Error(const std::string& message) : runtime_error(message) {} }; - STG_CLIENT(const std::string& address); + typedef bool (*Callback)(void* /*data*/, const RESULT& /*result*/, bool /*status*/); + + STG_CLIENT(const std::string& address, Callback callback, void* data); + STG_CLIENT(const STG_CLIENT& rhs); ~STG_CLIENT(); bool stop(); + bool connected() const; static STG_CLIENT* get(); - static bool configure(const std::string& address); + static bool configure(const std::string& address, Callback callback, void* data); + static bool reconnect(); - RESULT request(TYPE type, const std::string& userName, const std::string& password, const PAIRS& pairs); + bool request(TYPE type, const std::string& userName, const std::string& password, const PAIRS& pairs); private: - ChannelConfig m_config; - STG::SGCP::Proto m_proto; - boost::thread m_thread; - - void m_writeHeader(TYPE type, const std::string& userName, const std::string& password); - void m_writePairBlock(const PAIRS& source); - PAIRS m_readPairBlock(); - - void m_run(); + class Impl; + boost::scoped_ptr m_impl; }; #endif