Loading...
Searching...
No Matches
gamsdatabase.h
1
26#ifndef GAMSDATABASE_H
27#define GAMSDATABASE_H
28
29#include "gamslib_global.h"
30#include <string>
31#include <memory>
32#include <vector>
33#include "gamsenum.h"
34#include "gamsexception.h"
35#include "gamsdomain.h"
36#include "gamsdatabaseiter.h"
37#include "gamsdatabasedomainviolation.h"
38
39namespace gams {
40
41class GAMSSymbol;
42class GAMSWorkspace;
43class GAMSEquation;
44class GAMSSet;
45class GAMSParameter;
46class GAMSVariable;
47class GAMSDatabaseImpl;
48class GAMSSymbolImpl;
49
50
174class LIBSPEC GAMSDatabase
175{
176public:
181
186
189 bool isValid() const;
190
194
198
201
205
209
211 std::string name();
212
215
220 void doExport(const std::string& filePath = "");
221
225
230 GAMSSymbol getSymbol(const std::string& name);
231
236 GAMSSet getSet(const std::string& name);
237
242 GAMSParameter getParameter(const std::string& name);
243
248 GAMSVariable getVariable(const std::string& name);
249
254 GAMSEquation getEquation(const std::string& name);
255
263 GAMSSet addSet(const std::string& name, const int dimension, const std::string& explanatoryText = "",
264 GAMSEnum::SetType setType = GAMSEnum::SetType::Multi);
265
273 GAMSSet addSet(const std::string& name, const std::string& explanatoryText
274 , const std::vector<GAMSDomain>& domains = std::vector<GAMSDomain>(),
275 GAMSEnum::SetType setType = GAMSEnum::SetType::Multi);
276
286 GAMSSet addSet(const std::string &name,
287 const std::string &explanatoryText,
288 const GAMSDomain &domain1,
289 const GAMSDomain &domain2 = GAMSDomain(),
290 const GAMSDomain &domain3 = GAMSDomain(),
291 GAMSEnum::SetType setType = GAMSEnum::SetType::Multi);
292
299 GAMSParameter addParameter(const std::string& name, const int dimension, const std::string& explanatoryText = "");
300
307 GAMSParameter addParameter(const std::string& name, const std::string& explanatoryText = ""
308 , const std::vector<GAMSDomain>& domains = std::vector<GAMSDomain>());
309
318 GAMSParameter addParameter(const std::string &name,
319 const std::string &explanatoryText,
320 const GAMSDomain &domain1,
321 const GAMSDomain &domain2 = GAMSDomain(),
322 const GAMSDomain &domain3 = GAMSDomain());
323
331 GAMSVariable addVariable(const std::string& name, const int dimension, const GAMSEnum::VarType varType
332 , const std::string& explanatoryText = "");
333
341 GAMSVariable addVariable(const std::string& name, const GAMSEnum::VarType varType, const std::string& explanatoryText = ""
342 , const std::vector<GAMSDomain>& domains = std::vector<GAMSDomain>());
343
353 GAMSVariable addVariable(const std::string &name,
354 const GAMSEnum::VarType varType,
355 const std::string &explanatoryText,
356 const GAMSDomain &domain1,
357 const GAMSDomain &domain2 = GAMSDomain(),
358 const GAMSDomain &domain3 = GAMSDomain());
359
367 GAMSEquation addEquation(const std::string& name, const int dimension, const GAMSEnum::EquType equType
368 , const std::string& explanatoryText = "");
369
377 GAMSEquation addEquation(const std::string& name, const GAMSEnum::EquType equType, const std::string& explanatoryText = ""
378 , const std::vector<GAMSDomain>& domains = std::vector<GAMSDomain>());
379
389 GAMSEquation addEquation(const std::string &name,
390 const GAMSEnum::EquType equType,
391 const std::string &explanatoryText,
392 const GAMSDomain &domain1,
393 const GAMSDomain &domain2 = GAMSDomain(),
394 const GAMSDomain &domain3 = GAMSDomain());
395
400 std::vector<GAMSDatabaseDomainViolation> getDatabaseDVs(int maxViol = 0, int maxViolPerSym = 0);
401
404
408 bool operator!=(const GAMSDatabase& other) const;
409
413 bool operator==(const GAMSDatabase& other) const;
414
417 LogId logID();
418
420 void clear();
421
422private:
423 friend class GAMSWorkspaceImpl;
424 friend class GAMSModelInstanceImpl;
425 friend class GAMSJobImpl;
426 friend class GAMSSymbolImpl;
427 friend class GAMSDatabaseIter;
428
429 GAMSDatabase(const std::shared_ptr<GAMSDatabaseImpl>& impl);
430 GAMSDatabase(void* gmdPtr, gams::GAMSWorkspace &workspace);
431 GAMSDatabase(const std::string& gdxFileName, gams::GAMSWorkspace& workspace, const double specValues[]
432 , const std::string& databaseName = "", const std::string& inModelName = "", bool forceName = false);
433 GAMSDatabase(gams::GAMSWorkspace& workspace, const double specValues[], const std::string& databaseName = ""
434 , const std::string& inModelName = "", bool forceName = false);
435 GAMSDatabase(gams::GAMSWorkspace &workspace, const double specValues[], const GAMSDatabase& sourceDb
436 , const std::string& dbName = "", const std::string& inModelName = "");
437 std::string inModelName();
438
439private:
440 std::shared_ptr<GAMSDatabaseImpl> mImpl;
441};
442
443} // namespace gams
444
445#endif // GAMSDATABASE_H
GAMSSet addSet(const std::string &name, const std::string &explanatoryText, const std::vector< GAMSDomain > &domains=std::vector< GAMSDomain >(), GAMSEnum::SetType setType=GAMSEnum::SetType::Multi)
GAMSEquation getEquation(const std::string &name)
void clear()
Clears all GAMSSymbol's of a GAMSDatabase.
GAMSEquation addEquation(const std::string &name, const int dimension, const GAMSEnum::EquType equType, const std::string &explanatoryText="")
bool isValid() const
std::vector< GAMSDatabaseDomainViolation > getDatabaseDVs(int maxViol=0, int maxViolPerSym=0)
GAMSEquation addEquation(const std::string &name, const GAMSEnum::EquType equType, const std::string &explanatoryText, const GAMSDomain &domain1, const GAMSDomain &domain2=GAMSDomain(), const GAMSDomain &domain3=GAMSDomain())
GAMSVariable addVariable(const std::string &name, const int dimension, const GAMSEnum::VarType varType, const std::string &explanatoryText="")
GAMSSet addSet(const std::string &name, const int dimension, const std::string &explanatoryText="", GAMSEnum::SetType setType=GAMSEnum::SetType::Multi)
int getNrSymbols()
Retrieve the number of symbols in the GAMSDatabase.
GAMSVariable addVariable(const std::string &name, const GAMSEnum::VarType varType, const std::string &explanatoryText="", const std::vector< GAMSDomain > &domains=std::vector< GAMSDomain >())
GAMSParameter addParameter(const std::string &name, const int dimension, const std::string &explanatoryText="")
void doExport(const std::string &filePath="")
GAMSParameter addParameter(const std::string &name, const std::string &explanatoryText="", const std::vector< GAMSDomain > &domains=std::vector< GAMSDomain >())
GAMSSymbol getSymbol(const std::string &name)
GAMSSet getSet(const std::string &name)
GAMSParameter getParameter(const std::string &name)
GAMSDatabase & operator=(const GAMSDatabase &other)
bool suppressAutoDomainChecking()
GAMSVariable addVariable(const std::string &name, const GAMSEnum::VarType varType, const std::string &explanatoryText, const GAMSDomain &domain1, const GAMSDomain &domain2=GAMSDomain(), const GAMSDomain &domain3=GAMSDomain())
void setSuppressAutoDomainChecking(bool value)
std::string name()
Get GAMSDatabase name.
bool operator==(const GAMSDatabase &other) const
GAMSWorkspace workspace()
Get GAMSWorkspace containing GAMSDatabase.
GAMSSet addSet(const std::string &name, const std::string &explanatoryText, const GAMSDomain &domain1, const GAMSDomain &domain2=GAMSDomain(), const GAMSDomain &domain3=GAMSDomain(), GAMSEnum::SetType setType=GAMSEnum::SetType::Multi)
~GAMSDatabase()
Destructor.
GAMSEquation addEquation(const std::string &name, const GAMSEnum::EquType equType, const std::string &explanatoryText="", const std::vector< GAMSDomain > &domains=std::vector< GAMSDomain >())
GAMSVariable getVariable(const std::string &name)
GAMSDatabaseIter end()
bool operator!=(const GAMSDatabase &other) const
GAMSDatabaseIter begin()
GAMSParameter addParameter(const std::string &name, const std::string &explanatoryText, const GAMSDomain &domain1, const GAMSDomain &domain2=GAMSDomain(), const GAMSDomain &domain3=GAMSDomain())
This class represents a abstraction of GAMSSet objects and relaxed sets, i.e. strings.
Definition gamsdomain.h:38
VarType
Variable subtype.
Definition gamsenum.h:83
EquType
Equation subtype.
Definition gamsenum.h:58
SetType
Set subtype.
Definition gamsenum.h:73
Definition gams.h:91