Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/MariaDB/storage/connect/   (MariaDB Server Version 8.1-8.4©)  Datei vom 1.9.2026 mit Größe 2 kB image not shown  

Quelle  block.h   Sprache: 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() = default;
}; // end of class BLOCK

#endif   // !BLOCK_DEFINED

Messung V0.5 in Prozent
C=43 H=100 G=76

¤ Dauer der Verarbeitung: 0.9 Sekunden  (vorverarbeitet am  2026-10-08) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.