blob: 0682388ac7ff9e59e652a9c786c210a7fd80134e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
/**
* @file fapiReturnCodeDataRef.C
*
* @brief Implements the FAPI part of the ReturnCodeDataRef class.
*/
/*
* Change Log ******************************************************************
* Flag Defect/Feature User Date Description
* ------ -------------- ---------- ----------- ----------------------------
* mjjones 04/13/2011 Created.
* camvanng 05/31/2011 Added debug traces
* mjjones 06/30/2011 Added #include
* mjjones 07/05/2011 Removed const from data
*/
#include <fapiReturnCodeDataRef.H>
#include <fapiUtil.H>
#include <fapiPlatTrace.H>
namespace fapi
{
//******************************************************************************
// Constructor
//******************************************************************************
ReturnCodeDataRef::ReturnCodeDataRef(void * i_pData) :
iv_refCount(1), iv_pData(i_pData)
{
}
//******************************************************************************
// Destructor
//******************************************************************************
ReturnCodeDataRef::~ReturnCodeDataRef()
{
if (iv_refCount != 0)
{
FAPI_ERR("ReturnCodeDataRef. Bug. Destruct with refcount");
fapiAssert(false);
}
else
{
// Call platform implemented deleteData
(void) deleteData();
}
}
//******************************************************************************
// incRefCount function
//******************************************************************************
void ReturnCodeDataRef::incRefCount()
{
FAPI_DBG("ReturnCodeDataRef::incRefCount: iv_refCount = %i on entry", iv_refCount);
iv_refCount++;
}
//******************************************************************************
// decRefCountCheckZero function
//******************************************************************************
bool ReturnCodeDataRef::decRefCountCheckZero()
{
FAPI_DBG("ReturnCodeDataRef::decRefCountCheckZero: iv_refCount = %i on entry", iv_refCount);
if (iv_refCount == 0)
{
FAPI_ERR("ReturnCodeDataRef. Bug. Dec with zero refcount");
fapiAssert(false);
}
else
{
iv_refCount--;
}
return (iv_refCount == 0);
}
//******************************************************************************
// getData function
//******************************************************************************
void * ReturnCodeDataRef::getData() const
{
return iv_pData;
}
//******************************************************************************
// releaseData function
//******************************************************************************
void * ReturnCodeDataRef::releaseData()
{
void * l_pData = iv_pData;
iv_pData = NULL;
return l_pData;
}
}
|