StateFS
 All Classes Files Functions Variables Typedefs Enumerations Groups Pages
Classes | Macros | Typedefs | Enumerations | Functions
Provider API

Provider API description. Usage is described here. More...

Classes

struct  statefs_variant
 
struct  statefs_meta
 
struct  statefs_node
 
struct  statefs_branch
 
struct  statefs_slot
 
struct  statefs_property
 
struct  statefs_io
 
struct  statefs_namespace
 
struct  statefs_provider
 
struct  statefs_server
 

Macros

#define STATEFS_INT(v)   { .tag = statefs_variant_int, .i = (v) }
 
#define STATEFS_UINT(v)   { .tag = statefs_variant_uint, .i = (v) }
 
#define STATEFS_REAL(v)   { .tag = statefs_variant_real, .r = (v) }
 
#define STATEFS_BOOL(v)   { .tag = statefs_variant_bool, .b = (v) }
 
#define STATEFS_CSTR(v)   { .tag = statefs_variant_cstr, .s = (v) }
 
#define STATEFS_ATTR_READ   (1)
 
#define STATEFS_ATTR_WRITE   (1 << 1)
 
#define STATEFS_ATTR_DISCRETE   (1 << 2)
 
#define STATEFS_MK_VERSION(major, minor)   (((unsigned)major << (sizeof(unsigned) * 4)) | ((unsigned)minor))
 
#define STATEFS_GET_VERSION(version, major, minor)
 
#define STATEFS_CURRENT_VERSION   STATEFS_MK_VERSION(3, 0)
 

Typedefs

typedef unsigned long statefs_size_t
 
typedef long statefs_ssize_t
 
typedef unsigned long statefs_off_t
 
typedef intptr_t statefs_handle_t
 
typedef struct statefs_provider *(* statefs_provider_fn )(struct statefs_server *)
 

Enumerations

enum  statefs_variant_tag {
  statefs_variant_int, statefs_variant_uint, statefs_variant_bool, statefs_variant_real,
  statefs_variant_cstr, statefs_variant_tags_end
}
 
enum  statefs_node_type { statefs_node_prop = 1, statefs_node_ns = 2, statefs_node_root = statefs_node_ns | 4 }
 
enum  statefs_event { statefs_event_reload, statefs_events_end }
 

Functions

struct statefs_providerstatefs_provider_get (struct statefs_server *)
 
static char const * statefs_provider_accessor ()
 
static bool statefs_is_version_compatible (unsigned own_version, unsigned lib_ver)
 
static bool statefs_is_compatible (unsigned own_version, struct statefs_provider *provider)
 

Detailed Description

Provider API description. Usage is described here.

Macro Definition Documentation

#define STATEFS_ATTR_DISCRETE   (1 << 2)

discrete, statefs_slot can be connected using statefs_io.connect

#define STATEFS_ATTR_READ   (1)

readable

#define STATEFS_ATTR_WRITE   (1 << 1)

writeable

#define STATEFS_GET_VERSION (   version,
  major,
  minor 
)
Value:
do { \
major = (version) >> (sizeof(unsigned) * 4); \
minor = (version) & ((unsigned)-1 >> (sizeof(unsigned) * 4)); \
} while (0)

Typedef Documentation

typedef struct statefs_provider*(* statefs_provider_fn)(struct statefs_server *)
read

Signature of statefs_provider_get function must be defined by provider

Enumeration Type Documentation

Tree node type

Function Documentation

static bool statefs_is_compatible ( unsigned  own_version,
struct statefs_provider provider 
)
inlinestatic

used by server to check compatibility with provider version

Here is the caller graph for this function:

struct statefs_provider* statefs_provider_get ( struct statefs_server )
read

Function defined in provider library to access the root node