17 #ifndef KAACLIENT_HPP_ 
   18 #define KAACLIENT_HPP_ 
   27 #include "kaa/event/gen/EventFamilyFactory.hpp" 
   48                   public std::enable_shared_from_this<IKaaClient> {
 
   81     virtual void                                subscribeToTopics(
const std::list<std::int64_t>& idList, 
bool forceSync);
 
   93     virtual void                                attachUser(
const std::string& userExternalId, 
const std::string& userAccessToken
 
   95     virtual void                                attachUser(
const std::string& userExternalId, 
const std::string& userAccessToken
 
   96                                                           , 
const std::string& userVerifierToken
 
  109     void initKaaTransport();
 
  110     void initClientKeys();
 
  112     void checkReadiness();
 
  123     void setClientState(State state);
 
  124     void checkClientState(State expected, 
const std::string& message);
 
  125     void checkClientStateNot(State unexpected, 
const std::string& message);
 
  132 #ifdef KAA_DEFAULT_BOOTSTRAP_HTTP_CHANNEL 
  133     std::unique_ptr<DefaultBootstrapChannel>         bootstrapChannel_;
 
  135 #ifdef KAA_DEFAULT_TCP_CHANNEL 
  136     std::unique_ptr<DefaultOperationTcpChannel>      opsTcpChannel_;
 
  138 #ifdef KAA_DEFAULT_OPERATION_HTTP_CHANNEL 
  139     std::unique_ptr<DefaultOperationHttpChannel>     opsHttpChannel_;
 
  141 #ifdef KAA_DEFAULT_LONG_POLL_CHANNEL 
  142     std::unique_ptr<DefaultOperationLongPollChannel> opsLongPollChannel_;
 
  148     std::unique_ptr<IBootstrapManager>               bootstrapManager_;
 
  149     std::unique_ptr<IKaaChannelManager>              channelManager_;
 
  150     std::unique_ptr<SyncDataProcessor>               syncProcessor_;
 
  153     std::unique_ptr<KeyPair>                         clientKeys_;
 
  154     std::string                                      publicKeyHash_;
 
  155     std::unique_ptr<ProfileManager>                  profileManager_;
 
  156 #ifdef KAA_USE_NOTIFICATIONS 
  157     std::unique_ptr<NotificationManager>             notificationManager_;
 
  159 #ifdef KAA_USE_CONFIGURATION 
  160     std::unique_ptr<ConfigurationManager>            configurationManager_;
 
  162 #ifdef KAA_USE_EVENTS 
  163     std::unique_ptr<EventManager>                    eventManager_;
 
  164     std::unique_ptr<EventFamilyFactory>              eventFamilyFactory_;
 
  165     std::unique_ptr<EndpointRegistrationManager>     registrationManager_;
 
  167 #ifdef KAA_USE_LOGGING 
  168     std::unique_ptr<LogCollector>                    logCollector_;
 
virtual void attachUser(const std::string &userExternalId, const std::string &userAccessToken, IUserAttachCallbackPtr listener=IUserAttachCallbackPtr())
Attaches the current endpoint to the specifier user. The user verification is carried out by the defa...
 
virtual IKaaDataDemultiplexer & getBootstrapDemultiplexer()
Retrieves Kaa bootstrap data demultiplexer. 
 
The listener which receives updates on available topics. 
 
virtual IKaaChannelManager & getChannelManager()
Retrieves the Channel Manager. 
 
virtual void setLogStorage(ILogStoragePtr storage)
Sets the new log storage. 
 
virtual void stop()
Stops Kaa's workflow. 
 
std::shared_ptr< ILogDeliveryListener > ILogDeliveryListenerPtr
 
virtual RecordFuture addLogRecord(const KaaUserLogRecord &record)
Adds a new log record to the log storage. 
 
virtual IKaaDataDemultiplexer & getOperationDemultiplexer()
Retrieves Kaa operations data demultiplexer. 
 
std::shared_ptr< IFailoverStrategy > IFailoverStrategyPtr
 
virtual std::string getEndpointAccessToken()
Retrieve an access token for a current endpoint. 
 
std::shared_ptr< IKaaClientPlatformContext > IKaaClientPlatformContextPtr
 
virtual void subscribeToTopic(std::int64_t id, bool forceSync)
Subscribes to the specified optional topic to receive notifications on that topic. 
 
virtual void start()
Starts Kaa's workflow. 
 
virtual void setProfileContainer(IProfileContainerPtr container)
Sets profile container implemented by the user. 
 
virtual void addTopicListListener(INotificationTopicListListener &listener)
Adds the listener which receives updates on the list of available topics. 
 
virtual IKaaDataMultiplexer & getBootstrapMultiplexer()
Retrieves Kaa bootstrap data multiplexer. 
 
virtual void setLogDeliveryListener(ILogDeliveryListenerPtr listener)
Set a listener which receives a delivery status of each log bucket. 
 
virtual void attachEndpoint(const std::string &endpointAccessToken, IAttachEndpointCallbackPtr listener=IAttachEndpointCallbackPtr())
Attaches the specified endpoint to the user to which the current endpoint is attached. 
 
virtual void removeTopicListListener(INotificationTopicListListener &listener)
Removes listener which receives updates on the list of available topics. 
 
virtual void removeNotificationListener(INotificationListener &listener)
Removes the listener which receives notifications on all available topics. 
 
std::shared_ptr< IDetachEndpointCallback > IDetachEndpointCallbackPtr
 
virtual void resume()
Resumes Kaa's workflow. 
 
virtual void setConfigurationStorage(IConfigurationStoragePtr storage)
 
virtual std::string refreshEndpointAccessToken()
Generate new access token for a current endpoint. 
 
std::shared_ptr< ILogger > LoggerPtr
 
virtual void setLogUploadStrategy(ILogUploadStrategyPtr strategy)
Sets the new log upload strategy. 
 
virtual void setEndpointAccessToken(const std::string &token)
Set new access token for a current endpoint. 
 
std::shared_ptr< IProfileContainer > IProfileContainerPtr
 
KaaClient(IKaaClientPlatformContextPtr context, IKaaClientStateListenerPtr listener)
 
std::shared_ptr< ILogStorage > ILogStoragePtr
 
The listener which receives notifications on the specified topic. 
 
std::shared_ptr< IKaaClientStateStorage > IKaaClientStateStoragePtr
 
virtual void addConfigurationListener(IConfigurationReceiver &receiver)
 
virtual void unsubscribeFromTopics(const std::list< std::int64_t > &idList, bool forceSync)
Unsubscribes from the specified list of optional topics to stop receiving notifications on those topi...
 
virtual void syncTopicSubscriptions()
Sends subscription request(s) to the Operations server. 
 
virtual Topics getTopics()
Retrieves the list of available topics. 
 
std::shared_ptr< IConfigurationStorage > IConfigurationStoragePtr
 
std::shared_ptr< IAttachStatusListener > IAttachStatusListenerPtr
 
virtual void removeConfigurationListener(IConfigurationReceiver &receiver)
 
virtual void setAttachStatusListener(IAttachStatusListenerPtr listener)
Sets listener to notify of the current endpoint is attached/detached by another one. 
 
std::shared_ptr< IUserAttachCallback > IUserAttachCallbackPtr
 
virtual void detachEndpoint(const std::string &endpointKeyHash, IDetachEndpointCallbackPtr listener=IDetachEndpointCallbackPtr())
Detaches the specified endpoint from the user to which the current endpoint is attached. 
 
virtual void updateProfile()
Notifies server about profile changes. 
 
virtual std::int32_t findEventListeners(const std::list< std::string > &eventFQNs, IFetchEventListenersPtr listener)
Submits an event listeners resolution request. 
 
virtual IKaaClientContext & getKaaClientContext()
Retrieves Kaa context data. 
 
virtual void addNotificationListener(INotificationListener &listener)
Adds the listener which receives notifications on all available topics. 
 
virtual IKaaDataMultiplexer & getOperationMultiplexer()
Retrieves Kaa operations data multiplexer. 
 
std::shared_ptr< IFetchEventListeners > IFetchEventListenersPtr
 
std::shared_ptr< ILogUploadStrategy > ILogUploadStrategyPtr
 
virtual const KaaRootConfiguration & getConfiguration()
 
virtual const KeyPair & getClientKeyPair()
Retrieves the client's public and private key. 
 
virtual void setFailoverStrategy(IFailoverStrategyPtr strategy)
 
std::shared_ptr< IAttachEndpointCallback > IAttachEndpointCallbackPtr
 
virtual EventFamilyFactory & getEventFamilyFactory()
 
virtual bool isAttachedToUser()
Checks if the current endpoint is already attached to some user. 
 
virtual void unsubscribeFromTopic(std::int64_t id, bool forceSync)
Unsubscribes from the specified optional topic to stop receiving notifications on that topic...
 
virtual void pause()
Pauses Kaa's workflow. 
 
std::shared_ptr< IKaaClientStateListener > IKaaClientStateListenerPtr
 
virtual void subscribeToTopics(const std::list< std::int64_t > &idList, bool forceSync)
Subscribes to the specified list of optional topics to receive notifications on those topics...