OpendTect
7.0
|
Main object for 'standard' batch programs. More...
Public Types | |
enum | Status { Start , ParseFail , ParseOK , CommFail , CommOK , LogFail , LogOK , WorkWait , WorkStarted , WorkFail , WorkPaused , MoreToDo , WorkOK , Killed , LockOK } |
Public Types inherited from ObjectWithName | |
typedef OD::String | name_type |
Public Member Functions | |
const CommandLineParser & | clParser () |
mExp (Batch) bool doWork(od_ostream &) | |
mExp (Batch) bool errorMsg(const uiString & | |
mExp (Batch) bool infoMsg(const char * | |
mExp (Batch) bool isOK() const | |
mExp (Batch) bool pauseRequested() | |
mExp (Batch) void loadModules() | |
mExp (Batch) void setResumed() | |
IOPar & | pars () |
const IOPar & | pars () const |
Public Member Functions inherited from NamedCallBacker | |
NamedCallBacker (const char *nm=0) | |
NamedCallBacker (const NamedCallBacker &) | |
virtual Notifier< NamedCallBacker > & | objectToBeDeleted () const |
bool | operator== (const NamedCallBacker &oth) const |
bool | operator== (const NamedObject &oth) const |
Public Member Functions inherited from CallBacker | |
CallBacker () | |
CallBacker (const CallBacker &) | |
virtual | ~CallBacker () |
bool | attachCB (const NotifierAccess &, const CallBack &, bool onlyifnew=false) const |
bool | attachCB (const NotifierAccess *notif, const CallBack &cb, bool onlyifnew=false) const |
void | detachAllNotifiers () const |
Call from the destructor of your inherited object. More... | |
void | detachCB (const NotifierAccess &, const CallBack &) const |
void | detachCB (const NotifierAccess *notif, const CallBack &cb) const |
virtual bool | isCapsule () const |
bool | isNotifierAttached (const NotifierAccess *) const |
Only for debugging purposes, don't use. More... | |
void | stopReceivingNotifications () const |
virtual CallBacker * | trueCaller () |
Public Member Functions inherited from NamedObject | |
NamedObject (const char *nm=nullptr) | |
NamedObject (const NamedObject &oth) | |
virtual | ~NamedObject () |
virtual BufferString | getName () const |
bool | getNameFromPar (const IOPar &) |
const name_type & | name () const override |
NamedObject & | operator= (const NamedObject &) |
bool | operator== (const NamedObject &oth) const |
virtual void | setName (const char *nm) |
Public Member Functions inherited from ObjectWithName | |
virtual | ~ObjectWithName () |
bool | hasName (const char *nm) const |
bool | hasName (const name_type &nm) const |
void | putNameInPar (IOPar &) const |
Static Public Member Functions | |
static const char * | sKeyDataDir () |
static const char * | sKeyFinishMsg () |
static const char * | sKeySimpleBatch () |
static const char * | sKeySurveyDir () |
Static Public Member Functions inherited from CallBacker | |
static void | createReceiverForCurrentThread () |
static void | removeReceiverForCurrentThread () |
Public Attributes | |
bool | cc_stderr =false) |
bool | cc_stdout =false) |
Notifier< BatchProgram > | endWork |
Notifier< BatchProgram > | eventLoopStarted |
Notifier< BatchProgram > | killed |
Notifier< BatchProgram > | pause |
Notifier< BatchProgram > | resume |
Notifier< BatchProgram > | startDoWork |
Private Member Functions | |
BatchProgram () | |
~BatchProgram () | |
bool | canStartdoWork () const |
void | doFinalize () |
void | doWorkCB (CallBacker *) |
void | eventLoopStartedCB (CallBacker *) |
const BufferString | getLockFileFP () const |
bool | initComm () |
bool | initLogging () |
Batch::ID | jobId () |
void | killNotify (bool yn) |
mExp (Batch) bool canReceiveRequests() const | |
mExp (Batch) bool init() | |
mExp (Batch) float getPriority() const | |
mExp (Batch) static void deleteInstance(int retcode) | |
mExp (Batch) void endWorkCB(CallBacker *) | |
mExp (Batch) void initWork() | |
mExp (Batch) void modulesLoaded() | |
mExp (Batch) void postWork(bool res) | |
mExp (Batch) void startTimer() | |
JobCommunic * | mmComm () |
bool | parseArguments () |
void | progKilled (CallBacker *) |
bool | updateLockFilePars () const |
void | workMonitorCB (CallBacker *) |
Private Attributes | |
Threads::Lock | batchprogthreadlock_ |
CommandLineParser * | clparser_ = nullptr |
JobCommunic * | comm_ = nullptr |
IOPar * | iopar_ = nullptr |
Batch::ID | jobid_ |
float | priority_ = 0.f |
ObjectSet< OD::JSON::Object > | requests_ |
Threads::Lock | statelock_ |
Status | status_ = Start |
od_ostream * | strm_ = nullptr |
bool | strmismine_ = true |
Threads::Thread * | thread_ = nullptr |
Timer * | timer_ |
Static Private Attributes | |
static BatchProgram * | inst_ |
Friends | |
class | BatchServiceServerMgr |
BatchProgram & | BP () |
void | doWorkCB (CallBacker *) |
void | Execute_batch (int *, char **) |
void | launchDoWorkCB (CallBacker *) |
void | loadModulesCB (CallBacker *) |
Additional Inherited Members | |
Protected Member Functions inherited from NamedCallBacker | |
void | sendDelNotif () const |
Protected Attributes inherited from NamedCallBacker | |
Threads::Atomic< bool > | delalreadytriggered_ |
Notifier< NamedCallBacker > | delnotif_ |
Protected Attributes inherited from NamedObject | |
BufferString | name_ |
Main object for 'standard' batch programs.
Most 'interesting' batch programs need a lot of parameters to do the work. Therefore, in OpendTect, BatchPrograms need a 'parameter file', with all the info needed in IOPar format, i.e., keyword/value pairs.
This object takes over the details of reading that file, extracting 'standard' components from the parameters, opening sockets etc.,
To use the object, instead of defining a function 'main', you should define both functions: 'BatchProgram::loadModules': to load the required basic modules 'BatchProgram::doWork': to perform the core work Both functions have full access to a Qt event loop (required for timer, networking, ...).
If you need argc and/or argv outside these two functions, the BP() singleton instance can be accessed.
<>
enum BatchProgram::Status |
|
private |
|
private |
|
private |
|
inline |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
inlineprivate |
|
private |
|
private |
BatchProgram::mExp | ( | Batch | ) | & |
This method must be defined by user, and should contain the implementation
BatchProgram::mExp | ( | Batch | ) | const & |
BatchProgram::mExp | ( | Batch | ) | const |
|
private |
BatchProgram::mExp | ( | Batch | ) | const |
BatchProgram::mExp | ( | Batch | ) |
|
inlineprivate |
|
private |
|
private |
|
private |
BatchProgram::mExp | ( | Batch | ) |
Must be implemented to load the basic modules required by the batch program, for example: OD::ModDeps().ensureLoaded( "Attributes" ); Can only be empty if the batch program does not depend on modules above Network
|
private |
|
private |
BatchProgram::mExp | ( | Batch | ) |
|
private |
|
inlineprivate |
|
inline |
|
inline |
|
private |
|
private |
|
inlinestatic |
|
static |
|
inlinestatic |
|
inlinestatic |
|
private |
|
private |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
private |
bool BatchProgram::cc_stderr =false) |
bool BatchProgram::cc_stdout =false) |
|
private |
|
private |
Notifier<BatchProgram> BatchProgram::endWork |
Notifier<BatchProgram> BatchProgram::eventLoopStarted |
|
staticprivate |
|
private |
|
private |
Notifier<BatchProgram> BatchProgram::killed |
Notifier<BatchProgram> BatchProgram::pause |
|
private |
|
private |
Notifier<BatchProgram> BatchProgram::resume |
Notifier<BatchProgram> BatchProgram::startDoWork |
|
private |
|
private |
|
private |
|
private |
|
private |
Generated at for the OpendTect seismic interpretation project. Copyright (C): dGB Beheer B.V. 1995-2024