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

log.h

Go to the documentation of this file.
00001 
00026 #ifndef _GAIM_LOG_H_
00027 #define _GAIM_LOG_H_
00028 
00029 #include <stdio.h>
00030 
00031 
00032 /********************************************************
00033  * DATA STRUCTURES **************************************
00034  ********************************************************/
00035 
00036 typedef struct _GaimLog GaimLog;
00037 typedef struct _GaimLogLogger GaimLogLogger;
00038 
00039 typedef enum {
00040     GAIM_LOG_IM,
00041     GAIM_LOG_CHAT,
00042     GAIM_LOG_SYSTEM,
00043 } GaimLogType;
00044 
00045 typedef enum {
00046     GAIM_LOG_READ_NO_NEWLINE = 1,
00047 } GaimLogReadFlags;
00048 
00049 #include "account.h"
00050 #include "conversation.h"
00051 
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)(const char *name, GaimAccount *account);
00078 
00081     char *(*read)(GaimLog *log, GaimLogReadFlags *flags);
00082     
00085     int (*size)(GaimLog *log);
00086 
00089     int (*total_size)(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 
00172     GList *gaim_log_get_logs(const char *name, GaimAccount *account);
00173 
00180     GList *gaim_log_get_system_logs(GaimAccount *account);
00181 
00188     int gaim_log_get_size(GaimLog *log);
00189 
00197      int gaim_log_get_total_size(const char *name, GaimAccount *account);
00198 
00206      gint gaim_log_compare(gconstpointer y, gconstpointer z);
00207 
00208     /******************************************
00209      ** LOGGER FUNCTIONS **********************
00210      ******************************************/
00211 
00224     GaimLogLogger *gaim_log_logger_new(void(*create)(GaimLog *),
00225                        void(*write)(GaimLog *, GaimMessageFlags,
00226                             const char *, time_t, const char *),
00227                        void(*finalize)(GaimLog *),
00228                        GList*(*list)(const char*, GaimAccount*),
00229                        char*(*read)(GaimLog*, GaimLogReadFlags*),
00230                        int(*size)(GaimLog*));
00236     void gaim_log_logger_free(GaimLogLogger *logger);
00237 
00243     void gaim_log_logger_add (GaimLogLogger *logger);
00244 
00251     void gaim_log_logger_remove (GaimLogLogger *logger);
00252 
00259     void gaim_log_logger_set (GaimLogLogger *logger);
00260 
00267     GaimLogLogger *gaim_log_logger_get (void);
00268 
00275     GList *gaim_log_logger_get_options(void);
00276 
00277     void gaim_log_init(void);
00281 #ifdef __cplusplus
00282 }
00283 #endif
00284 
00285 #endif /* _GAIM_LOG_H_ */
00286 

Generated on Tue Aug 3 17:36:34 2004 for gaim by doxygen 1.3.4