//-------------------------------------------------------------------------- // File and Version Information: // $Id: APPLevel3OnlineOutputModule.hh,v 1.9 2002/07/29 14:39:41 ksmcf Exp $ // // Description: // Class APPLevel3OnlineOutputModule. This is an online output module // for the AC++ framework. It coordinates and interfaces farm // control with framework control. In addition it returns the // events/records and state information required by framework. // // Environment: // Software developed for CDF II. // // Author List: // Liz Sexton-Kennedy Original Author // Kevin McFarland // //------------------------------------------------------------------------ #ifndef APPLevel3OnlineOutputModule_HH #define APPLevel3OnlineOutputModule_HH //----------------------- // Experiment Headers -- //----------------------- #include "BaBar/Experiment.hh" //---------------------- // Base Class Headers -- //---------------------- #include "Level3Mods/APPLevel3SenderOutputModule.hh" #include "Level3Mods/APPLevel3InputModule.hh" #include "Level3Control/Abs_Level3Interface.hh" //---------------------- // Collaborating Class Headers -- //---------------------- #include "Framework/AbsParmGeneral.hh" #ifndef TRY_DATAREP_CONVERTER_HH #include "Trybos/private/TRY_Datarep_Converter.hh" #endif #ifndef TRY_FIXED_SIZE_TYPES_HH #include "Trybos/TRY_Fixed_Size_Types.hh" #endif //------------------------------------ // Collaborating Class Declarations -- //------------------------------------ class AbsEvent; class AppStream; class AppOutputCommand; template class APPList; class APPLevel3InputModule; // --------------------- // -- Class Interface -- // --------------------- class APPLevel3OnlineOutputModule : public APPLevel3SenderOutputModule { //-------------------- // Instance Members -- //-------------------- public: // Constructors APPLevel3OnlineOutputModule( const char* const theName, const char* const theDescription, const int4 exeTag = -1); // Destructor virtual ~APPLevel3OnlineOutputModule( ); // Operations // Only I/O initialization and sending methods are overriden // AppResult initIOSystem(); AppResult terminateIOSystem(); // event sending method AppResult sendFlatEvent( bool sendIt, size_t flatEventLength, errorStatus status ); AppResult disconnectOnAbort(); // Data structure methods, information accessors int headerWords() const; void fillHeaderWords(int4* pHeader, const AppStopType& theDispatchStopType, size_t length, long processId); long externalMaximumBufferSize() const; // Selectors const char* rcsId( ) const; int debugLevel( ) const; // information for filling TL3D int getExeNumber() const; int4 getHost() const; private: APPLevel3InputModule* _theInputModule; Abs_Level3Interface* _theInterface; }; #endif