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 / SLCharIt.h < prev    next >
Encoding:
Text File  |  1996-09-17  |  4.9 KB  |  149 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:                SLCharIt.h
  4. //    Release Version:    $ ODF 2 $
  5. //
  6. //    Copyright:    (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
  7. //
  8. //========================================================================================
  9.  
  10. #ifndef SLCHARIT_H
  11. #define SLCHARIT_H
  12.  
  13. #ifndef FWCHARAC_H
  14. #include "FWCharac.h"
  15. #endif
  16.  
  17. #ifndef SLLOCALE_H
  18. #include "SLLocale.h"
  19. #endif
  20.  
  21. //========================================================================================
  22. //    Forward Declarations
  23. //========================================================================================
  24.  
  25. class FW_OTextRunReader;
  26. class FW_OTextRunWriter;
  27.  
  28. //========================================================================================
  29. //    STRUCT FW_SPrivTextReader
  30. //========================================================================================
  31.  
  32. struct FW_SPrivTextReader;    // Opaque data structure
  33. struct FW_SPrivTextWriter;    // Opaque data structure
  34.  
  35. typedef FW_SPrivTextReader* FW_HTextReader;
  36. typedef FW_SPrivTextWriter* FW_HTextWriter;
  37.  
  38. //========================================================================================
  39. //    Constants
  40. //========================================================================================
  41.  
  42. const int kTempHackOneBytePerCharacter = 1;
  43.  
  44. //========================================================================================
  45. //    FW_PrivTextReader Functions
  46. //========================================================================================
  47.  
  48. // Export or Import functions for CFM-68K [sfu]
  49.  
  50. #if defined(FW_ODFLIB_IMPORT)
  51. #pragma import on
  52. #elif defined(FW_ODFLIB)
  53. #pragma export on
  54. #endif
  55.  
  56. FW_EXTERN_C_BEGIN
  57.  
  58.     // ----- Initialization & Destruction -----
  59.     
  60.     FW_HTextReader         FW_PrivTextReader_New(Environment *ev, FW_OTextRunReader* adoptedReader);
  61.     
  62.     void                 FW_PrivTextReader_Acquire(FW_HTextReader self, Environment *ev);
  63.     
  64.     void                 FW_PrivTextReader_Release(FW_HTextReader self, Environment *ev);
  65.     
  66.     // ----- Attribute Accessors -----
  67.     
  68.     FW_ByteCount        FW_PrivTextReader_GetPosition(FW_HTextReader self);
  69.             
  70.     FW_ByteCount         FW_PrivTextReader_GetByteLength(FW_HTextReader self);
  71.  
  72.     void                FW_PrivTextReader_GetLocale(FW_HTextReader self, FW_Locale* locale);
  73.     
  74.     void                 FW_PrivTextReader_SetPosition(FW_HTextReader self, Environment *ev, FW_ByteCount position);
  75.     
  76.     // ----- Character Iteration -----
  77.     
  78.     FW_LChar             FW_PrivTextReader_PeekCharacter(FW_HTextReader self, FW_ByteCount* bytesInChar);
  79.     
  80.     void                 FW_PrivTextReader_Advance(FW_HTextReader self, Environment *ev, FW_ByteCount delta);
  81.     
  82.     void                 FW_PrivTextReader_Backup(FW_HTextReader self, Environment *ev, FW_ByteCount delta);
  83.     
  84.     FW_LChar             FW_PrivTextReader_GetCharacterAndAdvance(FW_HTextReader self, Environment *ev, FW_ByteCount* bytesInChar);
  85.     
  86.     FW_LChar             FW_PrivTextReader_BackupAndGetCharacter(FW_HTextReader self, Environment *ev, FW_ByteCount* bytesInChar);
  87.     
  88.     FW_ByteCount        FW_PrivTextReader_PeekCharacterSize(FW_HTextReader self);
  89.     
  90.     // ----- Run Iteration -----
  91.     
  92.     void                 FW_PrivTextReader_PeekRunAhead(FW_HTextReader self, const char** start, FW_ByteCount* length);
  93.     
  94.     void                 FW_PrivTextReader_PeekRunBehind(FW_HTextReader self, const char** end, FW_ByteCount* length);
  95.     
  96.     // ===== THESE MIGHT BECOME PRIVATE =====
  97.     
  98.     void                 FW_PrivTextReader_GetNextBuffer(FW_HTextReader self, Environment *ev);
  99.     
  100.     void                 FW_PrivTextReader_GetPreviousBuffer(FW_HTextReader self, Environment *ev);
  101.     
  102.     const char*         FW_PrivTextReader_PeekByte(FW_HTextReader self);
  103.     
  104. FW_EXTERN_C_END
  105.  
  106. //========================================================================================
  107. //    FW_SPrivTextWriter Functions
  108. //========================================================================================
  109.  
  110. FW_EXTERN_C_BEGIN
  111.  
  112.     // ----- Initialization & Destruction -----
  113.     
  114.     FW_HTextWriter         FW_PrivTextWriter_New(Environment *ev, FW_OTextRunWriter* adoptedWriter);
  115.     
  116.     void                 FW_PrivTextWriter_Acquire(FW_HTextWriter self);
  117.  
  118.     void                 FW_PrivTextWriter_Release(FW_HTextWriter self, Environment *ev);
  119.     
  120.     // ----- Attribute Accessors -----
  121.     
  122.     void                 FW_PrivTextWriter_SetBufferSum(FW_HTextWriter self, FW_ByteCount bufferSum);
  123.     
  124.     void                 FW_PrivTextWriter_FlushBuffer(FW_HTextWriter self, Environment* ev);
  125.     
  126.     void                 FW_PrivTextWriter_FlushAndGetNextBuffer(FW_HTextWriter self, Environment* ev);
  127.     
  128.     void                 FW_PrivTextWriter_PutCharacterAndAdvance(FW_HTextWriter self, Environment *ev, FW_LChar character, FW_ByteCount bytesInChar);
  129.  
  130.     FW_ByteCount         FW_PrivTextWriter_GetPosition(FW_HTextWriter self, Environment *ev);
  131.  
  132.     void                 FW_PrivTextWriter_WritePeek(FW_HTextWriter self, Environment *ev, char** start, FW_ByteCount* length);
  133.     
  134.     void                 FW_PrivTextWriter_WritePeekAdvance(FW_HTextWriter self, char* start, FW_ByteCount bytesWritten);
  135.  
  136. FW_EXTERN_C_END
  137.  
  138. // For CFM-68K [sfu]
  139.  
  140. #if defined(FW_ODFLIB_IMPORT)
  141. #pragma import off
  142. #elif defined(FW_ODFLIB)
  143. #pragma export off
  144. #endif
  145.  
  146. #endif
  147.  
  148.  
  149.