Soletta™ Framework
Framework for making IoT devices

Full online documentation | C API Index
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Typedefs | Enumerations | Functions
sol-oic.h File Reference
#include <sol-common-buildopts.h>
#include <sol-vector.h>
#include <sol-str-slice.h>
#include "sol-coap.h"

Go to the source code of this file.

Data Structures

struct  sol_oic_device_info
 Structure containing all fields that are retrieved by sol_oic_client_get_server_info() and sol_oic_client_get_server_info_by_addr(). More...
 
struct  sol_oic_map_reader
 Handler for an OIC packet map reader. More...
 
struct  sol_oic_platform_info
 Structure containing all fields that are retrieved by sol_oic_client_get_platform_info() and sol_oic_client_get_platform_info_by_addr(). More...
 
struct  sol_oic_repr_field
 Structure to keep a single oic-map's field. More...
 

Macros

#define SOL_OIC_DEVICE_INFO_API_VERSION   (1)
 
#define SOL_OIC_MAP_LOOP(map_, current_, iterator_, end_reason_)
 Macro to be used to loop through all elements from a sol_oic_map_reader. More...
 
#define SOL_OIC_PLATFORM_INFO_API_VERSION   (1)
 
#define SOL_OIC_REPR_BOOL(key_, value_)   SOL_OIC_REPR_FIELD(key_, SOL_OIC_REPR_TYPE_BOOL, .v_boolean = !!(value_))
 Helper macro to create a boolean sol_oic_repr_field. More...
 
#define SOL_OIC_REPR_BYTE_STRING(key_, value_, len_)   SOL_OIC_REPR_FIELD(key_, SOL_OIC_REPR_TYPE_BYTE_STRING, .v_slice = SOL_STR_SLICE_STR((value_), (len_)))
 Helper macro to create a byte string sol_oic_repr_field. More...
 
#define SOL_OIC_REPR_DOUBLE(key_, value_)   SOL_OIC_REPR_FIELD(key_, SOL_OIC_REPR_TYPE_DOUBLE, .v_double = (value_))
 Helper macro to create a double-precision float sol_oic_repr_field. More...
 
#define SOL_OIC_REPR_FIELD(key_, type_,...)   (struct sol_oic_repr_field){.type = (type_), .key = (key_), { __VA_ARGS__ } }
 Helper macro to create a sol_oic_repr_field. More...
 
#define SOL_OIC_REPR_FLOAT(key_, value_)   SOL_OIC_REPR_FIELD(key_, SOL_OIC_REPR_TYPE_FLOAT, .v_float = (value_))
 Helper macro to create a single-precision float number sol_oic_repr_field. More...
 
#define SOL_OIC_REPR_HALF_FLOAT(key_, value_)   SOL_OIC_REPR_FIELD(key_, SOL_OIC_REPR_TYPE_HALF_FLOAT, .v_voidptr = (void *)(value_))
 Helper macro to create a half-precision float number sol_oic_repr_field. More...
 
#define SOL_OIC_REPR_INT(key_, value_)   SOL_OIC_REPR_FIELD(key_, SOL_OIC_REPR_TYPE_INT, .v_int = (value_))
 Helper macro to create a signed integer sol_oic_repr_field. More...
 
#define SOL_OIC_REPR_SIMPLE(key_, value_)   SOL_OIC_REPR_FIELD(key_, SOL_OIC_REPR_TYPE_SIMPLE, .v_simple = (value_))
 Helper macro to create a simple integer sol_oic_repr_field. More...
 
#define SOL_OIC_REPR_TEXT_STRING(key_, value_, len_)   SOL_OIC_REPR_FIELD(key_, SOL_OIC_REPR_TYPE_TEXT_STRING, .v_slice = SOL_STR_SLICE_STR((value_), (len_)))
 Helper macro to create a text string sol_oic_repr_field. More...
 
#define SOL_OIC_REPR_UINT(key_, value_)   SOL_OIC_REPR_FIELD(key_, SOL_OIC_REPR_TYPE_UINT, .v_uint = (value_))
 Helper macro to create an unsigned integer sol_oic_repr_field. More...
 

Typedefs

typedef struct sol_oic_device_info sol_oic_device_info
 Structure containing all fields that are retrieved by sol_oic_client_get_server_info() and sol_oic_client_get_server_info_by_addr(). More...
 
typedef struct sol_oic_map_reader sol_oic_map_reader
 Handler for an OIC packet map reader. More...
 
typedef struct sol_oic_map_writer sol_oic_map_writer
 Opaque handler for an OIC packet map writer. More...
 
typedef struct
sol_oic_platform_info 
sol_oic_platform_info
 Structure containing all fields that are retrieved by sol_oic_client_get_platform_info() and sol_oic_client_get_platform_info_by_addr(). More...
 
typedef struct sol_oic_repr_field sol_oic_repr_field
 Structure to keep a single oic-map's field. More...
 
typedef struct sol_oic_request sol_oic_request
 Information about a client request. More...
 
typedef struct sol_oic_response sol_oic_response
 Information about a server response. More...
 

Enumerations

enum  sol_oic_map_loop_reason { SOL_OIC_MAP_LOOP_OK = 0, SOL_OIC_MAP_LOOP_ERROR }
 Possible reasons a SOL_OIC_MAP_LOOP was terminated. More...
 
enum  sol_oic_map_type { SOL_OIC_MAP_NO_CONTENT, SOL_OIC_MAP_CONTENT }
 Used in sol_oic_map_writer to state if the map has a content or not. More...
 
enum  sol_oic_repr_type {
  SOL_OIC_REPR_TYPE_UINT, SOL_OIC_REPR_TYPE_INT, SOL_OIC_REPR_TYPE_SIMPLE, SOL_OIC_REPR_TYPE_TEXT_STRING,
  SOL_OIC_REPR_TYPE_BYTE_STRING, SOL_OIC_REPR_TYPE_HALF_FLOAT, SOL_OIC_REPR_TYPE_FLOAT, SOL_OIC_REPR_TYPE_DOUBLE,
  SOL_OIC_REPR_TYPE_BOOL, SOL_OIC_REPR_TYPE_UNSUPPORTED
}
 field type of sol_oic_repr_field structure. More...
 
enum  sol_oic_resource_flag {
  SOL_OIC_FLAG_NONE = 0, SOL_OIC_FLAG_DISCOVERABLE = 1 << 0, SOL_OIC_FLAG_OBSERVABLE = 1 << 1, SOL_OIC_FLAG_ACTIVE = 1 << 2,
  SOL_OIC_FLAG_SLOW = 1 << 3, SOL_OIC_FLAG_SECURE = 1 << 4, SOL_OIC_FLAG_DISCOVERABLE_EXPLICIT = 1 << 5
}
 Flags to set when adding a new resource to a server. More...
 

Functions

int sol_oic_map_append (struct sol_oic_map_writer *oic_map_writer, struct sol_oic_repr_field *repr)
 Append an element to oic_map_writer. More...
 
int sol_oic_map_get_type (struct sol_oic_map_writer *oic_map_writer, enum sol_oic_map_type *type)
 get current oic_map_writer type. More...
 
enum sol_oic_map_loop_reason sol_oic_map_loop_init (const struct sol_oic_map_reader *map, struct sol_oic_map_reader *iterator, struct sol_oic_repr_field *repr)
 Initialize an iterator to loop through elements of map. More...
 
bool sol_oic_map_loop_next (struct sol_oic_repr_field *repr, struct sol_oic_map_reader *iterator, enum sol_oic_map_loop_reason *reason)
 Get the next element from iterator. More...
 
int sol_oic_map_set_type (struct sol_oic_map_writer *oic_map_writer, enum sol_oic_map_type type)
 set current oic_map_writer type. More...
 
static void sol_oic_payload_debug (struct sol_coap_packet *pkt)
 Print the decoded cbor content of pkt. More...
 
void sol_oic_repr_field_clear (struct sol_oic_repr_field *field)
 Release memory from field. More...
 

Macro Definition Documentation

#define SOL_OIC_DEVICE_INFO_API_VERSION   (1)
#define SOL_OIC_PLATFORM_INFO_API_VERSION   (1)