DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
dunedaq::conffwk::python::ConfigurationPointer Class Reference

#include <ConfigurationPointer.hpp>

Collaboration diagram for dunedaq::conffwk::python::ConfigurationPointer:
[legend]

Public Member Functions

 ConfigurationPointer ()
 Default.
 ConfigurationPointer (const std::string &s)
 Constructor when the user initializes from within python.
 ConfigurationPointer (const Configuration &p)
 Constructor when the user initializes from C++. In this case, the pointed configuration should never be deleted.
 ConfigurationPointer (const ConfigurationPointer &other)
 Copying, is shallow. Don't do this at home...
ConfigurationPointer & operator= (const ConfigurationPointer &other)
 Assignment is shallow.
virtual ~ConfigurationPointer ()
 Destructor. If started from string, destroy if the last instance, otherwise, doesn't do anything at all.
Configuration * operator-> ()
 Let python bindings access the configuration pointer.
Configuration & operator* ()
 Another way to access the configuration pointer.
Configuration * get ()
 Get the configuration pointer.

Private Attributes

boost::shared_ptr< Configuration > m_shared
Configuration * m_pointer

Detailed Description

Use this class only when you want to bridge your C++ code with python. It implements some weird reference counted pointer which helps a clean API for the python bindings and the DBE

Definition at line 31 of file ConfigurationPointer.hpp.

Constructor & Destructor Documentation

◆ ConfigurationPointer() [1/4]

dunedaq::conffwk::python::ConfigurationPointer::ConfigurationPointer ( )
inline

Default.

Definition at line 36 of file ConfigurationPointer.hpp.

◆ ConfigurationPointer() [2/4]

dunedaq::conffwk::python::ConfigurationPointer::ConfigurationPointer ( const std::string & s)
inline

Constructor when the user initializes from within python.

Definition at line 43 of file ConfigurationPointer.hpp.

44 : m_shared(new Configuration(s))
45 , m_pointer(0)
46 {
47 }

◆ ConfigurationPointer() [3/4]

dunedaq::conffwk::python::ConfigurationPointer::ConfigurationPointer ( const Configuration & p)
inline

Constructor when the user initializes from C++. In this case, the pointed configuration should never be deleted.

Definition at line 50 of file ConfigurationPointer.hpp.

51 : m_shared()
52 , m_pointer(&const_cast<Configuration&>(p))
53 {
54 }

◆ ConfigurationPointer() [4/4]

dunedaq::conffwk::python::ConfigurationPointer::ConfigurationPointer ( const ConfigurationPointer & other)
inline

Copying, is shallow. Don't do this at home...

Definition at line 57 of file ConfigurationPointer.hpp.

58 : m_shared(other.m_shared)
59 , m_pointer(const_cast<ConfigurationPointer&>(other).m_pointer)
60 {
61 }

◆ ~ConfigurationPointer()

virtual dunedaq::conffwk::python::ConfigurationPointer::~ConfigurationPointer ( )
inlinevirtual

Destructor. If started from string, destroy if the last instance, otherwise, doesn't do anything at all.

Definition at line 72 of file ConfigurationPointer.hpp.

72{}

Member Function Documentation

◆ get()

Configuration * dunedaq::conffwk::python::ConfigurationPointer::get ( )
inline

Get the configuration pointer.

Definition at line 81 of file ConfigurationPointer.hpp.

81{ return (m_pointer) ? m_pointer : m_shared.get(); }

◆ operator*()

Configuration & dunedaq::conffwk::python::ConfigurationPointer::operator* ( )
inline

Another way to access the configuration pointer.

Definition at line 78 of file ConfigurationPointer.hpp.

78{ return (m_pointer) ? *m_pointer : *m_shared; }

◆ operator->()

Configuration * dunedaq::conffwk::python::ConfigurationPointer::operator-> ( )
inline

Let python bindings access the configuration pointer.

Definition at line 75 of file ConfigurationPointer.hpp.

75{ return (m_pointer) ? m_pointer : m_shared.get(); }

◆ operator=()

ConfigurationPointer & dunedaq::conffwk::python::ConfigurationPointer::operator= ( const ConfigurationPointer & other)
inline

Assignment is shallow.

Definition at line 64 of file ConfigurationPointer.hpp.

65 {
66 m_shared = other.m_shared;
67 m_pointer = const_cast<ConfigurationPointer&>(other).m_pointer;
68 return *this;
69 }

Member Data Documentation

◆ m_pointer

Configuration* dunedaq::conffwk::python::ConfigurationPointer::m_pointer
private

Definition at line 85 of file ConfigurationPointer.hpp.

◆ m_shared

boost::shared_ptr<Configuration> dunedaq::conffwk::python::ConfigurationPointer::m_shared
private

Definition at line 84 of file ConfigurationPointer.hpp.


The documentation for this class was generated from the following file: