19 #ifndef ABSTRACTHTTPCHANNEL_HPP_
20 #define ABSTRACTHTTPCHANNEL_HPP_
24 #if defined(KAA_DEFAULT_BOOTSTRAP_HTTP_CHANNEL) || defined (KAA_DEFAULT_OPERATION_HTTP_CHANNEL)
48 class AbstractHttpChannel :
public ImpermanentDataChannel {
50 AbstractHttpChannel(IKaaChannelManager *channelManager,
const KeyPair& clientKeys);
51 virtual ~AbstractHttpChannel() { }
54 virtual void syncAll();
56 virtual void setMultiplexer(IKaaDataMultiplexer *multiplexer);
57 virtual void setDemultiplexer(IKaaDataDemultiplexer *demultiplexer);
60 virtual TransportProtocolId getTransportProtocolId()
const {
67 typedef std::shared_ptr<IPTransportInfo> IPTransportInfoPtr;
69 HttpDataProcessor* getHttpDataProcessor() {
return &httpDataProcessor_; }
70 virtual void processTypes(
const std::map<TransportType, ChannelDirection>& types
76 virtual std::string getURLSuffix() = 0;
79 virtual std::shared_ptr<IHttpRequest> createRequest(IPTransportInfoPtr server,
const std::vector<std::uint8_t>& body) = 0;
80 virtual std::string retrieveResponse(
const IHttpResponse& response) = 0;
85 bool lastConnectionFailed_;
87 IKaaDataMultiplexer *multiplexer_;
88 IKaaDataDemultiplexer *demultiplexer_;
89 IKaaChannelManager *channelManager_;
90 IPTransportInfoPtr currentServer_;
91 HttpDataProcessor httpDataProcessor_;
92 HttpClient httpClient_;
std::shared_ptr< IConnectivityChecker > ConnectivityCheckerPtr
static const TransportProtocolId HTTP_TRANSPORT_ID
#define KAA_MUTEX_DECLARE(name)
std::shared_ptr< ITransportConnectionInfo > ITransportConnectionInfoPtr