diff --git a/src/server/beaconServerStatusProvider.cpp b/src/server/beaconServerStatusProvider.cpp index ccebc05..c533c0b 100644 --- a/src/server/beaconServerStatusProvider.cpp +++ b/src/server/beaconServerStatusProvider.cpp @@ -13,40 +13,19 @@ using namespace epics::pvData; namespace epics { namespace pvAccess { -DefaultBeaconServerStatusProvider::DefaultBeaconServerStatusProvider(ServerContext::shared_pointer const & context): _context(context) -{ - initialize(); -} +DefaultBeaconServerStatusProvider::DefaultBeaconServerStatusProvider(ServerContext::shared_pointer const & context) + :_status(getPVDataCreate()->createPVStructure(getFieldCreate()->createFieldBuilder() + ->add("connections", pvInt) + ->add("connections", pvInt) + ->add("allocatedMemory", pvLong) + ->add("freeMemory", pvLong) + ->add("threads", pvInt) + ->add("deadlocks", pvInt) + ->add("averageSystemLoad", pvDouble) + ->createStructure())) +{} -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)); -} +DefaultBeaconServerStatusProvider::~DefaultBeaconServerStatusProvider() {} PVField::shared_pointer DefaultBeaconServerStatusProvider::getServerStatusData() { diff --git a/src/server/pv/beaconServerStatusProvider.h b/src/server/pv/beaconServerStatusProvider.h index 0d681f8..e79925a 100644 --- a/src/server/pv/beaconServerStatusProvider.h +++ b/src/server/pv/beaconServerStatusProvider.h @@ -63,17 +63,8 @@ public: virtual epics::pvData::PVField::shared_pointer getServerStatusData(); -private: - /** - * Initialize - */ - void initialize(); - - private: epics::pvData::PVStructure::shared_pointer _status; - std::tr1::shared_ptr _context; - //ServerContext::shared_pointer _context; }; }