00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef EVENT2_TAG_H_INCLUDED_
00028 #define EVENT2_TAG_H_INCLUDED_
00029
00036 #include <event2/visibility.h>
00037
00038 #ifdef __cplusplus
00039 extern "C" {
00040 #endif
00041
00042 #include <event2/event-config.h>
00043 #ifdef EVENT__HAVE_SYS_TYPES_H
00044 #include <sys/types.h>
00045 #endif
00046 #ifdef EVENT__HAVE_SYS_TIME_H
00047 #include <sys/time.h>
00048 #endif
00049
00050
00051 #include <event2/util.h>
00052
00053 struct evbuffer;
00054
00055
00056
00057
00058
00059
00060
00061 EVENT2_EXPORT_SYMBOL
00062 void evtag_init(void);
00063
00071 EVENT2_EXPORT_SYMBOL
00072 int evtag_unmarshal_header(struct evbuffer *evbuf, ev_uint32_t *ptag);
00073
00074 EVENT2_EXPORT_SYMBOL
00075 void evtag_marshal(struct evbuffer *evbuf, ev_uint32_t tag, const void *data,
00076 ev_uint32_t len);
00077 EVENT2_EXPORT_SYMBOL
00078 void evtag_marshal_buffer(struct evbuffer *evbuf, ev_uint32_t tag,
00079 struct evbuffer *data);
00080
00091 EVENT2_EXPORT_SYMBOL
00092 void evtag_encode_int(struct evbuffer *evbuf, ev_uint32_t number);
00093 EVENT2_EXPORT_SYMBOL
00094 void evtag_encode_int64(struct evbuffer *evbuf, ev_uint64_t number);
00095
00096 EVENT2_EXPORT_SYMBOL
00097 void evtag_marshal_int(struct evbuffer *evbuf, ev_uint32_t tag,
00098 ev_uint32_t integer);
00099 EVENT2_EXPORT_SYMBOL
00100 void evtag_marshal_int64(struct evbuffer *evbuf, ev_uint32_t tag,
00101 ev_uint64_t integer);
00102
00103 EVENT2_EXPORT_SYMBOL
00104 void evtag_marshal_string(struct evbuffer *buf, ev_uint32_t tag,
00105 const char *string);
00106
00107 EVENT2_EXPORT_SYMBOL
00108 void evtag_marshal_timeval(struct evbuffer *evbuf, ev_uint32_t tag,
00109 struct timeval *tv);
00110
00111 EVENT2_EXPORT_SYMBOL
00112 int evtag_unmarshal(struct evbuffer *src, ev_uint32_t *ptag,
00113 struct evbuffer *dst);
00114 EVENT2_EXPORT_SYMBOL
00115 int evtag_peek(struct evbuffer *evbuf, ev_uint32_t *ptag);
00116 EVENT2_EXPORT_SYMBOL
00117 int evtag_peek_length(struct evbuffer *evbuf, ev_uint32_t *plength);
00118 EVENT2_EXPORT_SYMBOL
00119 int evtag_payload_length(struct evbuffer *evbuf, ev_uint32_t *plength);
00120 EVENT2_EXPORT_SYMBOL
00121 int evtag_consume(struct evbuffer *evbuf);
00122
00123 EVENT2_EXPORT_SYMBOL
00124 int evtag_unmarshal_int(struct evbuffer *evbuf, ev_uint32_t need_tag,
00125 ev_uint32_t *pinteger);
00126 EVENT2_EXPORT_SYMBOL
00127 int evtag_unmarshal_int64(struct evbuffer *evbuf, ev_uint32_t need_tag,
00128 ev_uint64_t *pinteger);
00129
00130 EVENT2_EXPORT_SYMBOL
00131 int evtag_unmarshal_fixed(struct evbuffer *src, ev_uint32_t need_tag,
00132 void *data, size_t len);
00133
00134 EVENT2_EXPORT_SYMBOL
00135 int evtag_unmarshal_string(struct evbuffer *evbuf, ev_uint32_t need_tag,
00136 char **pstring);
00137
00138 EVENT2_EXPORT_SYMBOL
00139 int evtag_unmarshal_timeval(struct evbuffer *evbuf, ev_uint32_t need_tag,
00140 struct timeval *ptv);
00141
00142 #ifdef __cplusplus
00143 }
00144 #endif
00145
00146 #endif