Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4UIbridge.hh
Go to the documentation of this file.
1 //
2 // ********************************************************************
3 // * License and Disclaimer *
4 // * *
5 // * The Geant4 software is copyright of the Copyright Holders of *
6 // * the Geant4 Collaboration. It is provided under the terms and *
7 // * conditions of the Geant4 Software License, included in the file *
8 // * LICENSE and available at http://cern.ch/geant4/license . These *
9 // * include a list of copyright holders. *
10 // * *
11 // * Neither the authors of this software system, nor their employing *
12 // * institutes,nor the agencies providing financial support for this *
13 // * work make any representation or warranty, express or implied, *
14 // * regarding this software system or assume any liability for its *
15 // * use. Please see the license in the file LICENSE and URL above *
16 // * for the full disclaimer and the limitation of liability. *
17 // * *
18 // * This code implementation is the result of the scientific and *
19 // * technical work of the GEANT4 collaboration. *
20 // * By using, copying, modifying or distributing the software (or *
21 // * any work based on the software) you agree to acknowledge its *
22 // * use in resulting scientific publications, and indicate your *
23 // * acceptance of all terms of the Geant4 Software license. *
24 // ********************************************************************
25 //
26 // $Id: G4UIbridge.hh 66241 2012-12-13 18:34:42Z gunter $
27 //
28 // ====================================================================
29 // G4UIbridge.hh
30 //
31 // This is a concrete class of G4UIsession.
32 //
33 // This class object is instantiated by G4UImanager at every time
34 // when "/control/execute macro_file" command is executed.
35 // Also in the case of pure batch mode with a macro file,
36 // this class can be used as other ordinary G4UIsession
37 // concrete classes, i.e. SessionStart() is invoked in main().
38 // ====================================================================
39 #ifndef G4UIbridge_H
40 #define G4UIbridge_H 1
41 
42 class G4UImanager;
43 #include "globals.hh"
44 
45 // ====================================================================
46 //
47 // class definition
48 //
49 // G4UIbridge:
50 // To be used for MT mode.
51 // Register a particular thread-local G4UImanager with a UI command
52 // directory name. When a UI command is issued in the master thread
53 // that starts with this redistered directory name, it is immediately
54 // forwarded to the registered G4UImanager. Such forwarded command
55 // is not processed in the master thread nor other worker thread.
56 //
57 // ====================================================================
58 
59 class G4UIbridge
60 {
61  public:
62  G4UIbridge(G4UImanager* localUI,G4String dir);
63  ~G4UIbridge();
64 
65  G4int ApplyCommand(const G4String& aCmd);
66 
67  private:
68  G4UImanager* localUImanager;
69  G4String dirName;
70 
71  public:
72  inline G4UImanager* LocalUI() const
73  { return localUImanager; }
74  inline G4String DirName() const
75  { return dirName; }
76  inline G4int DirLength() const
77  { return dirName.length(); }
78 };
79 
80 #endif
G4UIbridge(G4UImanager *localUI, G4String dir)
Definition: G4UIbridge.cc:36
G4int ApplyCommand(const G4String &aCmd)
Definition: G4UIbridge.cc:66
int G4int
Definition: G4Types.hh:78
G4String DirName() const
Definition: G4UIbridge.hh:74
G4UImanager * LocalUI() const
Definition: G4UIbridge.hh:72
G4int DirLength() const
Definition: G4UIbridge.hh:76