Isis 3.0
Home
Application.h
Go to the documentation of this file.
1 #ifndef Application_h
2 #define Application_h
3 
27 #include "Environment.h"
28 
29 #include <sys/types.h>
30 #include <unistd.h>
31 #include <sys/socket.h>
32 #include <sys/un.h>
33 
34 #include <iostream>
35 #include <fstream>
36 #include <QString>
37 #include <string>
38 #include <ctime>
39 
40 #include "Pvl.h"
41 #include "UserInterface.h"
42 
43 class QLocalSocket;
44 
45 namespace Isis {
46  class Gui;
47  class IException;
48  class Progress;
49 
114  class Application : public Environment {
115  public:
116  Application(int &argc, char *argv[]);
117  ~Application();
118 
119  int Run(void (*funct)());
121  PvlObject History();
122 
124  static void Log(PvlGroup &results);
125  static void GuiLog(const Pvl &results);
126  static void GuiLog(const PvlGroup &results);
127  static void GuiLog(const QString &results);
128  static QString Name();
129 
131 
135  void RegisterGuiHelpers(std::map<QString, void *> helpers) {
136  p_guiHelpers = helpers;
137  };
138 
142  void *GetGuiHelper(QString helper) {
143  return p_guiHelpers[helper];
144  };
145 
146  void GuiReportError(IException &e);
147 
148  static QString UserName();
149  static QString HostName();
150  static QString DateTime(time_t *curtime = 0);
151  static QString Version();
152 
153  static bool HasParent();
154 
155  private:
156  int p_BatchlistPass;
157  int DirectIO();
158  int PageFaults();
159  int ProcessSwaps();
160 
161  QLocalSocket *p_connectionToParent;
162  time_t p_startTime;
163  clock_t p_startClock;
164  QString p_datetime;
165  int p_startDirectIO;
166  int p_startPageFaults;
167  int p_startProcessSwaps;
168  pid_t p_childPid;
169  bool p_childCaught;
170 
171  UserInterface *p_ui;
172 
173  void SendParentData(QString, const QString &);
174  void SendParentErrors(PvlObject &errors);
175 
176  static PvlGroup GetUnameInfo();
177  static PvlGroup GetEnviromentInfo();
178  static QString GetSystemDiskSpace();
179  static QString GetLibraryDependencies(QString file);
180 
181  friend class Gui;
182  void FunctionCleanup();
183  int FunctionError(IException &e);
184 
185  friend class Progress;
186  friend class ProgramLauncher;
187  void UpdateProgress(const QString &text, bool print);
188  void UpdateProgress(int percent, bool print);
189  void ProcessGuiEvents();
190 
194  void SetParentConnection(QLocalSocket *p_connection) {
195  p_connectionToParent = p_connection;
196  }
197  void EstablishConnections();
198  void WaitForCommand(int childSocket);
199 
200  pid_t p_pid;
201  std::map<QString, void *> p_guiHelpers;
202  static QString p_appName;
203 
204  };
205 
206  extern Application *iApp;
207 };
208 
209 #endif
Definition: Application.h:114
static UserInterface & GetUserInterface()
Returns the UserInterface object.
Definition: Application.cpp:478
static bool HasParent()
Returns whether the application has a parent or not.
Definition: Application.cpp:487
Application * iApp
Definition: Application.cpp:66
void GuiReportError(IException &e)
Loads the error message into the gui, but does not write it to the session log.
Definition: Application.cpp:723
Definition: Environment.h:52
static QString Version()
The Isis Version for this application.
Definition: Application.cpp:849
static QString Name()
Returns the name of the application.
Definition: Application.cpp:744
Execute External Programs and Commands.
Definition: ProgramLauncher.h:47
PvlGroup Accounting()
Creates accounting PvlGroup.
Definition: Application.cpp:296
Program progress reporter.
Definition: Progress.h:58
static void GuiLog(const Pvl &results)
Writes the Pvl results to the sessionlog, but not to the printfile.
Definition: Application.cpp:410
static QString DateTime(time_t *curtime=0)
Returns the date and time as a QString.
Definition: Application.cpp:817
Contains multiple PvlContainers.
Definition: PvlGroup.h:57
static void Log(PvlGroup &results)
Writes Pvl results to sessionlog and printfile.
Definition: Application.cpp:370
void RegisterGuiHelpers(std::map< QString, void * > helpers)
Definition: Application.h:135
static QString HostName()
Returns the host name.
Definition: Application.cpp:840
~Application()
Destroys the Application object.
Definition: Application.cpp:180
static bool p_applicationForceGuiApp
Definition: Application.h:130
Container for cube-like labels.
Definition: Pvl.h:135
PvlObject History()
Creates an application history PvlObject.
Definition: Application.cpp:267
static QString UserName()
Returns the user name.
Definition: Application.cpp:831
Isis exception class.
Definition: IException.h:99
Command Line and Xml loader, validation, and access.
Definition: UserInterface.h:152
Application(int &argc, char *argv[])
Constuctor for the Application object.
Definition: Application.cpp:79
int Run(void(*funct)())
Runs the program defined in the function funct.
Definition: Application.cpp:194
Contains Pvl Groups and Pvl Objects.
Definition: PvlObject.h:74
void * GetGuiHelper(QString helper)
Definition: Application.h:142
Gui for Isis Applications.
Definition: Gui.h:86