17 #ifndef DEFAULTOPERATIONLONGPOLLCHANNEL_HPP_
18 #define DEFAULTOPERATIONLONGPOLLCHANNEL_HPP_
22 #ifdef KAA_DEFAULT_LONG_POLL_CHANNEL
27 #include <boost/asio.hpp>
38 class DefaultOperationLongPollChannel :
public IDataChannel {
40 DefaultOperationLongPollChannel(IKaaChannelManager *channelManager,
const KeyPair& clientKeys);
41 virtual ~DefaultOperationLongPollChannel();
44 virtual void syncAll();
46 virtual const std::string& getId()
const {
return CHANNEL_ID; }
47 virtual ChannelType getChannelType()
const {
return ChannelType::HTTP_LP; }
50 virtual void setMultiplexer(IKaaDataMultiplexer *multiplexer);
51 virtual void setDemultiplexer(IKaaDataDemultiplexer *demultiplexer);
54 virtual const std::map<TransportType, ChannelDirection>& getSupportedTransportTypes()
const {
return SUPPORTED_TYPES; }
56 virtual void shutdown();
58 virtual void resume();
70 static const std::string CHANNEL_ID;
71 static const std::map<TransportType, ChannelDirection> SUPPORTED_TYPES;
75 boost::asio::io_service io_;
76 boost::asio::io_service::work work_;
77 std::thread pollThread_;
81 bool connectionInProgress_;
84 IKaaDataMultiplexer *multiplexer_;
85 IKaaDataDemultiplexer *demultiplexer_;
86 IKaaChannelManager *channelManager_;
88 HttpDataProcessor httpDataProcessor_;
89 HttpClient httpClient_;
std::pair< Botan::MemoryVector< std::uint8_t >, std::string > KeyPair
std::shared_ptr< IConnectivityChecker > ConnectivityCheckerPtr
std::shared_ptr< HttpLPServerInfo > OperationServerLongPollInfoPtr
std::shared_ptr< IServerInfo > IServerInfoPtr
#define KAA_MUTEX_DECLARE(name)
#define KAA_CONDITION_VARIABLE_DECLARE(name)