Ice 3.7 C++11 API Reference
Loading...
Searching...
No Matches
ConsoleUtil.h
Go to the documentation of this file.
1//
2// Copyright (c) ZeroC, Inc. All rights reserved.
3//
4
5#ifndef ICE_UTIL_CONSOLE_UTIL_H
6#define ICE_UTIL_CONSOLE_UTIL_H
7
8#include <IceUtil/Config.h>
10#include <iostream>
11
12namespace IceUtilInternal
13{
14
15#if defined(_WIN32)
16
17class ConsoleUtil;
18ICE_DEFINE_PTR(ConsoleUtilPtr, ConsoleUtil);
19
20class ICE_API ConsoleUtil
21# ifndef ICE_CPP11_MAPPING
22 : public IceUtil::Shared
23# endif
24{
25public:
26
27 ConsoleUtil();
28 void output(const std::string&) const;
29 void error(const std::string&) const;
30
31private:
32
33 std::string toConsoleEncoding(const std::string&) const;
35 IceUtil::StringConverterPtr _consoleConverter;
36};
37
38const ICE_API ConsoleUtil& getConsoleUtil();
39
40class ICE_API ConsoleOut
41{
42public:
43
44 ConsoleOut& operator<<(ConsoleOut& (*pf)(ConsoleOut&));
45};
46
47class ICE_API ConsoleErr
48{
49public:
50
51 ConsoleErr& operator<<(ConsoleErr& (*pf)(ConsoleErr&));
52};
53
54template<typename T>
55ConsoleOut&
56operator<<(ConsoleOut& out, const T& val)
57{
58 std::ostringstream s;
59 s << val;
60 getConsoleUtil().output(s.str());
61 return out;
62}
63
64ICE_API ConsoleOut& endl(ConsoleOut&);
65ICE_API ConsoleOut& flush(ConsoleOut&);
66
67template<typename T>
68ConsoleErr&
69operator<<(ConsoleErr& err, const T& val)
70{
71 std::ostringstream s;
72 s << val;
73 getConsoleUtil().error(s.str());
74 return err;
75}
76
77ICE_API ConsoleErr& endl(ConsoleErr&);
78ICE_API ConsoleErr& flush(ConsoleErr&);
79
80extern ICE_API ConsoleOut consoleOut ICE_GLOBAL_VAR_SUFFIX;
81extern ICE_API ConsoleErr consoleErr ICE_GLOBAL_VAR_SUFFIX;
82
83#else
84
85extern ICE_API std::ostream& consoleOut ICE_GLOBAL_VAR_SUFFIX;
86extern ICE_API std::ostream& consoleErr ICE_GLOBAL_VAR_SUFFIX;
87
88#endif
89
90}
91
92#endif
#define ICE_DEFINE_PTR(TPtr, T)
Definition Config.h:359
#define ICE_API
Definition Config.h:197
#define ICE_GLOBAL_VAR_SUFFIX
Definition Config.h:185
::std::shared_ptr< StringConverter > StringConverterPtr
Definition StringConverter.h:80
std::ostream & operator<<(std::ostream &out, const ProtocolVersion &version)
Definition Protocol.h:179