00001 #ifndef OSTREAM_H_62B23520_7C8E_11DE_8A39_0800200C9A66 00002 #define OSTREAM_H_62B23520_7C8E_11DE_8A39_0800200C9A66 00003 00004 #if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 00005 #pragma once 00006 #endif 00007 00008 00009 #include <string> 00010 00011 namespace YAML_PM 00012 { 00013 class ostream 00014 { 00015 public: 00016 ostream(); 00017 ~ostream(); 00018 00019 void reserve(unsigned size); 00020 void put(char ch); 00021 const char *str() const { return m_buffer; } 00022 00023 unsigned row() const { return m_row; } 00024 unsigned col() const { return m_col; } 00025 unsigned pos() const { return m_pos; } 00026 00027 private: 00028 char *m_buffer; 00029 unsigned m_pos; 00030 unsigned m_size; 00031 00032 unsigned m_row, m_col; 00033 }; 00034 00035 ostream& operator << (ostream& out, const char *str); 00036 ostream& operator << (ostream& out, const std::string& str); 00037 ostream& operator << (ostream& out, char ch); 00038 } 00039 00040 #endif // OSTREAM_H_62B23520_7C8E_11DE_8A39_0800200C9A66