AAO DRAMA/DRAMA2 C++ Interface
DRAMA C++11 and later interface
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
drama Namespace Reference

Detailed Description

The drama namespace contains all the classes, types etc of the DRAMA 2 implementation.

Namespaces

namespace  git
 Name space used to implement AAO Generic Implementation task features.
 
namespace  gitarg
 Namespace containing the GIT Argument reading classes.
 
namespace  logging
 This namespace implements the DRAMA 2 Logging system.
 
namespace  sds
 This namespace implements access to DRAMA SDS data structures.
 
namespace  thread
 This namespace is used for features which are particular to supporting C++11 thread based operations within DRAMA 2.
 

Classes

class  ArrayParameter
 The class ArrayParameter is used to implement DRAMA parameters containing arrays of primitive items (one dimension only). More...
 
class  ArrayParameter< std::string >
 The class ArrayParameter is used to implement DRAMA parameters containing arrays of primitive items (one dimension only). More...
 
class  Buffers
 A Class which supports setting up DRAMA message buffer structures. More...
 
class  BulkData
 Defines and optionally creates a shared memory section. More...
 
class  BulkDataArg
 A class used to manage a bulk data argument to an action. More...
 
class  BulkDataArgSds
 Class used to access SDS structure in bulk data arguments. More...
 
class  BulkDataSds
 Defines and optionally creates a shared memory section containing an SDS structure. More...
 
class  EntryInfo
 The EntryInfo class is used to access details about a DRAMA message event (and entry to an action). More...
 
class  ErsContext
 A Class used to manage ERS context. More...
 
class  Exception
 An Exception class for exceptions thrown by DRAMA V2 classes. More...
 
class  Future
 A class which wraps a std::future<T> and provides debugging output to stderr. More...
 
class  Future< void >
 A class which wraps a std::future<void> and provides debugging output to stderr. More...
 
class  GetPathEventHandler
 Default event handler type for GetPath() calls. More...
 
class  IsRunningType
 A message event handling object that maintains a variable indicating if the message is outstanding. More...
 
class  MessageEventHandler
 Message event handling objects. More...
 
class  MessageHandler
 A class which implements a DRAMA Message Handler. More...
 
class  MessageHandlerViaFunctor
 This class is used to creating MessageHandler objects referring to functions. More...
 
class  MessageUserStreamBuf
 Implement a streambuf sub-class that can write messages via the DRAMA MessageUser interface. More...
 
class  MonForwardEventHandler
 Forward monitor message event handling objects. More...
 
struct  nodel
 Declare an operator to be used as a deletion operator by std::shared_ptr. More...
 
class  ObeyThreadDispatcher
 Implement a ThreadDispatcher which sends Obey messages. More...
 
class  OrphanDetails
 Structure which maintains details on orphan transactions. More...
 
class  Parameter
 The class Parameter is used to implement DRAMA parameters containing primitive items. More...
 
class  Parameter< drama::sds::Id >
 The class Parameter is used to implement DRAMA parameters containing primitive items. More...
 
class  ParId
 A class used to access a DRAMA Parameter via an SDS Id. More...
 
class  ParSys
 A DRAMA 2 C++ Interface to the DRAMA Simple DITS Parameter System (SDP). More...
 
class  Path
 A Class which provides access to DRAMA's message sending facilities. More...
 
class  Request
 Class used by Obey and Kick handlers to indicate rescheduling requirements. More...
 
class  RunDramaExitNotifier
 Class used to arrange for notifications when the RunDrama exits. More...
 
class  ScopeGuard
 This class implements a simple scope guard class. More...
 
class  ScopeGuardAtomic
 This class implements a simple scope guard class with an std::atomic based type as the underlying type. More...
 
class  SdsListToUserObj
 Object used to print SDS objects using MessageUser from MessageHandler objects. More...
 
class  Spawnable
 A class which implements a Spawnable DRAMA Message Handler. More...
 
class  Task
 A class which implements a DRAMA task. More...
 
class  ThreadDispatcher
 A class to dispatch message sending to another thread. More...
 
struct  TransEvtInfo
 Structure is used to store details about a DRAMA reschedule message relating to a transaction, so the information can be transferred to a thread. More...
 

Typedefs

typedef std::vector< ErsMessageTypeErsMessageVector
 A type used to return ERS messages.
 
using MessageHandlerPtr = std::shared_ptr< MessageHandler >
 This type is used for passing MessageHandler object addresses around.
 
using MessageReceiveFunction = std::function< Request(MessageHandler *)>
 Type used for functions specified to drama::MessageHandler::PutObeyHandler(), drama::MessageHandler::PutKickHandler() and drama::Task::Add().
 
using SpawnablePtr = std::shared_ptr< Spawnable >
 This type is used for passing Spawnable object addresses around.
 

Enumerations

enum class  EntryCode {
  Obey =DITS_REA_OBEY , Kick =DITS_REA_KICK , Resched =DITS_REA_RESCHED , Timeout =DITS_REA_RESCHED ,
  Trigger =DITS_REA_TRIGGER , Signal =DITS_REA_ASTINT , Load =DITS_REA_LOAD , LoadFailed =DITS_REA_LOADFAILED ,
  Rejected =DITS_REA_MESREJECTED , Complete =DITS_REA_COMPLETE , Died =DITS_REA_DIED , PathFound =DITS_REA_PATHFOUND ,
  PathFailed =DITS_REA_PATHFAILED , Message =DITS_REA_MESSAGE , Error =DITS_REA_ERROR , Exit =DITS_REA_EXIT ,
  Notify =DITS_REA_NOTIFY , BulkTransferred =DITS_REA_BULK_TRANSFERRED , BulkDone =DITS_REA_BULK_DONE , Drama2Signal =DITS_REA_DRAMA2 ,
  DramaRunLoopExit =1111 , DramaMainThreadComplete =1112 , DramaAbortWaits =1113
}
 Entry type code - indicates the type of a DRAMA event. More...
 
enum class  RequestCode {
  End =DITS_REQ_END , Stage =DITS_REQ_STAGE , Wait =DITS_REQ_WAIT , Sleep =DITS_REQ_SLEEP ,
  Message =DITS_REQ_MESSAGE , Exit =DITS_REQ_EXIT , KickNoChangeReq =DITS___REQ_NOCHANGE
}
 Action reschedule request type. More...
 
enum class  ShareType { Default = 0 , Create = DITS_SHARE_CREATE }
 Share memory type codes. More...
 

Functions

template<typename T , unsigned S>
unsigned ArraySize (const T(&v)[S])
 Return the number of elements in an array.
 
void CheckLockTaken (const std::string func, const std::string &file, const int lineNum)
 Ensure the current thread has taken the DRAMA task lock.
 
std::chrono::steady_clock::time_point CreateFutureTimepoint (double secs)
 Return a steady_clock time point suitable for use with the Path::...WaitUntil() methods based on an offset in seconds from the current time.
 
template<class TaskClass >
void CreateRunDramaTask ()
 Create and run a DRAMA task, with standard exception handling.
 
template<class TaskClass , typename... ParamTypes>
void CreateRunDramaTask (ParamTypes... taskPars)
 Create and run a DRAMA task, with standard exception handling.
 
void ErsAnnulStack (StatusType *status)
 Annul the ERS stack of messages.
 
void ErsFlushStack (StatusType *status)
 Report a std::string via ERS.
 
void ErsReport (const std::string &mes, StatusType *status)
 Report a std::string via ERS.
 
template<typename... Types>
void ErsReport (StatusType *status, const char *format, Types... args)
 Report a message via ERS - safe format.
 
template<typename... Types>
void ExceptionThrowSafe (const std::string func, const std::string &file, const int lineNum, StatusType status, const char *format, Types... args)
 Create and throw an exception, variable argument list, Safe formatting of arguments.
 
std::string FindFile (const std::string &spec, bool impdir=false)
 Find a file using DulFindFile() specifications.
 
bool GetSymbolExists (const std::string &name)
 Return true if an environment variable is set.
 
std::string GetSymbolVal (const std::string &name)
 Return the value of an environment variable.
 
template<typename T , typename... Types>
void SafePrintf (std::ostream &ostream, const char *format, const T &value, Types... args)
 Safe formated write to a stream.
 
void SafePrintf (std::ostream &ostream, const char *str)
 Safe formatted write to a stream.
 
Request SimpleExitAction (drama::MessageHandler *messageHandler)
 A function which implements a simple exit action.
 
std::string StatusToString (StatusType status)
 Convert a DRAMA status code to text.
 
template<typename Container >
void stringtok (Container &container, std::string const &in, const char *const delimiters=" \t\n\r")
 stringtok is a replacment for C's strtok() function.
 
template<typename... Types>
void TSafePrintf (std::ostream &ostream, const char *format, Types... args)
 Safe formated write to a stream, thread compatible.
 

Variables

const charDrama2Date
 The DRAMA 2 build date.
 
const charDrama2Version
 The DRAMA 2 ACMM Release version string.