diff options
Diffstat (limited to 'media/libdrm/mobile2/src/util/ustl-1.0/sistream.h')
-rw-r--r-- | media/libdrm/mobile2/src/util/ustl-1.0/sistream.h | 133 |
1 files changed, 0 insertions, 133 deletions
diff --git a/media/libdrm/mobile2/src/util/ustl-1.0/sistream.h b/media/libdrm/mobile2/src/util/ustl-1.0/sistream.h deleted file mode 100644 index 924f43b..0000000 --- a/media/libdrm/mobile2/src/util/ustl-1.0/sistream.h +++ /dev/null @@ -1,133 +0,0 @@ -// This file is part of the ustl library, an STL implementation. -// -// Copyright (C) 2005 by Mike Sharov <msharov@users.sourceforge.net> -// This file is free software, distributed under the MIT License. -// -// sistream.h -// - -#ifndef SISTREAM_H_0CCA102229A49F5D65EE852E62B27CE2 -#define SISTREAM_H_0CCA102229A49F5D65EE852E62B27CE2 - -#include "mistream.h" -#include "uassert.h" -#include "ustring.h" - -namespace ustl { - -/// \class istringstream sistream.h ustl.h -/// \ingroup TextStreams -/// -/// \brief A stream that reads textual data from a memory block. -/// -class istringstream : public istream { -public: - static const size_type c_MaxDelimiters = 16; ///< Maximum number of word delimiters. -public: - istringstream (void); - istringstream (const void* p, size_type n); - explicit istringstream (const cmemlink& source); - void iread (int8_t& v); - void iread (int32_t& v); - void iread (double& v); - void iread (bool& v); - void iread (wchar_t& v); - void iread (string& v); -#ifdef HAVE_INT64_T - void iread (int64_t& v); -#endif -#if HAVE_LONG_LONG && (!HAVE_INT64_T || SIZE_OF_LONG_LONG > 8) - void iread (long long& v); -#endif - inline string str (void) const { string s; s.link (*this); return (s); } - inline void str (const string& s) { link (s); } - int get (void); - inline void get (char& c) { c = get(); } - void get (char* p, size_type n, char delim = '\n'); - void get (string& s, char delim = '\n'); - void getline (char* p, size_type n, char delim = '\n'); - void getline (string& s, char delim = '\n'); - void ignore (size_type n, char delim = '\0'); - inline char peek (void) { int8_t v; iread (v); ungetc(); return (v); } - inline void putback (char) { ungetc(); } - inline void unget (void) { ungetc(); } - void set_delimiters (const char* delimiters); - inline void set_base (short base); - inline void set_decimal_separator (char) { } - inline void set_thousand_separator (char) { } - void read (void* buffer, size_type size); - void read (memlink& buf); - inline void read_strz (string& str); - inline void sync (void) { skip (remaining()); } -protected: - char skip_delimiters (void); -private: - inline bool is_delimiter (char c) const; - template <typename T> void read_number (T& v); -private: - char m_Delimiters [c_MaxDelimiters]; - uint8_t m_Base; -}; - -/// Sets the numeric base used to read numbers. -inline void istringstream::set_base (short base) -{ - m_Base = base; -} - -/// Reads a null-terminated character stream. This is not allowed in this class. -inline void istringstream::read_strz (string&) -{ - assert (!"Reading nul characters is not allowed from text streams"); -} - -/// Reads one type as another. -template <typename RealT, typename CastT> -inline void _cast_read (istringstream& is, RealT& v) -{ - CastT cv; - is.iread (cv); - v = RealT (cv); -} - -inline istringstream& operator>> (istringstream& is, int8_t& v) { is.iread (v); return (is); } -inline istringstream& operator>> (istringstream& is, int32_t& v){ is.iread (v); return (is); } -inline istringstream& operator>> (istringstream& is, double& v) { is.iread (v); return (is); } -inline istringstream& operator>> (istringstream& is, bool& v) { is.iread (v); return (is); } -inline istringstream& operator>> (istringstream& is, wchar_t& v){ is.iread (v); return (is); } -inline istringstream& operator>> (istringstream& is, string& v) { is.iread (v); return (is); } -#if HAVE_INT64_T -inline istringstream& operator>> (istringstream& is, int64_t& v){ is.iread (v); return (is); } -#endif -#if HAVE_LONG_LONG && (!HAVE_INT64_T || SIZE_OF_LONG_LONG > 8) -inline istringstream& operator>> (istringstream& is, long long& v) { is.iread (v); return (is); } -#endif - -#define ISTRSTREAM_CAST_OPERATOR(RealT, CastT) \ -inline istringstream& operator>> (istringstream& is, RealT& v) \ -{ _cast_read<RealT,CastT>(is, v); return (is); } - -ISTRSTREAM_CAST_OPERATOR (uint8_t, int8_t) -ISTRSTREAM_CAST_OPERATOR (int16_t, int32_t) -ISTRSTREAM_CAST_OPERATOR (uint16_t, int32_t) -ISTRSTREAM_CAST_OPERATOR (uint32_t, int32_t) -ISTRSTREAM_CAST_OPERATOR (float, double) -#if HAVE_THREE_CHAR_TYPES -ISTRSTREAM_CAST_OPERATOR (char, int8_t) -#endif -#if HAVE_INT64_T -ISTRSTREAM_CAST_OPERATOR (uint64_t, int64_t) -#endif -#if SIZE_OF_LONG == SIZE_OF_INT -ISTRSTREAM_CAST_OPERATOR (long, int) -ISTRSTREAM_CAST_OPERATOR (unsigned long,int) -#endif -#if HAVE_LONG_LONG && (!HAVE_INT64_T || SIZE_OF_LONG_LONG > 8) -ISTRSTREAM_CAST_OPERATOR (unsigned long long, long long) -#endif -#undef ISTRSTREAM_CAST_OPERATOR - -} // namespace ustl - -#endif - |