summaryrefslogtreecommitdiffstats
path: root/media/libdrm/mobile2/src/util/ustl-1.0/sostream.h
diff options
context:
space:
mode:
Diffstat (limited to 'media/libdrm/mobile2/src/util/ustl-1.0/sostream.h')
-rw-r--r--media/libdrm/mobile2/src/util/ustl-1.0/sostream.h158
1 files changed, 0 insertions, 158 deletions
diff --git a/media/libdrm/mobile2/src/util/ustl-1.0/sostream.h b/media/libdrm/mobile2/src/util/ustl-1.0/sostream.h
deleted file mode 100644
index 11dc328..0000000
--- a/media/libdrm/mobile2/src/util/ustl-1.0/sostream.h
+++ /dev/null
@@ -1,158 +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.
-//
-// sostream.h
-//
-
-#ifndef SOSTREAM_H_5323DC8C26E181D43278F2F53FDCF19F
-#define SOSTREAM_H_5323DC8C26E181D43278F2F53FDCF19F
-
-#include "uassert.h"
-#include "ustring.h"
-#include "mostream.h"
-
-namespace ustl {
-
-class string;
-
-/// \class ostringstream sostream.h ustl.h
-/// \ingroup TextStreams
-///
-/// \brief This stream writes textual data into a memory block.
-///
-class ostringstream : public ostream {
-public:
- ostringstream (const string& v = string::empty_string);
- ostringstream (void* p, size_t n);
- void iwrite (uint8_t v);
- void iwrite (wchar_t v);
- inline void iwrite (int v) { iformat (v); }
- inline void iwrite (unsigned int v) { iformat (v); }
- inline void iwrite (long int v) { iformat (v); }
- inline void iwrite (unsigned long int v) { iformat (v); }
- inline void iwrite (float v) { iformat (v); }
- inline void iwrite (double v) { iformat (v); }
- void iwrite (bool v);
- inline void iwrite (const char* s) { write_buffer (s, strlen(s)); }
- inline void iwrite (const string& v) { write_buffer (v.begin(), v.size()); }
- inline void iwrite (fmtflags f);
-#if HAVE_LONG_LONG
- inline void iwrite (long long v) { iformat (v); }
- inline void iwrite (unsigned long long v) { iformat (v); }
-#endif
- inline size_type max_size (void) const { return (m_Buffer.max_size()); }
- inline void put (char c) { iwrite (uint8_t(c)); }
- int vformat (const char* fmt, va_list args);
- int format (const char* fmt, ...) __attribute__((__format__(__printf__, 2, 3)));
- inline void set_base (uint16_t b) { m_Base = b; }
- inline void set_width (uint16_t w) { m_Width = w; }
- inline void set_decimal_separator (char) { }
- inline void set_thousand_separator (char) { }
- inline void set_precision (uint16_t v) { m_Precision = v; }
- void link (void* p, size_type n);
- inline void link (memlink& l) { link (l.data(), l.writable_size()); }
- inline const string& str (void) { flush(); return (m_Buffer); }
- void str (const string& s);
- void write (const void* buffer, size_type size);
- void write (const cmemlink& buf);
- inline void write_strz (const char*) { assert (!"Writing nul characters into a text stream is not allowed"); }
- void flush (void);
- virtual size_type overflow (size_type n = 1);
-protected:
- void write_buffer (const char* buf, size_type bufSize);
- inline void reserve (size_type n) { m_Buffer.reserve (n, false); }
- inline size_type capacity (void) const { return (m_Buffer.capacity()); }
-private:
- inline char* encode_dec (char* fmt, uint32_t n) const;
- void fmtstring (char* fmt, const char* typestr, bool bInteger) const;
- template <typename T>
- void iformat (T v);
-private:
- string m_Buffer; ///< The output buffer.
- uint32_t m_Flags; ///< See ios_base::fmtflags.
- uint16_t m_Width; ///< Field width.
- uint8_t m_Base; ///< Numeric base for writing numbers.
- uint8_t m_Precision; ///< Number of digits after the decimal separator.
-};
-
-//----------------------------------------------------------------------
-
-template <typename T>
-inline const char* printf_typestring (const T&) { return (""); }
-#define PRINTF_TYPESTRING_SPEC(type,str) \
-template <> inline const char* printf_typestring (const type&) { return (str); }
-PRINTF_TYPESTRING_SPEC (int, "d")
-PRINTF_TYPESTRING_SPEC (unsigned int, "u")
-PRINTF_TYPESTRING_SPEC (long, "ld")
-PRINTF_TYPESTRING_SPEC (unsigned long, "lu")
-PRINTF_TYPESTRING_SPEC (float, "f")
-PRINTF_TYPESTRING_SPEC (double, "lf")
-#if HAVE_LONG_LONG
-PRINTF_TYPESTRING_SPEC (long long, "lld")
-PRINTF_TYPESTRING_SPEC (unsigned long long, "llu")
-#endif
-#undef PRINTF_TYPESTRING_SPEC
-
-template <typename T>
-void ostringstream::iformat (T v)
-{
- char fmt [16];
- fmtstring (fmt, printf_typestring(v), numeric_limits<T>::is_integer);
- format (fmt, v);
-}
-
-/// Sets the flag \p f in the stream.
-inline void ostringstream::iwrite (fmtflags f)
-{
- switch (f) {
- case oct: set_base (8); break;
- case dec: set_base (10); break;
- case hex: set_base (16); break;
- case left: m_Flags |= left; m_Flags &= ~right; break;
- case right: m_Flags |= right; m_Flags &= ~left; break;
- default: m_Flags |= f; break;
- }
-}
-
-//----------------------------------------------------------------------
-
-#define OSTRSTREAM_OPERATOR(RealT, CastT) \
-inline ostringstream& operator<< (ostringstream& os, RealT v) \
-{ os.iwrite ((CastT) v); return (os); }
-
-template <typename T>
-OSTRSTREAM_OPERATOR (T*, unsigned long int)
-OSTRSTREAM_OPERATOR (const void*, unsigned long int)
-OSTRSTREAM_OPERATOR (void*, unsigned long int)
-OSTRSTREAM_OPERATOR (const char*, const char*)
-OSTRSTREAM_OPERATOR (char*, const char*)
-OSTRSTREAM_OPERATOR (uint8_t*, const char*)
-OSTRSTREAM_OPERATOR (const uint8_t*, const char*)
-OSTRSTREAM_OPERATOR (const string&, const string&)
-OSTRSTREAM_OPERATOR (ios_base::fmtflags,ios_base::fmtflags)
-OSTRSTREAM_OPERATOR (int8_t, uint8_t)
-OSTRSTREAM_OPERATOR (uint8_t, uint8_t)
-OSTRSTREAM_OPERATOR (short int, int)
-OSTRSTREAM_OPERATOR (unsigned short, unsigned int)
-OSTRSTREAM_OPERATOR (int, int)
-OSTRSTREAM_OPERATOR (unsigned int, unsigned int)
-OSTRSTREAM_OPERATOR (long, long)
-OSTRSTREAM_OPERATOR (unsigned long, unsigned long)
-OSTRSTREAM_OPERATOR (float, float)
-OSTRSTREAM_OPERATOR (double, double)
-OSTRSTREAM_OPERATOR (bool, bool)
-OSTRSTREAM_OPERATOR (wchar_t, wchar_t)
-#if HAVE_THREE_CHAR_TYPES
-OSTRSTREAM_OPERATOR (char, uint8_t)
-#endif
-#if HAVE_LONG_LONG
-OSTRSTREAM_OPERATOR (long long, long long)
-OSTRSTREAM_OPERATOR (unsigned long long, unsigned long long)
-#endif
-
-} // namespace ustl
-
-#endif
-