libzypp  13.10.6
zypp::debug::TraceCAD< _Tp > Struct Template Reference

A simple tracer for (copy) Construction, Assignment, and Destruction. More...

#include <Debug.h>

Inheritance diagram for zypp::debug::TraceCAD< _Tp >:
zypp::base::ProvideNumericId< TraceCAD< _Tp >, unsigned long > zypp::debug::TraceCADBase

Public Member Functions

 TraceCAD ()
 
 TraceCAD (const TraceCAD &rhs)
 
TraceCADoperator= (const TraceCAD &rhs)
 
virtual ~TraceCAD ()
 
void _PING () const
 
- Public Member Functions inherited from zypp::base::ProvideNumericId< TraceCAD< _Tp >, unsigned long >
unsigned long numericId () const
 

Static Public Member Functions

static unsigned long & _totalTraceCAD ()
 

Related Functions

(Note that these are not member functions.)

template<class _Tp >
std::ostream & operator<< (std::ostream &str, const TraceCAD< _Tp > &obj)
 

Additional Inherited Members

- Public Types inherited from zypp::debug::TraceCADBase
enum  What {
  CTOR, COPYCTOR, ASSIGN, DTOR,
  PING
}
 
- Public Attributes inherited from zypp::debug::TraceCADBase
std::string _ident
 
- Protected Member Functions inherited from zypp::base::ProvideNumericId< TraceCAD< _Tp >, unsigned long >
 ProvideNumericId ()
 Default ctor. More...
 
 ProvideNumericId (const ProvideNumericId &)
 Copy ctor. More...
 
 ProvideNumericId (const void *const )
 No-Id ctor (0). More...
 
ProvideNumericIdoperator= (const ProvideNumericId &)
 Assign. More...
 
 ~ProvideNumericId ()
 Dtor. More...
 

Detailed Description

template<class _Tp>
struct zypp::debug::TraceCAD< _Tp >

A simple tracer for (copy) Construction, Assignment, and Destruction.

To trace class Foo, derive public from TraceCAD<Foo>. This tracer simply calls traceCAD in each traced method, and traceCAD simply drops a line in the log.

This tracer logs construction, copy construction, assignment, destruction and _PING.

assignment: In case the traced class defines an operator= it must be altered to call TraceCAD::operator=, otherwise it won't be triggered.

_PING: Completely up to you. Call _PING somewhere in the traced class to indicate something. In case you overload traceCAD, do whatever is appropriate on _PING. It's just an offer to perform logging or actions here, and not in the traced code.

But traceCAD may be overloaded to produce more stats.

See Also
Example.COW_debug.cc.

Definition at line 108 of file Debug.h.

Constructor & Destructor Documentation

template<class _Tp>
zypp::debug::TraceCAD< _Tp >::TraceCAD ( )
inline

Definition at line 115 of file Debug.h.

template<class _Tp>
zypp::debug::TraceCAD< _Tp >::TraceCAD ( const TraceCAD< _Tp > &  rhs)
inline

Definition at line 120 of file Debug.h.

template<class _Tp>
virtual zypp::debug::TraceCAD< _Tp >::~TraceCAD ( )
inlinevirtual

Definition at line 127 of file Debug.h.

Member Function Documentation

template<class _Tp>
static unsigned long& zypp::debug::TraceCAD< _Tp >::_totalTraceCAD ( )
inlinestatic

Definition at line 111 of file Debug.h.

template<class _Tp>
TraceCAD& zypp::debug::TraceCAD< _Tp >::operator= ( const TraceCAD< _Tp > &  rhs)
inline

Definition at line 124 of file Debug.h.

template<class _Tp>
void zypp::debug::TraceCAD< _Tp >::_PING ( ) const
inline

Definition at line 131 of file Debug.h.


The documentation for this struct was generated from the following file: