Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

CODEX_Events::Activity Class Reference

Basic event dispatcher. More...

#include <Activity.h>

Inheritance diagram for CODEX_Events::Activity:

Inheritance graph
[legend]
List of all members.

Public Member Functions

 Activity (DeadPileType &deadPile, QType &eventQueue)
virtual ~Activity ()
 Virtual destructor.
virtual bool handler (EventAck &event)
 The base class is responsible for handling acknowledgements, which are relevant to whether the Activity is ready for deletion.

Protected Member Functions

void sendEvent (EventBase *event, Activity *source, bool failure=false)
void enableTerminate ()
 This method should be called when an Activity has received a CloseEvent or other indicator that it is no longer needed.

Protected Attributes

DeadPileTypem_deadPile
 The pile of Activity%s to be garbage-collected.
QTypem_queue
 The event queue.

Detailed Description

Basic event dispatcher.

This class provides basic event-handling functionality and bookkeeping for automated clean-up. Every type of event should have an accompanying abstract class inheriting Activity as a virtual base. Specific event-handling classes then inherit these abstract classes, permitting the various types of events to ensure at compilation time that they have appropriate destinations.

It is important that Activity%s are created using new if automatic deletion via a dead pile is used. Only scheduling, not the actual deletion, is handled here.

See also:
EventBase, DataEvent, DataHandler, CloseEvent, CloseHandler

Definition at line 55 of file Activity.h.


Constructor & Destructor Documentation

Activity::Activity DeadPileType deadPile,
QType eventQueue
 

Parameters:
deadPile Reference to a vector of pointers to Activity%s which are ready to be deleted. This is held so that an Activity can schedule itself for deletion.
eventQueue Reference to a queue of pointers to EventBase%s which need to be handled. An Activity must place events it generates in this queue.

Definition at line 25 of file Activity.cc.


Member Function Documentation

void Activity::enableTerminate  )  [protected]
 

This method should be called when an Activity has received a CloseEvent or other indicator that it is no longer needed.

Actual termination will not occur until there are no remaining events outstanding (unacknowledged).

Definition at line 63 of file Activity.cc.

Referenced by CODEX_KeyService::ClientActivity::handler(), and CODEX_KeyService::ClientActivity::processRequest().

bool Activity::handler EventAck event  )  [virtual]
 

The base class is responsible for handling acknowledgements, which are relevant to whether the Activity is ready for deletion.

If a derived class reimpliments this method, it must call this version explicitly.

Definition at line 39 of file Activity.cc.

Referenced by CODEX_Events::EventAck::handle(), and CODEX_KeyService::ClientActivity::handler().

void Activity::sendEvent EventBase event,
Activity source,
bool  failure = false
[protected]
 

Parameters:
event New event to be added to the queue
source Source of event just handled, to which an acknowledgement should be sent. This is accessed by the method EventBase::source().
failure Is the acknowledgment a negative ack?

Definition at line 49 of file Activity.cc.

References m_queue.

Referenced by CODEX_APSS::InitActivity::addEvidence(), CODEX_APSS::MessageDeliverer::broadcast(), CODEX_KeyService::ClientActivity::close(), CODEX_Server::UnicastRequestHandler::handler(), CODEX_Server::ShareLabelChallengeHandler::handler(), CODEX_Server::ServerResponseHandler::handler(), CODEX_Server::QuorumBuilderAct::handler(), CODEX_APSS::MessageVerifier::handler(), CODEX_APSS::MessageProcessor::handler(), CODEX_APSS::InitActivity::handler(), CODEX_KeyService::DelegateResponseVerifier::handler(), CODEX_KeyService::DelegateRequestDistributor::handler(), CODEX_KeyService::ClientResponseSigner::handler(), CODEX_KeyService::ClientMessageVerifier::handler(), CODEX_KeyService::ClientMessageSigner::handler(), CODEX_KeyService::ClientMessageAbsorber::handler(), CODEX_KeyService::ClientActivity::handler(), CODEX_Server::BroadcastRequestHandler::handler(), CODEX_KeyService::VerifyWriteCallback::operator()(), CODEX_KeyService::SignWriteCallback::operator()(), CODEX_KeyService::SignReadCallback::operator()(), CODEX_KeyService::SignCreateCallback::operator()(), CODEX_APSS::MessageParser::operator()(), CODEX_KeyService::ClientWriteCallback::operator()(), CODEX_KeyService::ClientResponseParser::operator()(), CODEX_KeyService::ClientReadCallback::operator()(), CODEX_KeyService::ClientMessageParser::operator()(), CODEX_KeyService::ClientCreateCallback::operator()(), CODEX_KeyService::ClientActivity::processRequest(), CODEX_Server::QuorumBuilderAct::QuorumBuilderAct(), CODEX_APSS::MessageDeliverer::sendTo(), CODEX_Server::ShareLabelChallengeHandler::ShareLabelChallengeHandler(), and CODEX_APSS::TriggerActivity::TriggerActivity().


The documentation for this class was generated from the following files:
Generated on Fri May 6 17:42:01 2005 for COrnell Data EXchange (CODEX) by  doxygen 1.4.1