lwes_event.h

Go to the documentation of this file.
00001 /*======================================================================*
00002  * Copyright (C) 2008 Light Weight Event System                         *
00003  * All rights reserved.                                                 *
00004  *                                                                      *
00005  * This program is free software; you can redistribute it and/or modify *
00006  * it under the terms of the GNU General Public License as published by *
00007  * the Free Software Foundation; either version 2 of the License, or    *
00008  * (at your option) any later version.                                  *
00009  *                                                                      *
00010  * This program is distributed in the hope that it will be useful,      *
00011  * but WITHOUT ANY WARRANTY; without even the implied warranty of       *
00012  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *
00013  * GNU General Public License for more details.                         *
00014  *                                                                      *
00015  * You should have received a copy of the GNU General Public License    *
00016  * along with this program; if not, write to the Free Software          *
00017  * Foundation, Inc., 51 Franklin Street, Fifth Floor,                   *
00018  * Boston, MA 02110-1301 USA.                                           *
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 /* __LWES_EVENT_FUNCTIONS_H */

Generated on Thu Aug 21 07:18:55 2008 for lwes by  doxygen 1.4.6