print_util.h (1318B)
1 #include "hex.h" 2 #include "lmdb.h" 3 4 static void print_hex(unsigned char* data, size_t size) { 5 size_t i; 6 for (i = 0; i < size; i++) { 7 printf("%02x", data[i]); 8 } 9 } 10 11 static void ndb_print_text_search_key(int bytes_size, struct ndb_text_search_key *key) 12 { 13 printf("K<'%.*s' %" PRIu64 " %" PRIu64 " note_id:%" PRIu64 " bytes:%d>", (int)key->str_len, key->str, 14 key->word_index, 15 key->timestamp, 16 key->note_id, 17 bytes_size 18 ); 19 20 } 21 22 static void print_tag_kv(struct ndb_txn *txn, MDB_val *k, MDB_val *v) 23 { 24 char hex_id[65]; 25 struct ndb_note *note; 26 uint64_t ts; 27 28 ts = *(uint64_t*)((uint8_t*)k->mv_data+(k->mv_size-8)); 29 30 // TODO: p tags, etc 31 if (((const char*)k->mv_data)[0] == 'e' && k->mv_size == (1 + 32 + 8)) { 32 printf("note_tags 'e"); 33 print_hex((uint8_t*)k->mv_data+1, 32); 34 printf("' %" PRIu64, ts); 35 } else { 36 printf("note_tags '%.*s' %" PRIu64, (int)k->mv_size-8, 37 (const char *)k->mv_data, ts); 38 } 39 40 ts = *(uint64_t*)v->mv_data; 41 42 note = ndb_get_note_by_key(txn, ts, NULL); 43 assert(note); 44 hex_encode(ndb_note_id(note), 32, hex_id); 45 printf(" note_key:%" PRIu64 " id:%s\n", ts, hex_id); 46 } 47 48 static void print_hex_stream(FILE *stream, unsigned char* data, size_t size) { 49 size_t i; 50 for (i = 0; i < size; i++) { 51 fprintf(stream, "%02x", data[i]); 52 } 53 } 54 55