8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-24 21:23:04 +01:00
firebird-mirror/src/jrd/log.h

120 lines
3.0 KiB
C++

/*
* PROGRAM: REPLAY Debugging Utility
* MODULE: log.h
* DESCRIPTION: Definitions for logging OSRI calls
*
* The contents of this file are subject to the Interbase Public
* License Version 1.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy
* of the License at http://www.Inprise.com/IPL.html
*
* Software distributed under the License is distributed on an
* "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express
* or implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code was created by Inprise Corporation
* and its predecessors. Portions created by Inprise Corporation are
* Copyright (C) Inprise Corporation.
*
* All Rights Reserved.
* Contributor(s): ______________________________________.
*/
#ifndef JRD_LOG_H
#define JRD_LOG_H
//const int LOG_VERSION1 = 1; // version to correspond with v2.5 access method
//const int LOG_VERSION2 = 2; // version to correspond with v3.0 access method
const int LOG_VERSION3 = 3; // version to correspond with v4.0 access method
/* the log buffer length should be long enough to fit
any OSRI call atomically to prevent multiuser bugs */
const int LOG_BUFFER_LENGTH = 1024;
/* replay log block */
class str;
class fblog : public pool_alloc<type_log>
{
public:
str* log_string; /* string block allocated to hold log buffer */
UCHAR* log_buffer; /* points to beginning of string data */
UCHAR* log_ptr; /* current end of buffer for logging */
void* log_file; /* db-specific file to write */
};
/* this table is the possible log file entries */
enum log_t {
log_attach = 0, /* V2 OSRI calls */
log_blob_info,
log_cancel_blob,
log_close_blob,
log_commit,
log_compile,
log_create_blob,
log_create_database,
log_database_info,
log_detach,
log_get_segment,
log_open_blob,
log_prepare,
log_put_segment,
log_receive,
log_reconnect,
log_release_request,
log_request_info,
log_rollback,
log_send,
log_start_and_send,
log_start,
log_start_multiple,
log_transaction_info,
log_unwind,
log_handle_returned, /* handle returned from a call */
log_statistics, /* stats for sanity checking */
log_error, /* error from logging system */
/* the following are V3 OSRI calls -- note that calls which
are even slightly changed are given a new number even if
the name of the call didn't change, such as attach. This
is to achieve upward compatibility of the log files. */
log_attach2,
log_cancel_events,
log_commit_retaining,
log_create_blob2,
log_create_database2,
log_get_slice,
log_open_blob2,
log_prepare2,
log_put_slice,
log_que_events,
log_blob_seek,
/* the following are the same as the above calls but they stop recording
buffers that are supposed to be returned by the access method */
log_get_segment2,
log_get_slice2,
log_receive2,
log_blob_info2,
log_database_info2,
log_request_info2,
log_transaction_info2,
log_ddl,
log_transact_request,
log_drop_database,
log_max
};
#endif // JRD_LOG_H