removed CDRMonitor, ported to new Timer API

This commit is contained in:
Matej Sekoranja
2012-07-18 11:09:00 +02:00
parent 596d4ce899
commit 49bc940179
19 changed files with 144 additions and 150 deletions
@@ -33,7 +33,6 @@ namespace epics {
_introspectionRegistry(false),
_connectionTimeout(beaconInterval*1000),
_unresponsiveTransport(false),
_timerNode(*this),
_verifyOrEcho(true)
{
// _autoDelete = false;
@@ -46,13 +45,15 @@ namespace epics {
// setup connection timeout timer (watchdog)
epicsTimeGetCurrent(&_aliveTimestamp);
context->getTimer()->schedulePeriodic(_timerNode, beaconInterval, beaconInterval);
//start();
}
void BlockingClientTCPTransport::start()
{
TimerCallbackPtr tcb = std::tr1::dynamic_pointer_cast<TimerCallback>(shared_from_this());
_context->getTimer()->schedulePeriodic(tcb, _connectionTimeout, _connectionTimeout);
BlockingTCPTransport::start();
}
BlockingClientTCPTransport::~BlockingClientTCPTransport() {
}
@@ -110,7 +111,8 @@ namespace epics {
void BlockingClientTCPTransport::internalClose(bool forced) {
BlockingTCPTransport::internalClose(forced);
_timerNode.cancel();
TimerCallbackPtr tcb = std::tr1::dynamic_pointer_cast<TimerCallback>(shared_from_this());
_context->getTimer()->cancel(tcb);
}
void BlockingClientTCPTransport::internalPostClose(bool forced) {
+3 -6
View File
@@ -159,7 +159,7 @@ namespace epics {
/**
* Starts the receive and send threads
*/
void start();
virtual void start();
virtual void enqueueSendRequest(TransportSender::shared_pointer const & sender);
@@ -467,6 +467,8 @@ namespace epics {
thisPointer->start();
return thisPointer;
}
virtual void start();
virtual ~BlockingClientTCPTransport();
@@ -566,11 +568,6 @@ namespace epics {
*/
bool _unresponsiveTransport;
/**
* Timer task node.
*/
epics::pvData::TimerNode _timerNode;
/**
* Timestamp of last "live" event on this transport.
*/
+3 -4
View File
@@ -16,7 +16,6 @@
#include <pv/byteBuffer.h>
#include <pv/epicsException.h>
#include <pv/noDefaultMethods.h>
#include <pv/CDRMonitor.h>
#include <osdSock.h>
#include <osiSock.h>
@@ -74,7 +73,7 @@ namespace pvAccess {
};
*/
PVDATA_REFCOUNT_MONITOR_DEFINE(blockingTCPTransport);
PVACCESS_REFCOUNT_MONITOR_DEFINE(blockingTCPTransport);
//const double BlockingTCPTransport::_delay = 0.000;
@@ -121,7 +120,7 @@ namespace pvAccess {
_totalBytesSent(0),
_remoteBufferFreeSpace(INT64_MAX)
{
PVDATA_REFCOUNT_MONITOR_CONSTRUCT(blockingTCPTransport);
PVACCESS_REFCOUNT_MONITOR_CONSTRUCT(blockingTCPTransport);
// TODO minor tweak: deque size is not preallocated...
@@ -181,7 +180,7 @@ namespace pvAccess {
}
BlockingTCPTransport::~BlockingTCPTransport() {
PVDATA_REFCOUNT_MONITOR_DESTRUCT(blockingTCPTransport);
PVACCESS_REFCOUNT_MONITOR_DESTRUCT(blockingTCPTransport);
close(true);
+3 -4
View File
@@ -12,7 +12,6 @@
#include <pv/byteBuffer.h>
#include <pv/lock.h>
#include <pv/CDRMonitor.h>
#include <osdSock.h>
#include <osiSock.h>
@@ -27,7 +26,7 @@ using namespace std;
namespace epics {
namespace pvAccess {
PVDATA_REFCOUNT_MONITOR_DEFINE(blockingUDPTransport);
PVACCESS_REFCOUNT_MONITOR_DEFINE(blockingUDPTransport);
BlockingUDPTransport::BlockingUDPTransport(
auto_ptr<ResponseHandler>& responseHandler, SOCKET channel,
@@ -45,7 +44,7 @@ namespace epics {
_lastMessageStartPosition(0),
_threadId(0)
{
PVDATA_REFCOUNT_MONITOR_CONSTRUCT(blockingUDPTransport);
PVACCESS_REFCOUNT_MONITOR_CONSTRUCT(blockingUDPTransport);
// set receive timeout so that we do not have problems at shutdown (recvfrom would block)
struct timeval timeout;
@@ -66,7 +65,7 @@ namespace epics {
}
BlockingUDPTransport::~BlockingUDPTransport() {
PVDATA_REFCOUNT_MONITOR_DESTRUCT(blockingUDPTransport);
PVACCESS_REFCOUNT_MONITOR_DESTRUCT(blockingUDPTransport);
close(true); // close the socket and stop the thread.
+4
View File
@@ -28,6 +28,10 @@
namespace epics {
namespace pvAccess {
#define PVACCESS_REFCOUNT_MONITOR_DEFINE(name)
#define PVACCESS_REFCOUNT_MONITOR_CONSTRUCT(name)
#define PVACCESS_REFCOUNT_MONITOR_DESTRUCT(name)
class TransportRegistry;
enum QoS {
@@ -35,13 +35,20 @@ const int SimpleChannelSearchManagerImpl::MAX_FRAMES_AT_ONCE = 10;
const int SimpleChannelSearchManagerImpl::DELAY_BETWEEN_FRAMES_MS = 50;
SimpleChannelSearchManagerImpl::shared_pointer
SimpleChannelSearchManagerImpl::create(Context::shared_pointer const & context)
{
SimpleChannelSearchManagerImpl::shared_pointer thisPtr(new SimpleChannelSearchManagerImpl(context));
thisPtr->activate();
return thisPtr;
}
SimpleChannelSearchManagerImpl::SimpleChannelSearchManagerImpl(Context::shared_pointer const & context) :
m_context(context),
m_canceled(),
m_sequenceNumber(0),
m_sendBuffer(MAX_UDP_SEND),
m_channels(),
m_timerNode(*this),
m_lastTimeSent(),
m_mockTransportSendControl(),
m_channelMutex(),
@@ -54,10 +61,16 @@ SimpleChannelSearchManagerImpl::SimpleChannelSearchManagerImpl(Context::shared_p
// initialize random seed with some random value
srand ( time(NULL) );
}
void SimpleChannelSearchManagerImpl::activate()
{
// add some jitter so that all the clients do not send at the same time
double period = ATOMIC_PERIOD + (rand() % (2*PERIOD_JITTER_MS+1) - PERIOD_JITTER_MS)/(double)1000;
context->getTimer()->schedulePeriodic(m_timerNode, period, period);
Context::shared_pointer context = m_context.lock();
if (context.get())
context->getTimer()->schedulePeriodic(shared_from_this(), period, period);
//new Thread(this, "pvAccess immediate-search").start();
}
@@ -75,7 +88,9 @@ void SimpleChannelSearchManagerImpl::cancel()
return;
m_canceled.set();
m_timerNode.cancel();
Context::shared_pointer context = m_context.lock();
if (context.get())
context->getTimer()->cancel(shared_from_this());
}
int32_t SimpleChannelSearchManagerImpl::registeredCount()
@@ -36,7 +36,10 @@ public:
};
class SimpleChannelSearchManagerImpl : public ChannelSearchManager, public epics::pvData::TimerCallback
class SimpleChannelSearchManagerImpl :
public ChannelSearchManager,
public epics::pvData::TimerCallback,
public std::tr1::enable_shared_from_this<SimpleChannelSearchManagerImpl>
{
public:
POINTER_DEFINITIONS(SimpleChannelSearchManagerImpl);
@@ -45,7 +48,7 @@ class SimpleChannelSearchManagerImpl : public ChannelSearchManager, public epics
* Constructor.
* @param context
*/
SimpleChannelSearchManagerImpl(Context::shared_pointer const & context);
static SimpleChannelSearchManagerImpl::shared_pointer create(Context::shared_pointer const & context);
/**
* Constructor.
* @param context
@@ -92,6 +95,13 @@ class SimpleChannelSearchManagerImpl : public ChannelSearchManager, public epics
private:
/**
* Private constructor.
* @param context
*/
SimpleChannelSearchManagerImpl(Context::shared_pointer const & context);
void activate();
bool generateSearchRequestMessage(SearchInstance::shared_pointer const & channel, bool allowNewFrame, bool flush);
static bool generateSearchRequestMessage(SearchInstance::shared_pointer const & channel,
@@ -129,12 +139,6 @@ class SimpleChannelSearchManagerImpl : public ChannelSearchManager, public epics
*/
std::map<pvAccessID,SearchInstance::shared_pointer> m_channels;
/**
* Timer node.
* (sync on requestPendingChannels)
*/
epics::pvData::TimerNode m_timerNode;
/**
* Time of last frame send.
*/
+31 -32
View File
@@ -7,7 +7,6 @@
#include <pv/pvAccess.h>
#include <iostream>
#include <sstream>
#include <pv/CDRMonitor.h>
#include <pv/lock.h>
#include <pv/standardPVField.h>
#include <memory>
@@ -306,7 +305,7 @@ namespace epics {
PVDATA_REFCOUNT_MONITOR_DEFINE(channelProcess);
PVACCESS_REFCOUNT_MONITOR_DEFINE(channelProcess);
class ChannelProcessRequestImpl :
public BaseRequestImpl,
@@ -321,7 +320,7 @@ namespace epics {
m_callback(callback),
m_pvRequest(pvRequest)
{
PVDATA_REFCOUNT_MONITOR_CONSTRUCT(channelProcess);
PVACCESS_REFCOUNT_MONITOR_CONSTRUCT(channelProcess);
}
void activate()
@@ -354,7 +353,7 @@ namespace epics {
~ChannelProcessRequestImpl()
{
PVDATA_REFCOUNT_MONITOR_DESTRUCT(channelProcess);
PVACCESS_REFCOUNT_MONITOR_DESTRUCT(channelProcess);
}
virtual void send(ByteBuffer* buffer, TransportSendControl* control) {
@@ -449,7 +448,7 @@ namespace epics {
PVDATA_REFCOUNT_MONITOR_DEFINE(channelGet);
PVACCESS_REFCOUNT_MONITOR_DEFINE(channelGet);
class ChannelGetImpl :
public BaseRequestImpl,
@@ -469,7 +468,7 @@ namespace epics {
BaseRequestImpl(channel, static_pointer_cast<Requester>(channelGetRequester)),
m_channelGetRequester(channelGetRequester), m_pvRequest(pvRequest)
{
PVDATA_REFCOUNT_MONITOR_CONSTRUCT(channelGet);
PVACCESS_REFCOUNT_MONITOR_CONSTRUCT(channelGet);
}
void activate()
@@ -509,7 +508,7 @@ namespace epics {
~ChannelGetImpl()
{
PVDATA_REFCOUNT_MONITOR_DESTRUCT(channelGet);
PVACCESS_REFCOUNT_MONITOR_DESTRUCT(channelGet);
}
virtual void send(ByteBuffer* buffer, TransportSendControl* control) {
@@ -655,7 +654,7 @@ namespace epics {
PVDATA_REFCOUNT_MONITOR_DEFINE(channelPut);
PVACCESS_REFCOUNT_MONITOR_DEFINE(channelPut);
class ChannelPutImpl : public BaseRequestImpl, public ChannelPut
{
@@ -673,7 +672,7 @@ namespace epics {
BaseRequestImpl(channel, static_pointer_cast<Requester>(channelPutRequester)),
m_channelPutRequester(channelPutRequester), m_pvRequest(pvRequest)
{
PVDATA_REFCOUNT_MONITOR_CONSTRUCT(channelPut);
PVACCESS_REFCOUNT_MONITOR_CONSTRUCT(channelPut);
}
void activate()
@@ -713,7 +712,7 @@ namespace epics {
~ChannelPutImpl()
{
PVDATA_REFCOUNT_MONITOR_DESTRUCT(channelPut);
PVACCESS_REFCOUNT_MONITOR_DESTRUCT(channelPut);
}
virtual void send(ByteBuffer* buffer, TransportSendControl* control) {
@@ -887,7 +886,7 @@ namespace epics {
PVDATA_REFCOUNT_MONITOR_DEFINE(channelPutGet);
PVACCESS_REFCOUNT_MONITOR_DEFINE(channelPutGet);
class ChannelPutGetImpl : public BaseRequestImpl, public ChannelPutGet
{
@@ -905,7 +904,7 @@ namespace epics {
BaseRequestImpl(channel, static_pointer_cast<Requester>(channelPutGetRequester)),
m_channelPutGetRequester(channelPutGetRequester), m_pvRequest(pvRequest)
{
PVDATA_REFCOUNT_MONITOR_CONSTRUCT(channelPutGet);
PVACCESS_REFCOUNT_MONITOR_CONSTRUCT(channelPutGet);
}
void activate()
@@ -940,7 +939,7 @@ namespace epics {
~ChannelPutGetImpl()
{
PVDATA_REFCOUNT_MONITOR_DESTRUCT(channelPutGet);
PVACCESS_REFCOUNT_MONITOR_DESTRUCT(channelPutGet);
}
virtual void send(ByteBuffer* buffer, TransportSendControl* control) {
@@ -1177,7 +1176,7 @@ namespace epics {
PVDATA_REFCOUNT_MONITOR_DEFINE(channelRPC);
PVACCESS_REFCOUNT_MONITOR_DEFINE(channelRPC);
class ChannelRPCImpl : public BaseRequestImpl, public ChannelRPC
{
@@ -1194,7 +1193,7 @@ namespace epics {
BaseRequestImpl(channel, static_pointer_cast<Requester>(channelRPCRequester)),
m_channelRPCRequester(channelRPCRequester), m_pvRequest(pvRequest)
{
PVDATA_REFCOUNT_MONITOR_CONSTRUCT(channelRPC);
PVACCESS_REFCOUNT_MONITOR_CONSTRUCT(channelRPC);
}
void activate()
@@ -1228,7 +1227,7 @@ namespace epics {
~ChannelRPCImpl()
{
PVDATA_REFCOUNT_MONITOR_DESTRUCT(channelRPC);
PVACCESS_REFCOUNT_MONITOR_DESTRUCT(channelRPC);
}
virtual void send(ByteBuffer* buffer, TransportSendControl* control) {
@@ -1366,7 +1365,7 @@ namespace epics {
PVDATA_REFCOUNT_MONITOR_DEFINE(channelArray);
PVACCESS_REFCOUNT_MONITOR_DEFINE(channelArray);
class ChannelArrayImpl : public BaseRequestImpl, public ChannelArray
{
@@ -1390,7 +1389,7 @@ namespace epics {
m_channelArrayRequester(channelArrayRequester), m_pvRequest(pvRequest),
m_offset(0), m_count(0), m_length(-1), m_capacity(-1)
{
PVDATA_REFCOUNT_MONITOR_CONSTRUCT(channelArray);
PVACCESS_REFCOUNT_MONITOR_CONSTRUCT(channelArray);
}
void activate()
@@ -1426,7 +1425,7 @@ namespace epics {
~ChannelArrayImpl()
{
PVDATA_REFCOUNT_MONITOR_DESTRUCT(channelArray);
PVACCESS_REFCOUNT_MONITOR_DESTRUCT(channelArray);
}
virtual void send(ByteBuffer* buffer, TransportSendControl* control) {
@@ -1651,7 +1650,7 @@ namespace epics {
PVDATA_REFCOUNT_MONITOR_DEFINE(channelGetField);
PVACCESS_REFCOUNT_MONITOR_DEFINE(channelGetField);
// NOTE: this instance is not returned as Request, so it must self-destruct
class ChannelGetFieldRequestImpl :
@@ -1683,7 +1682,7 @@ namespace epics {
m_ioid(INVALID_IOID),
m_destroyed(false)
{
PVDATA_REFCOUNT_MONITOR_CONSTRUCT(channelGetField);
PVACCESS_REFCOUNT_MONITOR_CONSTRUCT(channelGetField);
}
void activate()
@@ -1713,7 +1712,7 @@ namespace epics {
~ChannelGetFieldRequestImpl()
{
PVDATA_REFCOUNT_MONITOR_DESTRUCT(channelGetField);
PVACCESS_REFCOUNT_MONITOR_DESTRUCT(channelGetField);
}
Requester::shared_pointer getRequester() {
@@ -2065,7 +2064,7 @@ namespace epics {
PVDATA_REFCOUNT_MONITOR_DEFINE(channelMonitor);
PVACCESS_REFCOUNT_MONITOR_DEFINE(channelMonitor);
class ChannelMonitorImpl :
public BaseRequestImpl,
@@ -2085,7 +2084,7 @@ namespace epics {
m_started(false),
m_pvRequest(pvRequest)
{
PVDATA_REFCOUNT_MONITOR_CONSTRUCT(channelMonitor);
PVACCESS_REFCOUNT_MONITOR_CONSTRUCT(channelMonitor);
}
void activate()
@@ -2153,7 +2152,7 @@ namespace epics {
~ChannelMonitorImpl()
{
PVDATA_REFCOUNT_MONITOR_DESTRUCT(channelMonitor);
PVACCESS_REFCOUNT_MONITOR_DESTRUCT(channelMonitor);
}
virtual void send(ByteBuffer* buffer, TransportSendControl* control) {
@@ -2740,7 +2739,7 @@ namespace epics {
PVDATA_REFCOUNT_MONITOR_DEFINE(channel);
PVACCESS_REFCOUNT_MONITOR_DEFINE(channel);
/**
@@ -2766,7 +2765,7 @@ namespace epics {
PVDATA_REFCOUNT_MONITOR_DEFINE(remoteClientContext);
PVACCESS_REFCOUNT_MONITOR_DEFINE(remoteClientContext);
class InternalClientContextImpl :
public ClientContextImpl,
@@ -2996,7 +2995,7 @@ namespace epics {
m_serverChannelID(0xFFFFFFFF),
m_issueCreateMessage(true)
{
PVDATA_REFCOUNT_MONITOR_CONSTRUCT(channel);
PVACCESS_REFCOUNT_MONITOR_CONSTRUCT(channel);
}
void activate()
@@ -3025,7 +3024,7 @@ namespace epics {
~InternalChannelImpl()
{
PVDATA_REFCOUNT_MONITOR_DESTRUCT(channel);
PVACCESS_REFCOUNT_MONITOR_DESTRUCT(channel);
}
virtual void destroy()
@@ -3743,7 +3742,7 @@ namespace epics {
m_contextState(CONTEXT_NOT_INITIALIZED),
m_configuration(new SystemConfigurationImpl())
{
PVDATA_REFCOUNT_MONITOR_CONSTRUCT(remoteClientContext);
PVACCESS_REFCOUNT_MONITOR_CONSTRUCT(remoteClientContext);
m_provider.reset(new ChannelProviderImpl(this));
loadConfiguration();
}
@@ -3866,7 +3865,7 @@ TODO
~InternalClientContextImpl()
{
PVDATA_REFCOUNT_MONITOR_DESTRUCT(remoteClientContext);
PVACCESS_REFCOUNT_MONITOR_DESTRUCT(remoteClientContext);
};
private:
@@ -3889,7 +3888,7 @@ TODO
m_transportRegistry.reset(new TransportRegistry());
// setup search manager
m_channelSearchManager.reset(new SimpleChannelSearchManagerImpl(thisPointer));
m_channelSearchManager = SimpleChannelSearchManagerImpl::create(thisPointer);
// TODO put memory barrier here...
+5 -7
View File
@@ -36,8 +36,7 @@ BeaconEmitter::BeaconEmitter(Transport::shared_pointer const & transport, std::t
_serverAddress(*(context->getServerInetAddress())),
_serverPort(context->getServerPort()),
_serverStatusProvider(context->getBeaconServerStatusProvider()),
_timer(context->getTimer()),
_timerNode(*this)
_timer(context->getTimer())
{
_startupTime.getCurrent();
}
@@ -52,8 +51,7 @@ BeaconEmitter::BeaconEmitter(Transport::shared_pointer const & transport, const
_serverAddress(serverAddress),
_serverPort(serverAddress.ia.sin_port),
_serverStatusProvider(),
_timer(new Timer("pvAccess-server timer", lowPriority)),
_timerNode(*this)
_timer(new Timer("pvAccess-server timer", lowPriority))
{
_startupTime.getCurrent();
}
@@ -125,12 +123,12 @@ void BeaconEmitter::timerStopped()
void BeaconEmitter::destroy()
{
_timerNode.cancel();
_timer->cancel(shared_from_this());
}
void BeaconEmitter::start()
{
_timer->scheduleAfterDelay(_timerNode, 0.0);
_timer->scheduleAfterDelay(shared_from_this(), 0.0);
}
void BeaconEmitter::reschedule()
@@ -138,7 +136,7 @@ void BeaconEmitter::reschedule()
const double period = (_beaconSequenceID >= _beaconCountLimit) ? _slowBeaconPeriod : _fastBeaconPeriod;
if (period > 0)
{
_timer->scheduleAfterDelay(_timerNode, period);
_timer->scheduleAfterDelay(shared_from_this(), period);
}
}
+1 -6
View File
@@ -135,12 +135,7 @@ namespace epics { namespace pvAccess {
/**
* Timer.
*/
epics::pvData::Timer::shared_pointer _timer;
/**
* Timer task node.
*/
epics::pvData::TimerNode _timerNode;
epics::pvData::Timer::shared_pointer _timer;
};
}}
+17 -19
View File
@@ -5,7 +5,6 @@
#include <epicsExit.h>
#include <pv/pvAccess.h>
#include <iostream>
#include <CDRMonitor.h>
#include <lock.h>
#include <standardPVField.h>
@@ -14,7 +13,7 @@ using namespace epics::pvAccess;
PVDATA_REFCOUNT_MONITOR_DEFINE(mockChannelProcess);
PVACCESS_REFCOUNT_MONITOR_DEFINE(mockChannelProcess);
class MockChannelProcess : public ChannelProcess
{
@@ -26,14 +25,14 @@ class MockChannelProcess : public ChannelProcess
private:
~MockChannelProcess()
{
PVDATA_REFCOUNT_MONITOR_DESTRUCT(mockChannelProcess);
PVACCESS_REFCOUNT_MONITOR_DESTRUCT(mockChannelProcess);
}
public:
MockChannelProcess(ChannelProcessRequester* channelProcessRequester, PVStructure *pvStructure, PVStructure *pvRequest) :
m_channelProcessRequester(channelProcessRequester), m_pvStructure(pvStructure)
{
PVDATA_REFCOUNT_MONITOR_CONSTRUCT(mockChannelProcess);
PVACCESS_REFCOUNT_MONITOR_CONSTRUCT(mockChannelProcess);
PVField* field = pvStructure->getSubField(String("value"));
if (field == 0)
@@ -153,7 +152,7 @@ class MockChannelProcess : public ChannelProcess
PVDATA_REFCOUNT_MONITOR_DEFINE(mockChannelGet);
PVACCESS_REFCOUNT_MONITOR_DEFINE(mockChannelGet);
class MockChannelGet : public ChannelGet
{
@@ -166,7 +165,7 @@ class MockChannelGet : public ChannelGet
private:
~MockChannelGet()
{
PVDATA_REFCOUNT_MONITOR_DESTRUCT(mockChannelGet);
PVACCESS_REFCOUNT_MONITOR_DESTRUCT(mockChannelGet);
}
public:
@@ -174,7 +173,7 @@ class MockChannelGet : public ChannelGet
m_channelGetRequester(channelGetRequester), m_pvStructure(pvStructure),
m_bitSet(new BitSet(pvStructure->getNumberFields())), m_first(true)
{
PVDATA_REFCOUNT_MONITOR_CONSTRUCT(mockChannelGet);
PVACCESS_REFCOUNT_MONITOR_CONSTRUCT(mockChannelGet);
// TODO pvRequest
m_channelGetRequester->channelGetConnect(Status::Ok, this, m_pvStructure, m_bitSet);
@@ -208,7 +207,7 @@ class MockChannelGet : public ChannelGet
PVDATA_REFCOUNT_MONITOR_DEFINE(mockChannelPut);
PVACCESS_REFCOUNT_MONITOR_DEFINE(mockChannelPut);
class MockChannelPut : public ChannelPut
{
@@ -221,7 +220,7 @@ class MockChannelPut : public ChannelPut
private:
~MockChannelPut()
{
PVDATA_REFCOUNT_MONITOR_DESTRUCT(mockChannelPut);
PVACCESS_REFCOUNT_MONITOR_DESTRUCT(mockChannelPut);
}
public:
@@ -229,7 +228,7 @@ class MockChannelPut : public ChannelPut
m_channelPutRequester(channelPutRequester), m_pvStructure(pvStructure),
m_bitSet(new BitSet(pvStructure->getNumberFields())), m_first(true)
{
PVDATA_REFCOUNT_MONITOR_CONSTRUCT(mockChannelPut);
PVACCESS_REFCOUNT_MONITOR_CONSTRUCT(mockChannelPut);
// TODO pvRequest
m_channelPutRequester->channelPutConnect(Status::Ok, this, m_pvStructure, m_bitSet);
@@ -261,7 +260,7 @@ class MockChannelPut : public ChannelPut
PVDATA_REFCOUNT_MONITOR_DEFINE(mockMonitor);
PVACCESS_REFCOUNT_MONITOR_DEFINE(mockMonitor);
class MockMonitor : public Monitor, public MonitorElement
{
@@ -277,7 +276,7 @@ class MockMonitor : public Monitor, public MonitorElement
private:
~MockMonitor()
{
PVDATA_REFCOUNT_MONITOR_DESTRUCT(mockMonitor);
PVACCESS_REFCOUNT_MONITOR_DESTRUCT(mockMonitor);
}
public:
@@ -289,7 +288,7 @@ class MockMonitor : public Monitor, public MonitorElement
m_lock(),
m_count(0)
{
PVDATA_REFCOUNT_MONITOR_CONSTRUCT(mockMonitor);
PVACCESS_REFCOUNT_MONITOR_CONSTRUCT(mockMonitor);
m_changedBitSet->set(0);
@@ -365,7 +364,7 @@ class MockMonitor : public Monitor, public MonitorElement
PVDATA_REFCOUNT_MONITOR_DEFINE(mockChannel);
PVACCESS_REFCOUNT_MONITOR_DEFINE(mockChannel);
class MockChannel : public Channel {
private:
@@ -379,7 +378,7 @@ class MockChannel : public Channel {
private:
~MockChannel()
{
PVDATA_REFCOUNT_MONITOR_DESTRUCT(mockChannel);
PVACCESS_REFCOUNT_MONITOR_DESTRUCT(mockChannel);
}
public:
@@ -394,7 +393,7 @@ class MockChannel : public Channel {
m_name(name),
m_remoteAddress(remoteAddress)
{
PVDATA_REFCOUNT_MONITOR_CONSTRUCT(mockChannel);
PVACCESS_REFCOUNT_MONITOR_CONSTRUCT(mockChannel);
ScalarType stype = pvDouble;
@@ -960,8 +959,7 @@ int main(int argc,char *argv[])
context->destroy();
std::cout << "-----------------------------------------------------------------------" << std::endl;
epicsExitCallAtExits();
CDRMonitor::get().show(stdout, true);
//std::cout << "-----------------------------------------------------------------------" << std::endl;
//epicsExitCallAtExits();
return(0);
}
+2 -4
View File
@@ -7,7 +7,6 @@
#include <string.h>
#include <stdio.h>
#include <pv/pvAccess.h>
#include <pv/CDRMonitor.h>
#include <iostream>
#include <epicsAssert.h>
@@ -131,9 +130,8 @@ int main(int argc,char *argv[])
{
testCreateRequest();
std::cout << "-----------------------------------------------------------------------" << std::endl;
epicsExitCallAtExits();
CDRMonitor::get().show(stdout, true);
//std::cout << "-----------------------------------------------------------------------" << std::endl;
//epicsExitCallAtExits();
return 0;
}
+2 -4
View File
@@ -11,7 +11,6 @@
#include <iomanip>
#include <pv/CDRMonitor.h>
#include <pv/event.h>
#include <epicsExit.h>
@@ -1005,9 +1004,8 @@ int main (int argc, char *argv[])
{
// TODO implement wait on context
epicsThreadSleep ( 3.0 );
std::cout << "-----------------------------------------------------------------------" << std::endl;
epicsExitCallAtExits();
CDRMonitor::get().show(stdout, true);
//std::cout << "-----------------------------------------------------------------------" << std::endl;
//epicsExitCallAtExits();
}
return allOK ? 0 : 1;
+2 -4
View File
@@ -10,7 +10,6 @@
#include <string>
#include <pv/CDRMonitor.h>
#include <pv/event.h>
#include <epicsExit.h>
@@ -654,9 +653,8 @@ int main (int argc, char *argv[])
{
// TODO implement wait on context
epicsThreadSleep ( 3.0 );
std::cout << "-----------------------------------------------------------------------" << std::endl;
epicsExitCallAtExits();
CDRMonitor::get().show(stdout, true);
//std::cout << "-----------------------------------------------------------------------" << std::endl;
//epicsExitCallAtExits();
}
return allOK ? 0 : 1;
+2 -4
View File
@@ -5,7 +5,6 @@
#include <iostream>
#include <sstream>
#include <pv/CDRMonitor.h>
#include <epicsExit.h>
#include <pv/clientContextImpl.h>
#include <pv/clientFactory.h>
@@ -92,8 +91,7 @@ int main(int argc,char *argv[])
}
epicsThreadSleep ( 2.0 );
std::cout << "-----------------------------------------------------------------------" << std::endl;
epicsExitCallAtExits();
CDRMonitor::get().show(stdout, true);
//std::cout << "-----------------------------------------------------------------------" << std::endl;
//epicsExitCallAtExits();
return(0);
}
+1 -3
View File
@@ -5,7 +5,6 @@
#include <epicsMessageQueue.h>
#include <pv/channelSearchManager.h>
#include <sstream>
#include <pv/CDRMonitor.h>
epicsMessageQueueId join1;
epicsMessageQueueId join2;
@@ -191,8 +190,7 @@ int main(int argc,char *argv[])
context->destroy();
epicsExitCallAtExits();
CDRMonitor::get().show(stdout);
//epicsExitCallAtExits();
for(int i = 0; i < max_channels; i++)
{
+2 -4
View File
@@ -5,7 +5,6 @@
#include <iostream>
#include <sstream>
#include <pv/CDRMonitor.h>
#include <epicsExit.h>
#include <pv/clientContextImpl.h>
#include <pv/clientFactory.h>
@@ -578,8 +577,7 @@ int main(int argc,char *argv[])
*/
epicsThreadSleep ( 1.0 ); }
std::cout << "-----------------------------------------------------------------------" << std::endl;
epicsExitCallAtExits();
CDRMonitor::get().show(stdout, true);
//std::cout << "-----------------------------------------------------------------------" << std::endl;
//epicsExitCallAtExits();
return(0);
}
+26 -28
View File
@@ -4,7 +4,6 @@
#include <pv/serverContext.h>
#include <pv/clientContextImpl.h>
#include <pv/CDRMonitor.h>
#include <epicsExit.h>
#include <pv/standardPVField.h>
@@ -19,7 +18,7 @@ using namespace std;
using std::tr1::static_pointer_cast;
PVDATA_REFCOUNT_MONITOR_DEFINE(mockChannelProcess);
PVACCESS_REFCOUNT_MONITOR_DEFINE(mockChannelProcess);
class MockChannelProcess :
public ChannelProcess,
@@ -34,7 +33,7 @@ class MockChannelProcess :
MockChannelProcess(ChannelProcessRequester::shared_pointer const & channelProcessRequester, PVStructure::shared_pointer const & pvStructure, PVStructure::shared_pointer const & pvRequest) :
m_channelProcessRequester(channelProcessRequester), m_pvStructure(pvStructure)
{
PVDATA_REFCOUNT_MONITOR_CONSTRUCT(mockChannelProcess);
PVACCESS_REFCOUNT_MONITOR_CONSTRUCT(mockChannelProcess);
ChannelProcess::shared_pointer thisPtr; // we return null = static_pointer_cast<ChannelProcess>(shared_from_this());
PVFieldPtr field = pvStructure->getSubField(String("value"));
@@ -72,7 +71,7 @@ class MockChannelProcess :
virtual ~MockChannelProcess()
{
PVDATA_REFCOUNT_MONITOR_DESTRUCT(mockChannelProcess);
PVACCESS_REFCOUNT_MONITOR_DESTRUCT(mockChannelProcess);
}
@@ -175,7 +174,7 @@ class MockChannelProcess :
PVDATA_REFCOUNT_MONITOR_DEFINE(mockChannelGet);
PVACCESS_REFCOUNT_MONITOR_DEFINE(mockChannelGet);
class MockChannelGet : public ChannelGet
{
@@ -190,7 +189,7 @@ class MockChannelGet : public ChannelGet
m_channelGetRequester(channelGetRequester), m_pvStructure(pvStructure),
m_bitSet(new BitSet(pvStructure->getNumberFields())), m_first(true)
{
PVDATA_REFCOUNT_MONITOR_CONSTRUCT(mockChannelGet);
PVACCESS_REFCOUNT_MONITOR_CONSTRUCT(mockChannelGet);
}
public:
@@ -205,7 +204,7 @@ class MockChannelGet : public ChannelGet
virtual ~MockChannelGet()
{
PVDATA_REFCOUNT_MONITOR_DESTRUCT(mockChannelGet);
PVACCESS_REFCOUNT_MONITOR_DESTRUCT(mockChannelGet);
}
virtual void get(bool lastRequest)
@@ -239,7 +238,7 @@ class MockChannelGet : public ChannelGet
PVDATA_REFCOUNT_MONITOR_DEFINE(mockChannelPut);
PVACCESS_REFCOUNT_MONITOR_DEFINE(mockChannelPut);
class MockChannelPut : public ChannelPut
{
@@ -253,7 +252,7 @@ class MockChannelPut : public ChannelPut
m_channelPutRequester(channelPutRequester), m_pvStructure(pvStructure),
m_bitSet(new BitSet(pvStructure->getNumberFields()))
{
PVDATA_REFCOUNT_MONITOR_CONSTRUCT(mockChannelPut);
PVACCESS_REFCOUNT_MONITOR_CONSTRUCT(mockChannelPut);
}
public:
@@ -268,7 +267,7 @@ class MockChannelPut : public ChannelPut
virtual ~MockChannelPut()
{
PVDATA_REFCOUNT_MONITOR_DESTRUCT(mockChannelPut);
PVACCESS_REFCOUNT_MONITOR_DESTRUCT(mockChannelPut);
}
@@ -302,7 +301,7 @@ class MockChannelPut : public ChannelPut
PVDATA_REFCOUNT_MONITOR_DEFINE(mockChannelPutGet);
PVACCESS_REFCOUNT_MONITOR_DEFINE(mockChannelPutGet);
class MockChannelPutGet : public ChannelPutGet
{
@@ -314,7 +313,7 @@ class MockChannelPutGet : public ChannelPutGet
MockChannelPutGet(ChannelPutGetRequester::shared_pointer const & channelPutGetRequester, PVStructure::shared_pointer const & pvStructure, PVStructure::shared_pointer const & pvRequest) :
m_channelPutGetRequester(channelPutGetRequester), m_pvStructure(pvStructure)
{
PVDATA_REFCOUNT_MONITOR_CONSTRUCT(mockChannelPutGet);
PVACCESS_REFCOUNT_MONITOR_CONSTRUCT(mockChannelPutGet);
}
public:
@@ -329,7 +328,7 @@ class MockChannelPutGet : public ChannelPutGet
virtual ~MockChannelPutGet()
{
PVDATA_REFCOUNT_MONITOR_DESTRUCT(mockChannelPutGet);
PVACCESS_REFCOUNT_MONITOR_DESTRUCT(mockChannelPutGet);
}
virtual void putGet(bool lastRequest)
@@ -369,7 +368,7 @@ class MockChannelPutGet : public ChannelPutGet
PVDATA_REFCOUNT_MONITOR_DEFINE(mockChannelRPC);
PVACCESS_REFCOUNT_MONITOR_DEFINE(mockChannelRPC);
class MockChannelRPC : public ChannelRPC
{
@@ -382,7 +381,7 @@ class MockChannelRPC : public ChannelRPC
MockChannelRPC(ChannelRPCRequester::shared_pointer const & channelRPCRequester, String const & channelName, PVStructure::shared_pointer const & pvStructure, PVStructure::shared_pointer const & pvRequest) :
m_channelRPCRequester(channelRPCRequester), m_channelName(channelName), m_pvStructure(pvStructure)
{
PVDATA_REFCOUNT_MONITOR_CONSTRUCT(mockChannelRPC);
PVACCESS_REFCOUNT_MONITOR_CONSTRUCT(mockChannelRPC);
}
public:
@@ -396,7 +395,7 @@ class MockChannelRPC : public ChannelRPC
virtual ~MockChannelRPC()
{
PVDATA_REFCOUNT_MONITOR_DESTRUCT(mockChannelRPC);
PVACCESS_REFCOUNT_MONITOR_DESTRUCT(mockChannelRPC);
}
virtual void request(epics::pvData::PVStructure::shared_pointer const & pvArgument, bool lastRequest)
@@ -492,7 +491,7 @@ class MockChannelRPC : public ChannelRPC
PVDATA_REFCOUNT_MONITOR_DEFINE(mockChannelArray);
PVACCESS_REFCOUNT_MONITOR_DEFINE(mockChannelArray);
class MockChannelArray : public ChannelArray
{
@@ -505,7 +504,7 @@ class MockChannelArray : public ChannelArray
m_channelArrayRequester(channelArrayRequester),
m_pvArray(getPVDataCreate()->createPVScalarArray(pvDouble))
{
PVDATA_REFCOUNT_MONITOR_CONSTRUCT(mockChannelArray);
PVACCESS_REFCOUNT_MONITOR_CONSTRUCT(mockChannelArray);
}
public:
@@ -521,7 +520,7 @@ class MockChannelArray : public ChannelArray
virtual ~MockChannelArray()
{
PVDATA_REFCOUNT_MONITOR_DESTRUCT(mockChannelArray);
PVACCESS_REFCOUNT_MONITOR_DESTRUCT(mockChannelArray);
}
virtual void putArray(bool lastRequest, int offset, int count)
@@ -568,7 +567,7 @@ class MockChannelArray : public ChannelArray
PVDATA_REFCOUNT_MONITOR_DEFINE(mockMonitor);
PVACCESS_REFCOUNT_MONITOR_DEFINE(mockMonitor);
class MockMonitor : public Monitor, public MonitorElement, public std::tr1::enable_shared_from_this<MockMonitor>
{
@@ -593,7 +592,7 @@ class MockMonitor : public Monitor, public MonitorElement, public std::tr1::enab
m_lock(),
m_count(0)
{
PVDATA_REFCOUNT_MONITOR_CONSTRUCT(mockMonitor);
PVACCESS_REFCOUNT_MONITOR_CONSTRUCT(mockMonitor);
m_changedBitSet->set(0);
}
@@ -612,7 +611,7 @@ class MockMonitor : public Monitor, public MonitorElement, public std::tr1::enab
virtual ~MockMonitor()
{
PVDATA_REFCOUNT_MONITOR_DESTRUCT(mockMonitor);
PVACCESS_REFCOUNT_MONITOR_DESTRUCT(mockMonitor);
}
virtual Status start()
@@ -691,7 +690,7 @@ class MockMonitor : public Monitor, public MonitorElement, public std::tr1::enab
};
PVDATA_REFCOUNT_MONITOR_DEFINE(mockChannel);
PVACCESS_REFCOUNT_MONITOR_DEFINE(mockChannel);
class MockChannel : public Channel {
private:
@@ -714,7 +713,7 @@ class MockChannel : public Channel {
m_remoteAddress(remoteAddress),
m_pvStructure()
{
PVDATA_REFCOUNT_MONITOR_CONSTRUCT(mockChannel);
PVACCESS_REFCOUNT_MONITOR_CONSTRUCT(mockChannel);
@@ -826,7 +825,7 @@ class MockChannel : public Channel {
virtual ~MockChannel()
{
PVDATA_REFCOUNT_MONITOR_DESTRUCT(mockChannel);
PVACCESS_REFCOUNT_MONITOR_DESTRUCT(mockChannel);
}
virtual void destroy()
@@ -1383,9 +1382,8 @@ int main(int argc, char *argv[])
{
// TODO implement wait on context
epicsThreadSleep ( 3.0 );
std::cout << "-----------------------------------------------------------------------" << std::endl;
epicsExitCallAtExits();
CDRMonitor::get().show(stdout, true);
//std::cout << "-----------------------------------------------------------------------" << std::endl;
//epicsExitCallAtExits();
}
return (0);
+1 -3
View File
@@ -3,7 +3,6 @@
*/
#include <pv/serverContext.h>
#include <pv/CDRMonitor.h>
#include <epicsExit.h>
using namespace epics::pvAccess;
@@ -93,7 +92,6 @@ int main(int argc, char *argv[])
cout << "Done" << endl;
epicsExitCallAtExits();
CDRMonitor::get().show(stdout, true);
//epicsExitCallAtExits();
return (0);
}