1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170
|
// **********************************************************************
//
// Copyright (c) 2003-2009 ZeroC, Inc. All rights reserved.
//
// This copy of Ice is licensed to you under the terms described in the
// ICE_LICENSE file included in this distribution.
//
// **********************************************************************
#ifndef ICE_LOGGER_UTIL_H
#define ICE_LOGGER_UTIL_H
#include <Ice/LoggerF.h>
#include <Ice/CommunicatorF.h>
#include <Ice/Plugin.h>
namespace Ice
{
class ICE_API Print : private IceUtil::noncopyable
{
public:
Print(const LoggerPtr&);
~Print();
void flush();
std::ostringstream& __str(); // For internal use only. Don't use in your code.
private:
LoggerPtr _logger;
std::ostringstream _str;
};
template<typename T>
inline Print&
operator<<(Print& out, const T& val)
{
out.__str() << val;
return out;
}
template<class Y>
::Ice::Print& operator<<(::Ice::Print& os, ::IceInternal::ProxyHandle<Y> p)
{
return os << (p ? p->ice_toString() : "");
}
ICE_API Print& operator<<(Print&, std::ios_base& (*)(std::ios_base&));
class ICE_API Warning : private IceUtil::noncopyable
{
public:
Warning(const LoggerPtr&);
~Warning();
void flush();
std::ostringstream& __str(); // For internal use only. Don't use in your code.
private:
LoggerPtr _logger;
std::ostringstream _str;
};
template<typename T>
inline Warning&
operator<<(Warning& out, const T& val)
{
out.__str() << val;
return out;
}
template<class Y>
::Ice::Warning& operator<<(::Ice::Warning& os, ::IceInternal::ProxyHandle<Y> p)
{
return os << (p ? p->ice_toString() : "");
}
ICE_API Warning& operator<<(Warning&, std::ios_base& (*)(std::ios_base&));
class ICE_API Error : private IceUtil::noncopyable
{
public:
Error(const LoggerPtr&);
~Error();
void flush();
std::ostringstream& __str(); // For internal use only. Don't use in your code.
private:
LoggerPtr _logger;
std::ostringstream _str;
};
template<typename T>
inline Error&
operator<<(Error& out, const T& val)
{
out.__str() << val;
return out;
}
template<class Y>
::Ice::Error& operator<<(::Ice::Error& os, ::IceInternal::ProxyHandle<Y> p)
{
return os << (p ? p->ice_toString() : "");
}
ICE_API Error& operator<<(Error&, std::ios_base& (*)(std::ios_base&));
class ICE_API Trace : private IceUtil::noncopyable
{
public:
Trace(const LoggerPtr&, const std::string&);
~Trace();
void flush();
std::ostringstream& __str(); // For internal use only. Don't use in your code.
private:
LoggerPtr _logger;
std::string _category;
std::ostringstream _str;
};
template<typename T>
inline Trace&
operator<<(Trace& out, const T& val)
{
out.__str() << val;
return out;
}
template<class Y>
::Ice::Trace& operator<<(::Ice::Trace& os, ::IceInternal::ProxyHandle<Y> p)
{
return os << (p ? p->ice_toString() : "");
}
ICE_API Trace& operator<<(Trace&, std::ios_base& (*)(std::ios_base&));
//
// A special plug-in that installs a logger during a communicator's initialization.
// Both initialize and destroy are no-op. See Ice::InitializationData.
//
class ICE_API LoggerPlugin : public Ice::Plugin
{
public:
LoggerPlugin(const CommunicatorPtr& communicator, const LoggerPtr&);
virtual void initialize();
virtual void destroy();
};
}
#endif
|