AAO DRAMA/DRAMA2 C++ Interface
DRAMA C++11 and later interface
Classes | Namespaces
threadaction.hh File Reference

Detailed Description

DRAMA 2 include file - Threaded Action class definition.

The abstract TAction class is used to handle DRAMA Action Obey messages. Each Obey message will be run in a separate C++ 11 thread.

The user can specify an object derived from this class to the Task.Add() method as part of defining in action implementation. In that case, the ActionThread() method is invoked when a DRAMA OBEY Message is received.

The user may, within their ActionThread implementation ...

Todo:
Complete description of what we can do.

The user can also override the ActionEnd() method if they wish. That method is invoked each time an action completes.

The use may also override the KickHandler() method if they wish. By default, KickHandler() wakes up any threads of this action which are waiting for events.

Author
Tony Farrell, AAO $Revision$ $Date$ $Id$
#include "drama/messagehandler.hh"
#include "drama/thread.hh"
#include <thread>
#include <queue>
#include <deque>
#include <map>
#include <chrono>
#include <future>
#include <condition_variable>
#include <functional>

Go to the source code of this file.

Classes

class  drama::thread::KickNotifier
 An object used to obtain notifications of kicks. More...
 
class  drama::thread::TAction
 A class which implements a DRAMA Action with runs a thread. More...
 
class  drama::thread::TActionViaFunctor
 This class is used to creating TAction objects referring to functions. More...
 

Namespaces

namespace  drama
 The drama namespace contains all the classes, types etc of the DRAMA 2 implementation.
 
namespace  drama::thread
 This namespace is used for features which are particular to supporting C++11 thread based operations within DRAMA 2.