#include #include #include void pr_u8( nb_u8 *u8 ) { if ( !u8 ) { printf("u8: NULL\n"); return; } else { printf("u8: t=0x%x v=0x%x\n", u8->type, u8->val ); } } void pr_u8arr( nb_u8arr *u8arr ) { if (!u8arr) { printf("u8arr: NULL\n"); return ; } else { printf("u8arr: t=0x%x l=0x%x v=0x%x\n", u8arr->type, u8arr->len, u8arr->val ); } } void pr_store( netbyte_store *nb ) { int i; if (!nb) { printf("nb: NULL\n"); return; } printf("nb: s=0x%x c=0x%x\n", nb->size, nb->count ); for (i=0;icount;i++) { printf("\t[%x] -> ",i ); if ( nb->types[i].type == NBT_U8 ) { pr_u8( (nb_u8 *)nb->types[i].nb_val ); } else if ( nb->types[i].type == NBT_U8ARRAY ) { pr_u8arr( (nb_u8arr *)nb->types[i].nb_val ); } else { printf("Unknown\n"); } } } int main() { int er; uint8_t *res; FILE *f; const int STR_SIZE=128; char str[STR_SIZE]; char *n; nb_u8 id; nb_u8arr name; netbyte_store *nb=malloc(sizeof(netbyte_store)); printf("Start test\n"); nb_init( nb ); printf("Your name : "); fflush( stdin ); n = fgets( str, STR_SIZE, stdin ); er = nb_u8_create( &id, 0x11 ); if (er) printf("er create u8: %d\n",er); er = nb_u8arr_create( &name, strlen(n), &str[0] ); if (er) printf("er create u8arr: %d\n",er); er = nb_add_u8( nb, &id ); if (er) printf("er add u8: %d\n",er); er = nb_add_u8arr( nb, &name ); if (er) printf("er add u8arr: %d\n",er); pr_store( nb ); res = nb_create( nb ); f = fopen("test_many.nb","a"); fwrite( res, 1, nb->size , f ); fclose( f ); free(res); nb_free(nb); printf("End test\n"); return 0; }