/*************************************************************************** rleventlogserver.h - description ------------------- begin : Wed Dec 18 2002 copyright : (C) 2002 by R. Lehrig email : lehrig@t-online.de ***************************************************************************/ /*************************************************************************** * * * This library is free software; you can redistribute it and/or modify * * it under the terms of the GNU LESSER GENERAL PUBLIC LICENSE as * * published by the Free Software Foundation * * * ***************************************************************************/ #ifndef _RL_EVENT_LOG_SERVER_H_ #define _RL_EVENT_LOG_SERVER_H_ #include "rldefine.h" #include "rlevent.h" #include "rlthread.h" #define rlMAX_MESSAGES 128 /*!
A class for implementing an event log server.
You may use it with rlevent.h
*/ class rlEventLogServer { public: /*!
    the event log files will be called:
    filename.rlEventLog
    max_events = max number of events in one file
    files may be purged by cron
    
*/ rlEventLogServer(const char *filename=NULL, int max_events=10000); virtual ~rlEventLogServer(); /*!
    num is the event number
    num = -1 will retrieve all events
    
*/ const char *getEvent(char *buf, int *num); void putEvent(const char *event); private: char memory[rlMAX_MESSAGES*rlMAX_EVENT]; rlMutex mutex; int front; int cnt; char *filename; void *fp; int max_events, num_events; }; /*!
This class starts a separate thread, that runs a rlEventLogServer log server.
It waits on TCP port for clients. See rlevent.h
*/ class rlEventLogServerThreads { public: /*!
    event_log_server will not be deleted by the destructor
    
*/ rlEventLogServerThreads(int port, rlEventLogServer *event_log_server); virtual ~rlEventLogServerThreads(); void start(); int getPort(); rlEventLogServer *event_log_server; private: rlThread acceptThread; int port; }; #endif