Module: Threads Package: Execution Tracing
RWTraceMultiClientFilter RWTraceEventFilter RWTraceEventClient
#include <rw/trace/RWTraceMultiClientFilter.h>
RWTraceMultiClientFilter is a filter that accepts multiple clients and forwards trace events to them.
The following example creates two clients; one displays messages on the screen, and the other saves them to a file. This example can be found in examples/trace/example2.cpp.
#define RW_USER_TRACE_LEVEL 8 #include <rw\trace\trace.h> #include <fstream.h> int main() { ofstream traceLog("trace.log"); RWTraceOstreamClient myFileTraceClient(traceLog); RWTraceOstreamClient myCerrTraceClient(cerr); RWTraceMultiClientFilter myMultiFilter; // 1 // first: connect two clients to multi client filter myFileTraceClient.connect(myMultiFilter); // 2 myCerrTraceClient.connect(myMultiFilter); // last: connect filter to singleton manager myMultiFilter.connectToManager(); // 3 RW_USER_TRACEABLE_FUNCTION("main"); // 4 RW_USER_TRACE_DEBUG("Picked up pencil."); RW_USER_TRACE_TEST("Visual inspection of pencil complete."); RW_USER_TRACE_INFO("Doodling!"); ... return 0; }
The following is a description of each program line:
//1 | Instantiate the multi-client filter. |
//2 | First connect the two clients to the filter. |
//3 | Then connect the filter to the manager to ensure that no trace messages are lost. |
//4 | Generate some trace messages. |
RWTraceMultiClientFilter(RWStaticCtor);
Constructs a global static handle instance (may be used before being constructed).
RWTraceMultiClientFilter(RWTraceMultiClientFilterImp* bodyP);
Attaches to and increments the reference count on a body.
RWTraceMultiClientFilter(const RWTraceMultiClientFilter& second);
Copy constructor.
RWTraceMultiClientFilter();
Constructs an RWTraceMultiClientFilter (handle) and its body.
~RWTraceMultiClientFilter();
Destructor.
© Copyright Rogue Wave Software, Inc. All Rights Reserved.
Rogue Wave and SourcePro are registered trademarks of Rogue Wave Software, Inc. in the United States and other countries. All other trademarks are the property of their respective owners.
Contact Rogue Wave about documentation or support issues.