17 #ifndef EVENTMANAGER_HPP_ 
   18 #define EVENTMANAGER_HPP_ 
   23 #include <boost/cstdint.hpp> 
   24 #include <boost/shared_ptr.hpp> 
   25 #include <boost/scoped_ptr.hpp> 
   26 #include <boost/thread/mutex.hpp> 
   28 #include "kaa/gen/EndpointGen.hpp" 
   45         : eventTransport_(nullptr)
 
   48         eventSequenceNumber_ = status_->getEventSequenceNumber();
 
   54                             , 
const std::vector<boost::uint8_t>& data
 
   55                             , 
const std::string& target);
 
   63         std::map<std::string, std::list<std::string> > result;
 
   64         for (
const auto& idToFqnList : eventListenersRequests_) {
 
   65             result.insert(std::make_pair(idToFqnList.first, idToFqnList.second->eventFQNs_));
 
   73         eventTransport_ = transport;
 
   74         if (eventTransport_ != 
nullptr && (!pendingEvents_.empty() || !eventListenersRequests_.empty())) {
 
   75             eventTransport_->
sync();
 
   79     struct EventListenersInfo {
 
   80         std::list<std::string> eventFQNs_;
 
   84     void onEventFromServer(
const std::string& eventClassFQN
 
   85                          , 
const std::vector<boost::uint8_t>& data
 
   86                          , 
const std::string& source);
 
   89     void generateUniqueRequestId(std::string& requstId);
 
   91     typedef boost::mutex                    mutex_type;
 
   92     typedef boost::unique_lock<mutex_type>  lock_type;
 
   94     std::set<IEventFamily*>   eventFamilies_;
 
   95     std::list<Event>          pendingEvents_;
 
   96     mutex_type                pendingEventsGuard_;
 
   98     boost::int32_t            eventSequenceNumber_;
 
   99     mutex_type                sequenceGuard_;
 
  101     EventTransport *          eventTransport_;
 
  104     std::map<std::string, boost::shared_ptr<EventListenersInfo> > eventListenersRequests_;
 
virtual void setTransport(EventTransport *transport)
 
virtual std::map< std::string, std::list< std::string > > getPendingListenerRequests()
 
virtual void produceEvent(const std::string &fqn, const std::vector< boost::uint8_t > &data, const std::string &target)
 
boost::shared_ptr< IKaaClientStateStorage > IKaaClientStateStoragePtr
 
virtual std::string findEventListeners(const std::list< std::string > &eventFQNs, IFetchEventListeners *listener)
 
EventManager(IKaaClientStateStoragePtr status)
 
virtual void registerEventFamily(IEventFamily *eventFamily)
 
virtual void onEventsReceived(const EventSyncResponse::events_t &events)
 
virtual std::list< Event > getPendingEvents()
 
virtual void onEventListenersReceived(const EventSyncResponse::eventListenersResponses_t &listeners)