diff options
author | Nat Goodspeed <nat@lindenlab.com> | 2012-03-05 13:03:23 -0500 |
---|---|---|
committer | Nat Goodspeed <nat@lindenlab.com> | 2012-03-05 13:03:23 -0500 |
commit | b3b51f012f49d82c3b7f6f5cadfc0d76ef82f8bf (patch) | |
tree | 05576ff2b181ccce3e1350266c0827636019ed57 /indra | |
parent | 30e8e23d7cf666c406901d85a59d16401dca67ab (diff) |
Move std::ostream << CaptureLog logic into CaptureLog::streamto().
That lets us reliably declare the operator<<() free function inline, which
permits multiple translation units in the same executable to #include
"wrapllerrs.h".
Diffstat (limited to 'indra')
-rw-r--r-- | indra/llcommon/tests/wrapllerrs.h | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/indra/llcommon/tests/wrapllerrs.h b/indra/llcommon/tests/wrapllerrs.h index a9c0c19c28..f79acacb22 100644 --- a/indra/llcommon/tests/wrapllerrs.h +++ b/indra/llcommon/tests/wrapllerrs.h @@ -136,25 +136,31 @@ public: << *this)); } + std::ostream& streamto(std::ostream& out) const + { + MessageList::const_iterator mi(mMessages.begin()), mend(mMessages.end()); + if (mi != mend) + { + // handle first message separately: it doesn't get a newline + out << *mi++; + for ( ; mi != mend; ++mi) + { + // every subsequent message gets a newline + out << '\n' << *mi; + } + } + return out; + } + typedef std::list<std::string> MessageList; MessageList mMessages; LLError::Settings* mOldSettings; }; +inline std::ostream& operator<<(std::ostream& out, const CaptureLog& log) { - CaptureLog::MessageList::const_iterator mi(log.mMessages.begin()), mend(log.mMessages.end()); - if (mi != mend) - { - // handle first message separately: it doesn't get a newline - out << *mi++; - for ( ; mi != mend; ++mi) - { - // every subsequent message gets a newline - out << '\n' << *mi; - } - } - return out; + return log.streamto(out); } #endif /* ! defined(LL_WRAPLLERRS_H) */ |