JunkBox_Lib++ (for Windows) 1.10.1
Loading...
Searching...
No Matches
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
41int llsd_bin_get_int (uByte** ptr);
42double llsd_bin_get_real(uByte** ptr);
45unsigned 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
52int llsd_bin_get_length(uByte* ptr, int sz);
53tXML* llsd_bin_parse(uByte* ptr, int sz);
54tXML* llsd_bin_main_parse(tXML* xml, uByte* ptr, int sz);
55
56#ifndef DISABLE_ZLIB
57tXML* llsd_bin_get_block_data (uByte* buf, int sz, const char* key);
58uWord* llsd_bin_get_skin_weight(uByte* buf, int sz, int vertex_num, int* joints_num);
59#endif
60
61// for Sihgle Data
62int llsd_xml_contain_key(tXML* xml, const char* key);
63int llsd_xml_get_content_int (tXML* xml, const char* key, const char* item);
64double llsd_xml_get_content_real(tXML* xml, const char* key, const char* item);
65Buffer llsd_xml_get_content_str (tXML* xml, const char* key, const char* item);
66Buffer 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 状態ヘッダ
tXML * llsd_bin_get_block_data(uByte *buf, int sz, const char *key)
Buffer llsd_bin_get_uuid(uByte **ptr)
UUIDマーカーの要素を返す.ポインタは次に進む.
tXML * llsd_bin_parse(uByte *ptr, int sz)
LLSDヘッダ のバイナリデータを tXMLのデータに格納する.ボディについては別途処理する.
Buffer llsd_xml_get_content_bin(tXML *xml, const char *key, const char *item)
int llsd_bin_get_length(uByte *ptr, int sz)
Buffer llsd_xml_get_content_str(tXML *xml, const char *key, const char *item)
int llsd_bin_get_int(uByte **ptr)
整数マーカーの要素を返す.ポインタは次に進む.
Definition llsd_tool.cpp:53
Buffer llsd_bin_get_str(uByte **ptr)
ストリングマーカーの要素を返す.ポインタは次に進む.
Definition llsd_tool.cpp:26
unsigned long long int llsd_bin_get_date(uByte **ptr)
デイトマーカーの要素を返す.ポインタは次に進む.
Definition llsd_tool.cpp:69
double llsd_xml_get_content_real(tXML *xml, const char *key, const char *item)
int llsd_xml_get_content_int(tXML *xml, const char *key, const char *item)
double llsd_bin_get_real(uByte **ptr)
実数マーカーの要素を返す.ポインタは次に進む.
Definition llsd_tool.cpp:85
int llsd_xml_contain_key(tXML *xml, const char *key)
uWord * llsd_bin_get_skin_weight(uByte *buf, int sz, int vertex_num, int *joints_num)
Buffer llsd_bin_get_bin(uByte **ptr)
バイナリマーカーの要素を返す.ポインタは次に進む.
tXML * llsd_bin_main_parse(tXML *xml, uByte *ptr, int sz)
LLSD のバイナリデータをパースするメイン関数.
Tiny XML ライブラリヘッダ
汎用拡張ツールヘッダ