8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-26 08:03:03 +01:00
firebird-mirror/src/dsql/BlrDebugWriter.h
asfernandes 3f8de25fcc Feature CORE-4403 - Allow referencing cursors as record variables in PSQL.
Improvement CORE-4434 - Extend the use of colon prefix for read/assignment OLD/NEW fields and assignment to variables.
2014-05-19 19:06:47 +00:00

66 lines
1.8 KiB
C++

/*
* 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): ______________________________________.
* Adriano dos Santos Fernandes - refactored from others modules.
* Alex Peshkov
*/
#ifndef DSQL_BLR_DEBUG_WRITER_H
#define DSQL_BLR_DEBUG_WRITER_H
#include "../common/classes/BlrWriter.h"
namespace Jrd {
class DeclareSubFuncNode;
class DeclareSubProcNode;
// BLR writer with debug info support.
class BlrDebugWriter : public Firebird::BlrWriter
{
public:
typedef Firebird::HalfStaticArray<UCHAR, 128> DebugData;
explicit BlrDebugWriter(MemoryPool& p)
: Firebird::BlrWriter(p),
debugData(p)
{
}
void beginDebug();
void endDebug();
void putDebugSrcInfo(ULONG, ULONG);
void putDebugVariable(USHORT, const Firebird::MetaName&);
void putDebugArgument(UCHAR, USHORT, const TEXT*);
void putDebugCursor(USHORT, const Firebird::MetaName&);
void putDebugSubFunction(DeclareSubFuncNode* subFuncNode);
void putDebugSubProcedure(DeclareSubProcNode* subProcNode);
DebugData& getDebugData() { return debugData; }
virtual void raiseError(const Firebird::Arg::StatusVector& vector);
private:
DebugData debugData;
};
} // namespace Jrd
#endif // DSQL_BLR_DEBUG_WRITER_H