references on transportSender

This commit is contained in:
Gasper Jansa
2011-02-25 17:12:17 +01:00
parent 43e05ce048
commit d1aac97514
2 changed files with 56 additions and 0 deletions

View File

@@ -0,0 +1,29 @@
/*
* referencedTransportSender.cpp
*/
#include "referencedTransportSender.h"
using namespace epics::pvData;
namespace epics { namespace pvAccess {
void ReferencedTransportSender::release()
{
_refMutex.lock();
_refCount--;
_refMutex.unlock();
if (_refCount == 0)
{
delete this;
}
}
void ReferencedTransportSender::acquire()
{
Lock guard(_refMutex);
_refCount++;
}
}
}

View File

@@ -0,0 +1,27 @@
/*
* referencedTransportSender.h
*/
#ifndef REFERENCEDTRANSPORTSENDER_H_
#define REFERENCEDTRANSPORTSENDER_H_
#include "remote.h"
namespace epics {
namespace pvAccess {
class ReferencedTransportSender : public TransportSender
{
public:
void release();
void acquire();
private:
epics::pvData::Mutex _refMutex;
int32 _refCount;
};
}
}
#endif /* REFERENCEDTRANSPORTSENDER_H_ */