17 #ifndef KAACLIENT_HPP_
18 #define KAACLIENT_HPP_
27 #include "kaa/event/gen/EventFamilyFactory.hpp"
48 public std::enable_shared_from_this<IKaaClient> {
67 virtual void addLogRecord(
const KaaUserLogRecord& record);
82 virtual void subscribeToTopics(
const std::list<std::string>& idList,
bool forceSync);
94 virtual void attachUser(
const std::string& userExternalId,
const std::string& userAccessToken
96 virtual void attachUser(
const std::string& userExternalId,
const std::string& userAccessToken
97 ,
const std::string& userVerifierToken
110 void initKaaTransport();
111 void initClientKeys();
114 #ifdef KAA_DEFAULT_BOOTSTRAP_HTTP_CHANNEL
115 std::unique_ptr<DefaultBootstrapChannel> bootstrapChannel_;
117 #ifdef KAA_DEFAULT_TCP_CHANNEL
118 std::unique_ptr<DefaultOperationTcpChannel> opsTcpChannel_;
127 std::unique_ptr<IBootstrapManager> bootstrapManager_;
128 std::unique_ptr<IKaaChannelManager> channelManager_;
129 std::unique_ptr<SyncDataProcessor> syncProcessor_;
133 std::unique_ptr<KeyPair> clientKeys_;
134 std::string publicKeyHash_;
135 std::unique_ptr<ProfileManager> profileManager_;
136 #ifdef KAA_USE_NOTIFICATIONS
137 std::unique_ptr<NotificationManager> notificationManager_;
139 #ifdef KAA_USE_CONFIGURATION
140 std::unique_ptr<ConfigurationManager> configurationManager_;
142 #ifdef KAA_USE_EVENTS
143 std::unique_ptr<EventManager> eventManager_;
144 std::unique_ptr<EventFamilyFactory> eventFamilyFactory_;
145 std::unique_ptr<EndpointRegistrationManager> registrationManager_;
147 #ifdef KAA_USE_LOGGING
148 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.
virtual IKaaDataDemultiplexer & getOperationDemultiplexer()
Retrieves Kaa operations data demultiplexer.
virtual void subscribeToTopic(const std::string &id, bool forceSync)
Subscribes to the specified optional topic to receive notifications on that topic.
std::shared_ptr< IFailoverStrategy > IFailoverStrategyPtr
virtual std::string getEndpointAccessToken()
Retrieve an access token for a current endpoint.
std::shared_ptr< IKaaClientPlatformContext > IKaaClientPlatformContextPtr
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 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 unsubscribeFromTopics(const std::list< std::string > &idList, bool forceSync)
Unsubscribes from the specified list of optional topics to stop receiving notifications on those topi...
virtual void resume()
Resumes Kaa's workflow.
virtual void setConfigurationStorage(IConfigurationStoragePtr storage)
virtual std::string refreshEndpointAccessToken()
Generate new access token for a current endpoint.
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 syncTopicSubscriptions()
Sends subscription request(s) to the Operations server.
virtual void subscribeToTopics(const std::list< std::string > &idList, bool forceSync)
Subscribes to the specified list of optional topics to receive notifications on those topics...
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 unsubscribeFromTopic(const std::string &id, bool forceSync)
Unsubscribes from the specified optional topic to stop receiving notifications on that topic...
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 void addNotificationListener(INotificationListener &listener)
Adds the listener which receives notifications on all available topics.
virtual void addLogRecord(const KaaUserLogRecord &record)
Adds a new log record to the log storage.
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()
std::shared_ptr< IProfileTransport > IProfileTransportPtr
virtual bool isAttachedToUser()
Checks if the current endpoint is already attached to some user.
virtual void pause()
Pauses Kaa's workflow.
std::shared_ptr< IKaaClientStateListener > IKaaClientStateListenerPtr