home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 January: Mac OS SDK / Dev.CD Jan 97 SDK2.toast / Development Kits (Disc 2) / OpenDoc Development Framework / ODFDev / ODF / Found / FWString / FWStrs.cpp < prev    next >
Encoding:
Text File  |  1996-09-17  |  3.5 KB  |  118 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:                FWStrs.cpp
  4. //    Release Version:    $ ODF 2 $
  5. //
  6. //    Copyright:    (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
  7. //
  8. //========================================================================================
  9.  
  10. #include "FWFound.hpp"
  11.  
  12. #ifdef FW_BUILD_MAC
  13. #include <Types.h>
  14. #endif
  15.  
  16. #ifndef FWEXCLIB_H
  17. #include "FWExcLib.h"
  18. #endif
  19.  
  20. #ifndef FWSTRS_H
  21. #include "FWStrs.h"
  22. #endif
  23.  
  24. #ifndef FWPRIDEB_H
  25. #include "FWPriDeb.h"
  26. #endif
  27.  
  28. #ifndef FWSTREAM_H
  29. #include "FWStream.h"
  30. #endif
  31.  
  32. #ifndef SOM_FW_OStringRunWriter_xh
  33. #include "SLStrRun.xh"
  34. #endif
  35.  
  36. #ifndef FWEXCEPT_H
  37. #include "FWExcept.h"
  38. #endif
  39.  
  40. #ifdef FW_BUILD_MAC
  41. #pragma segment Strings
  42. #endif
  43.  
  44. //========================================================================================
  45. //    CLASS FW_CStringReader
  46. //========================================================================================
  47.  
  48. FW_DEFINE_AUTO(FW_CStringReader)
  49.  
  50. //----------------------------------------------------------------------------------------
  51. //    FW_CStringReader::FW_CStringReader
  52. //----------------------------------------------------------------------------------------
  53.  
  54. FW_CStringReader::FW_CStringReader(const FW_CString& string) :
  55.     FW_CTextReader(FW_CMemoryReader::MakeReader((char*)string.RevealBuffer(), string.GetByteLength(), string.RevealLocale()))
  56. {
  57.     FW_END_CONSTRUCTOR
  58. }
  59.  
  60. //----------------------------------------------------------------------------------------
  61. //    FW_CStringReader::FW_CStringReader
  62. //----------------------------------------------------------------------------------------
  63.  
  64. FW_CStringReader::FW_CStringReader(    const FW_CString &string,
  65.                                     FW_BytePosition start,
  66.                                     FW_ByteCount length) :
  67.     FW_CTextReader(FW_CMemoryReader::MakeReader((char*)string.RevealBuffer()+start, length, string.RevealLocale()))
  68. {
  69.     FW_END_CONSTRUCTOR
  70. }
  71.  
  72. //----------------------------------------------------------------------------------------
  73. //    FW_CStringReader::FW_CStringReader
  74. //----------------------------------------------------------------------------------------
  75.  
  76. FW_CStringReader::~FW_CStringReader()
  77. {
  78.     FW_START_DESTRUCTOR
  79. }
  80.  
  81. //========================================================================================
  82. //    CLASS FW_CStringWriter
  83. //========================================================================================
  84.  
  85. FW_DEFINE_AUTO(FW_CStringWriter)
  86.  
  87. //----------------------------------------------------------------------------------------
  88. //    FW_CStringWriter::MakeWriter
  89. //----------------------------------------------------------------------------------------
  90.  
  91. inline FW_OStringRunWriter* FW_MakeOStringWriter(FW_HString stringRep, short bufferSize)
  92. {
  93.     return (new FW_OStringRunWriter())->Initialize(FW_SOMEnvironment(), stringRep, bufferSize);
  94. }
  95.  
  96. //----------------------------------------------------------------------------------------
  97. //    FW_CStringWriter::FW_CStringWriter
  98. //----------------------------------------------------------------------------------------
  99.  
  100. FW_CStringWriter::FW_CStringWriter(FW_HString* stringRep, short bufferSize) : 
  101.     FW_CTextWriter(FW_MakeOStringWriter(*stringRep, bufferSize)),
  102.     fLock(*stringRep)
  103. {
  104.     SetBufferSum(fLock.GetByteLength());
  105.     FW_END_CONSTRUCTOR
  106. }
  107.  
  108. //----------------------------------------------------------------------------------------
  109. //    FW_CStringWriter::~FW_CStringWriter
  110. //----------------------------------------------------------------------------------------
  111.  
  112. FW_CStringWriter::~FW_CStringWriter()
  113. {
  114.     FW_START_DESTRUCTOR
  115.     FlushBuffer();
  116. }
  117.  
  118.