--- a/src/core/trace-context.cc Mon Aug 27 15:34:57 2007 +0200
+++ b/src/core/trace-context.cc Mon Aug 27 16:02:55 2007 +0200
@@ -231,6 +231,31 @@
} while (true);
}
+void
+TraceContext::PrintAvailable (std::ostream &os, std::string separator) const
+{
+ if (m_data == 0)
+ {
+ return;
+ }
+ uint8_t currentUid;
+ uint16_t i = 0;
+ do {
+ currentUid = m_data->data[i];
+ uint8_t size = ElementRegistry::GetSize (currentUid);
+ os << ElementRegistry::GetName (currentUid);
+ i += 1 + size;
+ if (i < m_data->size && currentUid != 0)
+ {
+ os << separator;
+ }
+ else
+ {
+ break;
+ }
+ } while (true);
+}
+
std::ostream& operator<< (std::ostream& os, const TraceContext &context)
{
context.Print (os);
--- a/src/core/trace-context.h Mon Aug 27 15:34:57 2007 +0200
+++ b/src/core/trace-context.h Mon Aug 27 16:02:55 2007 +0200
@@ -80,6 +80,7 @@
void Get (T &context) const;
void Print (std::ostream &os) const;
+ void PrintAvailable (std::ostream &os, std::string separator) const;
private:
friend class TraceContextTest;
// used exclusively for testing code.