blob: b98465987db9cf9c406894fa5afbdc167fc31c94 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
// -*- C++ -*-
//=============================================================================
/**
* @file Log_Msg_Backend.h
*
* $Id$
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
*/
//=============================================================================
#ifndef ACE_LOG_MSG_BACKEND_H
#define ACE_LOG_MSG_BACKEND_H
#include /**/ "ace/pre.h"
#include /**/ "ace/ACE_export.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
#include "ace/os_include/sys/os_types.h"
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
class ACE_Log_Record;
/**
* @class ACE_Log_Msg_Backend
*
* @brief Defines the interface for ACE_Log_Msg back end processing.
*
* The ACE_Log_Msg class uses ACE_Log_Msg_Backend as the target interface
* for back end log record procesing. In addition to the classes ACE
* derives from this (ACE_Log_Msg_NT_Event_Log, ACE_Log_Msg_UNIX_Syslog, and
* ACE_Log_Msg_IPC) users can derive classes from ACE_Log_Msg_Backend for
* use as a custom logger back end.
*/
class ACE_Export ACE_Log_Msg_Backend
{
public:
/// No-op virtual destructor.
virtual ~ACE_Log_Msg_Backend (void);
/**
* Open the back end object. Perform any actions needed to prepare
* the object for later logging operations.
*
* @param logger_key The character string passed to ACE_Log_Msg::open().
* If the @c LOGGER logging destination is not being
* used, any string can be passed through to the back end.
*
* @retval 0 for success.
* @retval -1 for failure.
*/
virtual int open (const ACE_TCHAR *logger_key) = 0;
/**
* Reset the backend. If ACE_Log_Msg is reopened during execution, this
* hook will be called. This method should perform any needed cleanup
* activity (similar to close()) because this object won't be reopened
* if the new open call does not specify use of this back end being reset.
*
* @retval Currently ignored, but to be safe, return 0 for success;
* -1 for failure.
*/
virtual int reset (void) = 0;
/// Close the backend completely.
virtual int close (void) = 0;
/**
* Process a log record.
*
* @param log_record The ACE_Log_Record to process.
*
* @retval -1 for failure; else it is customarily the number of bytes
* processed, but can also be 0 to signify success.
*/
virtual ssize_t log (ACE_Log_Record &log_record) = 0;
};
ACE_END_VERSIONED_NAMESPACE_DECL
#include /**/ "ace/post.h"
#endif /* ACE_LOG_MSG_BACKEND_H */
|