OMKEvent.cpp

Go to the documentation of this file.
00001 /*
00002  * This file is part of openMask © INRIA, CNRS, Universite de Rennes 1 1993-2002, thereinafter the Software
00003  * 
00004  * The Software has been developped within the Siames Project. 
00005  * INRIA, the University of Rennes 1 and CNRS jointly hold intellectual property rights
00006  * 
00007  * The Software has been registered with the Agence pour la Protection des
00008  * Programmes (APP) under registration number IDDN.FR.001.510008.00.S.P.2001.000.41200
00009  *
00010  * This file may be distributed under the terms of the Q Public License
00011  * version 1.0 as defined by Trolltech AS of Norway and appearing in the file
00012  * LICENSE.QPL included in the packaging of this file.
00013  *
00014  * Licensees holding valid specific licenses issued by INRIA, CNRS or Université de Rennes 1 
00015  * for the software may use this file in accordance with that specific license 
00016  *
00017  */
00018 
00019 #include <OMKEvent.h>
00020 #include "OMKTracer.h"
00021 
00022 #include "OMKEventAssociationList.h"
00023 #include "OMKEventCreator.h"
00024 #include "OMKSimpleTypeT.inl"
00025 
00026 using namespace std ;
00027 using namespace OMK ;
00028 
00029 EventCreator * Event::_myEventCreator = new EventCreator ("Event") ;
00030 
00031 
00032 
00033 Event::Event ( const Event & originalEvent ) :
00034    eventId ( originalEvent.eventId ),
00035    date ( originalEvent.date ),
00036    sender ( originalEvent.sender ),
00037    receiver ( originalEvent.receiver )
00038 {
00039 }
00040 
00041 
00042 
00043 Event & Event::operator= (const Event & evenement) 
00044 {
00045   eventId = evenement.eventId ;
00046   date = evenement.date ;
00047   sender = evenement.sender ;
00048   receiver = evenement.receiver ;
00049   return(*this);
00050 }
00051 
00052 Event * Event::clone () const {
00053    return new Event (*this) ;
00054 }
00055 
00056 
00057 
00058 void Event::unpack (IncomingSynchronisationMessage & in) 
00059 {
00060    //do nothing : all usefull information has allready been unpacked
00061 }
00062    
00063    
00064 void Event::pack (OutgoingSynchronisationMessage & out) const 
00065 {
00066    static Name eventWithNoValue ("Event") ;
00067 #ifdef _DEBUGPVMMESS
00068    cerr<<"Event::pack"<<endl;
00069 #endif
00070    out << eventWithNoValue
00071        << eventId 
00072        << OMK::Type::SimpleTypeT< Date >( date  )
00073        << sender 
00074        << receiver ;
00075 }
00076 
00077 
00078 
00079 void Event::insertInStream (ostream & out) const 
00080 {
00081    out << eventId << " "
00082        << date << " "
00083        << sender << " "
00084        << receiver << " " ;
00085 }
00086 
00087 void Event::extract (istream & in){
00088    in >> eventId
00089       >> date
00090       >> sender
00091       >> receiver ;
00092 }
00093 
00094 Event::Event(const EventIdentifier & eventId, const Date & date, const Name & sender, const Name & receiver ) : 
00095    eventId ( eventId ),
00096    date ( date ),
00097    sender ( sender ),
00098    receiver (receiver )
00099 {
00100 #ifdef _DEBUGEVT
00101    cerr<<"Event::Event(const EventIdentifier & eventId, const Date & date, const Name & sender, const Name & receiver )"<<endl;
00102 #endif
00103 }
00104 
00105 Event::~Event() 
00106 {
00107    //cerr<<"Event::~Event() "<<*this<<endl;
00108 }
00109 
00110 
00111 bool Event::isSystem() const {
00112   return eventId.isSystemEvent () ;
00113 }
00114 
00115 
00116 
00117 Event * Event::insertInList(list<Event *> * aList, Event * event) {
00118 
00119    list<Event *>::reverse_iterator i = aList->rbegin () ;
00120 
00121    while ( i != aList->rend() &&
00122            (event->date < (*i)->date ) )
00123       {
00124          ++i ;
00125       }
00126    aList-> insert (i.base(),event) ;
00127    return event ;
00128 }
00129 

logo OpenMask

Documentation generated on Mon Jun 9 11:45:56 2008

Generated with doxygen by Dimitri van Heesch ,   1997-2007