Logo Search packages:      
Sourcecode: ddd version File versions  Download package

Public Member Functions | Static Public Attributes | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Private Member Functions | Static Private Member Functions | Private Attributes

AsyncAgent Class Reference

Inheritance diagram for AsyncAgent:
Inheritance graph
Collaboration diagram for AsyncAgent:
Collaboration graph

List of all members.

Public Member Functions

void _hangup ()
void _kill (int sig=SIGKILL)
void _terminate ()
virtual void abort ()
void addHandler (unsigned type, AgentHandlerProc proc, void *client_data=0)
void addHandler (const Agent &a)
XtAppContext appContext () const
 AsyncAgent (XtAppContext app_context, const string &pth, unsigned nTypes=AsyncAgent_NTypes)
 AsyncAgent (XtAppContext app_context, bool dummy, unsigned nTypes=AsyncAgent_NTypes)
 AsyncAgent (const AsyncAgent &c)
 AsyncAgent (XtAppContext app_context, FILE *in=stdin, FILE *out=stdout, FILE *err=0, unsigned nTypes=AsyncAgent_NTypes)
bool beingTerminated () const
virtual void commit ()
virtual Agentdup () const
FILE * errorfp () const
virtual void handlerChange ()
int & hangupTimeOut ()
int hangupTimeOut () const
bool hasHandler (unsigned type) const
void hasNewStatus (int status)
FILE * inputfp () const
int & killTimeOut ()
int killTimeOut () const
int lastStatus () const
string name () const
virtual bool OK () const
FILE * outputfp () const
const stringpath () const
pid_t pid () const
void removeAllHandlers ()
void removeAllHandlers (unsigned type)
void removeHandler (unsigned type, AgentHandlerProc proc, void *client_data=0)
bool running ()
virtual void shutdown ()
virtual void start ()
virtual void terminate (bool onExit=false)
int & terminateTimeOut ()
int terminateTimeOut () const
virtual void wait ()

Static Public Attributes

static AgentManager runningAgents

Protected Member Functions

virtual void activateIO ()
void addDefaultHandler (unsigned type)
void callHandlers (int type, void *call_data=0)
virtual void callHandlersWhenIdle (int type, void *call_data=0)
void clearHandlers ()
virtual void closeChannel (FILE *fp)
virtual void deactivateIO ()
virtual void errorEOF ()
virtual void executeChild ()
AsyncAgentHandler handler (unsigned type) const
XtInputId id (unsigned type) const
virtual void inputEOF ()
bool inputIsTerminal () const
virtual bool isIdle ()
bool onTerminal () const
bool outputIsTerminal () const
virtual void restoreParentIO ()
AsyncAgentHandler setHandler (unsigned type, AsyncAgentHandler handler=0)
virtual int setupChildCommunication ()
virtual int setupCommunication ()
virtual int setupParentCommunication ()
virtual void waitToTerminate ()

Static Protected Member Functions

static void defaultHandler (Agent *source, void *client_data, void *call_data)

Protected Attributes

FILE * _errorfp
FILE * _inputfp
FILE * _outputfp
string _path
HandlerList handlers

Private Member Functions

void addDeathOfChildHandler ()
void deleteAllWorkProcs ()
void deleteWorkProc (AsyncAgentWorkProcInfo *info, bool remove=true)
void dispatch (int *fid, XtInputId *id)
void initHandlers ()
AsyncAgentoperator= (const AsyncAgent &)
void removeInput (unsigned type)
void statusChange ()

Static Private Member Functions

static Boolean callTheHandlers (XtPointer client_data)
static void callTheHandlersIfIdle (XtPointer client_data, XtIntervalId *id)
static void childStatusChange (Agent *agent, void *client_data, void *call_data)
static void hangupProcess (XtPointer, XtIntervalId *)
static void killProcess (XtPointer, XtIntervalId *)
static void somethingHappened (XtPointer client_data, int *fid, XtInputId *id)
static void terminateProcess (XtPointer, XtIntervalId *)

Private Attributes

XtAppContext _appContext
AsyncAgentHandler _handlers [AsyncAgent_NHandlers]
XtInputId _ids [AsyncAgent_NHandlers]
bool killing_asynchronously
int new_status
XtIntervalId signal_id
bool status_change_pending

Detailed Description

Definition at line 117 of file AsyncAgent.h.

The documentation for this class was generated from the following files:

Generated by  Doxygen 1.6.0   Back to index