//
// Copyright (C) 2006 SIPfoundry Inc.
// License by SIPfoundry under the LGPL license.
//
// Copyright (C) 2006 Pingtel Corp.
// Licensed to SIPfoundry under a Contributor Agreement.
//
//////////////////////////////////////////////////////////////////////////////
#ifndef _CallStateEventWriter_h_
#define _CallStateEventWriter_h_
// SYSTEM INCLUDES
#include "utl/UtlString.h"
#include "os/OsSysLog.h"
#include "os/OsDateTime.h"
// DEFINES
// MACROS
// EXTERNAL FUNCTIONS
// EXTERNAL VARIABLES
// CONSTANTS
// STRUCTS
// TYPEDEFS
// FORWARD DECLARATIONS
/**
* This CallStateEventWriter writes CSE events out to either a file or a
* database to the specification doc/cdr/call-state-events.html
*/
class CallStateEventWriter
{
/* //////////////////////////// PUBLIC //////////////////////////////////// */
public:
enum CseLogTypes {
CseLogFile,
CseLogDatabase
};
/* ============================ CREATORS ================================== */
/// Instantiate an event builder and set the observer name for its events
/*! \param logType - Type of log, either file or database
* \param logName - file name or database name
*/
CallStateEventWriter(CseLogTypes logType, const char* logName);
/// Destructor
virtual ~CallStateEventWriter();
/// Write event to the CSE log (file or database)
/*! \param event (in) - call state event
* \returns true if event could be written
*/
virtual bool writeLog(const char* event) = 0;
/// Open the log that was specified in the constructor
virtual bool openLog() = 0;
/// Close log that was specified in the constructor
virtual bool closeLog() = 0;
/// Get writeable state of log
virtual bool isWriteable() {return mbWriteable;}
/// Get type of log - file or database
virtual bool getLogType() {return mLogType;}
/// Flush log - only functional for file
virtual void flush();
/* //////////////////////////// PROTECTED ///////////////////////////////// */
protected:
UtlString mLogName;
bool mbWriteable; // Indicates if openLog was successful
CseLogTypes mLogType;
/* //////////////////////////// PRIVATE /////////////////////////////////// */
private:
};
/* ============================ INLINE METHODS ============================ */
#endif // _CallStateEventWriter_h_
syntax highlighted by Code2HTML, v. 0.9.1