implementation of mavl kv (not working)

FossilOrigin-Name: a20911b2dd992b0d382428c232b804b76e625985e574722931aa2fb163bedeaa
This commit is contained in:
7u83@mail.ru
2018-03-05 19:39:15 +00:00
parent fdbfe8af32
commit af03e1c601
25 changed files with 495 additions and 343 deletions

View File

@ -94,10 +94,52 @@ extern struct cw_Mod * cw_get_mod_ac(const char *name);
extern void test_sets();
#include "cw/file.h"
#include "cw/cw_types.h"
void cw_type_delete(mavldata_t *data){
struct cw_Type * type = data->kv.priv;
printf("Delete elem of type: %s\n", type->name);
if (type->del)
type->del(data);
}
int main(int argc, char *argv[])
{
mavl_t kv;
mavliter_t kviter;
uint8_t bytes[] = { 99,4,5,7 };
kv = mavl_create(mavl_cmp_kv,cw_type_delete);
mavldata_t data, *result;
data.kv.key="wtp_board_data";
result = cw_type_byte.get(&data,bytes,1);
mavl_add(kv,result);
data.kv.key="wtp_next_data";
result = cw_type_byte.get(&data,bytes+1,1);
mavl_add(kv,result);
mavliter_init(&kviter,kv);
mavliter_foreach(&kviter){
char value[500];
mavldata_t * data;
data = mavliter_get(&kviter);
struct cw_Type * type = data->kv.priv;
type->to_str(data,value,0);
printf("Got %s (%s): %s\n",data->kv.key,type->name, value);
}
mavl_destroy(kv);
exit(0);
/* cw_log_init();
cw_log(LOG_ERROR,"Hello Debug World222");
exit(0);
@ -115,10 +157,24 @@ int main(int argc, char *argv[])
/* char data[100];
mavl_t im;
mavldata_t val,itt;
mavldata_t * val, * val2,itt, itt2, * result, search ;
mavliter_t myit;
im = mavl_create(mavl_cmp_dword,NULL);
itt.dword = 7;
itt2.dword = 7;
val = mavl_add(im,&itt);
val2 = mavl_add(im,&itt2);
search.dword = 7;
result = mavl_get(im,&search);
printf("Result: (%p, %p) (%p, %p) (%p, %p)\n",val, &itt, val2, &itt2, result, &search);
exit(0);
for (itt.dword=100; itt.dword>0; itt.dword--){
printf("Copunting: %d\n",itt.dword);
@ -133,12 +189,12 @@ int main(int argc, char *argv[])
}
mavl_destroy(im);
*/
int rc = 0;
/* parse arguments */

View File

@ -96,6 +96,8 @@ static void wtpman_run_discovery(void *arg)
wtpman->conn->outgoing = mbag_create();
wtpman->conn->incomming = mbag_create();
wtpman->conn->remote_cfg = mavl_create(mavl_cmp_kv,NULL);
while (!cw_timer_timeout(timer)
&& wtpman->conn->capwap_state == CAPWAP_STATE_DISCOVERY) {