Itasca C++ Interface
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
ikernel.h
Go to the documentation of this file.
1 #pragma once
2 #include "base/src/baseqt.h"
3 #include "utility/interface/iinputrecord.h"
5 #include "utility/interface/itextinput.h"
6 #include "security/interface/isecurity.h"
7 
14 namespace security {
15  class ISC; //ISecurityCommunication;
16  struct LicenseLocation;
17 }
18 
19 namespace itascaxd {
20  class IInputItem;
21  class IRange;
22 }
23 
24 namespace itasca {
25  class Archive2;
26  class IKernelInput;
27  class IKernelOutput;
28  class IThing;
29  class IContainer;
30 
32  class IKernel {
33  public:
38 
40  virtual const QObject *getQObject() const=0;
41 
47  virtual bool initialize(IKernelInput *input,IKernelOutput *output)=0;
48 
50  virtual bool disconnectFromInterface()=0;
51 
56  virtual bool security(security::ISC *scomm)=0;
57 
60  virtual bool preCommandLineArguments(QStringList * args)=0;
61 
66  virtual bool commandLineArguments(const QStringList &args)=0;
67  virtual QList<InputLine> fromCommandLineArguments(const QStringList &args)=0;
68 
76  virtual QString processCommands(itascaxd::IInputItem *ii,const QString &inputPath=QString(),
77  bool recursive=false,bool suppress=false)=0;
78 
89  virtual QString processCommands(const QList<InputLine> &sl,
90  const QString &inputPath=QString(),bool recursive=false)=0;
91 
102  virtual QString processCommand(const InputLine &s,const QString &inputPath=QString(),
103  bool recursive=false)=0;
104 
106  virtual bool getAutoTestMode() const=0;
107 
109  virtual QStringList getTestDirectories() const=0;
110 
112  virtual IKernelOutput *getIKernelOutput()=0;
113 
115  virtual void addCommandDocumentation(const QString &referencename,const QStringList &list)=0;
116 
118  virtual void addSphinxCommands(const QStringList &)=0;
119 
121  virtual void addSphinxFish(const QStringList &)=0;
122 
126  virtual int testValidCommand(const QString &line, QString *errorinfo=0) const=0;
127 
132  virtual int testValidCommandText(const QString &text, QString *errorinfo=0, QList<int> *errorlines=0) const=0;
133 
136  virtual QPair<QString,QString> expandCommandKeyword(const QString &line,QString &fileName,int cursor=-1) const=0;
139  virtual QStringList getCommandInformation(const QString &line,int cursor=-1,bool thinkFish=false) const=0;
140 
142  virtual QString getSaveFileName() const=0;
143 
145  virtual bool modelChanged() const=0;
146 
148  virtual bool projectChanged() const=0;
149 
151  virtual void saveProject(Archive2 &a) const=0;
152  virtual bool restoreProject(Archive2 &a,quint64 label)=0;
153  virtual void remapProject(Archive2 &a)=0;
154 
158  virtual bool readSaveFileInfo(QIODevice *dev,IInputRecord::FileDataSet *set,QStringList *lines) const=0;
159 
167  virtual void compressFileList(const QStringList &files)=0;
168  virtual void decompressFileList(const QStringList &files)=0;
170  virtual bool fileIsCompressed(const QString &filename) const=0;
171 
172  // RESULT FILE SUPPORT
173  struct ResultsDesc {
174  QString name_;
175  QString command_;
176  bool state_ = false;
177  QString category_;
178  };
179  virtual std::vector<ResultsDesc> getResultsState() const=0;
180  // TRUE if results files will be generated automatically during cycling.
181  virtual bool getResultsIntervalOn() const=0;
182  // non-zero if results files will be generated based on a real-time interval.
183  virtual quint64 getResultsIntervalClock() const=0;
184  // The name of the process used to determine the model time -- from the list of
185  // processes available to the current model.
186  virtual QString getResultsIntervalProcess() const=0;
187  // non-zero if results files will be generated based on the number of cycles/steps.
188  virtual quint64 getResultsIntervalStep() const=0;
189  // non-zero if results files will be generated based on accumulated model time
190  // in the process returned by getResultsIntervalProcess().
191  virtual double getResultsIntervalTime() const=0;
192  // Returns the prefix used for automatically generated results files.
193  virtual QString getResultsIntervalPrefix() const=0;
194  // Returns the current index used for automatically generated results files.
195  // This is appended to the prefix and incremented automatically.
196  virtual quint32 getResultsIntervalIndex() const=0;
197 
198  // Signals/Slots
203  virtual void pushInputItem(const char *type,const QString &name,bool start)=0;
204 
208  virtual void popInputItem(const char *type,const QString &name)=0;
209 
212  //virtual void saveModelState(const QString &name)=0;
213 
216  virtual void restoreModelState(const QString &name)=0;
217 
219  virtual void resetModelState()=0;
220 
221  virtual void exportResultFile(const QString &name)=0;
222  virtual void importResultFile(const QString &name)=0;
223 
227  virtual void startProcessingFile(const QString &fullPathName,const QString &type)=0;
228 
232  virtual void stopProcessingFile(const QString &fullPathName,const QString &type)=0;
233 
236  virtual void compressingFileIndex(int index)=0;
239  virtual void compressingFileProgress(int progress)=0;
240 
243  virtual void resetModel(bool quiet=false)=0;
244 
246  virtual void resetProject(bool quiet=false)=0;
247 
250  virtual void cleanModel(bool all=false)=0;
251 
254  virtual void calmModel()=0;
255 
257  virtual void filterModel(const itascaxd::IRange &)=0;
258 
260  virtual signal_type *getResetSignal() const=0;
261 
263  virtual signal_type *getSaveSignal() const=0;
264 
266  virtual signal_type *getRestoredSignal() const=0;
267 
270  virtual void save(QIODevice *dev,bool readOnly,bool text)=0;
271 
275  virtual QStringList restore(QIODevice *dev,ItascaTextStream *out=0)=0;
276 
277  virtual void logEvent(const QString &str)=0;
278 
280  virtual bool getInCycle() const=0;
281 
282  virtual QStringList getAllTypeKeywords() const=0;
283 
286  virtual void abort()=0;
287 
289  virtual void loadMPI()=0;
290  };
291 }
293 // EoF
virtual void addSphinxCommands(const QStringList &)=0
Add inline help commands.
virtual bool disconnectFromInterface()=0
This is called to indicate that the GUI is shutting down - no calls to input or output should occurr.
virtual bool getInCycle() const =0
Get the boolean indicating cycling mode.
Provides a interface for getting text.
Definition: itextinput.h:10
virtual void loadMPI()=0
Load the MPI module.
virtual void popInputItem(const char *type, const QString &name)=0
virtual IKernelOutput * getIKernelOutput()=0
Returns a pointer to a IKernelOutput object.
virtual void addCommandDocumentation(const QString &referencename, const QStringList &list)=0
Add cmd-doc definitions from a StringList.
virtual void filterModel(const itascaxd::IRange &)=0
Call a filter method in each module.
virtual void abort()=0
virtual bool preCommandLineArguments(QStringList *args)=0
Interface to a filter, used as the main method for filtering objects.
Definition: irange.h:31
virtual void restoreModelState(const QString &name)=0
Interface describing ALL output support the kernel needs to send information to whatever interface is...
Definition: ikerneloutput.h:12
namespace Itasca
Definition: basememory.cpp:9
Definition of a Signal2 object, holding a list of ISlot2 objects.
Definition: isignalbase.h:76
virtual void compressingFileProgress(int progress)=0
virtual int testValidCommand(const QString &line, QString *errorinfo=0) const =0
virtual void saveProject(Archive2 &a) const =0
Project archive.
virtual void compressingFileIndex(int index)=0
virtual void stopProcessingFile(const QString &fullPathName, const QString &type)=0
virtual bool readSaveFileInfo(QIODevice *dev, IInputRecord::FileDataSet *set, QStringList *lines) const =0
virtual QString processCommands(itascaxd::IInputItem *ii, const QString &inputPath=QString(), bool recursive=false, bool suppress=false)=0
QSet< FileData > FileDataSet
A list of files.
Definition: iinputrecord.h:20
Interface for the small-granularity callback utility.
virtual signal_type * getRestoredSignal() const =0
Return the signal indicating that the model has been restored. i.e., it is emitted after a restore.
virtual void resetModelState()=0
This SIGNAL is emitted when the model state is reset, (a NEW command, for example).
virtual void startProcessingFile(const QString &fullPathName, const QString &type)=0
virtual void calmModel()=0
virtual void pushInputItem(const char *type, const QString &name, bool start)=0
virtual QString processCommand(const InputLine &s, const QString &inputPath=QString(), bool recursive=false)=0
Definition: basetoqt.h:80
Interface describing ALL input support the kernel needs to receive from whatever interface is driving...
Definition: ikernelinput.h:15
virtual bool fileIsCompressed(const QString &filename) const =0
Return true if the given file has been compressed.
virtual bool modelChanged() const =0
Model changed state.
Definition: ikernel.h:173
Definition: iinputitem.h:9
virtual bool projectChanged() const =0
Project changed state.
virtual signal_type * getSaveSignal() const =0
Return the signal indicating that the model will be saved, i.e., it is emitted before a save.
This Interface provides an entry point for command processing.
Definition: ikernel.h:32
virtual QPair< QString, QString > expandCommandKeyword(const QString &line, QString &fileName, int cursor=-1) const =0
virtual bool getAutoTestMode() const =0
Return the test mode flag.
Itasca Library standard namespace, specific to 2D or 3D.
Definition: icontactmodule.h:4
virtual int testValidCommandText(const QString &text, QString *errorinfo=0, QList< int > *errorlines=0) const =0
virtual bool commandLineArguments(const QStringList &args)=0
virtual const QObject * getQObject() const =0
Returns the QObject associated with the kernel, for signal/slot connections.
virtual void cleanModel(bool all=false)=0
virtual signal_type * getResetSignal() const =0
Return the signal indicating that the model will be reset, i.e., it is emitted before a reset.
virtual QStringList getTestDirectories() const =0
Returns all directories current part of the testing system.
virtual bool security(security::ISC *scomm)=0
Signal2< const IThing *, const IContainer * > signal_type
Definition: ikernel.h:37
virtual QStringList getCommandInformation(const QString &line, int cursor=-1, bool thinkFish=false) const =0
virtual QString getSaveFileName() const =0
Get the name of the last save file.
virtual void addSphinxFish(const QStringList &)=0
Add inline help FISH.
virtual void compressFileList(const QStringList &files)=0
All default base headers if Qt is being used.
virtual void resetProject(bool quiet=false)=0
Clears PROJECT level memory (filter, persistant FISH, etc). Called by NEW PROJECT.
virtual void resetModel(bool quiet=false)=0
virtual void save(QIODevice *dev, bool readOnly, bool text)=0
virtual bool initialize(IKernelInput *input, IKernelOutput *output)=0
virtual QStringList restore(QIODevice *dev, ItascaTextStream *out=0)=0