Main Page | Modules | Alphabetical List | Data Structures | File List | Data Fields | Globals | Related Pages

log.h

Go to the documentation of this file.
00001 
00025 #ifndef _GAIM_LOG_H_
00026 #define _GAIM_LOG_H_
00027 
00028 #include <stdio.h>
00029 
00030 
00031 /********************************************************
00032  * DATA STRUCTURES **************************************
00033  ********************************************************/
00034 
00035 typedef struct _GaimLog GaimLog;
00036 typedef struct _GaimLogLogger GaimLogLogger;
00037 
00038 typedef enum {
00039     GAIM_LOG_IM,
00040     GAIM_LOG_CHAT,
00041     GAIM_LOG_SYSTEM,
00042 } GaimLogType;
00043 
00044 typedef enum {
00045     GAIM_LOG_READ_NO_NEWLINE = 1,
00046 } GaimLogReadFlags;
00047 
00048 #include "account.h"
00049 #include "conversation.h"
00050 
00058 struct _GaimLogLogger {
00059     char *name;               
00060     char *id;                 
00064     void(*create)(GaimLog *log);
00065 
00067     void(*write)(GaimLog *log,
00068              GaimMessageFlags type,
00069              const char *from,
00070              time_t time,
00071              const char *message);
00072 
00074     void (*finalize)(GaimLog *log);
00075 
00077     GList *(*list)(GaimLogType type, const char *name, GaimAccount *account);
00078 
00081     char *(*read)(GaimLog *log, GaimLogReadFlags *flags);
00082     
00085     int (*size)(GaimLog *log);
00086 
00089     int (*total_size)(GaimLogType type, const char *name, GaimAccount *account);
00090 
00092     GList *(*list_syslog)(GaimAccount *account);
00093 };
00094 
00098 struct _GaimLog {
00099     GaimLogType type;                     
00100     char *name;                           
00101     GaimAccount *account;                 
00103     time_t time;                          
00105     GaimLogLogger *logger;                
00107     void *logger_data;                    
00108 };
00109 
00110 
00111 #ifdef __cplusplus
00112 extern "C" {
00113 #endif
00114 
00115     /***************************************
00116      ** LOG FUNCTIONS **********************
00117      ***************************************/
00118 
00129     GaimLog *gaim_log_new(GaimLogType type, const char *name,
00130             GaimAccount *account, time_t time);
00131 
00137     void gaim_log_free(GaimLog *log);
00138 
00149     void gaim_log_write(GaimLog *log,
00150                 GaimMessageFlags type,
00151                 const char *from,
00152                 time_t time,
00153                 const char *message);
00154 
00163     char *gaim_log_read(GaimLog *log, GaimLogReadFlags *flags);
00164 
00173     GList *gaim_log_get_logs(GaimLogType type, const char *name, GaimAccount *account);
00174 
00181     GList *gaim_log_get_system_logs(GaimAccount *account);
00182 
00189     int gaim_log_get_size(GaimLog *log);
00190 
00199      int gaim_log_get_total_size(GaimLogType type, const char *name, GaimAccount *account);
00200 
00208      gint gaim_log_compare(gconstpointer y, gconstpointer z);
00209 
00210     /******************************************
00211      ** LOGGER FUNCTIONS **********************
00212      ******************************************/
00213 
00226     GaimLogLogger *gaim_log_logger_new(
00227                     void(*create)(GaimLog *),
00228                     void(*write)(GaimLog *, GaimMessageFlags, const char *, time_t, const char *),
00229                     void(*finalize)(GaimLog *),
00230                     GList*(*list)(GaimLogType type, const char*, GaimAccount*),
00231                     char*(*read)(GaimLog*, GaimLogReadFlags*),
00232                     int(*size)(GaimLog*));
00238     void gaim_log_logger_free(GaimLogLogger *logger);
00239 
00245     void gaim_log_logger_add (GaimLogLogger *logger);
00246 
00253     void gaim_log_logger_remove (GaimLogLogger *logger);
00254 
00261     void gaim_log_logger_set (GaimLogLogger *logger);
00262 
00269     GaimLogLogger *gaim_log_logger_get (void);
00270 
00277     GList *gaim_log_logger_get_options(void);
00278 
00279     void gaim_log_init(void);
00283 #ifdef __cplusplus
00284 }
00285 #endif
00286 
00287 #endif /* _GAIM_LOG_H_ */

Generated on Fri Apr 22 05:21:09 2005 for gaim by  doxygen 1.3.9.1