1
/* Copyright (c) 1996-2004, Adaptec Corporation
4
* Redistribution and use in source and binary forms, with or without
5
* modification, are permitted provided that the following conditions are met:
7
* - Redistributions of source code must retain the above copyright notice, this
8
* list of conditions and the following disclaimer.
9
* - Redistributions in binary form must reproduce the above copyright notice,
10
* this list of conditions and the following disclaimer in the documentation
11
* and/or other materials provided with the distribution.
12
* - Neither the name of the Adaptec Corporation nor the names of its
13
* contributors may be used to endorse or promote products derived from this
14
* software without specific prior written permission.
16
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
20
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26
* POSSIBILITY OF SUCH DAMAGE.
29
#ifndef __LOG_CORE_HPP
30
#define __LOG_CORE_HPP
33
//***************************************************************************
35
//Description: some of the most common things for the logger
46
//***************************************************************************
49
//Include Files -------------------------------------------------------------
54
// SNMP trap event info
65
//Definitions - Defines & Constants -----------------------------------------
69
#if !defined __MWERKS__
78
// ini file string constants
80
// name of the ini file
81
#define INI_NAME "dptelog.ini"
83
#define GLOBAL_GROUP_STR "Global Group"
85
// max length of a filename
86
const uSHORT MAX_FILENAME_LEN = 129;
88
// the size of the to engine buffers
89
const uLONG TO_ENG_BUFF_SIZE = 0x4000;
91
// size of the global engine buffer, this is the max size
92
// we should ever try to use, its big... 16k
93
const uLONG GLOB_ENG_BUFF_SIZE = 0x4000;
99
const uLONG MGR_TYPE = 0x80000000;
101
// event logging object types
102
const uLONG LOGGER_TYPE_EVENT = 0x00000000;
105
const uLONG LOGGER_TYPE_EVENT_MGR = LOGGER_TYPE_EVENT | MGR_TYPE;
108
const uLONG LOGGER_TYPE_STATS = 0x00000001;
111
const uLONG LOGGER_TYPE_STATS_MGR = LOGGER_TYPE_STATS | MGR_TYPE;
114
const uLONG LOGGER_TYPE_HB = 0x00000002;
117
const uLONG LOGGER_TYPE_HB_MGR = LOGGER_TYPE_HB | MGR_TYPE;
119
// unknown logger type
120
const uLONG LOGGER_TYPE_UNKNOWN = 0xffffffff;
127
const uLONG BROADCASTER_TYPE_DEBUG = 0x0000000A;
128
// debug broadcaster MGR
129
const uLONG BROADCASTER_TYPE_DEBUG_MGR = BROADCASTER_TYPE_DEBUG | MGR_TYPE;
131
// sys log broadcasters
132
const uLONG BROADCASTER_TYPE_SYSLOG = 0x0000000B;
133
const uLONG BROADCASTER_TYPE_SYSLOG_MGR = BROADCASTER_TYPE_SYSLOG | MGR_TYPE;
135
// window broadcasters
136
const uLONG BROADCASTER_TYPE_WINDOW = 0x0000000C;
137
const uLONG BROADCASTER_TYPE_WINDOW_MGR = BROADCASTER_TYPE_WINDOW | MGR_TYPE;
139
// a broadcast module interface opject
140
const uLONG BROADCAST_TYPE_MODULE = 0x0000000D;
142
// the NT event viewer broadcaster
143
const uLONG BROADCASTER_TYPE_NT_EVENT = 0x0000000E;
144
const uLONG BROADCASTER_TYPE_NT_EVENT_MGR = BROADCASTER_TYPE_NT_EVENT | MGR_TYPE;
146
// the nt message broadcaster
147
const uLONG BROADCASTER_TYPE_NT_MSG = 0x0000000F;
148
const uLONG BROADCASTER_TYPE_NT_MSG_MGR = BROADCASTER_TYPE_NT_MSG | MGR_TYPE;
150
// the netware message broadcaster
151
const uLONG BROADCASTER_TYPE_NW_MSG = 0x00000010;
152
const uLONG BROADCASTER_TYPE_NW_MSG_MGR = BROADCASTER_TYPE_NW_MSG | MGR_TYPE;
154
// the nw console printf mananger
155
const uLONG BROADCASTER_TYPE_CONSOLE = 0x00000011;
156
const uLONG BROADCASTER_TYPE_CONSOLE_MGR = BROADCASTER_TYPE_CONSOLE | MGR_TYPE;
158
// the mail broadcaster
159
const uLONG BROADCASTER_TYPE_MAIL = 0x00000012;
160
const uLONG BROADCASTER_TYPE_MAIL_MGR = BROADCASTER_TYPE_MAIL | MGR_TYPE;
162
// the mail broadcaster
163
const uLONG BROADCASTER_TYPE_DEVICE_WRITE = 0x00000013;
164
const uLONG BROADCASTER_TYPE_DEVICE_WRITE_MGR = BROADCASTER_TYPE_DEVICE_WRITE | MGR_TYPE;
166
// the mail broadcaster
167
const uLONG BROADCASTER_TYPE_USER_WRITE = 0x00000014;
168
const uLONG BROADCASTER_TYPE_USER_WRITE_MGR = BROADCASTER_TYPE_USER_WRITE | MGR_TYPE;
170
// the MAPI broadcaster
171
const uLONG BROADCASTER_TYPE_MAPI = 0x00000015;
172
const uLONG BROADCASTER_TYPE_MAPI_MGR = BROADCASTER_TYPE_MAPI | MGR_TYPE;
174
// the SNMP broadcaster
175
const uLONG BROADCASTER_TYPE_SNMP = 0x00000016;
176
const uLONG BROADCASTER_TYPE_SNMP_MGR = BROADCASTER_TYPE_SNMP | MGR_TYPE;
178
// the AIX log file broadcaster
179
const uLONG BROADCASTER_TYPE_AIXLOG = 0x00000017;
180
const uLONG BROADCASTER_TYPE_AIXLOG_MGR = BROADCASTER_TYPE_AIXLOG | MGR_TYPE;
182
// the NT audio file broadcaster
183
const uLONG BROADCASTER_TYPE_AUDIO = 0x00000018;
184
const uLONG BROADCASTER_TYPE_AUDIO_MGR = BROADCASTER_TYPE_AUDIO | MGR_TYPE;
186
// the MAPI broadcaster
187
const uLONG BROADCASTER_TYPE_TAPI = 0x00000019;
188
const uLONG BROADCASTER_TYPE_TAPI_MGR = BROADCASTER_TYPE_TAPI | MGR_TYPE;
190
// the XMT_EVT broadcaster
191
const uLONG BROADCASTER_TYPE_XMT_EVT = 0x0000001b;
192
const uLONG BROADCASTER_TYPE_XMT_EVT_MGR = BROADCASTER_TYPE_XMT_EVT | MGR_TYPE;
197
// error creating an object
198
const uLONG ERR_LOGGER_MEM = 0x00000001;
200
// error opening a log file
201
const uLONG ERR_OPEN_LOG_FILE = 0x00000002;
203
// required deivce for this log mgr to operate properly does
205
const uLONG ERR_REQUIRED_DEVICE = 0x00000004;
207
// errors initializing the engine
210
const uLONG ERR_NOT_COMPAT = 0x00000008;
212
// can't open, ie find
213
const uLONG ERR_OPEN_ENGINE = 0x00000010;
215
// modules didn't load
216
const uLONG ERR_LOADING_MODULE = 0x00000020;
218
// the FW in the hba was less that what is required for stats logging
219
const uLONG ERR_SLOG_FW_VERSION = 0x00000040;
221
// there was an error creating a semaphore
222
const uLONG ERR_SEM_CREATE = 0x00000080;
224
// could not create the AIX error template
225
const uLONG ERR_AIX_LOGGER = 0x00000100;
229
// broadcaster specialty flags
230
const uLONG SPFLG_OS2_WININTIALIZE = 0x00000001;
232
// the number of possible machines/users we will broadcast to
233
#define MAX_NUM_BROADCAST_USERS 10
234
#define MAX_USERNAME_LEN 50
236
//Definitions - Structure & Typedef -----------------------------------------
238
//struct - LoggerID_S - start
239
//===========================================================================
241
//Description: this is the Logger ID structure
245
//---------------------------------------------------------------------------
248
// tag and a type similar to dptID_S
253
//class - LogError_C - start
254
//===========================================================================
256
//Description: goes the error handling
260
//---------------------------------------------------------------------------
268
virtual ~LogError_C() {};
272
{ return(errorFlags); };
274
// set the error flag
275
void SetError(uLONG x)
285
//class - LoggerCore_C - start
286
//===========================================================================
288
//Description: used to have logger tags and logger types
292
//---------------------------------------------------------------------------
293
class LoggerCore_C : public LogError_C
297
// used to assign the logger type
298
LoggerCore_C(uLONG newType)
300
// assign the tag and increment it
307
// returns the tag assigned by the logger
308
DPT_TAG_T GetLoggerTag()
311
// return the logger type
312
uLONG GetLoggerType()
313
{ return(id.type); };
316
LoggerID_S * GetID() // possibly pass in engine buffer or memcpy passed
317
{ return(&id); }; // in pointer
321
// logger id structure
324
// the number of the next tag to be assigned
325
static DPT_TAG_T nextTag;
328
//struct - AdditionEventInfo_S - start
329
//===========================================================================
331
//Description: this is additional event info sent to the broadcaster that needs
332
// to be filled in before they get it
336
//---------------------------------------------------------------------------
337
struct AdditionalEventInfo_S
339
// SNMP trap info for both the actual and resultant events
340
snmpTrapVars_S actualTrap;
341
snmpTrapVars_S resultantTrap;
349
//Variables - External ------------------------------------------------------
352
//Variables - Global --------------------------------------------------------
355
//Variables - File Scope ----------------------------------------------------
358
//Prototypes - function -----------------------------------------------------