JunkBox_Lib  1.10.2
llsd_tool.h
Go to the documentation of this file.
1 #ifndef __JBXL_LLSD_TOOL_H_
2 #define __JBXL_LLSD_TOOL_H_
3 
12 #include "xtools.h"
13 #include "txml.h"
14 #include "jbxl_state.h"
15 
16 #ifndef DISABLE_ZLIB
17  #include "gz_tool.h"
18 #endif
19 
20 
21 // llsd
22 #define LLSD_MAKER_UNDEF '!'
23 #define LLSD_MAKER_TRUE '1'
24 #define LLSD_MAKER_FALSE '0'
25 #define LLSD_MAKER_INT 'i' // 4Byte, need ntohl()
26 #define LLSD_MAKER_REAL 'r' // 8Byte, need ntohull()
27 #define LLSD_MAKER_UUID 'u' // 16Byte
28 #define LLSD_MAKER_BIN 'b' // + ntohl(binary.length) + binary
29 #define LLSD_MAKER_STR 's' // + ntohl(string.length) + string
30 #define LLSD_MAKER_URI 'l' // + ntohl(uri.length) + uri
31 #define LLSD_MAKER_KEY 'k' // + ntohl(key.length) + string
32 #define LLSD_MAKER_DATE 'd' // + ntohull(seconds_since_epoch)
33 #define LLSD_MAKER_ARRAY '[' // '[' + ntohl(element.number) + (child0, child1, ...) + ']'
34 #define LLSD_MAKER_ARRAY_END ']' //
35 #define LLSD_MAKER_MAP '{' // '{' + htonl(element.number) + ((key0, value0), (key1, value1), ...)+ '}'
36 #define LLSD_MAKER_MAP_END '}' //
37 
38 
41 int llsd_bin_get_int (uByte** ptr);
42 double llsd_bin_get_real(uByte** ptr);
45 unsigned long long int llsd_bin_get_date(uByte** ptr); // 64bit
46 
47 #define llsd_bin_get_key(p) llsd_bin_get_str((p))
48 #define llsd_bin_get_uri(p) llsd_bin_get_str((p))
49 #define llsd_bin_get_map(p) llsd_bin_get_int((p))
50 #define llsd_bin_get_array(p) llsd_bin_get_int((p))
51 
52 int llsd_bin_get_length(uByte* ptr, int sz);
53 tXML* llsd_bin_parse(uByte* ptr, int sz);
54 tXML* llsd_bin_main_parse(tXML* xml, uByte* ptr, int sz);
55 
56 #ifndef DISABLE_ZLIB
57 tXML* llsd_bin_get_block_data (uByte* buf, int sz, const char* key);
58 uWord* llsd_bin_get_skin_weight(uByte* buf, int sz, int vertex_num, int* joints_num);
59 #endif
60 
61 // for Sihgle Data
62 int llsd_xml_contain_key(tXML* xml, const char* key);
63 int llsd_xml_get_content_int (tXML* xml, const char* key, const char* item);
64 double llsd_xml_get_content_real(tXML* xml, const char* key, const char* item);
65 Buffer llsd_xml_get_content_str (tXML* xml, const char* key, const char* item);
66 Buffer llsd_xml_get_content_bin (tXML* xml, const char* key, const char* item);
67 
68 
69 #endif // __JBXL_LLSD_TOOL_H_
70 
unsigned short uWord
2Byte
Definition: common.h:334
unsigned char uByte
1Byte
Definition: common.h:332
gzツールプログラム ヘッダ (-lz)
JunkBox_Lib 状態ヘッダ
unsigned char ** buf
Definition: jpeg_tool.h:96
uWord * llsd_bin_get_skin_weight(uByte *buf, int sz, int vertex_num, int *joints_num)
Definition: llsd_tool.c:532
Buffer llsd_bin_get_uuid(uByte **ptr)
UUIDマーカーの要素を返す.ポインタは次に進む.
Definition: llsd_tool.c:112
tXML * llsd_bin_get_block_data(uByte *buf, int sz, const char *key)
Definition: llsd_tool.c:495
Buffer llsd_xml_get_content_bin(tXML *xml, const char *key, const char *item)
Definition: llsd_tool.c:697
int llsd_bin_get_length(uByte *ptr, int sz)
Definition: llsd_tool.c:165
Buffer llsd_xml_get_content_str(tXML *xml, const char *key, const char *item)
Definition: llsd_tool.c:678
int llsd_bin_get_int(uByte **ptr)
整数マーカーの要素を返す.ポインタは次に進む.
Definition: llsd_tool.c:53
tXML * llsd_bin_parse(uByte *ptr, int sz)
LLSDヘッダ のバイナリデータを tXMLのデータに格納する.ボディについては別途処理する.
Definition: llsd_tool.c:234
tXML * llsd_bin_main_parse(tXML *xml, uByte *ptr, int sz)
LLSD のバイナリデータをパースするメイン関数.
Definition: llsd_tool.c:280
Buffer llsd_bin_get_str(uByte **ptr)
ストリングマーカーの要素を返す.ポインタは次に進む.
Definition: llsd_tool.c:26
unsigned long long int llsd_bin_get_date(uByte **ptr)
デイトマーカーの要素を返す.ポインタは次に進む.
Definition: llsd_tool.c:69
double llsd_xml_get_content_real(tXML *xml, const char *key, const char *item)
Definition: llsd_tool.c:661
int llsd_xml_get_content_int(tXML *xml, const char *key, const char *item)
Definition: llsd_tool.c:644
double llsd_bin_get_real(uByte **ptr)
実数マーカーの要素を返す.ポインタは次に進む.
Definition: llsd_tool.c:85
int llsd_xml_contain_key(tXML *xml, const char *key)
Definition: llsd_tool.c:626
Buffer llsd_bin_get_bin(uByte **ptr)
バイナリマーカーの要素を返す.ポインタは次に進む.
Definition: llsd_tool.c:135
Definition: buffer.h:35
Tiny XML ライブラリヘッダ
汎用拡張ツールヘッダ