File failed to load: https://isis.astrogeology.usgs.gov/6.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 
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 <QTime>
22 #include <string>
23 #include <ctime>
24 
25 #include "Pvl.h"
26 #include "UserInterface.h"
27 
28 class QLocalSocket;
29 
30 namespace 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)());
108  PvlObject History();
109 
111  static void Log(PvlGroup &results);
112  static void GuiLog(const Pvl &results);
113  static void GuiLog(const PvlGroup &results);
114  static void GuiLog(const QString &results);
115  static QString Name();
116 
118 
122  void RegisterGuiHelpers(std::map<QString, void *> helpers) {
123  p_guiHelpers = helpers;
124  };
125 
129  void *GetGuiHelper(QString helper) {
130  return p_guiHelpers[helper];
131  };
132 
133  void GuiReportError(IException &e);
134 
135  static QString UserName();
136  static QString HostName();
137  static QString DateTime(time_t *curtime = 0);
138  static QString Version();
139 
140  static bool HasParent();
141 
142  private:
143  int p_BatchlistPass;
144  int DirectIO();
145  int PageFaults();
146  int ProcessSwaps();
147 
148  QLocalSocket *p_connectionToParent;
149  time_t p_startTime;
150  clock_t p_startClock;
151  QTime m_connectTime;
152  QString p_datetime;
153  int p_startDirectIO;
154  int p_startPageFaults;
155  int p_startProcessSwaps;
156  pid_t p_childPid;
157  bool p_childCaught;
158 
159  UserInterface *p_ui;
160 
161  void SendParentData(QString, const QString &);
162  void SendParentErrors(PvlObject &errors);
163 
164  static PvlGroup GetUnameInfo();
165  static PvlGroup GetEnviromentInfo();
166  static QString GetSystemDiskSpace();
167  static QString GetLibraryDependencies(QString file);
168 
169  friend class Gui;
170  void FunctionCleanup();
171  int FunctionError(IException &e);
172 
173  friend class Progress;
174  friend class ProgramLauncher;
175  void UpdateProgress(const QString &text, bool print);
176  void UpdateProgress(int percent, bool print);
177  void ProcessGuiEvents();
178 
182  void SetParentConnection(QLocalSocket *p_connection) {
183  p_connectionToParent = p_connection;
184  }
185  void EstablishConnections();
186  void WaitForCommand(int childSocket);
187 
188  pid_t p_pid;
189  std::map<QString, void *> p_guiHelpers;
190  static QString p_appName;
191 
192  };
193 
194  extern Application *iApp;
195 };
196 
197 #endif
Isis::UserInterface::IsInteractive
bool IsInteractive()
Indicates if the Isis Graphical User Interface is operating.
Definition: UserInterface.h:171
Isis::Application::Accounting
PvlGroup Accounting()
Creates accounting PvlGroup.
Definition: Application.cpp:281
Isis::iApp
Application * iApp
Definition: Application.cpp:51
FileName.h
Isis::Application
Definition: Application.h:101
Isis::PvlObject::findGroup
PvlGroupIterator findGroup(const QString &name, PvlGroupIterator beg, PvlGroupIterator end)
Find a group with the specified name, within these indexes.
Definition: PvlObject.h:129
Isis::PvlObject::group
PvlGroup & group(const int index)
Return the group at the specified index.
Definition: PvlObject.cpp:452
Isis::PvlObject
Contains Pvl Groups and Pvl Objects.
Definition: PvlObject.h:61
Isis::IException::print
void print() const
Prints a string representation of this exception to stderr.
Definition: IException.cpp:445
Isis::ProgramLauncher
Execute External Programs and Commands.
Definition: ProgramLauncher.h:34
Isis::Application::HasParent
static bool HasParent()
Returns whether the application has a parent or not.
Definition: Application.cpp:472
Isis::PvlKeyword
A single keyword-value pair.
Definition: PvlKeyword.h:82
Isis::Application::GuiLog
static void GuiLog(const Pvl &results)
Writes the Pvl results to the sessionlog, but not to the printfile.
Definition: Application.cpp:395
Isis::Environment
Definition: Environment.h:36
Isis::FileName::name
QString name() const
Returns the name of the file excluding the path and the attributes in the file name.
Definition: FileName.cpp:162
Isis::FileName
File name manipulation and expansion.
Definition: FileName.h:100
PvlGroup.h
Isis::PvlObject::groups
int groups() const
Returns the number of groups contained.
Definition: PvlObject.h:75
Isis::FileName::fileExists
bool fileExists() const
Returns true if the file exists; false otherwise.
Definition: FileName.cpp:449
Isis::Message::FileOpen
QString FileOpen(const QString &filename)
This error should be used when a file could not be opened.
Definition: FileOpen.cpp:11
Isis::UserInterface::ParentId
int ParentId()
Returns the parent id.
Definition: UserInterface.h:180
Isis::Pvl
Container for cube-like labels.
Definition: Pvl.h:119
Isis::Application::p_applicationForceGuiApp
static bool p_applicationForceGuiApp
Definition: Application.h:117
Isis::Application::RegisterGuiHelpers
void RegisterGuiHelpers(std::map< QString, void * > helpers)
Definition: Application.h:122
Isis::Gui
Gui for Isis Applications.
Definition: Gui.h:73
Preference.h
Isis::toString
QString toString(bool boolToConvert)
Global function to convert a boolean to a string.
Definition: IString.cpp:211
IString.h
Isis::Gui::ShowLog
void ShowLog()
Definition: Gui.h:90
Isis::Application::GetUserInterface
static UserInterface & GetUserInterface()
Returns the UserInterface object.
Definition: Application.cpp:463
Isis::FileName::expanded
QString expanded() const
Returns a QString of the full file name including the file path, excluding the attributes.
Definition: FileName.cpp:196
Isis::Application::Version
static QString Version()
The Isis Version for this application.
Definition: Application.cpp:834
Isis::PvlGroup
Contains multiple PvlContainers.
Definition: PvlGroup.h:41
Pvl.h
_FILEINFO_
#define _FILEINFO_
Macro for the filename and line number.
Definition: IException.h:24
Isis::IException::toString
QString toString() const
Returns a string representation of this exception.
Definition: IException.cpp:537
Isis::Application::GuiReportError
void GuiReportError(IException &e)
Loads the error message into the gui, but does not write it to the session log.
Definition: Application.cpp:708
TextFile.h
Application.h
Isis::Application::Name
static QString Name()
Returns the name of the application.
Definition: Application.cpp:729
Isis::IException
Isis exception class.
Definition: IException.h:91
Isis::Application::Run
int Run(void(*funct)())
Runs the program defined in the function funct.
Definition: Application.cpp:177
Isis::Progress
Program progress reporter.
Definition: Progress.h:42
Isis::Application::Application
Application(int &argc, char *argv[])
Constuctor for the Application object.
Definition: Application.cpp:64
QApplication
Isis::IException::errorType
ErrorType errorType() const
Returns the source of the error for this exception.
Definition: IException.cpp:430
Environment.h
Isis::PvlObject::addGroup
void addGroup(const Isis::PvlGroup &group)
Add a group to the object.
Definition: PvlObject.h:186
Isis::Gui::Log
void Log(const QString &text)
Write text to the gui log.
Definition: Gui.cpp:617
Isis::Application::~Application
~Application()
Destroys the Application object.
Definition: Application.cpp:163
Isis::Application::GetGuiHelper
void * GetGuiHelper(QString helper)
Definition: Application.h:129
errno
int errno
This is free and unencumbered software released into the public domain.
Isis::UserInterface::TheGui
Gui * TheGui()
Definition: UserInterface.h:187
IException.h
std
Namespace for the standard library.
ProgramLauncher.h
Isis::UserInterface
Command Line and Xml loader, validation, and access.
Definition: UserInterface.h:140
Isis::Application::Log
static void Log(PvlGroup &results)
Writes Pvl results to sessionlog and printfile.
Definition: Application.cpp:353
PvlObject.h
Gui.h
Constants.h
Isis::Application::UserName
static QString UserName()
Returns the user name.
Definition: Application.cpp:816
Isis::Application::DateTime
static QString DateTime(time_t *curtime=0)
Returns the date and time as a QString.
Definition: Application.cpp:802
UserInterface.h
CubeManager.h
IsisDebug.h
Isis::Application::History
PvlObject History()
Creates an application history PvlObject.
Definition: Application.cpp:251
Isis
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16
Message.h
Isis::Application::HostName
static QString HostName()
Returns the host name.
Definition: Application.cpp:825
SessionLog.h

U.S. Department of the Interior | U.S. Geological Survey
ISIS | Privacy & Disclaimers | Astrogeology Research Program
To contact us, please post comments and questions on the USGS Astrogeology Discussion Board
To report a bug, or suggest a feature go to: ISIS Github
File Modified: 07/13/2023 15:10:32