layout.h

Go to the documentation of this file.
00001 /* $Id$
00002  *
00003  * layout.h
00004  * 
00005  * Copyright 2001-2003, Meiosys (www.meiosys.com). All rights reserved.
00006  *
00007  * See the COPYING file for the terms of usage and distribution.
00008  */
00009 
00010 #ifndef log4c_layout_h
00011 #define log4c_layout_h
00012 
00025 #include <log4c/defs.h>
00026 #include <log4c/logging_event.h>
00027 #include <stdio.h>
00028 
00029 __LOG4C_BEGIN_DECLS
00030 
00031 struct __log4c_layout;
00032 
00036 typedef struct __log4c_layout log4c_layout_t;
00037 
00046 typedef struct log4c_layout_type {
00047     const char* name;
00048     const char* (*format) (const log4c_layout_t*, const log4c_logging_event_t*);
00049 } log4c_layout_type_t;
00050 
00058 LOG4C_API const log4c_layout_type_t* log4c_layout_type_get(const char* a_name);
00059 
00080 LOG4C_API const log4c_layout_type_t* log4c_layout_type_set(
00081     const log4c_layout_type_t* a_type);
00082 
00090 LOG4C_API log4c_layout_t* log4c_layout_get(const char* a_name);
00091 
00095 LOG4C_API log4c_layout_t* log4c_layout_new(const char* a_name);
00096 
00100 LOG4C_API void log4c_layout_delete(log4c_layout_t* a_layout);
00101 
00106 LOG4C_API const char* log4c_layout_get_name(const log4c_layout_t* a_layout);
00107 
00112 LOG4C_API const log4c_layout_type_t* log4c_layout_get_type(
00113     const log4c_layout_t* a_layout);
00114 
00123 LOG4C_API const log4c_layout_type_t* log4c_layout_set_type(
00124     log4c_layout_t* a_layout,
00125     const log4c_layout_type_t* a_type);
00126 
00131 LOG4C_API void* log4c_layout_get_udata(const log4c_layout_t* a_layout);
00132 
00140 LOG4C_API void* log4c_layout_set_udata(log4c_layout_t*  a_layout, 
00141                                     void*               a_udata);
00149 LOG4C_API const char* log4c_layout_format(
00150     const log4c_layout_t*               a_layout,
00151     const log4c_logging_event_t*        a_event);
00152 
00158 LOG4C_API void log4c_layout_print(
00159     const log4c_layout_t* a_layout, FILE* a_stream);
00160 
00166 LOG4C_API void log4c_layout_types_print(FILE *fp);
00167 
00178 #ifdef __GNUC__
00179 #   define log4c_layout_type_define(a_type) \
00180     typedef int log4c_layout_type_define_##a_type __attribute__((deprecated)); \
00181     static log4c_layout_type_define_##a_type __unsused_var __attribute__((unused));
00182 #else
00183 #   define log4c_layout_type_define(a_type)
00184 #endif
00185 
00189 struct __sd_factory;
00190 LOG4C_API struct __sd_factory* log4c_layout_factory;
00191 
00192 __LOG4C_END_DECLS
00193 
00194 #endif

Generated on Thu Feb 7 15:55:49 2008 for log4c by  doxygen 1.5.4