X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=resource%2Finclude%2FOCApi.h;h=493012aecb18254eb7bbb9086a553fa8502f32e9;hb=37544f38dedd2bc679968ec70da20357608b8504;hp=21d56e71ed6957a786f4bb3aeac6e3c047b532a8;hpb=659142c01b7a3a0dcfd1c84c00c50b48913539c5;p=platform%2Fupstream%2Fiotivity.git diff --git a/resource/include/OCApi.h b/resource/include/OCApi.h index 21d56e7..493012a 100644 --- a/resource/include/OCApi.h +++ b/resource/include/OCApi.h @@ -18,8 +18,8 @@ // //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -#ifndef __INTEL_OCAPI_H_2014_07_10 -#define __INTEL_OCAPI_H_2014_07_10 +#ifndef OC_OCAPI_H_ +#define OC_OCAPI_H_ #include #include @@ -27,6 +27,9 @@ #include #include #include +#if defined(_MSC_VER) +#include +#endif #include "octypes.h" #include "OCHeaderOption.h" @@ -41,10 +44,14 @@ namespace OC class OCResource; class OCResourceRequest; class OCResourceResponse; + class OCDirectPairing; } // namespace OC namespace OC { +#if defined(_MSC_VER) + extern std::ostream& oclog(); +#else typedef boost::iostreams::stream log_target_t; namespace detail @@ -52,7 +59,7 @@ namespace OC /* We'll want to provide some sort of explicit hook for custom logging at some point; until then, this should do nicely (note that since these are lambdas, later a special target could be captured, allowing much flexibility): */ - auto oclog_target = []() -> log_target_t& + inline auto oclog_target = []() -> log_target_t& { static OC::oc_log_stream ols(oc_make_ostream_logger); static log_target_t os(ols); @@ -61,11 +68,11 @@ namespace OC }; } // namespace OC::detail - auto oclog = []() -> boost::iostreams::stream& + inline auto oclog = []() -> boost::iostreams::stream& { return detail::oclog_target(); }; - +#endif } // namespace OC namespace OC @@ -119,7 +126,9 @@ namespace OC HighQos = OC_HIGH_QOS, /** No Quality is defined, let the stack decide. */ - NaQos = OC_NA_QOS + NaQos = OC_NA_QOS, + + LowQosWithTcp = OC_LOW_QOS_WITH_TCP }; /** @@ -139,6 +148,9 @@ namespace OC /** default flags for client. */ OCConnectivityType clientConnectivity; + /** transport type to initialize. */ + OCTransportAdapter transportType; + /** not used. */ std::string ipAddress; @@ -151,31 +163,52 @@ namespace OC /** persistant storage Handler structure (open/read/write/close/unlink). */ OCPersistentStorage *ps; + /** persistant storage Handler structure (open/read/write/close/unlink). */ + OCPersistentStorage *psEnc; + + /** persistant storage Handler structure (open/read/write/close/unlink). */ + OCPersistentStorage *psRescue; + + /** pointer to save key. */ + unsigned char* key; + public: PlatformConfig() : serviceType(ServiceType::InProc), mode(ModeType::Both), serverConnectivity(CT_DEFAULT), clientConnectivity(CT_DEFAULT), + transportType(OC_DEFAULT_ADAPTER), ipAddress("0.0.0.0"), port(0), - QoS(QualityOfService::NaQos), - ps(nullptr) + QoS(QualityOfService::NaQos), + ps(nullptr), + psEnc(nullptr), + psRescue(nullptr), + key(nullptr) {} PlatformConfig(const ServiceType serviceType_, const ModeType mode_, OCConnectivityType serverConnectivity_, OCConnectivityType clientConnectivity_, const QualityOfService QoS_, - OCPersistentStorage *ps_ = nullptr) + OCPersistentStorage *ps_ = nullptr, + OCPersistentStorage *psEnc_ = nullptr, + OCPersistentStorage *psRescue_ = nullptr, + unsigned char *key_ = nullptr) : serviceType(serviceType_), mode(mode_), serverConnectivity(serverConnectivity_), clientConnectivity(clientConnectivity_), + transportType(OC_DEFAULT_ADAPTER), ipAddress(""), port(0), - QoS(QoS_), - ps(ps_) + QoS(QoS_), + ps(ps_), + psEnc(psEnc_), + psRescue(psRescue_), + key(key_) + {} // for backward compatibility PlatformConfig(const ServiceType serviceType_, @@ -183,16 +216,92 @@ namespace OC const std::string& ipAddress_, const uint16_t port_, const QualityOfService QoS_, - OCPersistentStorage *ps_ = nullptr) + OCPersistentStorage *ps_ = nullptr, + OCPersistentStorage *psEnc_ = nullptr, + OCPersistentStorage *psRescue_ = nullptr, + unsigned char *key_ = nullptr) : serviceType(serviceType_), mode(mode_), serverConnectivity(CT_DEFAULT), clientConnectivity(CT_DEFAULT), + transportType(OC_DEFAULT_ADAPTER), ipAddress(ipAddress_), port(port_), + QoS(QoS_), + ps(ps_), + psEnc(psEnc_), + psRescue(psRescue_), + key(key_) + + {} + + PlatformConfig(const ServiceType serviceType_, + const ModeType mode_, + const std::string& ipAddress_, + const uint16_t port_, + const OCTransportAdapter transportType_, + const QualityOfService QoS_, + unsigned char *key_, + OCPersistentStorage *ps_ = nullptr, + OCPersistentStorage *psEnc_ = nullptr, + OCPersistentStorage *psRescue_ = nullptr) + : serviceType(serviceType_), + mode(mode_), + transportType(transportType_), + ipAddress(ipAddress_), + port(port_), + QoS(QoS_), + ps(ps_), + psEnc(psEnc_), + psRescue(psRescue_), + key(key_) + {} + + PlatformConfig(const ServiceType serviceType_, + const ModeType mode_, + OCTransportAdapter transportType_, + const QualityOfService QoS_, + OCPersistentStorage *ps_ = nullptr, + OCPersistentStorage *psEnc_ = nullptr, + OCPersistentStorage *psRescue_ = nullptr, + unsigned char *key_ = nullptr) + : serviceType(serviceType_), + mode(mode_), + serverConnectivity(CT_DEFAULT), + clientConnectivity(CT_DEFAULT), + transportType(transportType_), + ipAddress(""), + port(0), + QoS(QoS_), + ps(ps_), + psEnc(psEnc_), + psRescue(psRescue_), + key(key_) + {} + PlatformConfig(const ServiceType serviceType_, + const ModeType mode_, + OCConnectivityType serverConnectivity_, + OCConnectivityType clientConnectivity_, + OCTransportAdapter transportType_, + const QualityOfService QoS_, + OCPersistentStorage *ps_ = nullptr, + OCPersistentStorage *psEnc_ = nullptr, + OCPersistentStorage *psRescue_ = nullptr, + unsigned char *key_ = nullptr) + : serviceType(serviceType_), + mode(mode_), + serverConnectivity(serverConnectivity_), + clientConnectivity(clientConnectivity_), + transportType(transportType_), + ipAddress(""), + port(0), QoS(QoS_), - ps(ps_) + ps(ps_), + psEnc(psEnc_), + psRescue(psRescue_), + key(key_) {} + }; enum RequestHandlerFlag @@ -206,15 +315,21 @@ namespace OC Observe, ObserveAll }; - // - // Typedef for header option vector - // OCHeaderOption class is in HeaderOption namespace + + // Typedef for list of resource handles. + typedef std::vector ResourceHandles; + + // Typedef for header option vector. + // OCHeaderOption class is in HeaderOption namespace. typedef std::vector HeaderOptions; - // Typedef for query parameter map + // Typedef for query parameter map. typedef std::map QueryParamsMap; - // Typedef for list of observation IDs + // Typedef for query parameter map with Vector + typedef std::map< std::string, std::vector > QueryParamsList; + + // Typedef for list of observation IDs. typedef std::vector ObservationIds; enum class ObserveAction @@ -229,6 +344,10 @@ namespace OC ObserveAction action; // Identifier for observation being registered/unregistered OCObservationId obsId; + + OCConnectivityType connectivityType; + std::string address; + uint16_t port; } ObservationInfo; // const strings for different interfaces @@ -245,9 +364,15 @@ namespace OC // Used in GET, PUT, POST methods on links to other remote resources of a group. const std::string GROUP_INTERFACE = "oic.mi.grp"; + //Typedef for list direct paired devices + typedef std::vector> PairedDevices; typedef std::function)> FindCallback; + typedef std::function FindErrorCallback; + + typedef std::function>)> FindResListCallback; + typedef std::function FindDeviceCallback; typedef std::function FindPlatformCallback; @@ -271,6 +396,16 @@ namespace OC typedef std::function ObserveCallback; + + typedef std::function, OCStackResult)> DirectPairingCallback; + + typedef std::function GetDirectPairedCallback; + + typedef std::function)> MQTopicCallback; +#ifdef TCP_ADAPTER + typedef std::function KeepAliveCallback; +#endif } // namespace OC #endif