more responses
This commit is contained in:
@@ -5,15 +5,18 @@
|
||||
#include "beaconHandler.h"
|
||||
|
||||
using namespace std;
|
||||
using namespace epics::pvData;
|
||||
using namespace epics::pvAccess;
|
||||
|
||||
namespace epics { namespace pvAccess {
|
||||
|
||||
BeaconHandler::BeaconHandler(const ClientContextImpl* context, const osiSockAddr* responseFrom): _context(context), _responseFrom(responseFrom), _mutex(Mutex())
|
||||
BeaconHandler::BeaconHandler(ClientContextImpl* context, const osiSockAddr* responseFrom): _context(context), _responseFrom(*responseFrom), _mutex(Mutex()), _serverStartupTime(TimeStamp(0))
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
BeaconHandler::BeaconHandler(const osiSockAddr* responseFrom): _responseFrom(responseFrom), _mutex(Mutex())
|
||||
BeaconHandler::BeaconHandler(const osiSockAddr* responseFrom):
|
||||
_responseFrom(*responseFrom), _mutex(Mutex()), _serverStartupTime(TimeStamp(0))
|
||||
{
|
||||
|
||||
}
|
||||
@@ -24,7 +27,7 @@ BeaconHandler::~BeaconHandler()
|
||||
}
|
||||
|
||||
void BeaconHandler::beaconNotify(osiSockAddr* from, int8 remoteTransportRevision,
|
||||
int64 timestamp, TimeStamp* startupTime, int32 sequentalID,
|
||||
TimeStamp* timestamp, TimeStamp* startupTime, int16 sequentalID,
|
||||
PVFieldPtr data)
|
||||
{
|
||||
bool networkChanged = updateBeacon(remoteTransportRevision, timestamp, startupTime, sequentalID);
|
||||
@@ -34,18 +37,17 @@ void BeaconHandler::beaconNotify(osiSockAddr* from, int8 remoteTransportRevision
|
||||
}
|
||||
}
|
||||
|
||||
bool BeaconHandler::updateBeacon(int8 remoteTransportRevision, int64 timestamp,
|
||||
TimeStamp* startupTime, int32 sequentalID)
|
||||
bool BeaconHandler::updateBeacon(int8 remoteTransportRevision, TimeStamp* timestamp,
|
||||
TimeStamp* startupTime, int16 sequentalID)
|
||||
{
|
||||
Lock guard(&_mutex);
|
||||
// first beacon notification check
|
||||
if (_serverStartupTime == NULL)
|
||||
if (_serverStartupTime.getSecondsPastEpoch() == 0)
|
||||
{
|
||||
_serverStartupTime = startupTime;
|
||||
_serverStartupTime = *startupTime;
|
||||
|
||||
// new server up..
|
||||
//TODO
|
||||
//_context->beaconAnomalyNotify();
|
||||
_context->beaconAnomalyNotify();
|
||||
|
||||
// notify corresponding transport(s)
|
||||
beaconArrivalNotify();
|
||||
@@ -53,11 +55,10 @@ bool BeaconHandler::updateBeacon(int8 remoteTransportRevision, int64 timestamp,
|
||||
return false;
|
||||
}
|
||||
|
||||
bool networkChange = !(*_serverStartupTime == *startupTime);
|
||||
bool networkChange = !(_serverStartupTime == *startupTime);
|
||||
if (networkChange)
|
||||
{
|
||||
//TODO
|
||||
//_context->beaconAnomalyNotify();
|
||||
_context->beaconAnomalyNotify();
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -71,8 +72,7 @@ void BeaconHandler::beaconArrivalNotify()
|
||||
{
|
||||
int32 size = 0;
|
||||
//TODO TCP name must be get from somewhere not hardcoded
|
||||
//TODO
|
||||
Transport** transports = NULL;//_context->getTransportRegistry().get("TCP", _responseFrom, size);
|
||||
Transport** transports = _context->getTransportRegistry()->get("TCP", &_responseFrom, size);
|
||||
if (transports == NULL)
|
||||
{
|
||||
return;
|
||||
@@ -90,8 +90,7 @@ void BeaconHandler::changedTransport()
|
||||
{
|
||||
int32 size = 0;
|
||||
//TODO TCP name must be get from somewhere not hardcoded
|
||||
//TODO
|
||||
Transport** transports = NULL;//_context->getTransportRegistry().get("TCP", _responseFrom, size);
|
||||
Transport** transports = _context->getTransportRegistry()->get("TCP", &_responseFrom, size);
|
||||
if (transports == NULL)
|
||||
{
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user