1 /* 2 * Copyright 2003, Tyler Dauwalder, tyler@dauwalder.net. 3 * Distributed under the terms of the MIT License. 4 */ 5 #ifndef _D_STRING_H 6 #define _D_STRING_H 7 8 9 #include "UdfDebug.h" 10 11 #include "UdfString.h" 12 13 #include <util/kernel_cpp.h> 14 15 16 /*! \brief Fixed-length d-string class that takes a UdfString as input 17 and provides a properly formatted ECMA-167 d-string of the given 18 field length as ouput. 19 20 For d-string info, see: ECMA-167 1/7.2.12, UDF-2.50 2.1.3 21 */ 22 class DString { 23 public: 24 DString(); 25 DString(const DString &ref); 26 DString(const UdfString &string, 27 uint8 fieldLength); 28 DString(const char *utf8, uint8 fieldLength); 29 ~DString(); 30 31 uint8 Length() const { return fLength; } 32 33 void SetTo(const DString &ref); 34 void SetTo(const UdfString &string, uint8 fieldLength); 35 void SetTo(const char *utf8, uint8 fieldLength); 36 37 const uint8* String() const { return fString; } 38 39 private: 40 void _Clear(); 41 42 private: 43 uint8 fLength; 44 uint8 *fString; 45 }; 46 47 48 #endif // _D_STRING_H 49