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

Activity.cc

00001 /*
00002  * Copyright 2003 Michael A. Marsh, Cornell University. All rights reserved.
00003  * This software is released under the modified BSD license.
00004  * See the file LICENSE in the top-level directory for details.
00005  */
00006 //
00007 // $Id: Activity.cc,v 1.3 2004/05/19 15:56:49 mmarsh Exp $
00008 //
00009 // $Log: Activity.cc,v $
00010 // Revision 1.3  2004/05/19 15:56:49  mmarsh
00011 // *** empty log message ***
00012 //
00013 // Revision 1.2  2003/11/04 22:31:48  mmarsh
00014 // *** empty log message ***
00015 //
00016 //
00017 
00018 #include "Activity.h"
00019 #include "Event.h"
00020 
00021 #include <assert.h>
00022 
00023 using namespace CODEX_Events;
00024 
00025 Activity::Activity( DeadPileType& deadPile, QType& eventQueue ) :
00026    m_deadPile( deadPile ),
00027    m_queue( eventQueue ),
00028    m_outstanding( 0 ),
00029    m_canTerminate( false )
00030 {
00031    //assert( 0 != m_queue );
00032 }
00033 
00034 Activity::~Activity()
00035 {
00036 }
00037 
00038 bool
00039 Activity::handler( EventAck& event )
00040 {
00041    if ( ( 0 == --m_outstanding ) && m_canTerminate )
00042    {
00043       terminate();
00044    }
00045    return true;
00046 }
00047 
00048 void
00049 Activity::sendEvent( EventBase* event, Activity* ack, bool failure )
00050 {
00051    if ( 0 != event )
00052    {
00053       m_queue.push( event );
00054       ++m_outstanding;
00055    }
00056    if ( 0 != ack )
00057    {
00058       m_queue.push( new EventAck(ack, failure) );
00059    }
00060 }
00061 
00062 void
00063 Activity::enableTerminate()
00064 {
00065    m_canTerminate = true;
00066 }
00067 
00068 void
00069 Activity::terminate()
00070 {
00071    //if ( 0 != m_deadPile )
00072    //{
00073       m_deadPile.push_back(this);
00074    //}
00075 }
00076 
00077 DataHandler::DataHandler() :
00078    Activity( *(DeadPileType*)0, *(QType*)0 )
00079 {
00080 }
00081 
00082 DataHandler::~DataHandler()
00083 {
00084 }
00085 
00086 CloseHandler::CloseHandler() :
00087    Activity( *(DeadPileType*)0, *(QType*)0 ) // never called
00088 {
00089 }
00090 
00091 CloseHandler::~CloseHandler()
00092 {
00093 }

Generated on Fri May 6 17:38:32 2005 for COrnell Data EXchange (CODEX) by  doxygen 1.4.1