lwes_listener.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_LISTENER_H
00021 #define __LWES_LISTENER_H
00022 
00023 #include "lwes_types.h"
00024 #include "lwes_net_functions.h"
00025 #include "lwes_event.h"
00026 
00027 #ifdef __cplusplus
00028 extern "C" {
00029 #endif 
00030 
00038 struct lwes_listener
00039 {
00041   struct lwes_net_connection connection;
00043   struct lwes_event_deserialize_tmp *dtmp;
00045   LWES_BYTE_P buffer;
00046 };
00047 
00060 struct lwes_listener *
00061 lwes_listener_create
00062   (LWES_SHORT_STRING address,
00063    LWES_SHORT_STRING iface,
00064    LWES_U_INT_32 port);
00065 
00092 int
00093 lwes_listener_add_header_fields
00094   (struct lwes_listener *listener,
00095    LWES_BYTE_P bytes,
00096    size_t max,
00097    size_t *len);
00098 
00112 int
00113 lwes_listener_event_has_name
00114   (LWES_BYTE_P bytes,
00115    size_t len,
00116    LWES_CONST_SHORT_STRING name);
00117 
00129 int
00130 lwes_listener_recv_process_event
00131   (struct lwes_listener *listener,
00132    struct lwes_event *event,
00133    int len);
00134 
00142 int
00143 lwes_listener_recv
00144   (struct lwes_listener *listener,
00145    struct lwes_event *event);
00146 
00155 int
00156 lwes_listener_recv_by
00157   (struct lwes_listener *listener,
00158    struct lwes_event *event,
00159    unsigned int timeout_ms);
00160 
00173 int
00174 lwes_listener_recv_bytes
00175   (struct lwes_listener *listener,
00176    LWES_BYTE_P bytes,
00177    size_t max);
00178 
00192 int
00193 lwes_listener_recv_bytes_by
00194   (struct lwes_listener *listener,
00195    LWES_BYTE_P bytes,
00196    size_t max,
00197    unsigned int timeout_ms);
00198 
00206 int
00207 lwes_listener_destroy
00208   (struct lwes_listener *listener);
00209 
00210 #ifdef __cplusplus
00211 }
00212 #endif 
00213 
00214 #endif /* __LWES_LISTENER_H */

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