Implementation of RegisterStream(), UnregisterStream(), and FlushStreams(); see Implementation note! More...
#include "fatal-impl.h"#include "log.h"#include <iostream>#include <list>#include <cstdlib>#include <cstdio>#include <csignal>
Include dependency graph for fatal-impl.cc:Go to the source code of this file.
Classes | |
| struct | ns3::FatalImpl::anonymous_namespace{fatal-impl.cc}::destructor |
| Destructor for the list of fatal streams. More... | |
Namespaces | |
| ns3 | |
| Every class exported by the ns3 library is enclosed in the ns3 namespace. | |
| ns3::FatalImpl | |
| Implementation namespace for fatal error handlers. | |
| ns3::FatalImpl::anonymous_namespace{fatal-impl.cc} | |
| Anonymous namespace for fatal streams memory implementation and signal handler. | |
Functions | |
| void | ns3::FatalImpl::FlushStreams (void) |
| Flush all currently registered streams. More... | |
| std::list< std::ostream * > * | ns3::FatalImpl::anonymous_namespace{fatal-impl.cc}::GetStreamList (void) |
| Get the stream list, initializing it if necessary. More... | |
| std::list< std::ostream * > ** | ns3::FatalImpl::anonymous_namespace{fatal-impl.cc}::PeekStreamList (void) |
| Static variable pointing to the list of output streams to be flushed on fatal errors. More... | |
| void | ns3::FatalImpl::RegisterStream (std::ostream *stream) |
| Register a stream to be flushed on abnormal exit. More... | |
| void | ns3::FatalImpl::anonymous_namespace{fatal-impl.cc}::sigHandler (int sig) |
| Overrides normal SIGSEGV handler once the HandleTerminate function is run. More... | |
| void | ns3::FatalImpl::UnregisterStream (std::ostream *stream) |
| Unregister a stream for flushing on abnormal exit. More... | |
Implementation of RegisterStream(), UnregisterStream(), and FlushStreams(); see Implementation note!
The singleton pattern we use here is tricky because we have to ensure:
main() enters and before any constructor run in this file.new is deleted properly before program exit.This is why we go through all the painful hoops below.
Definition in file fatal-impl.cc.