X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/8c6fa3fbaccc22127280bf77a48fab5a3ee0716e..46b0747592074017ff0ea4b33d4a7194235886e5:/stglibs/ibpp.lib/_spb.cpp diff --git a/stglibs/ibpp.lib/_spb.cpp b/stglibs/ibpp.lib/_spb.cpp deleted file mode 100644 index 632a0209..00000000 --- a/stglibs/ibpp.lib/_spb.cpp +++ /dev/null @@ -1,135 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// -// File : $Id: _spb.cpp,v 1.2 2009/03/19 20:00:27 faust Exp $ -// Subject : IBPP, internal SPB class implementation -// -/////////////////////////////////////////////////////////////////////////////// -// -// (C) Copyright 2000-2006 T.I.P. Group S.A. and the IBPP Team (www.ibpp.org) -// -// The contents of this file are subject to the IBPP License (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.ibpp.org or in the 'license.txt' -// file which must have been distributed along with this file. -// -// This 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. -// -/////////////////////////////////////////////////////////////////////////////// -// -// COMMENTS -// * SPB == Service Parameter Block/Buffer, see Interbase 6.0 C-API -// * Tabulations should be set every four characters when editing this file. -// -/////////////////////////////////////////////////////////////////////////////// - -#ifdef _MSC_VER -#pragma warning(disable: 4786 4996) -#ifndef _DEBUG -#pragma warning(disable: 4702) -#endif -#endif - -#include "_ibpp.h" - -#ifdef HAS_HDRSTOP -#pragma hdrstop -#endif - -#include - -using namespace ibpp_internals; - -const int SPB::BUFFERINCR = 128; - -void SPB::Grow(int needed) -{ - if ((mSize + needed) > mAlloc) - { - // We need to grow the buffer. We use increments of BUFFERINCR bytes. - needed = (needed / BUFFERINCR + 1) * BUFFERINCR; - char* newbuffer = new char[mAlloc + needed]; - if (mBuffer != 0) - { - // Move the old buffer content to the new one - memcpy(newbuffer, mBuffer, mSize); - delete [] mBuffer; - } - mBuffer = newbuffer; - mAlloc += needed; - } -} - -void SPB::Insert(char opcode) -{ - Grow(1); - mBuffer[mSize++] = opcode; -} - -void SPB::InsertString(char type, int lenwidth, const char* data) -{ - int16_t len = (int16_t)strlen(data); - - Grow(1 + lenwidth + len); - mBuffer[mSize++] = type; - switch (lenwidth) - { - case 1 : mBuffer[mSize] = char(len); mSize++; break; - case 2 : *(int16_t*)&mBuffer[mSize] = int16_t((*gds.Call()->m_vax_integer)((char*)&len, 2)); - mSize += 2; break; - default : throw LogicExceptionImpl("IISPB::IISPB", _("Invalid length parameter")); - } - strncpy(&mBuffer[mSize], data, len); - mSize += len; -} - -void SPB::InsertByte(char type, char data) -{ - Grow(1 + 1); - mBuffer[mSize++] = type; - mBuffer[mSize++] = data; -} - -void SPB::InsertQuad(char type, int32_t data) -{ - Grow(1 + 4); - mBuffer[mSize++] = type; - *(int32_t*)&mBuffer[mSize] = int32_t((*gds.Call()->m_vax_integer)((char*)&data, 4)); - mSize += 4; -} - -void SPB::Reset() -{ - if (mBuffer != 0) - { - delete [] mBuffer; - mBuffer = 0; - mSize = 0; - mAlloc = 0; - } -} - -/* -void SPB::Insert(char type, short data) -{ - Grow(1 + 3); - mBuffer[mSize++] = type; - mBuffer[mSize++] = char(2); - *(short*)&mBuffer[mSize] = data; - mSize += 2; -} - -void SPB::Insert(char type, bool data) -{ - Grow(1 + 2); - mBuffer[mSize++] = type; - mBuffer[mSize++] = char(1); - mBuffer[mSize++] = char(data ? 1 : 0); -} -*/ - -// -// EOF -//