home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / c / c082_122 / 2.ddi / TVINC.ZIP / BUFFERS.H < prev    next >
Encoding:
C/C++ Source or Header  |  1992-06-10  |  2.0 KB  |  77 lines

  1. /* ------------------------------------------------------------------------*/
  2. /*                                                                         */
  3. /*   BUFFERS.H                                                             */
  4. /*                                                                         */
  5. /*   Copyright (c) Borland International 1991                              */
  6. /*   All Rights Reserved.                                                  */
  7. /*                                                                         */
  8. /*   defines the functions getBufMem() and freeBufMem() for use            */
  9. /*   in allocating and freeing viedo buffers                               */
  10. /*                                                                         */
  11. /* ------------------------------------------------------------------------*/
  12.  
  13. #pragma option -Vo-
  14. #if defined( __BCOPT__ )
  15. #pragma option -po-
  16. #endif
  17.  
  18. #if defined( Uses_TVMemMgr ) && !defined( __TVMemMgr )
  19. #define __TVMemMgr
  20.  
  21. const DEFAULT_SAFETY_POOL_SIZE = 4096;
  22.  
  23. class TBufListEntry
  24. {
  25.  
  26. private:
  27.  
  28.     TBufListEntry( void*& );
  29.     ~TBufListEntry();
  30.  
  31.     void *operator new( size_t, size_t );
  32.     void *operator new( size_t );
  33.     void operator delete( void * );
  34.  
  35.     TBufListEntry *next;
  36.     TBufListEntry *prev;
  37.     void*& owner;
  38.  
  39.     static TBufListEntry *near bufList;
  40.     static Boolean freeHead();
  41.  
  42.     friend class TVMemMgr;
  43.     friend void *operator new( size_t );
  44.  
  45. };
  46.  
  47. class TVMemMgr
  48. {
  49.  
  50. public:
  51.  
  52.     TVMemMgr();
  53.  
  54.     static void resizeSafetyPool( size_t = DEFAULT_SAFETY_POOL_SIZE );
  55.     static int safetyPoolExhausted();
  56.  
  57.     static void allocateDiscardable( void *&, size_t );
  58.     static void freeDiscardable( void * );
  59.  
  60. private:
  61.  
  62.     static void * near safetyPool;
  63.     static size_t near safetyPoolSize;
  64.     static int near inited;
  65.     static int initMemMgr();
  66.  
  67. };
  68.  
  69. #endif  // Uses_TVMemMgr
  70.  
  71. #pragma option -Vo.
  72. #if defined( __BCOPT__ )
  73. #pragma option -po.
  74. #endif
  75.  
  76.  
  77.