diff options
author | Marc Laukien <marc@zeroc.com> | 2004-02-15 21:19:54 +0000 |
---|---|---|
committer | Marc Laukien <marc@zeroc.com> | 2004-02-15 21:19:54 +0000 |
commit | 3ede1ddccf6c3f4c2f8a19fc8d16e9827c607cc2 (patch) | |
tree | f04bbbc008badb7eb13e499ff92fa7cfa100b888 /cpp/include/IceUtil/OutputUtil.h | |
parent | minor (diff) | |
download | ice-3ede1ddccf6c3f4c2f8a19fc8d16e9827c607cc2.tar.bz2 ice-3ede1ddccf6c3f4c2f8a19fc8d16e9827c607cc2.tar.xz ice-3ede1ddccf6c3f4c2f8a19fc8d16e9827c607cc2.zip |
more AMI stuff
Diffstat (limited to 'cpp/include/IceUtil/OutputUtil.h')
-rw-r--r-- | cpp/include/IceUtil/OutputUtil.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/cpp/include/IceUtil/OutputUtil.h b/cpp/include/IceUtil/OutputUtil.h index 58849604e3c..d44851ca844 100644 --- a/cpp/include/IceUtil/OutputUtil.h +++ b/cpp/include/IceUtil/OutputUtil.h @@ -18,6 +18,7 @@ #include <IceUtil/Config.h> #include <fstream> #include <stack> +#include <vector> namespace IceUtil { @@ -104,16 +105,22 @@ public: Output(std::ostream&); Output(const char*); + virtual void print(const char*); // Print a string. + void setBeginBlock(const char *); // what do we use at block starts? void setEndBlock(const char *); // what do we use the block end? void sb(); // Start a block. void eb(); // End a block. + void spar(); // Start a paramater list. + void epar(); // End a paramater list. + private: std::string _blockStart; std::string _blockEnd; + int _par; // If >= 0, we are writing a parameter list. }; template<typename T> @@ -126,6 +133,17 @@ operator<<(Output& out, const T& val) return out; } +template<typename T> +Output& +operator<<(Output& out, const std::vector<T>& val) +{ + for(typename std::vector<T>::const_iterator p = val.begin(); p != val.end(); ++p) + { + out << *p; + } + return out; +} + template<> inline Output& operator<<(Output& o, const NextLine&) @@ -168,6 +186,32 @@ operator<<(Output& o, const EndBlock&) return o; } +class ICE_UTIL_API StartPar +{ +}; +extern ICE_UTIL_API StartPar spar; + +template<> +inline Output& +operator<<(Output& o, const StartPar&) +{ + o.spar(); + return o; +} + +class ICE_UTIL_API EndPar +{ +}; +extern ICE_UTIL_API EndPar epar; + +template<> +inline Output& +operator<<(Output& o, const EndPar&) +{ + o.epar(); + return o; +} + ICE_UTIL_API Output& operator<<(Output&, std::ios_base& (*)(std::ios_base&)); // ---------------------------------------------------------------------- |