AM263Px MCU+ SDK  10.01.00
yang_db_runtime.h File Reference

Go to the source code of this file.

Typedefs

typedef struct yang_db_runtime_data yang_db_runtime_dataq_t
 

Functions

yang_db_runtime_dataq_tyang_db_runtime_init (uc_dbald *dbald, uc_hwald *hwald)
 
void yang_db_runtime_close (yang_db_runtime_dataq_t *ydrd)
 
int yang_db_runtime_readfile (yang_db_runtime_dataq_t *ydrd, const char *fname, uc_notice_data_t *ucntd)
 read from a config file, and set data. More...
 
int yang_db_runtime_get_vtype (uc_dbald *dbald, uint8_t *aps)
 get value type of 'aps' leaf More...
 
int yang_db_runtime_put_oneline (yang_db_runtime_dataq_t *ydrd, char *kstr, char *vstr, uint8_t onhw)
 write one node db data by a string line More...
 
int yang_db_runtime_askaction (yang_db_runtime_dataq_t *ydrd, uc_notice_data_t *ucntd)
 ask to call 'uc_nc_askaction_push' More...
 
uc_range * yang_db_runtime_range_fromline (yang_db_runtime_dataq_t *ydrd, const char *line, void **kvs, uint8_t *kss, bool status)
 get a range from line More...
 
int yang_db_runtime_get_oneline (yang_db_runtime_dataq_t *ydrd, const char *line, void **value, uint32_t *vsize)
 get one node db data by a string line More...
 
int yang_db_runtime_notice_register (yang_db_runtime_dataq_t *ydrd, uc_notice_data_t *ucntd, const char *line, char *semname, UC_NOTICE_SIG_T **sem)
 
uint8_t yang_db_runtime_getvknum (uc_dbald *dbald, uint8_t *aps)
 
int yang_db_runtime_getvkvtype (uc_dbald *dbald, uint8_t *aps, uint8_t vkindex, uint8_t *vkey, uint8_t *vtype)
 
int yang_db_runtime_getvkstr (uc_dbald *dbald, uint8_t *aps, uint8_t vkindex, char **rstr)
 
int yang_db_runtime_waititem (yang_db_runtime_dataq_t *ydrd, const char *witem, void *waitv, uint32_t wvsize, int tout_ms)
 wait witem, if waitv!=NULL wait unitl the value matches. if waitv==NULL wait appearance of witem. More...
 
int yang_db_runtime_apkv2keyvkstr (uc_dbald *dbald, uint8_t *aps, kvs_t *kvs, uint8_t *kss, char **rstr)
 'key node string' and 'value key node string' of (aps,kvs,kss) More...
 
int yang_db_runtime_getkeyvkstr (uc_dbald *dbald, void *key, uint32_t ksize, char **rstr)
 'key node string' and 'value key node string' of key More...
 
int yang_db_runtime_proc_nodestring (yang_db_runtime_dataq_t *ydrd, bool reset, char *kstr, char *vstr)
 
int yang_db_runtime_state_keyvkstr (yang_db_runtime_dataq_t *ydrd, char **rstr)
 call yang_db_runtime_getkeyvkstr with the internal ydrd state More...
 
const char * convxml2conf_getconf (yang_db_runtime_dataq_t *ydrd, const char *ifname, const char *ofname)
 convert xml format config file to Excelfore format config file More...
 

Typedef Documentation

◆ yang_db_runtime_dataq_t

typedef struct yang_db_runtime_data yang_db_runtime_dataq_t

Function Documentation

◆ yang_db_runtime_init()

yang_db_runtime_dataq_t* yang_db_runtime_init ( uc_dbald *  dbald,
uc_hwald *  hwald 
)

◆ yang_db_runtime_close()

void yang_db_runtime_close ( yang_db_runtime_dataq_t ydrd)

◆ yang_db_runtime_readfile()

int yang_db_runtime_readfile ( yang_db_runtime_dataq_t ydrd,
const char *  fname,
uc_notice_data_t *  ucntd 
)

read from a config file, and set data.

Parameters
ydrdyang_db_runtime_dataq_t
fnameconfig file name
ucntduc_notice handle to ask an action to uniconf. if NULL no action is pushed.
Returns
-1:error, 0:success

◆ yang_db_runtime_get_vtype()

int yang_db_runtime_get_vtype ( uc_dbald *  dbald,
uint8_t *  aps 
)

get value type of 'aps' leaf

Returns
>=0:vtype, -1:error

◆ yang_db_runtime_put_oneline()

int yang_db_runtime_put_oneline ( yang_db_runtime_dataq_t ydrd,
char *  kstr,
char *  vstr,
uint8_t  onhw 
)

write one node db data by a string line

Parameters
ydrdyang_db_runtime_dataq_t
kstrkey string
vstrvalue string
onhwaction on hardware
Returns
-1:error, 0:success

◆ yang_db_runtime_askaction()

int yang_db_runtime_askaction ( yang_db_runtime_dataq_t ydrd,
uc_notice_data_t *  ucntd 
)

ask to call 'uc_nc_askaction_push'

Parameters
ydrdyang_db_runtime_dataq_t
ucntduc_notice_data_t
Returns
-1:error, 0:success
Note
ydrd->aps,kvs,kss must be set already to call this function.

◆ yang_db_runtime_range_fromline()

uc_range* yang_db_runtime_range_fromline ( yang_db_runtime_dataq_t ydrd,
const char *  line,
void **  kvs,
uint8_t *  kss,
bool  status 
)

get a range from line

Parameters
ydrdyang_db_runtime_dataq_t
linekey string
kvsreturn value keys, it must have MAX_KV_DEPTH+1 of void pointer space
kssreturn value key sizes, it must have MAX_KV_DEPTH of uint8_t space
statustrue:get range from status('ro') area, false: get from config('rw') area
Returns
ragne object:success, NULL:error
Note
returned ranage object must be released by calling uc_get_range_release

◆ yang_db_runtime_get_oneline()

int yang_db_runtime_get_oneline ( yang_db_runtime_dataq_t ydrd,
const char *  line,
void **  value,
uint32_t *  vsize 
)

get one node db data by a string line

Parameters
ydrdyang_db_runtime_dataq_t
linekey string
valuevalue pointer to return read value. it is reallocated inside the function. it must be NULL or allocated address.
vsizevalue size
Returns
-1:error, vtype>=0:success

◆ yang_db_runtime_notice_register()

int yang_db_runtime_notice_register ( yang_db_runtime_dataq_t ydrd,
uc_notice_data_t *  ucntd,
const char *  line,
char *  semname,
UC_NOTICE_SIG_T **  sem 
)

◆ yang_db_runtime_getvknum()

uint8_t yang_db_runtime_getvknum ( uc_dbald *  dbald,
uint8_t *  aps 
)
Returns
number of value keys on aps node.

◆ yang_db_runtime_getvkvtype()

int yang_db_runtime_getvkvtype ( uc_dbald *  dbald,
uint8_t *  aps,
uint8_t  vkindex,
uint8_t *  vkey,
uint8_t *  vtype 
)
Returns
vtype of vkindex's key on aps node. return -1: error return 0: vkey, vtype(yang_vtype_enum_t) is set

◆ yang_db_runtime_getvkstr()

int yang_db_runtime_getvkstr ( uc_dbald *  dbald,
uint8_t *  aps,
uint8_t  vkindex,
char **  rstr 
)
Returns
value key node string of vkindex's key on aps node. return -1: error return 0: the result str in '*rst', the caller must call UB_SD_RELMEM to release.

◆ yang_db_runtime_waititem()

int yang_db_runtime_waititem ( yang_db_runtime_dataq_t ydrd,
const char *  witem,
void *  waitv,
uint32_t  wvsize,
int  tout_ms 
)

wait witem, if waitv!=NULL wait unitl the value matches. if waitv==NULL wait appearance of witem.

Parameters
ydrdyang_db_runtime_dataq_t
witemwait item
waitvwait value
wvsizewait value size
tout_mswait timeout (ms)
Returns
return 0:got the waitv, 1:timed out, -1:error

◆ yang_db_runtime_apkv2keyvkstr()

int yang_db_runtime_apkv2keyvkstr ( uc_dbald *  dbald,
uint8_t *  aps,
kvs_t *  kvs,
uint8_t *  kss,
char **  rstr 
)

'key node string' and 'value key node string' of (aps,kvs,kss)

Parameters
dbalduc_dbald
apsnode keys, must be terminated with 255
kvsvalue keys
ksssize of value keys
rstrdata out
Returns
-1: error, 0: the result str in '*rst', the caller must call UB_SD_RELMEM to release.

◆ yang_db_runtime_getkeyvkstr()

int yang_db_runtime_getkeyvkstr ( uc_dbald *  dbald,
void *  key,
uint32_t  ksize,
char **  rstr 
)

'key node string' and 'value key node string' of key

Returns
-1: error, 0: the result str in '*rst', the caller must call UB_SD_RELMEM to release.

◆ yang_db_runtime_proc_nodestring()

int yang_db_runtime_proc_nodestring ( yang_db_runtime_dataq_t ydrd,
bool  reset,
char *  kstr,
char *  vstr 
)
Returns
N>=0:set node and need N value keys, -1:set one value key, -2:pass leaf, -3:error
Parameters
ydrdyang_db_runtime_dataq_t
resetreset ydrd->api to start over
kstrkey stting
vstrvalue string, if this is NULL, kstr should be node

◆ yang_db_runtime_state_keyvkstr()

int yang_db_runtime_state_keyvkstr ( yang_db_runtime_dataq_t ydrd,
char **  rstr 
)

call yang_db_runtime_getkeyvkstr with the internal ydrd state

Returns
0: the result str in '*rst', the caller must call UB_SD_RELMEM to release.

◆ convxml2conf_getconf()

const char* convxml2conf_getconf ( yang_db_runtime_dataq_t ydrd,
const char *  ifname,
const char *  ofname 
)

convert xml format config file to Excelfore format config file

Parameters
ydrdyang_db_runtime_dataq_t
ifnameinput xml format filename
ofnameoutput Excelfore format filename. if NULL, use a default temp file
Returns
'converted filename': success, NULL:fail