implementation of mavl kv (not working)
FossilOrigin-Name: a20911b2dd992b0d382428c232b804b76e625985e574722931aa2fb163bedeaa
This commit is contained in:
		@ -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 */
 | 
			
		||||
 | 
			
		||||
@ -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) {
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user