samples/main-trace.cc
author Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
Mon, 04 Sep 2006 13:40:02 +0200
changeset 40 90845b5a0049
parent 16 99e833adbb46
child 41 d9a2d111bac9
permissions -rw-r--r--
remove packet logger. replace it with more generic callback logger

/* -*-	Mode:C++; c-basic-offset:8; tab-width:8; indent-tabs-mode:t -*- */
#include "ns3/trace-container.h"
#include "ns3/ui-traced-variable.tcc"
#include "ns3/trace-stream.h"
#include "ns3/pcap-writer.h"
#include "ns3/packet.h"
#include <iostream>

using namespace ns3;

CallbackLogger<Packet> a;
UiTracedVariable<unsigned short> b;
TraceStream c;
CallbackLogger<double, int> d;

void
register_all_trace_sources (TraceContainer *container)
{
	container->register_callback ("source-a", &a);
	container->register_ui_variable ("source-b", &b);
	container->register_stream ("source-c", &c);
	container->register_callback ("source-d", &d);
}
void
generate_trace_events (void)
{
	// log en empty packet
	a (Packet ());
	b = 10;
	b += 100;
	b += 50;
	b = (unsigned short) -20;
	c << "this is a simple test b=" << b << std::endl;
	d (3.1415, 3);
}

void
variable_event (uint64_t old, uint64_t cur)
{}

void
callback_event (double a, int b)
{}


int main (int argc, char *argv[])
{
	TraceContainer traces;
	register_all_trace_sources (&traces);
	PcapWriter pcap;
	pcap.open ("trace-test.log");
	pcap.write_header_ethernet ();
	traces.set_callback ("source-a", 
			     make_callback (&PcapWriter::write_packet, &pcap));
	traces.set_ui_variable_callback ("source-b", make_callback (&variable_event));
	traces.set_stream ("source-c", &std::cout);
	traces.set_callback ("source-d", make_callback (&callback_event));
	generate_trace_events ();
	return 0;
}