8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-23 21:23:03 +01:00

Use interface IBlrMessage instead passing C++ class pointer to API interface's functions

This commit is contained in:
alexpeshkoff 2011-04-08 16:43:05 +00:00
parent 4c3f87d6bd
commit 9a4689d3e9
8 changed files with 163 additions and 145 deletions

View File

@ -31,6 +31,7 @@
#include "FirebirdPluginApi.h"
#include "Timer.h"
#include "ProviderInterface.h"
#include "../common/classes/alloc.h"
#include "gen/iberror.h"
#include "../yvalve/gds_proto.h"
@ -234,6 +235,56 @@ private:
typedef GlobalPtr<UnloadDetectorHelper, InstanceControl::PRIORITY_DETECT_UNLOAD> UnloadDetector;
class BlrMessage
{
public:
BlrMessage(unsigned aBlrLength, const unsigned char* aBlr, unsigned aBufferLength)
: blrLength(aBlrLength),
blr(aBlr),
bufferLength(aBufferLength)
{
}
public:
unsigned blrLength;
const unsigned char* blr;
unsigned bufferLength;
};
class BlrMessageBuffer : public IBlrMessage
{
public:
BlrMessageBuffer(const BlrMessage* aMessage, unsigned char* aBuffer)
: message(aMessage),
buffer(aBuffer)
{
}
private:
const BlrMessage* const message;
unsigned char* const buffer;
public:
unsigned int FB_CARG getBlrLength() const
{
return message ? message->blrLength : 0;
}
const unsigned char* FB_CARG getBlr() const
{
return message ? message->blr : NULL;
}
unsigned int FB_CARG getBufferLength() const
{
return message ? message->bufferLength : 0;
}
unsigned char* FB_CARG getBuffer() const
{
return buffer;
}
};
} // namespace Firebird

View File

@ -613,10 +613,10 @@ public:
virtual void FB_CARG setCursorName(IStatus* status, const char* name, unsigned int type);
virtual Firebird::ITransaction* FB_CARG execute(IStatus* status, Firebird::ITransaction* tra,
unsigned int in_msg_type,
const Firebird::MessageBuffer* inMsgBuffer,
const Firebird::MessageBuffer* outMsgBuffer);
virtual int FB_CARG fetch(IStatus* status, const Firebird::MessageBuffer* msgBuffer); // returns 100 if EOF, 101 if fragmented
virtual void FB_CARG insert(IStatus* status, const Firebird::MessageBuffer* msgBuffer);
const Firebird::IBlrMessage* inMsgBuffer,
const Firebird::IBlrMessage* outMsgBuffer);
virtual int FB_CARG fetch(IStatus* status, const Firebird::IBlrMessage* msgBuffer); // returns 100 if EOF, 101 if fragmented
virtual void FB_CARG insert(IStatus* status, const Firebird::IBlrMessage* msgBuffer);
virtual void FB_CARG free(IStatus* status, unsigned int option);
};

View File

@ -38,34 +38,13 @@ namespace Firebird {
class IAttachment; // Forward
class Message
class IBlrMessage
{
public:
Message(unsigned aBlrLength, const unsigned char* aBlr, unsigned aBufferLength)
: blrLength(aBlrLength),
blr(aBlr),
bufferLength(aBufferLength)
{
}
public:
unsigned blrLength;
const unsigned char* blr;
unsigned bufferLength;
};
class MessageBuffer
{
public:
MessageBuffer(const Message* aMessage, unsigned char* aBuffer)
: message(aMessage),
buffer(aBuffer)
{
}
public:
const Message* const message;
unsigned char* const buffer;
virtual unsigned int FB_CARG getBlrLength() const = 0;
virtual const unsigned char* FB_CARG getBlr() const = 0;
virtual unsigned int FB_CARG getBufferLength() const = 0;
virtual unsigned char* FB_CARG getBuffer() const = 0;
};
class IEventCallback
@ -137,10 +116,10 @@ public:
unsigned int bufferLength, unsigned char* buffer) = 0;
virtual void FB_CARG setCursorName(IStatus* status, const char* name, unsigned int type) = 0;
virtual ITransaction* FB_CARG execute(IStatus* status, ITransaction* tra,
unsigned int inMsgType, const MessageBuffer* inMsgBuffer,
const MessageBuffer* outMsgBuffer) = 0;
virtual int FB_CARG fetch(IStatus* status, const MessageBuffer* msgBuffer) = 0; // returns 100 if EOF, 101 if fragmented
virtual void FB_CARG insert(IStatus* status, const MessageBuffer* msgBuffer) = 0;
unsigned int inMsgType, const IBlrMessage* inMsgBuffer,
const IBlrMessage* outMsgBuffer) = 0;
virtual int FB_CARG fetch(IStatus* status, const IBlrMessage* msgBuffer) = 0; // returns 100 if EOF, 101 if fragmented
virtual void FB_CARG insert(IStatus* status, const IBlrMessage* msgBuffer) = 0;
virtual void FB_CARG free(IStatus* status, unsigned int option) = 0;
};
#define FB_I_STATEMENT_VERSION (FB_INTERFACE_VERSION + 7)
@ -203,8 +182,8 @@ public:
const unsigned char* dyn) = 0;
virtual ITransaction* FB_CARG execute(IStatus* status, ITransaction* transaction,
unsigned int length, const char* string, unsigned int dialect,
unsigned int inMsgType, const MessageBuffer* inMsgBuffer,
const MessageBuffer* outMsgBuffer) = 0;
unsigned int inMsgType, const IBlrMessage* inMsgBuffer,
const IBlrMessage* outMsgBuffer) = 0;
virtual IEvents* FB_CARG queEvents(IStatus* status, IEventCallback* callback,
unsigned int length, const unsigned char* events) = 0;
virtual void FB_CARG cancelOperation(IStatus* status, int option) = 0;

View File

@ -255,8 +255,8 @@ public:
unsigned int length, const unsigned char* dyn);
virtual Firebird::ITransaction* FB_CARG execute(IStatus* status, Firebird::ITransaction* transaction,
unsigned int length, const char* string, unsigned int dialect,
unsigned int in_msg_type, const Firebird::MessageBuffer* inMsgBuffer,
const Firebird::MessageBuffer* outMsgBuffer);
unsigned int in_msg_type, const Firebird::IBlrMessage* inMsgBuffer,
const Firebird::IBlrMessage* outMsgBuffer);
virtual Firebird::IEvents* FB_CARG queEvents(IStatus* status, Firebird::IEventCallback* callback,
unsigned int length, const unsigned char* events);
virtual void FB_CARG cancelOperation(IStatus* status, int option);

View File

@ -495,10 +495,10 @@ void InternalStatement::doExecute(thread_db* tdbb)
{
EngineCallbackGuard guard(tdbb, *this);
Message inMessage(m_inBlr.getCount(), m_inBlr.begin(), m_in_buffer.getCount());
MessageBuffer inMsgBuffer(&inMessage, m_in_buffer.begin());
Message outMessage(m_outBlr.getCount(), m_outBlr.begin(), m_out_buffer.getCount());
MessageBuffer outMsgBuffer(&outMessage, m_out_buffer.begin());
BlrMessage inMessage(m_inBlr.getCount(), m_inBlr.begin(), m_in_buffer.getCount());
BlrMessageBuffer inMsgBuffer(&inMessage, m_in_buffer.begin());
BlrMessage outMessage(m_outBlr.getCount(), m_outBlr.begin(), m_out_buffer.getCount());
BlrMessageBuffer outMsgBuffer(&outMessage, m_out_buffer.begin());
m_request->execute(&status, transaction, 0, &inMsgBuffer, &outMsgBuffer);
}
@ -516,8 +516,8 @@ void InternalStatement::doOpen(thread_db* tdbb)
{
EngineCallbackGuard guard(tdbb, *this);
Message inMessage(m_inBlr.getCount(), m_inBlr.begin(), m_in_buffer.getCount());
MessageBuffer inMsgBuffer(&inMessage, m_in_buffer.begin());
BlrMessage inMessage(m_inBlr.getCount(), m_inBlr.begin(), m_in_buffer.getCount());
BlrMessageBuffer inMsgBuffer(&inMessage, m_in_buffer.begin());
m_request->execute(&status, transaction, 0, &inMsgBuffer, NULL);
}
@ -533,8 +533,8 @@ bool InternalStatement::doFetch(thread_db* tdbb)
int res = 0;
{
EngineCallbackGuard guard(tdbb, *this);
Message message(m_outBlr.getCount(), m_outBlr.begin(), m_out_buffer.getCount());
MessageBuffer msgBuffer(&message, m_out_buffer.begin());
BlrMessage message(m_outBlr.getCount(), m_outBlr.begin(), m_out_buffer.getCount());
BlrMessageBuffer msgBuffer(&message, m_out_buffer.begin());
res = m_request->fetch(&status, &msgBuffer);
}

View File

@ -4169,7 +4169,7 @@ Firebird::IStatement* Attachment::allocateStatement(IStatus* user_status)
Firebird::ITransaction* dsql_req::execute(IStatus* user_status, Firebird::ITransaction* apiTra,
unsigned int in_msg_type, const MessageBuffer* inMsgBuffer, const MessageBuffer* outMsgBuffer)
unsigned int in_msg_type, const IBlrMessage* inMsgBuffer, const IBlrMessage* outMsgBuffer)
{
jrd_tra* tra = reinterpret_cast<jrd_tra*>(apiTra);
@ -4188,17 +4188,15 @@ Firebird::ITransaction* dsql_req::execute(IStatus* user_status, Firebird::ITrans
try
{
const Message* inMessage = inMsgBuffer ? inMsgBuffer->message : NULL;
unsigned in_blr_length = inMessage ? inMessage->blrLength : 0;
const unsigned char* in_blr = inMessage ? inMessage->blr : NULL;
unsigned in_msg_length = inMessage ? inMessage->bufferLength : 0;
unsigned char* in_msg = inMsgBuffer ? inMsgBuffer->buffer : NULL;
unsigned in_blr_length = inMsgBuffer ? inMsgBuffer->getBlrLength() : 0;
const unsigned char* in_blr = inMsgBuffer ? inMsgBuffer->getBlr() : NULL;
unsigned in_msg_length = inMsgBuffer ? inMsgBuffer->getBufferLength() : 0;
unsigned char* in_msg = inMsgBuffer ? inMsgBuffer->getBuffer() : NULL;
const Message* outMessage = outMsgBuffer ? outMsgBuffer->message : NULL;
unsigned out_blr_length = outMessage ? outMessage->blrLength : 0;
const unsigned char* out_blr = outMessage ? outMessage->blr : NULL;
unsigned out_msg_length = outMessage ? outMessage->bufferLength : 0;
unsigned char* out_msg = outMsgBuffer ? outMsgBuffer->buffer : NULL;
unsigned out_blr_length = outMsgBuffer ? outMsgBuffer->getBlrLength() : 0;
const unsigned char* out_blr = outMsgBuffer ? outMsgBuffer->getBlr() : NULL;
unsigned out_msg_length = outMsgBuffer ? outMsgBuffer->getBufferLength() : 0;
unsigned char* out_msg = outMsgBuffer ? outMsgBuffer->getBuffer() : NULL;
DSQL_execute(tdbb, &tra, this, in_blr_length, in_blr, in_msg_type, in_msg_length, in_msg,
out_blr_length, out_blr, out_msg_length, out_msg);
@ -4223,8 +4221,8 @@ Firebird::ITransaction* dsql_req::execute(IStatus* user_status, Firebird::ITrans
Firebird::ITransaction* Attachment::execute(IStatus* user_status, Firebird::ITransaction* apiTra,
unsigned int length, const char* string, unsigned int dialect,
unsigned int /*in_msg_type*/, const MessageBuffer* inMsgBuffer,
const MessageBuffer* outMsgBuffer)
unsigned int /*in_msg_type*/, const IBlrMessage* inMsgBuffer,
const IBlrMessage* outMsgBuffer)
{
jrd_tra* tra = reinterpret_cast<jrd_tra*>(apiTra);
@ -4243,17 +4241,15 @@ Firebird::ITransaction* Attachment::execute(IStatus* user_status, Firebird::ITra
try
{
const Message* inMessage = inMsgBuffer ? inMsgBuffer->message : NULL;
unsigned in_blr_length = inMessage ? inMessage->blrLength : 0;
const unsigned char* in_blr = inMessage ? inMessage->blr : NULL;
unsigned in_msg_length = inMessage ? inMessage->bufferLength : 0;
unsigned char* in_msg = inMsgBuffer ? inMsgBuffer->buffer : NULL;
unsigned in_blr_length = inMsgBuffer ? inMsgBuffer->getBlrLength() : 0;
const unsigned char* in_blr = inMsgBuffer ? inMsgBuffer->getBlr() : NULL;
unsigned in_msg_length = inMsgBuffer ? inMsgBuffer->getBufferLength() : 0;
unsigned char* in_msg = inMsgBuffer ? inMsgBuffer->getBuffer() : NULL;
const Message* outMessage = outMsgBuffer ? outMsgBuffer->message : NULL;
unsigned out_blr_length = outMessage ? outMessage->blrLength : 0;
const unsigned char* out_blr = outMessage ? outMessage->blr : NULL;
unsigned out_msg_length = outMessage ? outMessage->bufferLength : 0;
unsigned char* out_msg = outMsgBuffer ? outMsgBuffer->buffer : NULL;
unsigned out_blr_length = outMsgBuffer ? outMsgBuffer->getBlrLength() : 0;
const unsigned char* out_blr = outMsgBuffer ? outMsgBuffer->getBlr() : NULL;
unsigned out_msg_length = outMsgBuffer ? outMsgBuffer->getBufferLength() : 0;
unsigned char* out_msg = outMsgBuffer ? outMsgBuffer->getBuffer() : NULL;
DSQL_execute_immediate(tdbb, this, &tra, length, string, dialect,
in_blr_length, in_blr,
@ -4279,7 +4275,7 @@ Firebird::ITransaction* Attachment::execute(IStatus* user_status, Firebird::ITra
}
int dsql_req::fetch(IStatus* user_status, const MessageBuffer* msgBuffer)
int dsql_req::fetch(IStatus* user_status, const IBlrMessage* msgBuffer)
{
int return_code = 0;
@ -4293,11 +4289,10 @@ int dsql_req::fetch(IStatus* user_status, const MessageBuffer* msgBuffer)
try
{
const Message* bufMessage = msgBuffer ? msgBuffer->message : NULL;
unsigned blr_length = bufMessage ? bufMessage->blrLength : 0;
const unsigned char* blr = bufMessage ? bufMessage->blr : NULL;
unsigned msg_length = bufMessage ? bufMessage->bufferLength : 0;
unsigned char* msg = msgBuffer ? msgBuffer->buffer : NULL;
unsigned blr_length = msgBuffer ? msgBuffer->getBlrLength() : 0;
const unsigned char* blr = msgBuffer ? msgBuffer->getBlr() : NULL;
unsigned msg_length = msgBuffer ? msgBuffer->getBufferLength() : 0;
unsigned char* msg = msgBuffer ? msgBuffer->getBuffer() : NULL;
return_code = DSQL_fetch(tdbb, this, blr_length, blr,
/*msg_type,*/ msg_length, msg);
@ -4350,7 +4345,7 @@ void dsql_req::free(IStatus* user_status, unsigned int option)
}
void dsql_req::insert(IStatus* user_status, const MessageBuffer* msgBuffer)
void dsql_req::insert(IStatus* user_status, const IBlrMessage* msgBuffer)
{
try
{
@ -4362,11 +4357,10 @@ void dsql_req::insert(IStatus* user_status, const MessageBuffer* msgBuffer)
try
{
const Message* bufMessage = msgBuffer ? msgBuffer->message : NULL;
unsigned blr_length = bufMessage ? bufMessage->blrLength : 0;
const unsigned char* blr = bufMessage ? bufMessage->blr : NULL;
unsigned msg_length = bufMessage ? bufMessage->bufferLength : 0;
unsigned char* msg = msgBuffer ? msgBuffer->buffer : NULL;
unsigned blr_length = msgBuffer ? msgBuffer->getBlrLength() : 0;
const unsigned char* blr = msgBuffer ? msgBuffer->getBlr() : NULL;
unsigned msg_length = msgBuffer ? msgBuffer->getBufferLength() : 0;
unsigned char* msg = msgBuffer ? msgBuffer->getBuffer() : NULL;
DSQL_insert(tdbb, this, blr_length, blr, msg_length, msg);
}

View File

@ -234,10 +234,10 @@ public:
unsigned int bufferLength, unsigned char* buffer);
virtual void FB_CARG setCursorName(IStatus* status, const char* name, unsigned int type);
virtual Firebird::ITransaction* FB_CARG execute(IStatus* status, Firebird::ITransaction* tra,
unsigned int in_msg_type, const MessageBuffer* inMsgBuffer,
const MessageBuffer* outMsgBuffer);
virtual int FB_CARG fetch(IStatus* status, const MessageBuffer* msgBuffer); // returns 100 if EOF, 101 if fragmented
virtual void FB_CARG insert(IStatus* status, const MessageBuffer* msgBuffer);
unsigned int in_msg_type, const IBlrMessage* inMsgBuffer,
const IBlrMessage* outMsgBuffer);
virtual int FB_CARG fetch(IStatus* status, const IBlrMessage* msgBuffer); // returns 100 if EOF, 101 if fragmented
virtual void FB_CARG insert(IStatus* status, const IBlrMessage* msgBuffer);
virtual void FB_CARG free(IStatus* status, unsigned int option);
public:
@ -369,8 +369,8 @@ public:
const unsigned char* dyn);
virtual Firebird::ITransaction* FB_CARG execute(IStatus* status, Firebird::ITransaction* transaction,
unsigned int length, const char* string, unsigned int dialect,
unsigned int in_msg_type, const MessageBuffer* inMsgBuffer,
const MessageBuffer* outMsgBuffer);
unsigned int in_msg_type, const IBlrMessage* inMsgBuffer,
const IBlrMessage* outMsgBuffer);
virtual Firebird::IEvents* FB_CARG queEvents(IStatus* status, Firebird::IEventCallback* callback,
unsigned int length, const unsigned char* events);
virtual void FB_CARG cancelOperation(IStatus* status, int option);
@ -1482,8 +1482,8 @@ Firebird::IStatement* Attachment::allocateStatement(IStatus* status)
Firebird::ITransaction* Statement::execute(IStatus* status, Firebird::ITransaction* apiTra,
unsigned int in_msg_type, const MessageBuffer* inMsgBuffer,
const MessageBuffer* outMsgBuffer)
unsigned int in_msg_type, const IBlrMessage* inMsgBuffer,
const IBlrMessage* outMsgBuffer)
{
/**************************************
*
@ -1507,17 +1507,15 @@ Firebird::ITransaction* Statement::execute(IStatus* status, Firebird::ITransacti
Rdb* rdb = statement->rsr_rdb;
CHECK_HANDLE(rdb, isc_bad_db_handle);
const Message* inMessage = inMsgBuffer ? inMsgBuffer->message : NULL;
unsigned in_blr_length = inMessage ? inMessage->blrLength : 0;
const unsigned char* in_blr = inMessage ? inMessage->blr : NULL;
unsigned in_msg_length = inMessage ? inMessage->bufferLength : 0;
unsigned char* in_msg = inMsgBuffer ? inMsgBuffer->buffer : NULL;
unsigned in_blr_length = inMsgBuffer ? inMsgBuffer->getBlrLength() : 0;
const unsigned char* in_blr = inMsgBuffer ? inMsgBuffer->getBlr() : NULL;
unsigned in_msg_length = inMsgBuffer ? inMsgBuffer->getBufferLength() : 0;
unsigned char* in_msg = inMsgBuffer ? inMsgBuffer->getBuffer() : NULL;
const Message* outMessage = outMsgBuffer ? outMsgBuffer->message : NULL;
unsigned out_blr_length = outMessage ? outMessage->blrLength : 0;
const unsigned char* out_blr = outMessage ? outMessage->blr : NULL;
unsigned out_msg_length = outMessage ? outMessage->bufferLength : 0;
unsigned char* out_msg = outMsgBuffer ? outMsgBuffer->buffer : NULL;
unsigned out_blr_length = outMsgBuffer ? outMsgBuffer->getBlrLength() : 0;
const unsigned char* out_blr = outMsgBuffer ? outMsgBuffer->getBlr() : NULL;
unsigned out_msg_length = outMsgBuffer ? outMsgBuffer->getBufferLength() : 0;
unsigned char* out_msg = outMsgBuffer ? outMsgBuffer->getBuffer() : NULL;
rem_port* port = rdb->rdb_port;
RefMutexGuard portGuard(*port->port_sync);
@ -1679,8 +1677,8 @@ Firebird::ITransaction* Statement::execute(IStatus* status, Firebird::ITransacti
Firebird::ITransaction* Attachment::execute(IStatus* status, Firebird::ITransaction* apiTra,
unsigned int length, const char* string, unsigned int dialect,
unsigned int in_msg_type, const MessageBuffer* inMsgBuffer,
const MessageBuffer* outMsgBuffer)
unsigned int in_msg_type, const IBlrMessage* inMsgBuffer,
const IBlrMessage* outMsgBuffer)
{
/**************************************
*
@ -1701,17 +1699,15 @@ Firebird::ITransaction* Attachment::execute(IStatus* status, Firebird::ITransact
rem_port* port = rdb->rdb_port;
RefMutexGuard portGuard(*port->port_sync);
const Message* inMessage = inMsgBuffer ? inMsgBuffer->message : NULL;
unsigned in_blr_length = inMessage ? inMessage->blrLength : 0;
const unsigned char* in_blr = inMessage ? inMessage->blr : NULL;
unsigned in_msg_length = inMessage ? inMessage->bufferLength : 0;
unsigned char* in_msg = inMsgBuffer ? inMsgBuffer->buffer : NULL;
unsigned in_blr_length = inMsgBuffer ? inMsgBuffer->getBlrLength() : 0;
const unsigned char* in_blr = inMsgBuffer ? inMsgBuffer->getBlr() : NULL;
unsigned in_msg_length = inMsgBuffer ? inMsgBuffer->getBufferLength() : 0;
unsigned char* in_msg = inMsgBuffer ? inMsgBuffer->getBuffer() : NULL;
const Message* outMessage = outMsgBuffer ? outMsgBuffer->message : NULL;
unsigned out_blr_length = outMessage ? outMessage->blrLength : 0;
const unsigned char* out_blr = outMessage ? outMessage->blr : NULL;
unsigned out_msg_length = outMessage ? outMessage->bufferLength : 0;
unsigned char* out_msg = outMsgBuffer ? outMsgBuffer->buffer : NULL;
unsigned out_blr_length = outMsgBuffer ? outMsgBuffer->getBlrLength() : 0;
const unsigned char* out_blr = outMsgBuffer ? outMsgBuffer->getBlr() : NULL;
unsigned out_msg_length = outMsgBuffer ? outMsgBuffer->getBufferLength() : 0;
unsigned char* out_msg = outMsgBuffer ? outMsgBuffer->getBuffer() : NULL;
Rtr* transaction = NULL;
if (apiTra)
@ -1866,7 +1862,7 @@ Firebird::ITransaction* Attachment::execute(IStatus* status, Firebird::ITransact
}
int Statement::fetch(IStatus* status, const MessageBuffer* msgBuffer)
int Statement::fetch(IStatus* status, const IBlrMessage* msgBuffer)
{
/**************************************
*
@ -1891,11 +1887,10 @@ int Statement::fetch(IStatus* status, const MessageBuffer* msgBuffer)
CHECK_HANDLE(rdb, isc_bad_db_handle);
rem_port* port = rdb->rdb_port;
const Message* bufMessage = msgBuffer ? msgBuffer->message : NULL;
unsigned blr_length = bufMessage ? bufMessage->blrLength : 0;
const unsigned char* blr = bufMessage ? bufMessage->blr : NULL;
unsigned msg_length = bufMessage ? bufMessage->bufferLength : 0;
unsigned char* msg = msgBuffer ? msgBuffer->buffer : NULL;
unsigned blr_length = msgBuffer ? msgBuffer->getBlrLength() : 0;
const unsigned char* blr = msgBuffer ? msgBuffer->getBlr() : NULL;
unsigned msg_length = msgBuffer ? msgBuffer->getBufferLength() : 0;
unsigned char* msg = msgBuffer ? msgBuffer->getBuffer() : NULL;
RefMutexGuard portGuard(*port->port_sync);
@ -2215,7 +2210,7 @@ void Statement::free(IStatus* status, unsigned int option)
}
void Statement::insert(IStatus* status, const MessageBuffer* msgBuffer)
void Statement::insert(IStatus* status, const IBlrMessage* msgBuffer)
{
/**************************************
*
@ -2240,11 +2235,10 @@ void Statement::insert(IStatus* status, const MessageBuffer* msgBuffer)
CHECK_HANDLE(rdb, isc_bad_db_handle);
rem_port* port = rdb->rdb_port;
const Message* bufMessage = msgBuffer ? msgBuffer->message : NULL;
unsigned blr_length = bufMessage ? bufMessage->blrLength : 0;
const unsigned char* blr = bufMessage ? bufMessage->blr : NULL;
unsigned msg_length = bufMessage ? bufMessage->bufferLength : 0;
unsigned char* msg = msgBuffer ? msgBuffer->buffer : NULL;
unsigned blr_length = msgBuffer ? msgBuffer->getBlrLength() : 0;
const unsigned char* blr = msgBuffer ? msgBuffer->getBlr() : NULL;
unsigned msg_length = msgBuffer ? msgBuffer->getBufferLength() : 0;
unsigned char* msg = msgBuffer ? msgBuffer->getBuffer() : NULL;
RefMutexGuard portGuard(*port->port_sync);

View File

@ -994,10 +994,10 @@ namespace
const unsigned char* items, unsigned int bufferLength, unsigned char* buffer);
virtual void FB_CARG setCursorName(IStatus* status, const char* name, unsigned int type);
virtual YTransaction* FB_CARG execute(IStatus* status, ITransaction* transaction,
unsigned int inMsgType, const MessageBuffer* inMsgBuffer,
const MessageBuffer* outMsgBuffer);
virtual int FB_CARG fetch(IStatus* status, const MessageBuffer* msgBuffer);
virtual void FB_CARG insert(IStatus* status, const MessageBuffer* msgBuffer);
unsigned int inMsgType, const IBlrMessage* inMsgBuffer,
const IBlrMessage* outMsgBuffer);
virtual int FB_CARG fetch(IStatus* status, const IBlrMessage* msgBuffer);
virtual void FB_CARG insert(IStatus* status, const IBlrMessage* msgBuffer);
virtual void FB_CARG free(IStatus* status, unsigned int option);
public:
@ -1081,7 +1081,7 @@ namespace
const unsigned char* dyn);
virtual YTransaction* FB_CARG execute(IStatus* status, ITransaction* transaction,
unsigned int length, const char* string, unsigned int dialect, unsigned int inMsgType,
const MessageBuffer* inMsgBuffer, const MessageBuffer* outMsgBuffer);
const IBlrMessage* inMsgBuffer, const IBlrMessage* outMsgBuffer);
virtual YEvents* FB_CARG queEvents(IStatus* status, IEventCallback* callback,
unsigned int length, const unsigned char* eventsData);
virtual void FB_CARG cancelOperation(IStatus* status, int option);
@ -2156,10 +2156,10 @@ ISC_STATUS API_ROUTINE isc_dsql_execute2_m(ISC_STATUS* userStatus, FB_API_HANDLE
if (traHandle && *traHandle)
transaction = translateHandle(transactions, traHandle);
Message inMessage(inBlrLength, reinterpret_cast<const unsigned char*>(inBlr), inMsgLength);
MessageBuffer inMsgBuffer(&inMessage, reinterpret_cast<UCHAR*>(const_cast<SCHAR*>(inMsg)));
Message outMessage(outBlrLength, reinterpret_cast<unsigned char*>(outBlr), outMsgLength);
MessageBuffer outMsgBuffer(&outMessage, reinterpret_cast<unsigned char*>(outMsg));
BlrMessage inMessage(inBlrLength, reinterpret_cast<const unsigned char*>(inBlr), inMsgLength);
BlrMessageBuffer inMsgBuffer(&inMessage, reinterpret_cast<UCHAR*>(const_cast<SCHAR*>(inMsg)));
BlrMessage outMessage(outBlrLength, reinterpret_cast<unsigned char*>(outBlr), outMsgLength);
BlrMessageBuffer outMsgBuffer(&outMessage, reinterpret_cast<unsigned char*>(outMsg));
YTransaction* newTrans = statement->execute(&status, transaction, inMsgType,
&inMsgBuffer, &outMsgBuffer);
@ -2374,10 +2374,10 @@ ISC_STATUS API_ROUTINE isc_dsql_exec_immed3_m(ISC_STATUS* userStatus, FB_API_HAN
if (traHandle && *traHandle)
transaction = translateHandle(transactions, traHandle);
Message inMessage(inBlrLength, reinterpret_cast<const unsigned char*>(inBlr), inMsgLength);
MessageBuffer inMsgBuffer(&inMessage, reinterpret_cast<UCHAR*>(const_cast<SCHAR*>(inMsg)));
Message outMessage(outBlrLength, reinterpret_cast<unsigned char*>(outBlr), outMsgLength);
MessageBuffer outMsgBuffer(&outMessage, reinterpret_cast<unsigned char*>(outMsg));
BlrMessage inMessage(inBlrLength, reinterpret_cast<const unsigned char*>(inBlr), inMsgLength);
BlrMessageBuffer inMsgBuffer(&inMessage, reinterpret_cast<UCHAR*>(const_cast<SCHAR*>(inMsg)));
BlrMessage outMessage(outBlrLength, reinterpret_cast<unsigned char*>(outBlr), outMsgLength);
BlrMessageBuffer outMsgBuffer(&outMessage, reinterpret_cast<unsigned char*>(outMsg));
YTransaction* newTrans = attachment->execute(&status, transaction, stmtLength, sqlStmt,
dialect, inMsgType, &inMsgBuffer, &outMsgBuffer);
@ -2458,8 +2458,8 @@ ISC_STATUS API_ROUTINE isc_dsql_fetch_m(ISC_STATUS* userStatus, FB_API_HANDLE* s
{
RefPtr<YStatement> statement(translateHandle(statements, stmtHandle));
Message message(blrLength, reinterpret_cast<UCHAR*>(blr), msgLength);
MessageBuffer msgBuffer(&message, reinterpret_cast<UCHAR*>(msg));
BlrMessage message(blrLength, reinterpret_cast<UCHAR*>(blr), msgLength);
BlrMessageBuffer msgBuffer(&message, reinterpret_cast<UCHAR*>(msg));
int s = statement->fetch(&status, &msgBuffer);
@ -2542,8 +2542,8 @@ ISC_STATUS API_ROUTINE isc_dsql_insert_m(ISC_STATUS* userStatus, FB_API_HANDLE*
{
RefPtr<YStatement> statement(translateHandle(statements, stmtHandle));
Message message(blrLength, reinterpret_cast<const unsigned char*>(blr), msgLength);
MessageBuffer msgBuffer(&message, reinterpret_cast<UCHAR*>(const_cast<SCHAR*>(msg)));
BlrMessage message(blrLength, reinterpret_cast<const unsigned char*>(blr), msgLength);
BlrMessageBuffer msgBuffer(&message, reinterpret_cast<UCHAR*>(const_cast<SCHAR*>(msg)));
statement->insert(&status, &msgBuffer);
}
@ -3994,8 +3994,8 @@ void YStatement::setCursorName(IStatus* status, const char* name, unsigned int t
}
YTransaction* YStatement::execute(IStatus* status, ITransaction* transaction,
unsigned int inMsgType, const MessageBuffer* inMsgBuffer,
const MessageBuffer* outMsgBuffer)
unsigned int inMsgType, const IBlrMessage* inMsgBuffer,
const IBlrMessage* outMsgBuffer)
{
try
{
@ -4022,7 +4022,7 @@ YTransaction* YStatement::execute(IStatus* status, ITransaction* transaction,
return NULL;
}
int YStatement::fetch(IStatus* status, const MessageBuffer* msgBuffer)
int YStatement::fetch(IStatus* status, const IBlrMessage* msgBuffer)
{
try
{
@ -4037,7 +4037,7 @@ int YStatement::fetch(IStatus* status, const MessageBuffer* msgBuffer)
return status->get()[1];
}
void YStatement::insert(IStatus* status, const MessageBuffer* msgBuffer)
void YStatement::insert(IStatus* status, const IBlrMessage* msgBuffer)
{
try
{
@ -4714,7 +4714,7 @@ void YAttachment::ddl(IStatus* status, ITransaction* transaction, unsigned int l
YTransaction* YAttachment::execute(IStatus* status, ITransaction* transaction,
unsigned int length, const char* string, unsigned int dialect, unsigned int inMsgType,
const MessageBuffer* inMsgBuffer, const MessageBuffer* outMsgBuffer)
const IBlrMessage* inMsgBuffer, const IBlrMessage* outMsgBuffer)
{
try
{