00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __LWES_EVENT_FUNCTIONS_H
00021 #define __LWES_EVENT_FUNCTIONS_H
00022
00023 #include "lwes_types.h"
00024 #include "lwes_hash.h"
00025 #include "lwes_event_type_db.h"
00026
00027 #include <stdio.h>
00028
00029 #define LWES_ENCODING "enc"
00030
00031 #ifdef __cplusplus
00032 extern "C" {
00033 #endif
00034
00042 struct lwes_event_deserialize_tmp
00043 {
00046 LWES_CHAR tmp_string[SHORT_STRING_MAX+1];
00049 LWES_CHAR tmp_string_long[LONG_STRING_MAX+1];
00050 };
00051
00055 struct lwes_event
00056 {
00058 LWES_SHORT_STRING eventName;
00060 LWES_U_INT_16 number_of_attributes;
00062 struct lwes_event_type_db * type_db;
00066 struct lwes_hash * attributes;
00067 };
00068
00072 struct lwes_event_attribute
00073 {
00075 LWES_BYTE type;
00077 void *value;
00078 };
00079
00083 struct lwes_event_enumeration
00084 {
00086 struct lwes_hash_enumeration hash_enum;
00087 };
00088
00098 struct lwes_event *
00099 lwes_event_create_no_name
00100 (struct lwes_event_type_db *db);
00101
00113 struct lwes_event *
00114 lwes_event_create
00115 (struct lwes_event_type_db *db,
00116 LWES_CONST_SHORT_STRING name);
00117
00130 struct lwes_event *
00131 lwes_event_create_with_encoding
00132 (struct lwes_event_type_db *db,
00133 LWES_CONST_SHORT_STRING name,
00134 LWES_INT_16 encoding);
00135
00142 int
00143 lwes_event_destroy
00144 (struct lwes_event *event);
00145
00157 int
00158 lwes_event_set_name
00159 (struct lwes_event *event,
00160 LWES_CONST_SHORT_STRING name);
00161
00172 int
00173 lwes_event_set_encoding
00174 (struct lwes_event *event,
00175 LWES_INT_16 encoding);
00176
00186 int
00187 lwes_event_set_U_INT_16
00188 (struct lwes_event *event,
00189 LWES_CONST_SHORT_STRING name,
00190 LWES_U_INT_16 value);
00191
00201 int
00202 lwes_event_set_INT_16
00203 (struct lwes_event *event,
00204 LWES_CONST_SHORT_STRING name,
00205 LWES_INT_16 value);
00206
00216 int
00217 lwes_event_set_U_INT_32
00218 (struct lwes_event *event,
00219 LWES_CONST_SHORT_STRING name,
00220 LWES_U_INT_32 value);
00221
00231 int
00232 lwes_event_set_INT_32
00233 (struct lwes_event *event,
00234 LWES_CONST_SHORT_STRING name,
00235 LWES_INT_32 value);
00236
00246 int
00247 lwes_event_set_U_INT_64
00248 (struct lwes_event *event,
00249 LWES_CONST_SHORT_STRING name,
00250 LWES_U_INT_64 value);
00251
00263 int
00264 lwes_event_set_U_INT_64_w_string
00265 (struct lwes_event *event,
00266 LWES_CONST_SHORT_STRING name,
00267 LWES_CONST_SHORT_STRING value);
00268
00278 int
00279 lwes_event_set_INT_64
00280 (struct lwes_event *event,
00281 LWES_CONST_SHORT_STRING name,
00282 LWES_INT_64 value);
00283
00295 int
00296 lwes_event_set_INT_64_w_string
00297 (struct lwes_event *event,
00298 LWES_CONST_SHORT_STRING name,
00299 LWES_CONST_SHORT_STRING value);
00300
00310 int
00311 lwes_event_set_STRING
00312 (struct lwes_event *event,
00313 LWES_CONST_SHORT_STRING name,
00314 LWES_CONST_LONG_STRING value);
00315
00325 int
00326 lwes_event_set_IP_ADDR
00327 (struct lwes_event *event,
00328 LWES_CONST_SHORT_STRING name,
00329 LWES_IP_ADDR value);
00330
00346 int
00347 lwes_event_set_IP_ADDR_w_string
00348 (struct lwes_event *event,
00349 LWES_CONST_SHORT_STRING name,
00350 LWES_CONST_SHORT_STRING value);
00351
00361 int
00362 lwes_event_set_BOOLEAN
00363 (struct lwes_event *event,
00364 LWES_CONST_SHORT_STRING name,
00365 LWES_BOOLEAN value);
00366
00374 int
00375 lwes_event_get_name
00376 (struct lwes_event *event,
00377 LWES_SHORT_STRING *name);
00378
00386 int
00387 lwes_event_get_number_of_attributes
00388 (struct lwes_event *event,
00389 LWES_U_INT_16 *number);
00390
00401 int
00402 lwes_event_get_encoding
00403 (struct lwes_event *event,
00404 LWES_INT_16 *encoding);
00405
00414 int
00415 lwes_event_get_U_INT_16
00416 (struct lwes_event *event,
00417 LWES_CONST_SHORT_STRING name,
00418 LWES_U_INT_16 *value);
00419
00428 int
00429 lwes_event_get_INT_16
00430 (struct lwes_event *event,
00431 LWES_CONST_SHORT_STRING name,
00432 LWES_INT_16 *value);
00433
00442 int
00443 lwes_event_get_U_INT_32
00444 (struct lwes_event *event,
00445 LWES_CONST_SHORT_STRING name,
00446 LWES_U_INT_32 *value);
00447
00456 int
00457 lwes_event_get_INT_32
00458 (struct lwes_event *event,
00459 LWES_CONST_SHORT_STRING name,
00460 LWES_INT_32 *value);
00461
00470 int
00471 lwes_event_get_U_INT_64
00472 (struct lwes_event *event,
00473 LWES_CONST_SHORT_STRING name,
00474 LWES_U_INT_64 *value);
00475
00484 int
00485 lwes_event_get_INT_64
00486 (struct lwes_event *event,
00487 LWES_CONST_SHORT_STRING name,
00488 LWES_INT_64 *value);
00489
00500 int
00501 lwes_event_get_STRING
00502 (struct lwes_event *event,
00503 LWES_CONST_SHORT_STRING name,
00504 LWES_LONG_STRING *value);
00505
00514 int
00515 lwes_event_get_IP_ADDR
00516 (struct lwes_event *event,
00517 LWES_CONST_SHORT_STRING name,
00518 LWES_IP_ADDR *value);
00519
00528 int
00529 lwes_event_get_BOOLEAN
00530 (struct lwes_event *event,
00531 LWES_CONST_SHORT_STRING name,
00532 LWES_BOOLEAN *value);
00533
00662 int
00663 lwes_event_to_bytes
00664 (struct lwes_event *event,
00665 LWES_BYTE_P bytes,
00666 size_t num_bytes,
00667 size_t offset);
00668
00680 int
00681 lwes_event_from_bytes
00682 (struct lwes_event *event,
00683 LWES_BYTE_P bytes,
00684 size_t num_bytes,
00685 size_t offset,
00686 struct lwes_event_deserialize_tmp *dtmp);
00687
00718 int
00719 lwes_event_keys
00720 (struct lwes_event * event,
00721 struct lwes_event_enumeration *enumeration);
00722
00731 int
00732 lwes_event_enumeration_next_element
00733 (struct lwes_event_enumeration *enumeration,
00734 LWES_CONST_SHORT_STRING *key,
00735 LWES_TYPE *type);
00736
00737 #ifdef __cplusplus
00738 }
00739 #endif
00740 #endif