aGrUM  0.20.2
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 216 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 89 of file O3prmrContext_tpl.h.

91  {
92  m_imports.push_back(new ImportCommand(line, import, alias));
93 
94  if (alias == "default") m_mainImport = m_imports.back();
95  }
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.

100  {
101  m_imports.push_back(new ImportCommand(line, import, import));
102 
103  if (ismain) m_mainImport = m_imports.back();
104  }
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 241 of file O3prmrContext.h.

241  {
242  m_imports.push_back(new ImportCommand(i.line, i.value, i.alias));
243 
244  if (i.alias == "default") m_mainImport = m_imports.back();
245  }
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 113 of file O3prmrContext_tpl.h.

114  {
115  m_sessions.push_back(new O3prmrSession< GUM_SCALAR >(session));
116  }
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 76 of file O3prmrContext_tpl.h.

76  {
77  for (Idx i = Size(m_imports.size()); i > 0; i--)
78  if (m_imports[i - 1]->alias == alias) return m_imports[i - 1]->value;
79 
80  return std::string();
81  }
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 84 of file O3prmrContext_tpl.h.

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

◆ mainImport()

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

Definition at line 228 of file O3prmrContext.h.

228 { 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 140 of file O3prmrContext_tpl.h.

140  {
141  const std::vector< ImportCommand* >& imports = c.imports();
142 
143  for (std::vector< ImportCommand* >::const_iterator i = imports.begin();
144  i != imports.end();
145  i++)
146  addImport(**i);
147 
148  const std::vector< O3prmrSession< GUM_SCALAR >* >& sessions = c.sessions();
149 
150  if (sessions.size() == 1 && sessions.back()->name() == "default") {
151  *(this->m_sessions.back()) += *(sessions.back());
152  } else
153  for (auto i = sessions.begin(); i != sessions.end(); i++)
154  addSession(**i);
155 
156  return *this;
157  }
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 108 of file O3prmrContext_tpl.h.

108  {
109  return m_sessions;
110  }
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 119 of file O3prmrContext_tpl.h.

119  {
120  std::string output;
121 
122  if (!m_package.empty()) {
123  output += "package " + m_package + ";\n";
124  output += "\n";
125  }
126 
127  for (auto i = m_imports.begin(); i < m_imports.end(); i++)
128  output += (*i)->toString() + "\n";
129 
130  output += "\n";
131 
132  for (auto i = m_sessions.begin(); i < m_sessions.end(); i++)
133  output += (*i)->toString() + "\n";
134 
135  return output;
136  }
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 220 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 219 of file O3prmrContext.h.


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