home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / tv20cpp.zip / tvision / buffers.h < prev    next >
C/C++ Source or Header  |  1998-01-19  |  1KB  |  71 lines

  1. /*
  2.  * buffers.h
  3.  *
  4.  * Turbo Vision - Version 2.0
  5.  *
  6.  * Copyright (c) 1994 by Borland International
  7.  * All Rights Reserved.
  8.  *
  9.  * Modified by Sergio Sigala <ssigala@globalnet.it>
  10.  */
  11.  
  12. #if defined( Uses_TVMemMgr ) && !defined( __TVMemMgr )
  13. #define __TVMemMgr
  14.  
  15. const DEFAULT_SAFETY_POOL_SIZE = 4096;
  16.  
  17. class TBufListEntry
  18. {
  19.  
  20. private:
  21.  
  22.     TBufListEntry( void*& );
  23.     ~TBufListEntry();
  24.  
  25.     void *operator new( size_t, size_t );
  26.     void *operator new( size_t );
  27.     void operator delete( void * );
  28.  
  29.     TBufListEntry *next;
  30.     TBufListEntry *prev;
  31.     void*& owner;
  32.  
  33.     static TBufListEntry *bufList;
  34.     static Boolean freeHead();
  35.  
  36.     friend class TVMemMgr;
  37.     friend void *operator new( size_t );
  38.     friend void * allocBlock( size_t );
  39.  
  40. };
  41.  
  42. class TVMemMgr
  43. {
  44.  
  45. public:
  46.  
  47.     TVMemMgr();
  48.  
  49.     static void resizeSafetyPool( size_t = DEFAULT_SAFETY_POOL_SIZE );
  50.     static int safetyPoolExhausted();
  51. #ifndef __UNPATCHED
  52.     static void clearSafetyPool();
  53. #endif
  54.  
  55.     static void allocateDiscardable( void *&, size_t );
  56.     static void freeDiscardable( void * );
  57. #ifndef __UNPATCHED
  58.     static void suspend(void);
  59. #endif
  60.  
  61. private:
  62.  
  63.     static void * safetyPool;
  64.     static size_t safetyPoolSize;
  65.     static int inited;
  66.     static int initMemMgr();
  67.  
  68. };
  69.  
  70. #endif  // Uses_TVMemMgr
  71.