00001 // $Id: Tuple.cpp,v 1.2 2005/01/18 15:51:53 mato Exp $ 00002 // ============================================================================ 00003 // GaudiAlg 00004 // ============================================================================ 00005 #include "GaudiAlg/Tuple.h" 00006 #include "GaudiAlg/TupleObj.h" 00007 // ============================================================================ 00008 00009 // ============================================================================ 00017 // ============================================================================ 00018 00019 // ============================================================================ 00023 // ============================================================================ 00024 Tuples::Tuple::Tuple( Tuples::TupleObj* tuple ) 00025 : m_tuple( tuple ) 00026 { 00027 if( 0 != m_tuple ) { m_tuple -> addRef () ; } 00028 }; 00029 // ============================================================================ 00030 00031 // ============================================================================ 00034 // ============================================================================ 00035 Tuples::Tuple::Tuple( const Tuples::Tuple& tuple ) 00036 : m_tuple ( tuple.m_tuple ) 00037 { 00038 if( 0 != m_tuple ) { m_tuple ->addRef() ; } 00039 }; 00040 // ============================================================================ 00041 00042 // ============================================================================ 00047 // ============================================================================ 00048 Tuples::Tuple& Tuples::Tuple::operator=( const Tuples::Tuple& tuple ) 00049 { 00050 // self assigenment 00051 if( &tuple == this ) { return *this; } 00052 // temporary variable 00053 Tuples::TupleObj* tmp = tuple.m_tuple ; 00054 // increse reference count 00055 if( 0 != tmp ) { tmp -> addRef () ; } 00056 // decrease reference count 00057 if( 0 != m_tuple ) { m_tuple -> release () ; } 00058 // assigne 00059 m_tuple = tmp ; 00060 // 00061 return *this ; 00062 }; 00063 // ============================================================================ 00064 00065 // ============================================================================ 00066 // destructor 00067 // ============================================================================ 00068 Tuples::Tuple::~Tuple() 00069 { 00070 if( 0 != m_tuple ) { m_tuple->release() ; } 00071 }; 00072 // ============================================================================ 00073 00074 // ============================================================================ 00075 // The END 00076 // ============================================================================ 00077 00078