fix static build

This commit is contained in:
Sinisa Veseli
2023-11-17 12:58:58 -06:00
parent d374669f04
commit 8ec8e47924
3 changed files with 11 additions and 6 deletions

View File

@ -83,7 +83,7 @@ static std::string toLowerCase(const std::string& input)
// Data distributor class // Data distributor class
static std::string name("distributor"); static std::string name("distributor");
bool DataDistributorPlugin::initialized(DataDistributorPlugin::initialize()); bool DataDistributorPlugin::initialized(false);
std::map<std::string, DataDistributorPtr> DataDistributor::dataDistributorMap; std::map<std::string, DataDistributorPtr> DataDistributor::dataDistributorMap;
epics::pvData::Mutex DataDistributor::dataDistributorMapMutex; epics::pvData::Mutex DataDistributor::dataDistributorMapMutex;
@ -275,8 +275,11 @@ void DataDistributorPlugin::create()
bool DataDistributorPlugin::initialize() bool DataDistributorPlugin::initialize()
{ {
DataDistributorPluginPtr pvPlugin = DataDistributorPluginPtr(new DataDistributorPlugin()); if (not initialized) {
PVPluginRegistry::registerPlugin(name,pvPlugin); initialized = true;
DataDistributorPluginPtr pvPlugin = DataDistributorPluginPtr(new DataDistributorPlugin());
PVPluginRegistry::registerPlugin(name,pvPlugin);
}
return true; return true;
} }

View File

@ -23,6 +23,7 @@
#include "pv/pvArrayPlugin.h" #include "pv/pvArrayPlugin.h"
#include "pv/pvTimestampPlugin.h" #include "pv/pvTimestampPlugin.h"
#include "pv/pvDeadbandPlugin.h" #include "pv/pvDeadbandPlugin.h"
#include "pv/dataDistributorPlugin.h"
using std::tr1::static_pointer_cast; using std::tr1::static_pointer_cast;
using namespace epics::pvData; using namespace epics::pvData;
@ -44,6 +45,7 @@ PVDatabasePtr PVDatabase::getMaster()
PVArrayPlugin::create(); PVArrayPlugin::create();
PVTimestampPlugin::create(); PVTimestampPlugin::create();
PVDeadbandPlugin::create(); PVDeadbandPlugin::create();
DataDistributorPlugin::create();
} }
return pvDatabaseMaster; return pvDatabaseMaster;
} }

View File

@ -366,7 +366,7 @@ static void dataDistributorTest()
PVCopyPtr pvCopy1(PVCopy::create(pvRecordStructure,pvRequest,"")); PVCopyPtr pvCopy1(PVCopy::create(pvRecordStructure,pvRequest,""));
PVStructurePtr pvStructureCopy1(pvCopy1->createPVStructure()); PVStructurePtr pvStructureCopy1(pvCopy1->createPVStructure());
BitSetPtr bitSet1(new BitSet(pvStructureCopy1->getNumberFields())); BitSetPtr bitSet1(new BitSet(pvStructureCopy1->getNumberFields()));
PVCopyPtr pvCopy2(PVCopy::create(pvRecordStructure,pvRequest,"")); PVCopyPtr pvCopy2(PVCopy::create(pvRecordStructure,pvRequest,""));
PVStructurePtr pvStructureCopy2(pvCopy2->createPVStructure()); PVStructurePtr pvStructureCopy2(pvCopy2->createPVStructure());
BitSetPtr bitSet2(new BitSet(pvStructureCopy2->getNumberFields())); BitSetPtr bitSet2(new BitSet(pvStructureCopy2->getNumberFields()));
@ -383,7 +383,7 @@ static void dataDistributorTest()
debugOutput("client 2: update 0", result, nSet, bitSet2, pvStructureCopy2); debugOutput("client 2: update 0", result, nSet, bitSet2, pvStructureCopy2);
testOk1(result==true); testOk1(result==true);
testOk1(nSet==1); testOk1(nSet==1);
// Update 1: only client 1 gets it // Update 1: only client 1 gets it
pvValue->put(1); pvValue->put(1);
@ -398,7 +398,7 @@ static void dataDistributorTest()
debugOutput("client 2: update 1", result, nSet, bitSet2, pvStructureCopy2); debugOutput("client 2: update 1", result, nSet, bitSet2, pvStructureCopy2);
testOk1(result==false); testOk1(result==false);
testOk1(nSet==0); testOk1(nSet==0);
// Update 2: only client 2 gets it // Update 2: only client 2 gets it
pvValue->put(2); pvValue->put(2);