home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / opendc12.zip / od124os2.exe / od12osp1.exe / src / utils / ODMemory.h < prev    next >
C/C++ Source or Header  |  1997-04-02  |  4KB  |  119 lines

  1. /*====START_GENERATED_PROLOG======================================
  2.  */
  3. /*
  4.  *   COMPONENT_NAME: odsutils
  5.  *
  6.  *   CLASSES: none
  7.  *
  8.  *   ORIGINS: 82,27
  9.  *
  10.  *
  11.  *   (C) COPYRIGHT International Business Machines Corp. 1995,1996
  12.  *   All Rights Reserved
  13.  *   Licensed Materials - Property of IBM
  14.  *   US Government Users Restricted Rights - Use, duplication or
  15.  *   disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  16.  *       
  17.  *   IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
  18.  *   ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  19.  *   PURPOSE. IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  20.  *   CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
  21.  *   USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
  22.  *   OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
  23.  *   OR PERFORMANCE OF THIS SOFTWARE.
  24.  */
  25. /*====END_GENERATED_PROLOG========================================
  26.  */
  27. /* @(#)Z 1.7 com/src/samples/utils/ODMemory.h, odutilspart, od96os2, odos29712d 97/03/21 17:42:17 (96/10/30 23:28:42) */
  28. /*====START_GENERATED_PROLOG======================================
  29.  */
  30. /*
  31.  *       
  32.  *   IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
  33.  *   ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  34.  *   PURPOSE. IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  35.  *   CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
  36.  *   USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
  37.  *   OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
  38.  *   OR PERFORMANCE OF THIS SOFTWARE.
  39.  */
  40. /*====END_GENERATED_PROLOG========================================
  41.  */
  42. //====START_GENERATED_PROLOG======================================
  43. //
  44. //
  45. //       
  46. //   IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
  47. //   ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  48. //   PURPOSE. IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  49. //   CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
  50. //   USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
  51. //   OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
  52. //   OR PERFORMANCE OF THIS SOFTWARE.
  53. //
  54. //====END_GENERATED_PROLOG========================================
  55. #ifndef _ODMEMORY_
  56. #define _ODMEMORY_
  57.  
  58. #ifndef som_h
  59. #include <som.h>
  60. #endif
  61.  
  62. #ifndef _ODTYPES_
  63. #include <ODTypes.h>
  64. #endif
  65.  
  66. #include <ErrorDef.xh>
  67.  
  68. #ifndef _ODEXCEPT_
  69. #include <ODExcept.h>
  70. #endif
  71.  
  72.  
  73. //========================================================================================
  74. // Type definitions
  75. //========================================================================================
  76.  
  77. typedef ODULong ODBlockSize;
  78.  
  79. //========================================================================================
  80. // Operations on pointer based blocks
  81. //========================================================================================
  82.  
  83. inline void* ODNewPtr(ODBlockSize blockSize)
  84. {
  85.     void *blockPtr = SOMMalloc(blockSize);
  86.    if (!blockPtr)
  87.       THROW(kODErrOutOfMemory);
  88.  
  89.     return blockPtr;
  90. }
  91.  
  92. inline void* ODNewPtrClear(ODBlockSize blockSize)
  93. {
  94.     void *blockPtr = SOMMalloc(blockSize);
  95.    if (!blockPtr)
  96.       THROW(kODErrOutOfMemory);
  97.  
  98.     memset (blockPtr, '\0', blockSize);
  99.     return blockPtr;
  100. }
  101.  
  102. inline void ODDisposePtr(void *blockPtr)
  103. {
  104.     if (blockPtr)
  105.         SOMFree(blockPtr);
  106. }
  107.  
  108.  
  109. //========================================================================================
  110. // Utility functions
  111. //========================================================================================
  112.  
  113. inline void        ODBlockMove(const void *from, void *to, ODBlockSize blockSize)
  114. {
  115.     memcpy (to, from, blockSize);
  116. }
  117.  
  118. #endif /*_ODMEMORY_*/
  119.