summaryrefslogtreecommitdiff
path: root/cpp/include/IceUtil/OutputUtil.h
diff options
context:
space:
mode:
authorMarc Laukien <marc@zeroc.com>2004-02-15 21:19:54 +0000
committerMarc Laukien <marc@zeroc.com>2004-02-15 21:19:54 +0000
commit3ede1ddccf6c3f4c2f8a19fc8d16e9827c607cc2 (patch)
treef04bbbc008badb7eb13e499ff92fa7cfa100b888 /cpp/include/IceUtil/OutputUtil.h
parentminor (diff)
downloadice-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.h44
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&));
// ----------------------------------------------------------------------