File failed to load: https://isis.astrogeology.usgs.gov/9.0.0/Object/assets/jax/output/NativeMML/config.js
Isis Developer Reference
Application.h
Go to the documentation of this file.
1#ifndef Application_h
2#define Application_h
3
8
9/* SPDX-License-Identifier: CC0-1.0 */
10
11#include "Environment.h"
12
13#include <sys/types.h>
14#include <unistd.h>
15#include <sys/socket.h>
16#include <sys/un.h>
17
18#include <iostream>
19#include <fstream>
20#include <QString>
21#include <QElapsedTimer>
22#include <string>
23#include <ctime>
24
25#include "Pvl.h"
26#include "UserInterface.h"
27
28class QLocalSocket;
29
30namespace Isis {
31 class Gui;
32 class IException;
33 class Progress;
34
101 class Application : public Environment {
102 public:
103 Application(int &argc, char *argv[]);
104 ~Application();
105
106 int Run(void (*funct)());
109
111 static void Log(PvlGroup &results);
112 static void AppendAndLog(PvlGroup &results, Pvl *log);
113 static void GuiLog(const Pvl &results);
114 static void GuiLog(const PvlGroup &results);
115 static void GuiLog(const QString &results);
116 static QString Name();
117 static QString formatError(IException &e);
118
120
124 void RegisterGuiHelpers(std::map<QString, void *> helpers) {
125 p_guiHelpers = helpers;
126 };
127
131 void *GetGuiHelper(QString helper) {
132 return p_guiHelpers[helper];
133 };
134
135 void GuiReportError(IException &e);
136
137 static QString UserName();
138 static QString HostName();
139 static QString DateTime(time_t *curtime = 0);
140 static QString Version();
141
142 static bool HasParent();
143
144 private:
145 int p_BatchlistPass;
146 int DirectIO();
147 int PageFaults();
148 int ProcessSwaps();
149
150 QLocalSocket *p_connectionToParent;
151 time_t p_startTime;
152 clock_t p_startClock;
153 QElapsedTimer m_connectTime;
154 QString p_datetime;
155 int p_startDirectIO;
156 int p_startPageFaults;
157 int p_startProcessSwaps;
158 pid_t p_childPid;
159 bool p_childCaught;
160
161 UserInterface *p_ui;
162
163 void SendParentData(QString, const QString &);
164 void SendParentErrors(PvlObject &errors);
165
166 static PvlGroup GetUnameInfo();
167 static PvlGroup GetEnviromentInfo();
168 static QString GetSystemDiskSpace();
169 static QString GetLibraryDependencies(QString file);
170
171 friend class Gui;
172 void FunctionCleanup();
173 int FunctionError(IException &e);
174
175 friend class Progress;
176 friend class ProgramLauncher;
177 void UpdateProgress(const QString &text, bool print);
178 void UpdateProgress(int percent, bool print);
179 void ProcessGuiEvents();
180
184 void SetParentConnection(QLocalSocket *p_connection) {
185 p_connectionToParent = p_connection;
186 }
187 void EstablishConnections();
188 void WaitForCommand(int childSocket);
189
190 pid_t p_pid;
191 std::map<QString, void *> p_guiHelpers;
192 static QString p_appName;
193
194 };
195
196 extern Application *iApp;
197};
198
199#endif
int Run(void(*funct)())
Runs the program defined in the function funct.
Definition Application.cpp:171
static QString DateTime(time_t *curtime=0)
Returns the date and time as a QString.
Definition Application.cpp:841
PvlObject History()
Creates an application history PvlObject.
Definition Application.cpp:245
static void Log(PvlGroup &results)
Writes Pvl results to sessionlog and printfile.
Definition Application.cpp:347
friend class ProgramLauncher
Definition Application.h:176
friend class Gui
Definition Application.h:171
friend class Progress
Definition Application.h:175
PvlGroup Accounting()
Creates accounting PvlGroup.
Definition Application.cpp:275
static void GuiLog(const Pvl &results)
Writes the Pvl results to the sessionlog, but not to the printfile.
Definition Application.cpp:405
static QString HostName()
Returns the host name.
Definition Application.cpp:864
void GuiReportError(IException &e)
Loads the error message into the gui, but does not write it to the session log.
Definition Application.cpp:724
static QString Version()
The Isis Version for this application.
Definition Application.cpp:873
static QString Name()
Returns the name of the application.
Definition Application.cpp:768
void RegisterGuiHelpers(std::map< QString, void * > helpers)
Definition Application.h:124
static void AppendAndLog(PvlGroup &results, Pvl *log)
Writes the pvl group results to both a passed in Pvl log and the applications log (either GUI or comm...
Definition Application.cpp:393
static bool p_applicationForceGuiApp
Definition Application.h:119
static QString formatError(IException &e)
Definition Application.cpp:738
static bool HasParent()
Returns whether the application has a parent or not.
Definition Application.cpp:482
static QString UserName()
Returns the user name.
Definition Application.cpp:855
void * GetGuiHelper(QString helper)
Definition Application.h:131
static UserInterface & GetUserInterface()
Returns the UserInterface object.
Definition Application.cpp:473
Application(int &argc, char *argv[])
Constuctor for the Application object.
Definition Application.cpp:58
~Application()
Destroys the Application object.
Definition Application.cpp:157
Environment()
Definition Environment.cpp:45
Gui for Isis Applications.
Definition Gui.h:73
Isis exception class.
Definition IException.h:91
Program progress reporter.
Definition Progress.h:42
Contains multiple PvlContainers.
Definition PvlGroup.h:41
Container for cube-like labels.
Definition Pvl.h:119
Contains Pvl Groups and Pvl Objects.
Definition PvlObject.h:61
Command Line and Xml loader, validation, and access.
Definition UserInterface.h:139
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16
Application * iApp
Definition Application.cpp:45