BOSS
8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
Event/DecayChain/include/DecayChain/Element/ReferenceHolderBase.h
Go to the documentation of this file.
1
#ifndef DCHAIN_REFERENCEHOLDERBASE_H
2
#define DCHAIN_REFERENCEHOLDERBASE_H
3
// -*- C++ -*-
4
//
5
// Package: DChain
6
// Module: ReferenceHolderBase
7
//
8
// Description: Base implementation of smart pointer for classes that inherit from
9
// ReferenceCount
10
//
11
// Usage:
12
// ReferenceHolderBase() - default constructor
13
// ~ReferenceHolderBase() - destructor
14
//
15
// Author: Simon Patton
16
// Created: Fri May 17 08:01:51 EDT 1996
17
// $Id: ReferenceHolderBase.h,v 1.1.1.1 2009/03/03 06:06:56 maqm Exp $
18
//
19
// Revision history
20
//
21
// $Log: ReferenceHolderBase.h,v $
22
// Revision 1.1.1.1 2009/03/03 06:06:56 maqm
23
// first import of DecayChain
24
//
25
// Revision 1.1 2006/01/11 20:28:10 cdj
26
// massive class renaming, addition of [] for selection and unit tests
27
//
28
// Revision 1.1 2003/05/15 19:56:02 cdj
29
// revamped memory handling so always use a ReferenceHolder to deal with the reference counting
30
//
31
//
32
33
// system include files
34
35
// user include files
36
37
// forward declarations
38
namespace
dchain
{
39
template
<
class
TPtr,
class
TRef>
class
ReferenceHolderBase
{
40
public
:
41
// Constructors and destructor
42
ReferenceHolderBase
() : m_ref( 0 ) {}
43
ReferenceHolderBase
( TPtr iRef ) : m_ref( iRef ) {
44
if
( 0 != m_ref ) { m_ref->addLink(); }
45
}
46
~ReferenceHolderBase
() {
47
if
( 0 != m_ref ) { m_ref->dropLink(); }
48
}
49
50
ReferenceHolderBase
(
const
ReferenceHolderBase<TPtr, TRef>
& iOther )
51
: m_ref( iOther.m_ref ) {
52
if
( 0 != m_ref ) { m_ref->addLink(); }
53
}
54
55
// assignment operator(s)
56
const
ReferenceHolderBase
&
operator=
(
const
ReferenceHolderBase<TPtr, TRef>
& iRHS ) {
57
if
( 0 != iRHS.m_ref ) { iRHS.m_ref->addLink(); }
58
if
( 0 != m_ref ) { m_ref->dropLink(); }
59
m_ref = iRHS.m_ref;
60
return
*
this
;
61
}
62
63
// const member functions
64
TPtr
operator->
()
const
{
return
m_ref; }
65
66
TRef
operator*
()
const
{
return
*m_ref; }
67
68
TPtr
pointer
()
const
{
return
m_ref; }
69
70
private
:
71
// data members
72
TPtr m_ref;
73
};
74
75
// inline function definitions
76
77
//
78
// constructors and destructor
79
//
80
81
//
82
// member functions
83
//
84
85
}
// namespace dchain
86
#endif
// DCHAIN_REFERENCEHOLDERBASE_H
dchain::ReferenceHolderBase::ReferenceHolderBase
ReferenceHolderBase(TPtr iRef)
Definition
Event/DecayChain/include/DecayChain/Element/ReferenceHolderBase.h:43
dchain::ReferenceHolderBase::operator*
TRef operator*() const
Definition
Event/DecayChain/include/DecayChain/Element/ReferenceHolderBase.h:66
dchain::ReferenceHolderBase::~ReferenceHolderBase
~ReferenceHolderBase()
Definition
Event/DecayChain/include/DecayChain/Element/ReferenceHolderBase.h:46
dchain::ReferenceHolderBase::pointer
TPtr pointer() const
Definition
Event/DecayChain/include/DecayChain/Element/ReferenceHolderBase.h:68
dchain::ReferenceHolderBase::ReferenceHolderBase
ReferenceHolderBase(const ReferenceHolderBase< TPtr, TRef > &iOther)
Definition
Event/DecayChain/include/DecayChain/Element/ReferenceHolderBase.h:50
dchain::ReferenceHolderBase::operator->
TPtr operator->() const
Definition
Event/DecayChain/include/DecayChain/Element/ReferenceHolderBase.h:64
dchain::ReferenceHolderBase::ReferenceHolderBase
ReferenceHolderBase()
Definition
Event/DecayChain/include/DecayChain/Element/ReferenceHolderBase.h:42
dchain::ReferenceHolderBase::operator=
const ReferenceHolderBase & operator=(const ReferenceHolderBase< TPtr, TRef > &iRHS)
Definition
Event/DecayChain/include/DecayChain/Element/ReferenceHolderBase.h:56
dchain
Definition
Event/DecayChain/include/DecayChain/Element/children.h:16
8.0.0
BOSS_Source
Event
DecayChain
include
DecayChain
Element
ReferenceHolderBase.h
Generated by
1.16.1