home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 July: Mac OS SDK / Dev.CD Jul 96 SDK / Dev.CD Jul 96 SDK1.toast / Development Kits (Disc 1) / OpenDoc Development Framework / ODFDev / ODF / OS / FWODMisc / Include / FWBArray.h < prev    next >
Encoding:
Text File  |  1996-04-25  |  3.4 KB  |  119 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:                FWBArray.h
  4. //    Release Version:    $ ODF 1 $
  5. //
  6. //    Copyright:    (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
  7. //
  8. //========================================================================================
  9.  
  10. #ifndef FWBARRAY_H
  11. #define FWBARRAY_H
  12.  
  13. #ifndef FWODTYPS_H
  14. #include "FWODTyps.h"
  15. #endif
  16.  
  17. #ifndef FWEXCLIB_H
  18. #include "FWExcLib.h"
  19. #endif
  20.  
  21. //========================================================================================
  22. //    class FW_CByteArray
  23. //========================================================================================
  24.  
  25. class FW_CByteArray : public ODByteArray
  26. {
  27. //----------------------------------------------------------------------------------------
  28. //    Constructor(s)/Destructor
  29. //
  30. public:
  31.     FW_DECLARE_AUTO(FW_CByteArray)
  32.  
  33.     FW_CByteArray();
  34.     FW_CByteArray(void* buffer, unsigned long byteCount);
  35.     FW_CByteArray(const void* buffer, unsigned long byteCount);
  36.     FW_CByteArray(unsigned long byteCount);
  37.     
  38.     ~FW_CByteArray();
  39.     
  40. //----------------------------------------------------------------------------------------
  41. //    operator(s)
  42. //
  43. public:
  44.     operator ODByteArray*();
  45.  
  46. //----------------------------------------------------------------------------------------
  47. //    New API
  48. //
  49. public:
  50.     void*            GetBuffer() const;
  51.     unsigned long     GetBufferMaximum() const;
  52.     unsigned long     GetBufferLength() const;
  53.     
  54.     void            Set(void* buffer, unsigned long byteCount);
  55.  
  56.     unsigned long     CopyBuffer(void *buffer, unsigned long byteCount);
  57.     void            Clear();
  58.     
  59. private:
  60.     void            PrivDisposeByteArray();
  61.  
  62. //----------------------------------------------------------------------------------------
  63. //    Non-implemented
  64. //
  65. private:
  66.     FW_CByteArray(const FW_CByteArray& byteArray);
  67.     FW_CByteArray& operator=(const FW_CByteArray& byteArray);
  68.  
  69. //----------------------------------------------------------------------------------------
  70. //    Data Member
  71. //
  72. private:
  73.     FW_Boolean        fOwnBuffer;
  74.     unsigned long    fOffset;  // allows CopyBuffer to be used piecemeal
  75. };
  76.  
  77. //----------------------------------------------------------------------------------------
  78. //    operator ODByteArray*
  79. //----------------------------------------------------------------------------------------
  80. inline FW_CByteArray::operator ODByteArray*()
  81. {
  82.     return this;
  83. }
  84.  
  85. //----------------------------------------------------------------------------------------
  86. //    FW_CByteArray::GetBuffer
  87. //----------------------------------------------------------------------------------------
  88. inline void* FW_CByteArray::GetBuffer() const
  89. {
  90.     return _buffer;
  91. }
  92.  
  93. //----------------------------------------------------------------------------------------
  94. //    FW_CByteArray::GetBufferMaximum
  95. //----------------------------------------------------------------------------------------
  96. inline unsigned long FW_CByteArray::GetBufferMaximum() const
  97. {
  98.     return _maximum;
  99. }
  100.  
  101. //----------------------------------------------------------------------------------------
  102. //    FW_CByteArray::GetBufferLength
  103. //----------------------------------------------------------------------------------------
  104. inline unsigned long FW_CByteArray::GetBufferLength() const
  105. {
  106.     return _length;
  107. }
  108.  
  109. //----------------------------------------------------------------------------------------
  110. //    FW_CByteArray::Clear
  111. //----------------------------------------------------------------------------------------
  112. inline void FW_CByteArray::Clear()
  113. {
  114.     PrivDisposeByteArray();
  115. }
  116.  
  117. #endif
  118.  
  119.