client-cpp  0.0.1-SNAPSHOT
KaaClient.hpp
Go to the documentation of this file.
1 /*
2  * Copyright 2014 CyberVision, Inc.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #ifndef KAACLIENT_HPP_
18 #define KAACLIENT_HPP_
19 
20 #include "kaa/IKaaClient.hpp"
21 
22 #include "kaa/ClientStatus.hpp"
27 #include "kaa/event/gen/EventFamilyFactory.hpp"
35 #include "kaa/ClientStatus.hpp"
42 #include "kaa/log/LogCollector.hpp"
43 
44 namespace kaa {
45 
46 typedef boost::shared_ptr<IBootstrapManager> IBootstrapManagerPtr;
47 typedef boost::shared_ptr<DefaultDeltaManager> DefaultDeltaManagerPtr;
48 
49 typedef enum {
52 
53 class KaaClient : public IKaaClient {
54 public:
55  KaaClient();
56  virtual ~KaaClient() { }
57 
58  void init(int options);
59  void start();
60  void stop();
61 
62  virtual IProfileManager& getProfileManager() { return *profileManager_; }
63  virtual ISchemaPersistenceManager& getSchemaPersistenceManager() { return *schemaPersistenceManager_; }
64  virtual IConfigurationPersistenceManager& getConfigurationPersistenceManager() { return *configurationPersistenceManager_; }
65  virtual IDeltaManager& getDeltaManager() { return *deltaManager_; }
66  virtual IConfigurationManager& getConfigurationManager() { return *configurationManager_; }
67  virtual INotificationManager& getNotificationManager() { return *notificationManager_; }
68  virtual IEndpointRegistrationManager& getEndpointRegistrationManager() { return *registrationManager_; }
69  virtual EventFamilyFactory& getEventFamilyFactory() { return *eventFamilyFactory_; }
70  virtual IEventListenersResolver& getEventListenersResolver() { return *eventManager_; }
71  virtual IKaaChannelManager& getChannelManager() { return *channelManager_; }
72  virtual const KeyPair& getClientKeyPair() { return clientKeys_; }
73  virtual ILogCollector& getLogCollector() { return *logCollector_; }
74  virtual IKaaDataMultiplexer& getOperationMultiplexer() { return *operationsProcessor_; }
75  virtual IKaaDataDemultiplexer& getOperationDemultiplexer() { return *operationsProcessor_; }
76  virtual IKaaDataMultiplexer& getBootstrapMultiplexer() { return *bootstrapProcessor_; }
77  virtual IKaaDataDemultiplexer& getBootstrapDemultiplexer() { return *bootstrapProcessor_; }
78 private:
79  void initKaaConfiguration();
80  void initKaaTransport();
81  void initClientKeys();
82 
83  void setDefaultConfiguration();
84 
85 private:
87  IBootstrapManagerPtr bootstrapManager_;
88  boost::scoped_ptr<ProfileManager> profileManager_;
89  boost::scoped_ptr<NotificationManager> notificationManager_;
90  boost::scoped_ptr<EndpointRegistrationManager> registrationManager_;
91 
92  KeyPair clientKeys_;
93  std::string publicKeyHash_;
94 
95  ISchemaProcessorPtr schemaProcessor_;
96  DefaultDeltaManagerPtr deltaManager_;
97  IConfigurationManagerPtr configurationManager_;
98  IConfigurationProcessorPtr configurationProcessor_;
99  ISchemaPersistenceManagerPtr schemaPersistenceManager_;
100  IConfigurationPersistenceManagerPtr configurationPersistenceManager_;
101  boost::scoped_ptr<EventManager> eventManager_;
102  boost::scoped_ptr<EventFamilyFactory> eventFamilyFactory_;
103  boost::scoped_ptr<IKaaChannelManager> channelManager_;
104  boost::scoped_ptr<BootstrapDataProcessor> bootstrapProcessor_;
105  boost::scoped_ptr<OperationsDataProcessor> operationsProcessor_;
106 
107  boost::shared_ptr<DefaultBootstrapChannel> bootstrapChannel_;
108  boost::shared_ptr<DefaultOperationTcpChannel> opsTcpChannel_;
109 
110  boost::scoped_ptr<LogCollector> logCollector_;
111 
112  int options_;
113 };
114 
115 }
116 
117 
118 
119 #endif /* KAACLIENT_HPP_ */
virtual IEndpointRegistrationManager & getEndpointRegistrationManager()
Definition: KaaClient.hpp:68
virtual IProfileManager & getProfileManager()
Definition: KaaClient.hpp:62
virtual IKaaDataDemultiplexer & getBootstrapDemultiplexer()
Definition: KaaClient.hpp:77
virtual IKaaChannelManager & getChannelManager()
Definition: KaaClient.hpp:71
virtual ~KaaClient()
Definition: KaaClient.hpp:56
std::pair< Botan::MemoryVector< boost::uint8_t >, std::string > KeyPair
Definition: KeyUtils.hpp:28
virtual IKaaDataDemultiplexer & getOperationDemultiplexer()
Definition: KaaClient.hpp:75
virtual INotificationManager & getNotificationManager()
Definition: KaaClient.hpp:67
boost::shared_ptr< DefaultDeltaManager > DefaultDeltaManagerPtr
Definition: KaaClient.hpp:47
virtual IDeltaManager & getDeltaManager()
Definition: KaaClient.hpp:65
boost::shared_ptr< IKaaClientStateStorage > IKaaClientStateStoragePtr
virtual IKaaDataMultiplexer & getBootstrapMultiplexer()
Definition: KaaClient.hpp:76
kaa_options_t
Definition: KaaClient.hpp:49
virtual IConfigurationManager & getConfigurationManager()
Definition: KaaClient.hpp:66
boost::shared_ptr< IConfigurationProcessor > IConfigurationProcessorPtr
virtual ILogCollector & getLogCollector()
Definition: KaaClient.hpp:73
boost::shared_ptr< IConfigurationManager > IConfigurationManagerPtr
boost::shared_ptr< ISchemaProcessor > ISchemaProcessorPtr
boost::shared_ptr< ISchemaPersistenceManager > ISchemaPersistenceManagerPtr
virtual IKaaDataMultiplexer & getOperationMultiplexer()
Definition: KaaClient.hpp:74
void init(int options)
boost::shared_ptr< IBootstrapManager > IBootstrapManagerPtr
Definition: KaaClient.hpp:46
virtual IEventListenersResolver & getEventListenersResolver()
Definition: KaaClient.hpp:70
virtual const KeyPair & getClientKeyPair()
Definition: KaaClient.hpp:72
boost::shared_ptr< IConfigurationPersistenceManager > IConfigurationPersistenceManagerPtr
virtual ISchemaPersistenceManager & getSchemaPersistenceManager()
Definition: KaaClient.hpp:63
virtual EventFamilyFactory & getEventFamilyFactory()
Definition: KaaClient.hpp:69
virtual IConfigurationPersistenceManager & getConfigurationPersistenceManager()
Definition: KaaClient.hpp:64