aGrUM  0.20.3
a C++ library for (probabilistic) graphical models
gum::prm::o3prmr::O3prmrContext< GUM_SCALAR > Class Template Reference

Represent a o3prmr context, with an import, and some sequencials commands. More...

#include <O3prmrContext.h>

+ Collaboration diagram for gum::prm::o3prmr::O3prmrContext< GUM_SCALAR >:

Public Member Functions

 O3prmrContext (const std::string &filename=std::string())
 
 O3prmrContext (const O3prmrContext &s)
 
virtual ~O3prmrContext ()
 
const ImportCommandmainImport () const
 
std::string filename () const
 
std::string package () const
 
void setPackage (const std::string &package)
 
std::string aliasToImport (const std::string &alias)
 
std::vector< ImportCommand *> imports () const
 
void addImport (int line, const std::string &import, const std::string &alias)
 
void addImport (int line, const std::string &import, bool ismain)
 
void addImport (const ImportCommand &i)
 
std::vector< O3prmrSession< GUM_SCALAR > *> sessions () const
 
void addSession (const O3prmrSession< GUM_SCALAR > &session)
 
virtual std::string toString () const
 
O3prmrContextoperator+= (const O3prmrContext &c)
 

Detailed Description

template<typename GUM_SCALAR>
class gum::prm::o3prmr::O3prmrContext< GUM_SCALAR >

Represent a o3prmr context, with an import, and some sequencials commands.

Definition at line 201 of file O3prmrContext.h.

Constructor & Destructor Documentation

◆ O3prmrContext() [1/2]

template<typename GUM_SCALAR >
gum::prm::o3prmr::O3prmrContext< GUM_SCALAR >::O3prmrContext ( const std::string &  filename = std::string())
explicit

Definition at line 38 of file O3prmrContext_tpl.h.

38  {
40  m_mainImport = 0;
41  }

◆ O3prmrContext() [2/2]

template<typename GUM_SCALAR >
gum::prm::o3prmr::O3prmrContext< GUM_SCALAR >::O3prmrContext ( const O3prmrContext< GUM_SCALAR > &  s)

Definition at line 44 of file O3prmrContext_tpl.h.

44  {
45  m_filename = s.m_filename;
46  m_mainImport = s.m_mainImport;
47  *this += s;
48  }

◆ ~O3prmrContext()

template<typename GUM_SCALAR >
gum::prm::o3prmr::O3prmrContext< GUM_SCALAR >::~O3prmrContext ( )
virtual

Definition at line 51 of file O3prmrContext_tpl.h.

51  {
52  for (Idx i = Size(m_imports.size()); i > 0; i--)
53  delete m_imports[i - 1];
54 
55  for (Size i = Size(m_sessions.size()); i > 0; i--)
56  delete m_sessions[i - 1];
57  }
std::vector< O3prmrSession< GUM_SCALAR > *> m_sessions
std::vector< ImportCommand *> m_imports
std::size_t Size
In aGrUM, hashed values are unsigned long int.
Definition: types.h:47

Member Function Documentation

◆ addImport() [1/3]

template<typename GUM_SCALAR >
void gum::prm::o3prmr::O3prmrContext< GUM_SCALAR >::addImport ( int  line,
const std::string &  import,
const std::string &  alias 
)

Definition at line 88 of file O3prmrContext_tpl.h.

90  {
91  m_imports.push_back(new ImportCommand(line, import, alias));
92 
93  if (alias == "default") m_mainImport = m_imports.back();
94  }
std::vector< ImportCommand *> m_imports

◆ addImport() [2/3]

template<typename GUM_SCALAR >
void gum::prm::o3prmr::O3prmrContext< GUM_SCALAR >::addImport ( int  line,
const std::string &  import,
bool  ismain 
)

Definition at line 98 of file O3prmrContext_tpl.h.

98  {
99  m_imports.push_back(new ImportCommand(line, import, import));
100 
101  if (ismain) m_mainImport = m_imports.back();
102  }
std::vector< ImportCommand *> m_imports

◆ addImport() [3/3]

template<typename GUM_SCALAR>
void gum::prm::o3prmr::O3prmrContext< GUM_SCALAR >::addImport ( const ImportCommand i)
inline

Definition at line 224 of file O3prmrContext.h.

224  {
225  m_imports.push_back(new ImportCommand(i.line, i.value, i.alias));
226 
227  if (i.alias == "default") m_mainImport = m_imports.back();
228  }
std::vector< ImportCommand *> m_imports

◆ addSession()

template<typename GUM_SCALAR>
void gum::prm::o3prmr::O3prmrContext< GUM_SCALAR >::addSession ( const O3prmrSession< GUM_SCALAR > &  session)

Definition at line 110 of file O3prmrContext_tpl.h.

110  {
111  m_sessions.push_back(new O3prmrSession< GUM_SCALAR >(session));
112  }
std::vector< O3prmrSession< GUM_SCALAR > *> m_sessions

◆ aliasToImport()

template<typename GUM_SCALAR >
std::string gum::prm::o3prmr::O3prmrContext< GUM_SCALAR >::aliasToImport ( const std::string &  alias)

Definition at line 75 of file O3prmrContext_tpl.h.

75  {
76  for (Idx i = Size(m_imports.size()); i > 0; i--)
77  if (m_imports[i - 1]->alias == alias) return m_imports[i - 1]->value;
78 
79  return std::string();
80  }
std::vector< ImportCommand *> m_imports
std::size_t Size
In aGrUM, hashed values are unsigned long int.
Definition: types.h:47

◆ filename()

template<typename GUM_SCALAR >
std::string gum::prm::o3prmr::O3prmrContext< GUM_SCALAR >::filename ( ) const

Definition at line 60 of file O3prmrContext_tpl.h.

60  {
61  return m_filename;
62  }

◆ imports()

template<typename GUM_SCALAR >
std::vector< ImportCommand *> gum::prm::o3prmr::O3prmrContext< GUM_SCALAR >::imports ( ) const

Definition at line 83 of file O3prmrContext_tpl.h.

83  {
84  return m_imports;
85  }
std::vector< ImportCommand *> m_imports

◆ mainImport()

template<typename GUM_SCALAR>
const ImportCommand* gum::prm::o3prmr::O3prmrContext< GUM_SCALAR >::mainImport ( ) const
inline

Definition at line 213 of file O3prmrContext.h.

213 { return m_mainImport; }

◆ operator+=()

template<typename GUM_SCALAR >
O3prmrContext< GUM_SCALAR > & gum::prm::o3prmr::O3prmrContext< GUM_SCALAR >::operator+= ( const O3prmrContext< GUM_SCALAR > &  c)

Definition at line 135 of file O3prmrContext_tpl.h.

135  {
136  const std::vector< ImportCommand* >& imports = c.imports();
137 
138  for (std::vector< ImportCommand* >::const_iterator i = imports.begin(); i != imports.end();
139  i++)
140  addImport(**i);
141 
142  const std::vector< O3prmrSession< GUM_SCALAR >* >& sessions = c.sessions();
143 
144  if (sessions.size() == 1 && sessions.back()->name() == "default") {
145  *(this->m_sessions.back()) += *(sessions.back());
146  } else
147  for (auto i = sessions.begin(); i != sessions.end(); i++)
148  addSession(**i);
149 
150  return *this;
151  }
void addSession(const O3prmrSession< GUM_SCALAR > &session)
std::vector< ImportCommand *> imports() const
std::vector< O3prmrSession< GUM_SCALAR > *> m_sessions
void addImport(int line, const std::string &import, const std::string &alias)
std::vector< O3prmrSession< GUM_SCALAR > *> sessions() const

◆ package()

template<typename GUM_SCALAR >
std::string gum::prm::o3prmr::O3prmrContext< GUM_SCALAR >::package ( ) const

Definition at line 65 of file O3prmrContext_tpl.h.

65  {
66  return m_package;
67  }

◆ sessions()

template<typename GUM_SCALAR >
std::vector< O3prmrSession< GUM_SCALAR > *> gum::prm::o3prmr::O3prmrContext< GUM_SCALAR >::sessions ( ) const

Definition at line 105 of file O3prmrContext_tpl.h.

105  {
106  return m_sessions;
107  }
std::vector< O3prmrSession< GUM_SCALAR > *> m_sessions

◆ setPackage()

template<typename GUM_SCALAR >
void gum::prm::o3prmr::O3prmrContext< GUM_SCALAR >::setPackage ( const std::string &  package)

Definition at line 70 of file O3prmrContext_tpl.h.

70  {
72  }

◆ toString()

template<typename GUM_SCALAR >
std::string gum::prm::o3prmr::O3prmrContext< GUM_SCALAR >::toString ( ) const
virtual

Definition at line 115 of file O3prmrContext_tpl.h.

115  {
116  std::string output;
117 
118  if (!m_package.empty()) {
119  output += "package " + m_package + ";\n";
120  output += "\n";
121  }
122 
123  for (auto i = m_imports.begin(); i < m_imports.end(); i++)
124  output += (*i)->toString() + "\n";
125 
126  output += "\n";
127 
128  for (auto i = m_sessions.begin(); i < m_sessions.end(); i++)
129  output += (*i)->toString() + "\n";
130 
131  return output;
132  }
std::vector< O3prmrSession< GUM_SCALAR > *> m_sessions
std::vector< ImportCommand *> m_imports

Member Data Documentation

◆ m_filename

template<typename GUM_SCALAR>
std::string gum::prm::o3prmr::O3prmrContext< GUM_SCALAR >::m_filename
private

◆ m_imports

template<typename GUM_SCALAR>
std::vector< ImportCommand* > gum::prm::o3prmr::O3prmrContext< GUM_SCALAR >::m_imports
private

Definition at line 205 of file O3prmrContext.h.

◆ m_mainImport

template<typename GUM_SCALAR>
ImportCommand* gum::prm::o3prmr::O3prmrContext< GUM_SCALAR >::m_mainImport
private

◆ m_package

◆ m_sessions

template<typename GUM_SCALAR>
std::vector< O3prmrSession< GUM_SCALAR >* > gum::prm::o3prmr::O3prmrContext< GUM_SCALAR >::m_sessions
private

Definition at line 204 of file O3prmrContext.h.


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