Skip to content
Snippets Groups Projects
setConverterLibrary.cxx 2.69 KiB
Newer Older
/*
  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
*/

// $Id$
/**
 * @file DataModelTestDataCommon/src/setConverterLibrary.cxx
 * @author scott snyder <snyder@bnl.gov>
 * @date Dec, 2014
 * @brief Helper to explicitly set library for a converter.
 */


#include "DataModelTestDataCommon/setConverterLibrary.h"
#include "Gaudi/PluginService.h"


using namespace Gaudi::PluginService;


namespace DMTest {


void setPluginLibrary (const std::string& name, const std::string& lib)
{
  const Details::Registry& reg = Details::Registry::instance();
  Details::Registry::FactoryMap& map =
    const_cast<Details::Registry::FactoryMap&>(reg.factories());
  Details::Registry::FactoryMap::iterator i = map.find (name);
  if (i == map.end())
    map.insert (std::make_pair (name, Details::Registry::FactoryInfo(lib)));
  else
    i->second = Details::Registry::FactoryInfo(lib);
}


void setConverterLibrary (CLID clid, const std::string& lib)
{
  std::string name = "CNV_256_" + std::to_string (clid);
  setPluginLibrary (name, lib);
}


void setConverterLibrary (const std::string& lib)
{
  setConverterLibrary (9631, lib); // DMTest::BDer
  setConverterLibrary (9632, lib); // DMTest::DDer
  setConverterLibrary (9633, lib); // DataVector<DMTest::B>
  setConverterLibrary (9634, lib); // DataVector<DMTest::D>
  setConverterLibrary (9639, lib); // DMTest::ELVec
  setConverterLibrary (9701, lib); // DataVector<DMTest::BAux>
  setConverterLibrary (9702, lib); // DMTest::BAux
  setConverterLibrary (9703, lib); // DMTest::BAuxStandalone
  setConverterLibrary (9711, lib); // DMTest::BAuxVec
  setConverterLibrary (9721, lib); // DMTest::CVec_v1
  setConverterLibrary (9722, lib); // DMTest::CAuxContainer_v1
  setConverterLibrary (9723, lib); // DMTest::CInfoAuxContainer_v1
  setConverterLibrary (9724, lib); // DMTest::C_v1
  setConverterLibrary (9725, lib); // DMTest::CTrigAuxContainer_v1
  setConverterLibrary (9741, lib); // DMTest::GVec_v1
  setConverterLibrary (9742, lib); // DMTest::GAuxContainer_v1
  setConverterLibrary (9744, lib); // DMTest::G_v1
  setConverterLibrary (9779, lib); // DMTest::CView_v1
  setPluginLibrary ("_PERS_DMTest::HVec_v1", lib);
  setPluginLibrary ("_PERS_DataVector<DMTest::H_v1>", lib);
}


void setTrigConverterLibrary (CLID clid, const std::string& lib)
{
  std::string name = "CNV_81_" + std::to_string (clid);
  setPluginLibrary (name, lib);
}


void setTrigConverterLibrary (const std::string& lib)
{
  setTrigConverterLibrary (9781, lib); // DMTest::HVec
  setTrigConverterLibrary (9782, lib); // DMTest::HAuxContainer
  setTrigConverterLibrary (9787, lib); // DMTest::HView


TClass* xclass (const char* s)
{
  return TClass::GetClass(s);
}