4 * Created on: May 20, 2015
8 #ifndef RESOURCEBROKER_H_
9 #define RESOURCEBROKER_H_
21 #include <condition_variable>
29 #include "PresenceInfo.h"
31 #define CACHE_TAG PCF("BROKER")
34 typedef std::function<OCStackResult(PrimitiveResource * resource)> DiscoverCB;
35 enum class BROKER_STATE
42 class ResourceBroker {
44 ResourceBroker * getInstance();
46 OCStackResult discoverResource(PrimitiveResource & pResource, DiscoverCB cb);
47 OCStackResult discoverResource(const std::string uri, const std::string address, DiscoverCB cb);
49 OCStackResult hostResource(PrimitiveResource & pResource, BrokerCB cb);
50 OCStackResult hostResource(
51 const std::string Uri, const std::string address, BrokerCB cb);
53 OCStackResult cancelHostResource(PrimitiveResource & pResource);
54 OCStackResult cancelHostResource(
55 const std::string uri, const std::string address);
57 OCStackResult getResourceState(PrimitiveResource & pResource);
58 OCStackResult getResourceState(
59 const std::string address, const std::string uri);
64 bool isPrimitiveResource(PrimitiveResource& pResource, BrokerCB cb);
65 static ResourceBroker * s_instance;
66 static std::mutex s_mutexForCreation;
67 static std::list< PresenceInfo * > s_presenceInfo;
70 #endif /* RESOURCEBROKER_H_ */