ref. counting macro, starting remote client implementation
This commit is contained in:
@@ -11,35 +11,9 @@
|
||||
using namespace epics::pvData;
|
||||
using namespace epics::pvAccess;
|
||||
|
||||
static volatile int64 mockChannelProcess_totalConstruct = 0;
|
||||
static volatile int64 mockChannelProcess_totalDestruct = 0;
|
||||
static Mutex *mockChannelProcess_globalMutex = 0;
|
||||
|
||||
static int64 mockChannelProcess_processTotalConstruct()
|
||||
{
|
||||
Lock xx(mockChannelProcess_globalMutex);
|
||||
return mockChannelProcess_totalConstruct;
|
||||
}
|
||||
|
||||
static int64 mockChannelProcess_processTotalDestruct()
|
||||
{
|
||||
Lock xx(mockChannelProcess_globalMutex);
|
||||
return mockChannelProcess_totalDestruct;
|
||||
}
|
||||
|
||||
static ConstructDestructCallback *mockChannelProcess_pConstructDestructCallback;
|
||||
|
||||
static void mockChannelProcess_init()
|
||||
{
|
||||
static Mutex mutex = Mutex();
|
||||
Lock xx(&mutex);
|
||||
if(mockChannelProcess_globalMutex==0) {
|
||||
mockChannelProcess_globalMutex = new Mutex();
|
||||
mockChannelProcess_pConstructDestructCallback = new ConstructDestructCallback(
|
||||
String("mockChannelProcess"),
|
||||
mockChannelProcess_processTotalConstruct,mockChannelProcess_processTotalDestruct,0);
|
||||
}
|
||||
}
|
||||
PVDATA_REFCOUNT_MONITOR_DEFINE(mockChannelProcess);
|
||||
|
||||
class MockChannelProcess : public ChannelProcess
|
||||
{
|
||||
@@ -51,19 +25,14 @@ class MockChannelProcess : public ChannelProcess
|
||||
private:
|
||||
~MockChannelProcess()
|
||||
{
|
||||
Lock xx(mockChannelProcess_globalMutex);
|
||||
mockChannelProcess_totalDestruct++;
|
||||
PVDATA_REFCOUNT_MONITOR_DESTRUCT(mockChannelProcess);
|
||||
}
|
||||
|
||||
public:
|
||||
MockChannelProcess(ChannelProcessRequester* channelProcessRequester, PVStructure *pvStructure, PVStructure *pvRequest) :
|
||||
m_channelProcessRequester(channelProcessRequester), m_pvStructure(pvStructure)
|
||||
{
|
||||
mockChannelProcess_init();
|
||||
|
||||
Lock xx(mockChannelProcess_globalMutex);
|
||||
mockChannelProcess_totalConstruct++;
|
||||
|
||||
PVDATA_REFCOUNT_MONITOR_CONSTRUCT(mockChannelProcess);
|
||||
|
||||
PVField* field = pvStructure->getSubField(String("value"));
|
||||
if (field == 0)
|
||||
@@ -185,37 +154,7 @@ class MockChannelProcess : public ChannelProcess
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
static volatile int64 mockChannelGet_totalConstruct = 0;
|
||||
static volatile int64 mockChannelGet_totalDestruct = 0;
|
||||
static Mutex *mockChannelGet_globalMutex = 0;
|
||||
|
||||
static int64 mockChannelGet_getTotalConstruct()
|
||||
{
|
||||
Lock xx(mockChannelGet_globalMutex);
|
||||
return mockChannelGet_totalConstruct;
|
||||
}
|
||||
|
||||
static int64 mockChannelGet_getTotalDestruct()
|
||||
{
|
||||
Lock xx(mockChannelGet_globalMutex);
|
||||
return mockChannelGet_totalDestruct;
|
||||
}
|
||||
|
||||
static ConstructDestructCallback *mockChannelGet_pConstructDestructCallback;
|
||||
|
||||
static void mockChannelGet_init()
|
||||
{
|
||||
static Mutex mutex = Mutex();
|
||||
Lock xx(&mutex);
|
||||
if(mockChannelGet_globalMutex==0) {
|
||||
mockChannelGet_globalMutex = new Mutex();
|
||||
mockChannelGet_pConstructDestructCallback = new ConstructDestructCallback(
|
||||
String("mockChannelGet"),
|
||||
mockChannelGet_getTotalConstruct,mockChannelGet_getTotalDestruct,0);
|
||||
}
|
||||
}
|
||||
PVDATA_REFCOUNT_MONITOR_DEFINE(mockChannelGet);
|
||||
|
||||
class MockChannelGet : public ChannelGet
|
||||
{
|
||||
@@ -228,8 +167,7 @@ class MockChannelGet : public ChannelGet
|
||||
private:
|
||||
~MockChannelGet()
|
||||
{
|
||||
Lock xx(mockChannelGet_globalMutex);
|
||||
mockChannelGet_totalDestruct++;
|
||||
PVDATA_REFCOUNT_MONITOR_DESTRUCT(mockChannelGet);
|
||||
}
|
||||
|
||||
public:
|
||||
@@ -237,10 +175,7 @@ class MockChannelGet : public ChannelGet
|
||||
m_channelGetRequester(channelGetRequester), m_pvStructure(pvStructure),
|
||||
m_bitSet(new BitSet(pvStructure->getNumberFields())), m_first(true)
|
||||
{
|
||||
mockChannelGet_init();
|
||||
|
||||
Lock xx(mockChannelGet_globalMutex);
|
||||
mockChannelGet_totalConstruct++;
|
||||
PVDATA_REFCOUNT_MONITOR_CONSTRUCT(mockChannelGet);
|
||||
|
||||
// TODO pvRequest
|
||||
m_channelGetRequester->channelGetConnect(getStatusCreate()->getStatusOK(), this, m_pvStructure, m_bitSet);
|
||||
@@ -274,37 +209,7 @@ class MockChannelGet : public ChannelGet
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
static volatile int64 mockChannelPut_totalConstruct = 0;
|
||||
static volatile int64 mockChannelPut_totalDestruct = 0;
|
||||
static Mutex *mockChannelPut_globalMutex = 0;
|
||||
|
||||
static int64 mockChannelPut_getTotalConstruct()
|
||||
{
|
||||
Lock xx(mockChannelPut_globalMutex);
|
||||
return mockChannelPut_totalConstruct;
|
||||
}
|
||||
|
||||
static int64 mockChannelPut_getTotalDestruct()
|
||||
{
|
||||
Lock xx(mockChannelPut_globalMutex);
|
||||
return mockChannelPut_totalDestruct;
|
||||
}
|
||||
|
||||
static ConstructDestructCallback *mockChannelPut_pConstructDestructCallback;
|
||||
|
||||
static void mockChannelPut_init()
|
||||
{
|
||||
static Mutex mutex = Mutex();
|
||||
Lock xx(&mutex);
|
||||
if(mockChannelPut_globalMutex==0) {
|
||||
mockChannelPut_globalMutex = new Mutex();
|
||||
mockChannelPut_pConstructDestructCallback = new ConstructDestructCallback(
|
||||
String("mockChannelPut"),
|
||||
mockChannelPut_getTotalConstruct,mockChannelPut_getTotalDestruct,0);
|
||||
}
|
||||
}
|
||||
PVDATA_REFCOUNT_MONITOR_DEFINE(mockChannelPut);
|
||||
|
||||
class MockChannelPut : public ChannelPut
|
||||
{
|
||||
@@ -317,8 +222,7 @@ class MockChannelPut : public ChannelPut
|
||||
private:
|
||||
~MockChannelPut()
|
||||
{
|
||||
Lock xx(mockChannelPut_globalMutex);
|
||||
mockChannelPut_totalDestruct++;
|
||||
PVDATA_REFCOUNT_MONITOR_DESTRUCT(mockChannelPut);
|
||||
}
|
||||
|
||||
public:
|
||||
@@ -326,10 +230,7 @@ class MockChannelPut : public ChannelPut
|
||||
m_channelPutRequester(channelPutRequester), m_pvStructure(pvStructure),
|
||||
m_bitSet(new BitSet(pvStructure->getNumberFields())), m_first(true)
|
||||
{
|
||||
mockChannelPut_init();
|
||||
|
||||
Lock xx(mockChannelPut_globalMutex);
|
||||
mockChannelPut_totalConstruct++;
|
||||
PVDATA_REFCOUNT_MONITOR_CONSTRUCT(mockChannelPut);
|
||||
|
||||
// TODO pvRequest
|
||||
m_channelPutRequester->channelPutConnect(getStatusCreate()->getStatusOK(), this, m_pvStructure, m_bitSet);
|
||||
@@ -361,40 +262,7 @@ class MockChannelPut : public ChannelPut
|
||||
|
||||
|
||||
|
||||
|
||||
static volatile int64 mockMonitor_totalConstruct = 0;
|
||||
static volatile int64 mockMonitor_totalDestruct = 0;
|
||||
static Mutex *mockMonitor_globalMutex = 0;
|
||||
|
||||
static int64 mockMonitor_getTotalConstruct()
|
||||
{
|
||||
Lock xx(mockMonitor_globalMutex);
|
||||
return mockMonitor_totalConstruct;
|
||||
}
|
||||
|
||||
static int64 mockMonitor_getTotalDestruct()
|
||||
{
|
||||
Lock xx(mockMonitor_globalMutex);
|
||||
return mockMonitor_totalDestruct;
|
||||
}
|
||||
|
||||
static ConstructDestructCallback *mockMonitor_pConstructDestructCallback;
|
||||
|
||||
static void mockMonitor_init()
|
||||
{
|
||||
static Mutex mutex = Mutex();
|
||||
Lock xx(&mutex);
|
||||
if(mockMonitor_globalMutex==0) {
|
||||
mockMonitor_globalMutex = new Mutex();
|
||||
mockMonitor_pConstructDestructCallback = new ConstructDestructCallback(
|
||||
String("mockMonitor"),
|
||||
mockMonitor_getTotalConstruct,mockMonitor_getTotalDestruct,0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
PVDATA_REFCOUNT_MONITOR_DEFINE(mockMonitor);
|
||||
|
||||
class MockMonitor : public Monitor, public MonitorElement
|
||||
{
|
||||
@@ -410,8 +278,7 @@ class MockMonitor : public Monitor, public MonitorElement
|
||||
private:
|
||||
~MockMonitor()
|
||||
{
|
||||
Lock xx(mockMonitor_globalMutex);
|
||||
mockMonitor_totalDestruct++;
|
||||
PVDATA_REFCOUNT_MONITOR_DESTRUCT(mockMonitor);
|
||||
}
|
||||
|
||||
public:
|
||||
@@ -423,10 +290,7 @@ class MockMonitor : public Monitor, public MonitorElement
|
||||
m_lock(new Mutex()),
|
||||
m_count(0)
|
||||
{
|
||||
mockMonitor_init();
|
||||
|
||||
Lock xx(mockMonitor_globalMutex);
|
||||
mockMonitor_totalConstruct++;
|
||||
PVDATA_REFCOUNT_MONITOR_CONSTRUCT(mockMonitor);
|
||||
|
||||
m_changedBitSet->set(0);
|
||||
|
||||
@@ -505,37 +369,7 @@ class MockMonitor : public Monitor, public MonitorElement
|
||||
|
||||
|
||||
|
||||
|
||||
static volatile int64 mockChannel_totalConstruct = 0;
|
||||
static volatile int64 mockChannel_totalDestruct = 0;
|
||||
static Mutex *mockChannel_globalMutex = 0;
|
||||
|
||||
static int64 mockChannel_getTotalConstruct()
|
||||
{
|
||||
Lock xx(mockChannel_globalMutex);
|
||||
return mockChannel_totalConstruct;
|
||||
}
|
||||
|
||||
static int64 mockChannel_getTotalDestruct()
|
||||
{
|
||||
Lock xx(mockChannel_globalMutex);
|
||||
return mockChannel_totalDestruct;
|
||||
}
|
||||
|
||||
static ConstructDestructCallback *mockChannel_pConstructDestructCallback;
|
||||
|
||||
static void mockChannel_init()
|
||||
{
|
||||
static Mutex mutex = Mutex();
|
||||
Lock xx(&mutex);
|
||||
if(mockChannel_globalMutex==0) {
|
||||
mockChannel_globalMutex = new Mutex();
|
||||
mockChannel_pConstructDestructCallback = new ConstructDestructCallback(
|
||||
String("mockChannel"),
|
||||
mockChannel_getTotalConstruct,mockChannel_getTotalDestruct,0);
|
||||
}
|
||||
}
|
||||
|
||||
PVDATA_REFCOUNT_MONITOR_DEFINE(mockChannel);
|
||||
|
||||
class MockChannel : public Channel {
|
||||
private:
|
||||
@@ -549,8 +383,7 @@ class MockChannel : public Channel {
|
||||
private:
|
||||
~MockChannel()
|
||||
{
|
||||
Lock xx(mockChannel_globalMutex);
|
||||
mockChannel_totalDestruct++;
|
||||
PVDATA_REFCOUNT_MONITOR_DESTRUCT(mockChannel);
|
||||
}
|
||||
|
||||
public:
|
||||
@@ -565,10 +398,7 @@ class MockChannel : public Channel {
|
||||
m_name(name),
|
||||
m_remoteAddress(remoteAddress)
|
||||
{
|
||||
mockChannel_init();
|
||||
|
||||
Lock xx(mockChannel_globalMutex);
|
||||
mockChannel_totalConstruct++;
|
||||
PVDATA_REFCOUNT_MONITOR_CONSTRUCT(mockChannel);
|
||||
|
||||
|
||||
ScalarType stype = pvDouble;
|
||||
|
||||
Reference in New Issue
Block a user