Bdb packages | Design docs | Source docs | Guidelines | Recent releases

Search | Site Map .

Main Page   Modules   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

/Framework/Framework/AppStreamsOutputModule.hh

Go to the documentation of this file.
00001 //--------------------------------------------------------------------------
00002 // File and Version Information:
00003 //      $Id: AppStreamsOutputModule.hh,v 1.4 2001/06/28 22:49:42 desilva Exp $
00004 //
00005 // Description:
00006 //      Class AppStreamsOutputModule. This is the abstract streams output 
00007 //      module for the BaBar framework. 
00008 //
00009 // Environment:
00010 //      Software developed for the BaBar Detector at the SLAC B-Factory.
00011 //
00012 // Author List:
00013 //      David R. Quarrie                Original Author
00014 //      Marc Turcotte                   Modified for new style begin/end
00015 //      Marc Turcotte                   Modified for new style event.
00016 //      Marc Turcotte                   Modified for FNAL sigs 6/24/98
00017 //
00018 // Copyright Information:
00019 //      Copyright (C) 1994, 1995        Lawrence Berkeley Laboratory
00020 //      Copyright (C) 1998              University of Texas at Dallas
00021 //
00022 //------------------------------------------------------------------------
00023 
00024 #ifndef APPSTREAMSOUTPUTMODULE_HH
00025 #define APPSTREAMSOUTPUTMODULE_HH
00026 
00027 //-----------------------
00028 // Experiment Headers --
00029 //-----------------------
00030 #include "BaBar/Experiment.hh"
00031 
00032 //----------------------
00033 // Base Class Headers --
00034 //----------------------
00035 #include "Framework/APPOutputModule.hh"
00036 
00037 //------------------------------------
00038 // Collaborating Class Declarations --
00039 //------------------------------------
00040 class AbsEvent;
00041 class AppStream;
00042 class AppOutputCommand;
00043 class AppFrame;
00044 template<class T> class APPList;
00045 
00046 //              ---------------------
00047 //              -- Class Interface --
00048 //              ---------------------
00049  
00050 class AppStreamsOutputModule : public APPOutputModule {
00051 
00052   //--------------------
00053   // Instance Members --
00054   //--------------------
00055 
00056 public:
00057   
00058   // Constructors
00059   AppStreamsOutputModule( const char* const theName,
00060                           const char* const theDescription );
00061   
00062   // Copy Constructor
00063   //    AppStreamsOutputModule( const AppStreamsOutputModule& );
00064   
00065   // Destructor
00066   virtual ~AppStreamsOutputModule( );
00067   
00068   // Operations
00069   
00070   virtual AppResult beginJob ( AbsEvent* anEvent );
00071   virtual AppResult beginRun( AbsEvent* anEvent );
00072   
00073   virtual AppResult outputEvent ( AbsEvent* anEvent );
00074   virtual AppResult outputFrame ( AppFrame* aFrame  );
00075   
00076   virtual AppResult endRun( AbsEvent* anEvent );
00077   virtual AppResult endJob ( AbsEvent* anEvent );
00078   
00079   virtual AppResult abortJob( AbsEvent* );
00080   
00081   virtual void           help(int argc, char** argv);
00082   
00083   AppStream*     fetch( const char* const theName ) const;
00084   bool           has  ( const char* const theName ) const;
00085   
00086   // Selectors
00087   APPList< AppStream* >* streams( ) const;
00088   
00089   // Modifiers
00090   virtual void append ( const AppStream* const theStream );
00091   virtual void remove ( const AppStream* const theStream );
00092   virtual void remove ( const char* const theName );
00093   virtual void wipeout( );
00094   
00095 protected:
00096   
00097   AbsEvent*              _theEvent;
00098   APPList< AppStream* >* _streams;
00099   AppOutputCommand*      _outputCmd;
00100   AppOutputCommand*      _outCmd;
00101 
00102 private:
00103 
00104   // Not implemented.
00105   AppStreamsOutputModule( const AppStreamsOutputModule& );
00106   AppStreamsOutputModule& operator=( const AppStreamsOutputModule& );
00107 
00108 };
00109 
00110 #endif

 


BaBar Public Site | SLAC | News | Links | Who's Who | Contact Us

Page Owner: Jacek Becla
Last Update: October 04, 2002