OpendTect  6.6
jobiomgr.h
Go to the documentation of this file.
1 #pragma once
2 
3 /*+
4 ________________________________________________________________________
5 
6  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
7  Author: A.H.Lammertink
8  Date: Oct 2004
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 -*/
13 
14 #include "mmprocmod.h"
15 
16 #include "networkcommon.h"
17 #include "oscommand.h"
18 
19 class CommandString;
20 class FilePath;
21 class HostData;
22 class JobInfo;
23 class JobIOHandler;
24 template <class T> class ObjQueue;
25 
38 {
39 public:
40  StatusInfo( char tg, int desc, int stat, int pid,
41  const char* mg, const char* hostname,
42  int time )
43  : tag(tg), descnr(desc), status(stat), msg(mg)
44  , hostnm(hostname), timestamp(time), procid(pid) {}
45 
46  char tag;
47  int descnr;
48  int status;
49  int timestamp;
50  int procid;
53 };
54 
55 
62 {
63 public:
64  enum Mode { Work, Pause, Stop };
65 
66  JobIOMgr(PortNr_Type firstport=19345,int niceval=19);
67  virtual ~JobIOMgr();
68 
69  const char* peekMsg() { if ( msg_.size() ) return msg_; return 0; }
70  void fetchMsg( BufferString& bs ) { bs = msg_; msg_ = "";}
71 
72  bool startProg(const char*,IOPar&,const FilePath&,
73  const JobInfo&,const char*);
74 
75  void setNiceNess( int n ) { niceval_ = n; }
76  void reqModeForJob(const JobInfo&,Mode);
77  void removeJob(const char*,int);
78  bool isReady() const;
79 
81 
82  static bool mkIOParFile(const FilePath& basefnm,
83  const HostData&,const IOPar&,
84  FilePath&,BufferString& msg);
85  static BufferString mkRexecCmd(const char* prognm,
86  const HostData& machine,
87  const HostData& localhost);
96 protected:
97 
98  JobIOHandler& iohdlr_;
100  int niceval_;
102 
103  bool mkIOParFile(FilePath&,const FilePath& basefnm,
104  const HostData&,const IOPar&);
106  const char* progname,const FilePath& basefp,
107  const FilePath& iopfp,const JobInfo&,
108  const char* rshcomm);
109 private:
110 
111  void setRexecCmd(const char* prognm,
112  const HostData& machine,
113  const HostData& localhost,
114  OS::MachineCommand&) const;
115 
116 };
117 
118 
122 
123  //Deprecated, will be removed after 6.6
124 
126 {
127 public:
128  CommandString(const HostData& targetmachine,
129  const char* init=0);
130 
131  CommandString& operator=(const char*);
132 
133  void addFlag(const char* flag,const char* value);
134  void addFlag(const char* flag,int value);
135  void addFilePath(const FilePath&);
136 
137  const OD::String& string() { return cmd_; }
138 
139 private:
140 
141  void add(const char*);
142 
145 
146 };
147 
StatusInfo::procid
int procid
Definition: jobiomgr.h:50
StatusInfo::msg
BufferString msg
Definition: jobiomgr.h:52
JobIOMgr::~JobIOMgr
virtual ~JobIOMgr()
JobIOMgr::mkRexecCmd
static BufferString mkRexecCmd(const char *prognm, const HostData &machine, const HostData &localhost)
Strat::init
void init()
CommandString::operator=
CommandString & operator=(const char *)
JobIOMgr::iohdlr_
JobIOHandler & iohdlr_
Definition: jobiomgr.h:98
mGlobal
#define mGlobal(module)
Definition: commondefs.h:180
JobIOMgr::JobIOMgr
JobIOMgr(PortNr_Type firstport=19345, int niceval=19)
StatusInfo::StatusInfo
StatusInfo(char tg, int desc, int stat, int pid, const char *mg, const char *hostname, int time)
Definition: jobiomgr.h:40
CommandString::add
void add(const char *)
JobIOMgr::mkIOParFile
bool mkIOParFile(FilePath &, const FilePath &basefnm, const HostData &, const IOPar &)
HostData
Host name and aliases.
Definition: hostdata.h:35
CommandString::string
const OD::String & string()
Definition: jobiomgr.h:137
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
JobIOMgr::setNiceNess
void setNiceNess(int n)
Definition: jobiomgr.h:75
FilePath
File pathname tools.
Definition: filepath.h:34
JobIOMgr::msg_
BufferString msg_
Definition: jobiomgr.h:99
CallBacker
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:185
JobIOMgr::fetchMsg
void fetchMsg(BufferString &bs)
Definition: jobiomgr.h:70
MMJob_getTempFileNr
int & MMJob_getTempFileNr()
JobIOMgr::Mode
Mode
Definition: jobiomgr.h:64
JobIOMgr::peekMsg
const char * peekMsg()
Definition: jobiomgr.h:69
JobIOMgr::mkCommand
void mkCommand(OS::MachineCommand &, const HostData &, const char *progname, const FilePath &basefp, const FilePath &iopfp, const JobInfo &, const char *rshcomm)
OS::CommandExecPars
Specifies how to execute a command.
Definition: oscommand.h:36
StatusInfo::hostnm
BufferString hostnm
Definition: jobiomgr.h:51
StatusInfo
Encapsulates status message from a running client.
Definition: jobiomgr.h:38
JobInfo
All information on a job.
Definition: jobinfo.h:24
mClass
#define mClass(module)
Definition: commondefs.h:181
StatusInfo::status
int status
Definition: jobiomgr.h:48
JobIOMgr::setRexecCmd
void setRexecCmd(const char *prognm, const HostData &machine, const HostData &localhost, OS::MachineCommand &) const
JobIOMgr
Handles starting & stopping of jobs on client machines. Sets up a separate thread to maintain contact...
Definition: jobiomgr.h:62
JobIOMgr::reqModeForJob
void reqModeForJob(const JobInfo &, Mode)
CommandString::addFlag
void addFlag(const char *flag, int value)
getTempBaseNm
const OD::String & getTempBaseNm()
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
JobIOMgr::execpars_
OS::CommandExecPars execpars_
Definition: jobiomgr.h:101
networkcommon.h
CommandString
Definition: jobiomgr.h:126
OD::String
encapsulates the read-access-only part of strings in OD.
Definition: odstring.h:31
CommandString::CommandString
CommandString(const HostData &targetmachine, const char *init=0)
JobIOMgr::isReady
bool isReady() const
StatusInfo::tag
char tag
Definition: jobiomgr.h:46
OS::MachineCommand
Encapsulates an actual command to execute + the machine to run it on.
Definition: oscommand.h:94
JobIOMgr::Work
@ Work
Definition: jobiomgr.h:64
JobIOMgr::removeJob
void removeJob(const char *, int)
mkTmpFileNr
int mkTmpFileNr()
ObjQueue
Queue of objects.
Definition: queue.h:39
JobIOMgr::startProg
bool startProg(const char *, IOPar &, const FilePath &, const JobInfo &, const char *)
CommandString::addFilePath
void addFilePath(const FilePath &)
JobIOMgr::statusQueue
ObjQueue< StatusInfo > & statusQueue()
StatusInfo::descnr
int descnr
Definition: jobiomgr.h:47
MMProc
Distributed Computing.
Definition: mmassetmgr.h:23
CommandString::addFlag
void addFlag(const char *flag, const char *value)
CommandString::hstdata_
const HostData & hstdata_
Definition: jobiomgr.h:144
oscommand.h
JobIOMgr::mkIOParFile
static bool mkIOParFile(const FilePath &basefnm, const HostData &, const IOPar &, FilePath &, BufferString &msg)
PortNr_Type
unsigned short PortNr_Type
Definition: commontypes.h:37
IOPar
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55
CommandString::cmd_
BufferString cmd_
Definition: jobiomgr.h:143
JobIOMgr::niceval_
int niceval_
Definition: jobiomgr.h:100
StatusInfo::timestamp
int timestamp
Definition: jobiomgr.h:49

Generated at for the OpendTect seismic interpretation project. Copyright (C): dGB Beheer B.V. 1995-2021