Files
pvAccess/pvAccessApp/server/beaconServerStatusProvider.cpp
2012-06-15 14:47:16 +02:00

58 lines
1.5 KiB
C++

/**
* Copyright - See the COPYRIGHT that is included with this distribution.
* pvAccessCPP is distributed subject to a Software License Agreement found
* in file LICENSE that is included with this distribution.
*/
#include <pv/beaconServerStatusProvider.h>
#include <pv/serverContext.h>
using namespace epics::pvData;
namespace epics {
namespace pvAccess {
DefaultBeaconServerStatusProvider::DefaultBeaconServerStatusProvider(ServerContext::shared_pointer const & context): _context(context)
{
initialize();
}
DefaultBeaconServerStatusProvider::~DefaultBeaconServerStatusProvider()
{
}
void DefaultBeaconServerStatusProvider::initialize()
{
FieldCreatePtr fieldCreate = getFieldCreate();
StringArray fieldNames;
fieldNames.resize(6);
fieldNames[0] = "connections";
fieldNames[1] = "allocatedMemory";
fieldNames[2] = "freeMemory";
fieldNames[3] = "threads";
fieldNames[4] = "deadlocks";
fieldNames[5] = "averageSystemLoad";
FieldConstPtrArray fields;
fields.resize(6);
// TODO hierarchy can be used...
fields[0] = fieldCreate->createScalar(pvInt);
fields[1] = fieldCreate->createScalar(pvLong);
fields[2] = fieldCreate->createScalar(pvLong);
fields[3] = fieldCreate->createScalar(pvInt);
fields[4] = fieldCreate->createScalar(pvInt);
fields[5] = fieldCreate->createScalar(pvDouble);
_status = getPVDataCreate()->createPVStructure(fieldCreate->createStructure(fieldNames, fields));
}
PVField::shared_pointer DefaultBeaconServerStatusProvider::getServerStatusData()
{
//TODO implement (fill data)
return _status;
}
}}