aGrUM  0.16.0
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 39 of file O3prmrContext_tpl.h.

39  {
41  m_mainImport = 0;
42  }

◆ O3prmrContext() [2/2]

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

Definition at line 45 of file O3prmrContext_tpl.h.

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

◆ ~O3prmrContext()

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

Definition at line 52 of file O3prmrContext_tpl.h.

52  {
53  for (Idx i = Size(m_imports.size()); i > 0; i--)
54  delete m_imports[i - 1];
55 
56  for (Size i = Size(m_sessions.size()); i > 0; i--)
57  delete m_sessions[i - 1];
58  }
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:48

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 90 of file O3prmrContext_tpl.h.

Referenced by gum::prm::o3prmr::O3prmrInterpreter::checkSemantic().

92  {
93  m_imports.push_back(new ImportCommand(line, import, alias));
94 
95  if (alias == "default") m_mainImport = m_imports.back();
96  }
std::vector< ImportCommand *> m_imports
+ Here is the caller graph for this function:

◆ 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 99 of file O3prmrContext_tpl.h.

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

Referenced by gum::prm::o3prmr::O3prmrInterpreter::checkSemantic().

115  {
116  m_sessions.push_back(new O3prmrSession< GUM_SCALAR >(session));
117  }
std::vector< O3prmrSession< GUM_SCALAR > *> m_sessions
+ Here is the caller graph for this function:

◆ aliasToImport()

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

Definition at line 77 of file O3prmrContext_tpl.h.

Referenced by gum::prm::o3prmr::O3prmrInterpreter::findSystemName().

77  {
78  for (Idx i = Size(m_imports.size()); i > 0; i--)
79  if (m_imports[i - 1]->alias == alias) return m_imports[i - 1]->value;
80 
81  return std::string();
82  }
std::vector< ImportCommand *> m_imports
std::size_t Size
In aGrUM, hashed values are unsigned long int.
Definition: types.h:48
+ Here is the caller graph for this function:

◆ filename()

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

Definition at line 61 of file O3prmrContext_tpl.h.

Referenced by gum::prm::o3prmr::O3prmrInterpreter::addError(), gum::prm::o3prmr::O3prmrInterpreter::addWarning(), and gum::prm::o3prmr::O3prmrInterpreter::import().

61  {
62  return m_filename;
63  }
+ Here is the caller graph for this function:

◆ imports()

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

Definition at line 85 of file O3prmrContext_tpl.h.

Referenced by gum::prm::o3prmr::O3prmrInterpreter::checkSemantic(), and gum::prm::o3prmr::O3prmrContext< double >::operator+=().

85  {
86  return m_imports;
87  }
std::vector< ImportCommand *> m_imports
+ Here is the caller graph for this function:

◆ mainImport()

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

Definition at line 228 of file O3prmrContext.h.

Referenced by gum::prm::o3prmr::O3prmrInterpreter::system().

228 { return m_mainImport; }
+ Here is the caller graph for this function:

◆ operator+=()

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

Definition at line 141 of file O3prmrContext_tpl.h.

Referenced by gum::prm::o3prmr::O3prmrContext< double >::toString().

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

◆ package()

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

Definition at line 66 of file O3prmrContext_tpl.h.

66  {
67  return m_package;
68  }

◆ sessions()

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

Definition at line 109 of file O3prmrContext_tpl.h.

Referenced by gum::prm::o3prmr::O3prmrInterpreter::checkSemantic(), gum::prm::o3prmr::O3prmrInterpreter::interpret(), and gum::prm::o3prmr::O3prmrContext< double >::operator+=().

109  {
110  return m_sessions;
111  }
std::vector< O3prmrSession< GUM_SCALAR > *> m_sessions
+ Here is the caller graph for this function:

◆ setPackage()

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

Definition at line 71 of file O3prmrContext_tpl.h.

71  {
73  }

◆ toString()

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

Definition at line 120 of file O3prmrContext_tpl.h.

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

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

Definition at line 218 of file O3prmrContext.h.

◆ 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: