mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
5f64276fb2
modified: storage/connect/array.cpp modified: storage/connect/blkfil.cpp modified: storage/connect/block.h modified: storage/connect/bson.cpp modified: storage/connect/cmgoconn.cpp modified: storage/connect/colblk.cpp modified: storage/connect/domdoc.cpp modified: storage/connect/filamap.cpp modified: storage/connect/filamdbf.cpp modified: storage/connect/filamfix.cpp modified: storage/connect/filamgz.cpp modified: storage/connect/filamtxt.cpp modified: storage/connect/filamvct.cpp modified: storage/connect/filamzip.cpp modified: storage/connect/filter.cpp modified: storage/connect/filter.h modified: storage/connect/fmdlex.c modified: storage/connect/global.h modified: storage/connect/ha_connect.cc modified: storage/connect/javaconn.cpp modified: storage/connect/javaconn.h modified: storage/connect/jdbconn.cpp modified: storage/connect/jmgfam.cpp modified: storage/connect/json.cpp modified: storage/connect/macutil.cpp modified: storage/connect/macutil.h modified: storage/connect/maputil.cpp modified: storage/connect/mycat.cc modified: storage/connect/myconn.cpp modified: storage/connect/myconn.h modified: storage/connect/myutil.cpp modified: storage/connect/odbconn.cpp modified: storage/connect/odbconn.h modified: storage/connect/os.h modified: storage/connect/osutil.c modified: storage/connect/plgdbsem.h modified: storage/connect/plgdbutl.cpp modified: storage/connect/plugutil.cpp modified: storage/connect/rcmsg.c modified: storage/connect/reldef.cpp modified: storage/connect/reldef.h modified: storage/connect/tabdos.cpp modified: storage/connect/tabext.cpp modified: storage/connect/tabfix.cpp modified: storage/connect/tabfmt.cpp modified: storage/connect/tabjdbc.cpp modified: storage/connect/tabmac.cpp modified: storage/connect/tabmac.h modified: storage/connect/tabmul.cpp modified: storage/connect/tabmul.h modified: storage/connect/tabmysql.cpp modified: storage/connect/taboccur.cpp modified: storage/connect/tabodbc.cpp modified: storage/connect/tabpivot.cpp modified: storage/connect/tabrest.cpp modified: storage/connect/tabrest.h modified: storage/connect/tabsys.cpp modified: storage/connect/tabtbl.cpp modified: storage/connect/tabutil.cpp modified: storage/connect/tabvct.cpp modified: storage/connect/tabwmi.cpp modified: storage/connect/tabxcl.cpp modified: storage/connect/tabxml.cpp modified: storage/connect/valblk.cpp modified: storage/connect/value.cpp modified: storage/connect/xindex.cpp modified: storage/connect/xindex.h - Fix Date errors and SSL warnings modified: storage/connect/mysql-test/connect/r/jdbc.result modified: storage/connect/mysql-test/connect/r/jdbc_new.result modified: storage/connect/mysql-test/connect/t/jdbc.test modified: storage/connect/mysql-test/connect/t/jdbc_new.test - Update java source files modified: storage/connect/Mongo2Interface.java modified: storage/connect/Mongo3Interface.java added: storage/connect/Client2.java added: storage/connect/Client3.java added: storage/connect/TestInsert2.java added: storage/connect/TestInsert3.java
61 lines
2.8 KiB
C++
61 lines
2.8 KiB
C++
/**************** Block H Declares Source Code File (.H) ***************/
|
|
/* Name: BLOCK.H Version 2.1 */
|
|
/* */
|
|
/* (C) Copyright to the author Olivier BERTRAND 1998 - 2020 */
|
|
/* */
|
|
/* This file contains the BLOCK pure virtual class definition. */
|
|
/*---------------------------------------------------------------------*/
|
|
/* Note: one of the main purpose of this base class is to take care */
|
|
/* of the very specific way Connect handles memory allocation. */
|
|
/* Instead of allocating small chunks of storage via new or malloc */
|
|
/* Connect works in its private memory pool in which it does the sub- */
|
|
/* allocation using the function PlugSubAlloc. These are never freed */
|
|
/* separately but when a transaction is terminated, the entire pool */
|
|
/* is set to empty, resulting in a very fast and efficient allocate */
|
|
/* process, no garbage collection problem, and an automatic recovery */
|
|
/* procedure (via throw) when the memory is exhausted. */
|
|
/* For this to work new must be given two parameters, first the */
|
|
/* global pointer of the Plug application, and an optional pointer to */
|
|
/* the memory pool to use, defaulting to NULL meaning using the Plug */
|
|
/* standard default memory pool, example: */
|
|
/* tabp = new(g) XTAB("EMPLOYEE"); */
|
|
/* allocates a XTAB class object in the standard Plug memory pool. */
|
|
/***********************************************************************/
|
|
#if !defined(BLOCK_DEFINED)
|
|
#define BLOCK_DEFINED
|
|
|
|
#if defined(_WIN32) && !defined(NOEX)
|
|
#define DllExport __declspec( dllexport )
|
|
#else // !_WIN32
|
|
#define DllExport
|
|
#endif // !_WIN32
|
|
|
|
/***********************************************************************/
|
|
/* Definition of class BLOCK with its method function new. */
|
|
/***********************************************************************/
|
|
typedef class BLOCK *PBLOCK;
|
|
|
|
class DllExport BLOCK {
|
|
public:
|
|
void *operator new(size_t size, PGLOBAL g, void *mp = NULL) {
|
|
xtrc(256, "New BLOCK: size=%d g=%p p=%p\n", size, g, mp);
|
|
return PlugSubAlloc(g, mp, size);
|
|
} // end of new
|
|
|
|
void* operator new(size_t size, long long mp) {
|
|
xtrc(256, "Realloc at: mp=%lld\n", mp);
|
|
return (void*)mp;
|
|
} // end of new
|
|
|
|
virtual void Printf(PGLOBAL, FILE *, uint) {} // Produce file desc
|
|
virtual void Prints(PGLOBAL, char *, uint) {} // Produce string desc
|
|
|
|
// Avoid gcc errors by defining matching dummy delete operators
|
|
void operator delete(void*, PGLOBAL, void *) {}
|
|
void operator delete(void*, long long) {}
|
|
void operator delete(void*) {}
|
|
|
|
virtual ~BLOCK() {}
|
|
}; // end of class BLOCK
|
|
|
|
#endif // !BLOCK_DEFINED
|