cisst-saw
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
mtsQtApplication.h
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /* ex: set filetype=cpp softtabstop=4 shiftwidth=4 tabstop=4 cindent expandtab: */
3 
4 /*
5 
6  Author(s): Peter Kazanzides
7  Created on: 2012-06-26
8 
9  (C) Copyright 2012 Johns Hopkins University (JHU), All Rights Reserved.
10 
11 --- begin cisst license - do not edit ---
12 
13 This software is provided "as is" under an open source license, with
14 no warranty. The complete license can be found in license.txt and
15 http://www.cisst.org/cisst/license.txt.
16 
17 --- end cisst license ---
18 */
19 
20 #ifndef _mtsQtApplication_h
21 #define _mtsQtApplication_h
22 
25 
26 // Always include last
28 
29 class QApplication;
30 class QBasicTimer;
31 class BasicTimerHandler;
32 
53 {
55 
56  std::string Name;
57  std::vector<std::string> Args; // argc, argv
58 
59 public:
61  mtsQtApplicationConstructorArg(const std::string &name, int argc, char **argv);
64 
65  std::string GetName() const { return Name; }
66  int GetArgc() const { return Args.size(); }
67  void GetArgv(char ***argvp) const;
68 
69  void SerializeRaw(std::ostream & outputStream) const;
70  void DeSerializeRaw(std::istream & inputStream);
71 
72  void ToStream(std::ostream & outputStream) const;
73 
75  virtual void ToStreamRaw(std::ostream & outputStream, const char delimiter = ' ',
76  bool headerOnly = false, const std::string & headerPrefix = "") const;
77 
80  virtual bool FromStreamRaw(std::istream & inputStream, const char delimiter = ' ');
81 };
82 
84 
86 {
88 
89  QApplication * QtApp; // Could also use global variable qApp
90  int ArgcCopy;
91  char **ArgvCopy;
92  QBasicTimer * Timer;
93  BasicTimerHandler * TimerHandler;
94 
95 public:
96  mtsQtApplication(const std::string &name, int &argc, char **argv);
98  virtual ~mtsQtApplication();
99 
100  void Startup(void);
101  void Run(void);
102  void Process(void);
103 };
104 
106 
107 #endif // _mtsQtApplication_h
#define CISST_EXPORT
Definition: cmnExportMacros.h:50
CMN_DECLARE_SERVICES_INSTANTIATION(mtsQtApplicationConstructorArg)
int GetArgc() const
Definition: mtsQtApplication.h:66
virtual void SerializeRaw(std::ostream &outputStream) const
virtual void DeSerializeRaw(std::istream &inputStream)
virtual void ToStream(std::ostream &outputStream) const
Definition: mtsQtApplication.h:52
Base class for data object in cisstMultiTask.
Definition: mtsGenericObject.h:56
const int CMN_DYNAMIC_CREATION_ONEARG
Definition: cmnClassRegisterMacros.h:333
virtual bool FromStreamRaw(std::istream &inputStream, const char delimiter= ' ')
Defines a continuously executing task.
virtual void Startup(void)
Definition: mtsComponent.h:262
std::string GetName() const
Definition: mtsQtApplication.h:65
Definition: mtsQtApplication.h:85
Defines mtsGenericObject.
#define CMN_DECLARE_SERVICES(hasDynamicCreation, lod)
Definition: cmnClassRegisterMacros.h:116
virtual void Run(void)=0
#define CMN_LOG_ALLOW_ALL
Definition: cmnLogLoD.h:75
Definition: mtsTaskContinuous.h:77
const int CMN_DYNAMIC_CREATION
Definition: cmnClassRegisterMacros.h:331
Rules of exporting.
virtual void ToStreamRaw(std::ostream &outputStream, const char delimiter= ' ', bool headerOnly=false, const std::string &headerPrefix="") const
#define CMN_LOG_ALLOW_DEFAULT
Definition: cmnLogLoD.h:76