AAO DRAMA C++ Interface (Old style)
DRAMA C++, Depreciated, don't use for new code
Classes | Public Member Functions | Static Public Member Functions | List of all members
DcppTask Class Reference

A Class which provides access to DRAMA's message sending facilities. More...

#include <dcpptask.h>

Inheritance diagram for DcppTask:
GitTask

Classes

class  DisconHandler
 Disconnect handler abstract type. More...
 

Public Member Functions

 DcppTask (bool self)
 Path to self constructor.
 
 DcppTask (const char *const name, const char *const location=0, const char *const file=0)
 Normal constructor.
 
 DcppTask (DitsPathType p)
 Constructor from existing path.
 
virtual ~DcppTask ()
 Destructor.
 
virtual bool Active () const
 Indicate if a task is active.
 
virtual bool Busy () const
 Returns true if we can't send a message because path is busy.
 
virtual void ClearState ()
 Clear the task state.
 
virtual DcppHandlerRet Control (const char *const name, StatusType *const status, const SdsId &arg=SdsNull, const DcppHandlerRoutine SuccessHandler=0, const DcppHandlerRoutine ErrorHandler=0, const DcppHandlerRoutine TriggerHandler=0, const DcppVoidPnt ClientData=0, const DcppHandlerRoutine ErsHandler=0)
 Send a DRAMA Control message to the task.
 
virtual void Delete (int force, StatusType *status)
 Delete the task.
 
virtual void Died ()
 Note that a task has died.
 
virtual DcppHandlerRet Get (const char *const name, StatusType *const status, const DcppHandlerRoutine SuccessHandler=0, const DcppHandlerRoutine ErrorHandler=0, const DcppVoidPnt ClientData=0, const DcppHandlerRoutine ErsHandler=0)
 Send a DRAMA message to the task to get the value of a parameter.
 
const char * GetArgument () const
 Fetch the load argument.
 
virtual void GetDitsPath (DitsPathType *path, StatusType *status)
 Return the underlying DITS path object.
 
virtual DcppHandlerRet GetPath (StatusType *const status, const DcppHandlerRoutine SuccessHandler=0, const DcppHandlerRoutine ErrorHandler=0, const DcppVoidPnt ClientData=0)
 Get a path to/load a the task.
 
virtual void GetPathImmed (StatusType *const status)
 Get a path to a task if DITS already has it.
 
bool GetPathLoaded () const
 Indicate if a the task was loaded.
 
DcppHandlerRet HandleMessage (DcppTransaction *transaction, StatusType *status)
 Function used by DcppDispatch in dispatching to handlers.
 
virtual bool Initial () const
 Return true if a GetPath operation is required.
 
virtual bool IsDead () const
 Return true if a previously active task has disconnected.
 
virtual DcppHandlerRet Kick (const char *const name, const DcppShared &SharedMem, const bool sds, const int NotifyBytes, StatusType *const status, const DcppHandlerRoutine SuccessHandler=0, const DcppHandlerRoutine ErrorHandler=0, const DcppBulkTransRoutine BulkTransHandler=0, const DcppHandlerRoutine BulkDoneHandler=0, const DcppVoidPnt ClientData=0, const DcppHandlerRoutine ErsHandler=0, const DcppHandlerRoutine MsgHandler=0)
 Send a DRAMA bulk data Kick message to the task.
 
virtual DcppHandlerRet Kick (const char *const name, StatusType *const status, const SdsId &arg=SdsNull, const DcppHandlerRoutine SuccessHandler=0, const DcppHandlerRoutine ErrorHandler=0, const DcppVoidPnt ClientData=0, const DcppHandlerRoutine ErsHandler=0, const DcppHandlerRoutine MsgHandler=0)
 Send a DRAMA Kick message to the task.
 
virtual void KickForget (const char *const name, StatusType *const status, const SdsId &arg=SdsNull, const DcppHandlerRoutine SuccessHandler=0, const DcppHandlerRoutine ErrorHandler=0, const DcppVoidPnt ClientData=0, const DcppHandlerRoutine ErsHandler=0, const DcppHandlerRoutine MsgHandler=0)
 Send a DRAMA OKick message to the task, forgetting the transaction.
 
const char * Location () const
 Fetch the task location.
 
virtual void LogLoad (const bool Flag=true)
 Load use MsgOut() a lines indicating the load operations.
 
virtual void LosePath (StatusType *const status)
 Lose the path and then set as if the task has died.
 
virtual DcppHandlerRet MGet (const DcppHandlerRoutine SuccessHandler, const DcppHandlerRoutine ErrorHandler, const DcppHandlerRoutine ErsHandler, const DcppVoidPnt ClientData, unsigned count, StatusType *status,...)
 Send a DRAMA message to the task to get the value of multiple parameters.
 
virtual DcppHandlerRet MGet (const DcppHandlerRoutine SuccessHandler, const DcppHandlerRoutine ErrorHandler, const DcppVoidPnt ClientData, unsigned count, StatusType *status,...)
 Send a DRAMA message to the task to get the value of multiple parameters.
 
virtual DcppHandlerRet Monitor (const char *name, StatusType *const status, const SdsId &arg=SdsNull, const DcppHandlerRoutine SuccessHandler=0, const DcppHandlerRoutine ErrorHandler=0, const DcppHandlerRoutine TriggerHandler=0, const DcppVoidPnt ClientData=0, const bool SendCurrent=false, const DcppHandlerRoutine ErsHandler=0)
 Send a DRAMA Monitor message to the task.
 
virtual void MonitorForget (const char *name, StatusType *const status, const SdsId &arg=SdsNull, const DcppHandlerRoutine SuccessHandler=0, const DcppHandlerRoutine ErrorHandler=0, const DcppHandlerRoutine TriggerHandler=0, const DcppVoidPnt ClientData=0, const bool SendCurrent=false, const DcppHandlerRoutine ErsHandler=0)
 Send a DRAMA Monitor message to the task, forgetting the transaction.
 
virtual DcppHandlerRet Obey (const char *const name, const DcppShared &SharedMem, const bool sds, const int NotifyBytes, StatusType *const status, const DcppHandlerRoutine SuccessHandler, const DcppHandlerRoutine ErrorHandler, const DcppBulkTransRoutine BulkTransHandler, const DcppHandlerRoutine BulkDoneHandler, const DcppHandlerRoutine TriggerHandler, const DcppVoidPnt ClientData, const DcppHandlerRoutine ErsHandler, const DcppHandlerRoutine MsgHandler, const SdsId *const tidArg)
 Send a DRAMA Obey bulk data message to the task.
 
virtual DcppHandlerRet Obey (const char *const name, const DcppShared &SharedMem, const bool sds, const int NotifyBytes, StatusType *const status, const DcppHandlerRoutine SuccessHandler, const DcppHandlerRoutine ErrorHandler, const DcppBulkTransRoutine BulkTransHandler, const DcppHandlerRoutine BulkDoneHandler, const DcppHandlerRoutine TriggerHandler, const DcppVoidPnt ClientData, const DcppHandlerRoutine ErsHandler, const DcppHandlerRoutine MsgHandler, SdsId *const tidArg)
 Send a DRAMA Obey bulk data message to the task.
 
virtual DcppHandlerRet Obey (const char *const name, const DcppShared &SharedMem, const bool sds, const int NotifyBytes, StatusType *const status, const DcppHandlerRoutine SuccessHandler=0, const DcppHandlerRoutine ErrorHandler=0, const DcppBulkTransRoutine BulkTransHandler=0, const DcppHandlerRoutine BulkDoneHandler=0, const DcppHandlerRoutine TriggerHandler=0, const DcppVoidPnt ClientData=0, const DcppHandlerRoutine ErsHandler=0, const DcppHandlerRoutine MsgHandler=0, DitsTransIdType *const transid=0)
 Send a DRAMA Obey bulk data message to the task.
 
virtual DcppHandlerRet Obey (const char *const name, StatusType *const status, const SdsId &arg, const DcppHandlerRoutine SuccessHandler, const DcppHandlerRoutine ErrorHandler, const DcppHandlerRoutine TriggerHandler, const DcppVoidPnt ClientData, const DcppHandlerRoutine ErsHandler, const DcppHandlerRoutine MsgHandler, const SdsId *const tidArg)
 Send a DRAMA Obey message to the task.
 
virtual DcppHandlerRet Obey (const char *const name, StatusType *const status, const SdsId &arg, const DcppHandlerRoutine SuccessHandler, const DcppHandlerRoutine ErrorHandler, const DcppHandlerRoutine TriggerHandler, const DcppVoidPnt ClientData, const DcppHandlerRoutine ErsHandler, const DcppHandlerRoutine MsgHandler, SdsId *const tidArg)
 Send a DRAMA Obey message to the task.
 
virtual DcppHandlerRet Obey (const char *const name, StatusType *const status, const SdsId &arg=SdsNull, const DcppHandlerRoutine SuccessHandler=0, const DcppHandlerRoutine ErrorHandler=0, const DcppHandlerRoutine TriggerHandler=0, const DcppVoidPnt ClientData=0, const DcppHandlerRoutine ErsHandler=0, const DcppHandlerRoutine MsgHandler=0, DitsTransIdType *const transid=0)
 Send a DRAMA Obey message to the task.
 
virtual void ObeyForget (const char *const name, StatusType *const status, const SdsId &arg, const DcppHandlerRoutine SuccessHandler, const DcppHandlerRoutine ErrorHandler, const DcppHandlerRoutine TriggerHandler, const DcppVoidPnt ClientData, const DcppHandlerRoutine ErsHandler, const DcppHandlerRoutine MsgHandler, const SdsId *const tidArg)
 Send a DRAMA Obey message to the task, forgetting the transaction.
 
virtual void ObeyForget (const char *const name, StatusType *const status, const SdsId &arg, const DcppHandlerRoutine SuccessHandler, const DcppHandlerRoutine ErrorHandler, const DcppHandlerRoutine TriggerHandler, const DcppVoidPnt ClientData, const DcppHandlerRoutine ErsHandler, const DcppHandlerRoutine MsgHandler, SdsId *const tidArg)
 Send a DRAMA Obey message to the task, forgetting the transaction.
 
virtual void ObeyForget (const char *const name, StatusType *const status, const SdsId &arg=SdsNull, const DcppHandlerRoutine SuccessHandler=0, const DcppHandlerRoutine ErrorHandler=0, const DcppHandlerRoutine TriggerHandler=0, const DcppVoidPnt ClientData=0, const DcppHandlerRoutine ErsHandler=0, const DcppHandlerRoutine MsgHandler=0, DitsTransIdType *const transid=0)
 Send a DRAMA Obey message to the task, forgetting the transaction.
 
virtual DisconHandlerPutDisconnectHandler (DisconHandler *p)
 Add a new disconnect handler for this task.
 
void Report (StatusType *status) const
 Dump details using MsgOut().
 
virtual DcppHandlerRet Set (const char *const name, StatusType *const status, const SdsId &arg=SdsNull, const DcppHandlerRoutine SuccessHandler=0, const DcppHandlerRoutine ErrorHandler=0, const DcppVoidPnt ClientData=0, const DcppHandlerRoutine ErsHandler=0)
 Send a DRAMA set message to the task.
 
virtual void SetArgument (const char *const LoadArg, bool const Append=false)
 Set the load time argument string.
 
virtual void SetBuffers (const DcppBuffers &Buffers)
 Set the DRAMA path buffers.
 
virtual void SetFile (const char *const File)
 Set the executable file name.
 
virtual void SetFlowControl ()
 Set the FLOW control flag.
 
virtual void SetLocation (const char *const Location)
 Set the task location.
 
virtual void SetName (const char *const TaskName)
 Set the task name.
 
virtual void SetNames (const bool Flag=true)
 Insist that symbols known to IMP_Master be known to the task.
 
virtual void SetPriority (const int Priority, const bool Absolute=false)
 Set the load time priority for a task when loaded.
 
virtual void SetProcess (const char *const ProcessName)
 Set the process names.
 
virtual void SetProg (const bool Flag=true)
 Interpert file name as a program name.
 
virtual void SetStackSize (unsigned bytes)
 Set the stack size for the load.
 
virtual void SetSymbols (const bool Flag=true)
 Interpert file name as a symbol (VMS Target only)
 
void TaskLoggingOff ()
 Turn logging off for this object.
 
void TaskLoggingOn ()
 Turn logging on for this object.
 
const char * TaskName () const
 Fetch the task name.
 

Static Public Member Functions

static DcppHandlerRet DiscardResponse (DcppVoidPnt ClientData, StatusType *status)
 Flag argument success handler indicating reponses are to be ignored.
 
static void HandleDisconnected (const char *task, DitsPathType path, StatusType *status)
 Handle task disconnection.
 
static void LoggingOff ()
 Disable logging for all tasks.
 
static void LoggingOn ()
 Enable logging for all DcppTask objects.
 

Detailed Description

A Class which provides access to DRAMA's message sending facilities.

This class was the original attempt at providing a C++ interface to DRAMA's message sending functions. The idea is that you maintain an object of this type for each task you want to send messages to. You can then use the various methods to send messages. The Action/UFACE routine which processes replies to these messages can use DcppDisptach() to dispatch the messages such that the callback functions which are specified when the message is sent, are invoked.

In addition, when invoked with an action, the used of DcppTask can be combined with a DcppHandler object to handle action rescheduling transparently. This is optional.

See also
DcppMonitor
DcppHandler
Arg
SdsId
DitsInitiateMessage()
DitsInitMessBulk()
DRAMA C++ interface
DRAMA DITS Specification
Remarks
The approach used here is wrong, instead of using call back functions and client data, we should be using an object which the user can override to provide the functionality. This may be added later.

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