17 #ifndef DEFAULTOPERATIONLONGPOLLCHANNEL_HPP_
18 #define DEFAULTOPERATIONLONGPOLLCHANNEL_HPP_
22 #ifdef KAA_DEFAULT_LONG_POLL_CHANNEL
27 #include <boost/asio.hpp>
42 class DefaultOperationLongPollChannel :
public IDataChannel {
44 DefaultOperationLongPollChannel(IKaaChannelManager *channelManager,
const KeyPair& clientKeys);
45 virtual ~DefaultOperationLongPollChannel();
48 virtual void syncAll();
50 virtual const std::string& getId()
const {
return CHANNEL_ID; }
52 virtual TransportProtocolId getTransportProtocolId()
const {
60 virtual void setMultiplexer(IKaaDataMultiplexer *multiplexer);
61 virtual void setDemultiplexer(IKaaDataDemultiplexer *demultiplexer);
64 virtual const std::map<TransportType, ChannelDirection>& getSupportedTransportTypes()
const {
65 return SUPPORTED_TYPES;
68 virtual void shutdown();
70 virtual void resume();
75 std::string getURLSuffix() {
76 return "/EP/LongSync";
87 static const std::string CHANNEL_ID;
88 static const std::map<TransportType, ChannelDirection> SUPPORTED_TYPES;
92 boost::asio::io_service io_;
93 boost::asio::io_service::work work_;
94 std::thread pollThread_;
98 bool connectionInProgress_;
101 IKaaDataMultiplexer *multiplexer_;
102 IKaaDataDemultiplexer *demultiplexer_;
103 IKaaChannelManager *channelManager_;
104 std::shared_ptr<IPTransportInfo> currentServer_;
105 HttpDataProcessor httpDataProcessor_;
106 HttpClient httpClient_;
std::shared_ptr< IConnectivityChecker > ConnectivityCheckerPtr
static const TransportProtocolId HTTP_TRANSPORT_ID
#define KAA_MUTEX_DECLARE(name)
#define KAA_CONDITION_VARIABLE_DECLARE(name)
std::shared_ptr< ITransportConnectionInfo > ITransportConnectionInfoPtr