1a94e6135SFrançois Revol /* 2a94e6135SFrançois Revol * minimalistic Dano-ilke BStringIO 3a94e6135SFrançois Revol * (c) 2007, François Revol. 4a94e6135SFrançois Revol */ 5a94e6135SFrançois Revol #include <BeBuild.h> 6a94e6135SFrançois Revol #ifdef B_BEOS_VERSION_DANO 7a94e6135SFrançois Revol #include_next <StringIO.h> 8a94e6135SFrançois Revol #else 9a94e6135SFrançois Revol 10a94e6135SFrançois Revol #ifndef _STRING_IO_H 11a94e6135SFrançois Revol #define _STRING_IO_H 12a94e6135SFrançois Revol 13a94e6135SFrançois Revol #include <DataIO.h> 14*2e314c09SFrançois Revol #include <Rect.h> 15*2e314c09SFrançois Revol #include <String.h> 16a94e6135SFrançois Revol //#include <stdint.h> 17a94e6135SFrançois Revol 18a94e6135SFrançois Revol // stripped down BStringIO 19a94e6135SFrançois Revol 20a94e6135SFrançois Revol class BStringIO : public BPositionIO { 21a94e6135SFrançois Revol public: 22a94e6135SFrançois Revol BStringIO(); 23a94e6135SFrançois Revol virtual ~BStringIO(); 24a94e6135SFrançois Revol 25a94e6135SFrançois Revol virtual ssize_t ReadAt(off_t pos, void *buffer, size_t size); 26a94e6135SFrançois Revol virtual ssize_t WriteAt(off_t pos, const void *buffer, size_t size); 27a94e6135SFrançois Revol 28a94e6135SFrançois Revol virtual off_t Seek(off_t pos, uint32 seek_mode); 29a94e6135SFrançois Revol virtual off_t Position() const; 30a94e6135SFrançois Revol virtual status_t SetSize(off_t size); 31a94e6135SFrançois Revol 32a94e6135SFrançois Revol // void SetBlockSize(size_t blocksize); 33a94e6135SFrançois Revol 34a94e6135SFrançois Revol const char* String() const; 35a94e6135SFrançois Revol // size_t StringLength() const; 36a94e6135SFrançois Revol 37a94e6135SFrançois Revol BStringIO & operator<<(const BString & s); 38a94e6135SFrançois Revol BStringIO & operator<<(const BRect & r); 39a94e6135SFrançois Revol 40a94e6135SFrançois Revol 41a94e6135SFrançois Revol private: 42a94e6135SFrançois Revol off_t fPosition; 43a94e6135SFrançois Revol BString *fString; 44a94e6135SFrançois Revol }; 45a94e6135SFrançois Revol 46a94e6135SFrançois Revol 47a94e6135SFrançois Revol 48a94e6135SFrançois Revol #endif /* _STRING_IO_H */ 49a94e6135SFrançois Revol 50a94e6135SFrançois Revol #endif 51