File failed to load: https://isis.astrogeology.usgs.gov/dev/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 static QString AleVersion();
142
143 static bool HasParent();
144
145 private:
146 int p_BatchlistPass;
147 int DirectIO();
148 int PageFaults();
149 int ProcessSwaps();
150
151 QLocalSocket *p_connectionToParent;
152 time_t p_startTime;
153 clock_t p_startClock;
154 QElapsedTimer m_connectTime;
155 QString p_datetime;
156 int p_startDirectIO;
157 int p_startPageFaults;
158 int p_startProcessSwaps;
159 pid_t p_childPid;
160 bool p_childCaught;
161
162 UserInterface *p_ui;
163
164 void SendParentData(QString, const QString &);
165 void SendParentErrors(PvlObject &errors);
166
167 static PvlGroup GetUnameInfo();
168 static PvlGroup GetEnviromentInfo();
169 static QString GetSystemDiskSpace();
170 static QString GetLibraryDependencies(QString file);
171
172 friend class Gui;
173 void FunctionCleanup();
174 int FunctionError(IException &e);
175
176 friend class Progress;
177 friend class ProgramLauncher;
178 void UpdateProgress(const QString &text, bool print);
179 void UpdateProgress(int percent, bool print);
180 void ProcessGuiEvents();
181
185 void SetParentConnection(QLocalSocket *p_connection) {
186 p_connectionToParent = p_connection;
187 }
188 void EstablishConnections();
189 void WaitForCommand(int childSocket);
190
191 pid_t p_pid;
192 std::map<QString, void *> p_guiHelpers;
193 static QString p_appName;
194
195 };
196
197 extern Application *iApp;
198};
199
200#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:842
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:348
friend class ProgramLauncher
Definition Application.h:177
friend class Gui
Definition Application.h:172
friend class Progress
Definition Application.h:176
PvlGroup Accounting()
Creates accounting PvlGroup.
Definition Application.cpp:276
static QString AleVersion()
The Ale Version for this application.
Definition Application.cpp:883
static void GuiLog(const Pvl &results)
Writes the Pvl results to the sessionlog, but not to the printfile.
Definition Application.cpp:406
static QString HostName()
Returns the host name.
Definition Application.cpp:865
void GuiReportError(IException &e)
Loads the error message into the gui, but does not write it to the session log.
Definition Application.cpp:725
static QString Version()
The Isis Version for this application.
Definition Application.cpp:874
static QString Name()
Returns the name of the application.
Definition Application.cpp:769
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:394
static bool p_applicationForceGuiApp
Definition Application.h:119
static QString formatError(IException &e)
Definition Application.cpp:739
static bool HasParent()
Returns whether the application has a parent or not.
Definition Application.cpp:483
static QString UserName()
Returns the user name.
Definition Application.cpp:856
void * GetGuiHelper(QString helper)
Definition Application.h:131
static UserInterface & GetUserInterface()
Returns the UserInterface object.
Definition Application.cpp:474
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:122
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