00001
00002
00012 #ifndef JAVA_PARSER_H
00013 #define JAVA_PARSER_H
00014
00015 #include "protocol.h"
00016
00017 #define PARSER_GET_STRING(pst, pos) ((*pst[pos].string)+pst[pos].off)
00018 typedef struct {
00019 size_t length, off;
00020 unsigned char** string;
00021 } parser_string_t;
00022
00023 typedef struct {
00024 short n;
00025 parser_string_t *strings;
00026 } parser_tag_t;
00027
00028 typedef struct parser_cb {
00029 void (*begin)(parser_tag_t[3], struct parser_cb *);
00030 void (*end)(parser_string_t[1], struct parser_cb *);
00031 void *ctx;
00032 proxyenv *env;
00033 } parser_cb_t;
00034
00035 extern short EXT_GLOBAL (parse)(proxyenv *env, parser_cb_t *cb);
00036 extern short EXT_GLOBAL (parse_header) (proxyenv *env, parser_cb_t *cb);
00037
00038 #endif