replace : iotivity -> iotivity-sec
[platform/upstream/iotivity.git] / resource / csdk / connectivity / api / cacommon.h
index 1f31730..fc47ed1 100755 (executable)
 #include <stdlib.h>
 #include <stdbool.h>
 
+#ifdef __TIZENRT__
+#include <poll.h>
+#else
 #ifdef HAVE_SYS_POLL_H
 #include <sys/poll.h>
 #endif
+#endif
 
 #ifdef HAVE_WINSOCK2_H
 #include <winsock2.h>
@@ -53,6 +57,15 @@ extern "C"
 #endif
 
 /**
+ * TAG of Analyzer log.
+ */
+#define ANALYZER_TAG       "OIC_CA_ANALYZER_071801"
+#define BLE_CLIENT_TAG     "OIC_CA_LE_CLIENT_0718"
+#define BLE_SERVER_MCD_TAG "OIC_CA_LE_SER_MC_0718"
+#define IP_SERVER_TAG      "OIC_CA_IP_SERVER_0718"
+#define TCP_SERVER_TAG     "OIC_CA_TCP_SERVER_0718"
+
+/**
  * IP address Length.
  */
 #define CA_IPADDR_SIZE 16
@@ -70,7 +83,7 @@ extern "C"
 /**
  * Max header options data length.
  */
-#ifdef ARDUINO
+#if defined(ARDUINO) || defined(__TIZENRT__)
 #define CA_MAX_HEADER_OPTION_DATA_LENGTH 20
 #else
 #define CA_MAX_HEADER_OPTION_DATA_LENGTH 1024
@@ -106,7 +119,12 @@ extern "C"
 /**
  *Maximum length of the remoteEndpoint identity.
  */
-#define CA_MAX_ENDPOINT_IDENTITY_LEN   (32)
+#define CA_MAX_ENDPOINT_IDENTITY_LEN  CA_MAX_IDENTITY_SIZE
+
+/**
+ * Max identity size.
+ */
+#define CA_MAX_IDENTITY_SIZE (37)
 
 /**
  * option types - the highest option number 63.
@@ -210,6 +228,17 @@ typedef enum
     CA_SCOPE_GLOBAL    = 0xE, // IPv6 Global scope
 } CATransportFlags_t;
 
+typedef enum
+{
+    CA_DEFAULT_BT_FLAGS = 0,
+    // flags for BLE transport
+    CA_LE_ADV_DISABLE   = 0x1,   // disable BLE advertisement.
+    CA_LE_ADV_ENABLE    = 0x2,   // enable BLE advertisement.
+    CA_LE_SERVER_DISABLE = (1 << 4),   // disable gatt server.
+    // flags for EDR transport
+    CA_EDR_SERVER_DISABLE = (1 << 7)   // disable rfcomm server.
+} CATransportBTFlags_t;
+
 #define CA_IPFAMILY_MASK (CA_IPV6|CA_IPV4)
 #define CA_SCOPE_MASK 0xf     // mask scope bits above
 
@@ -280,6 +309,7 @@ typedef struct
     uint16_t                port;       // for IP
     char                    addr[MAX_ADDR_STR_SIZE_CA]; // address for all
     uint32_t                ifindex;    // usually zero for default interface
+    char                    remoteId[CA_MAX_IDENTITY_SIZE]; // device ID of remote device
 #if defined (ROUTING_GATEWAY) || defined (ROUTING_EP)
     char                    routeData[MAX_ADDR_STR_SIZE_CA]; /**< GatewayId:ClientId of
                                                                     destination. **/
@@ -345,7 +375,9 @@ typedef enum
     CA_REQUEST_ENTITY_INCOMPLETE = 408,     /**< Request Entity Incomplete */
     CA_REQUEST_ENTITY_TOO_LARGE = 413,      /**< Request Entity Too Large */
     CA_INTERNAL_SERVER_ERROR = 500,         /**< Internal Server Error */
-    CA_BAD_GATEWAY = 502,
+    CA_NOT_IMPLEMENTED = 501,               /**< Not Implenented */
+    CA_BAD_GATEWAY = 502,                   /**< Bad Gateway */
+    CA_SERVICE_UNAVAILABLE = 503,           /**< Server Unavailable */
     CA_RETRANSMIT_TIMEOUT = 504,            /**< Retransmit timeout */
     CA_PROXY_NOT_SUPPORTED = 505            /**< Proxy not enabled to service a request */
     /* Response status code - END HERE */
@@ -361,9 +393,17 @@ typedef enum
     CA_REQUEST_DATA = 1,
     CA_RESPONSE_DATA,
     CA_ERROR_DATA,
-    CA_RESPONSE_FOR_RES
+    CA_RESPONSE_FOR_RES,
+    CA_NETWORK_COMMAND
 } CADataType_t;
 
+typedef enum
+{
+    CA_DISCONNECTED = 0,
+    CA_CONNECTED,
+    CA_REQ_DISCONNECT
+} CAConnectEvent_t;
+
 /**
  * Transport Protocol IDs for additional options.
  */
@@ -439,6 +479,7 @@ typedef struct
     CAURI_t resourceUri;        /**< Resource URI information **/
     CARemoteId_t identity;      /**< endpoint identity */
     CADataType_t dataType;      /**< data type */
+    CAConnectEvent_t event;     /**< network request message / event type */
 } CAInfo_t;
 
 /**
@@ -559,8 +600,10 @@ typedef struct
 #if defined(_WIN32)
         WSAEVENT shutdownEvent;     /**< Event used to signal threads to stop */
 #else
+#ifndef __TIZENRT__
         int shutdownFds[2];         /**< fds used to signal threads to stop */
 #endif
+#endif
         int selectTimeout;          /**< in seconds */
         int maxfd;                  /**< highest fd (for select) */
         bool started;               /**< the IP adapter has started */
@@ -599,7 +642,9 @@ typedef struct
         void *svrlist;          /**< unicast IPv4 TCP server information*/
         int selectTimeout;      /**< in seconds */
         int listenBacklog;      /**< backlog counts*/
+#ifndef __TIZENRT__
         int shutdownFds[2];     /**< shutdown pipe */
+#endif
         int connectionFds[2];   /**< connection pipe */
         int maxfd;              /**< highest fd (for select) */
         bool started;           /**< the TCP adapter has started */
@@ -608,10 +653,17 @@ typedef struct
         bool ipv6tcpenabled;    /**< IPv6 TCP enabled by OCInit flags */
     } tcp;
 #endif
+    CATransportBTFlags_t bleFlags;
 } CAGlobals_t;
 
 extern CAGlobals_t caglobals;
 
+typedef enum
+{
+    CA_LOG_LEVEL_ALL = 1,             // all logs.
+    CA_LOG_LEVEL_INFO,                // debug level is disabled
+} CAUtilLogLevel_t;
+
 /**
  * Callback function type for request delivery.
  * @param[out]   object       Endpoint object from which the request is received.