00001 //-------------------------------------------------------------------------- 00002 // File and Version Information: 00003 // $Id: InputModule.cpp 8017 2014-04-17 06:54:52Z cpo@SLAC.STANFORD.EDU $ 00004 // 00005 // Description: 00006 // Class InputModule... 00007 // 00008 // Author List: 00009 // Andrei Salnikov 00010 // 00011 //------------------------------------------------------------------------ 00012 00013 //----------------------- 00014 // This Class's Header -- 00015 //----------------------- 00016 #include "psana/InputModule.h" 00017 00018 //----------------- 00019 // C/C++ Headers -- 00020 //----------------- 00021 00022 //------------------------------- 00023 // Collaborating Class Headers -- 00024 //------------------------------- 00025 #include "psana/Exceptions.h" 00026 00027 //----------------------------------------------------------------------- 00028 // Local Macros, Typedefs, Structures, Unions and Forward Declarations -- 00029 //----------------------------------------------------------------------- 00030 00031 // ---------------------------------------- 00032 // -- Public Function Member Definitions -- 00033 // ---------------------------------------- 00034 00035 namespace psana { 00036 00037 //---------------- 00038 // Constructors -- 00039 //---------------- 00040 InputModule::InputModule (const std::string& name) 00041 : Configurable(name) 00042 { 00043 } 00044 00045 //-------------- 00046 // Destructor -- 00047 //-------------- 00048 InputModule::~InputModule () 00049 { 00050 } 00051 00052 Index& InputModule::index() { 00053 throw ExceptionAbort(ERR_LOC, "Index not supported by this input module"); 00054 } 00055 00056 // formatting for enum 00057 std::ostream& 00058 operator<<(std::ostream& out, InputModule::Status stat) 00059 { 00060 const char* str = "???"; 00061 switch (stat) { 00062 case InputModule::BeginRun: 00063 str = "BeginRun"; 00064 break; 00065 case InputModule::BeginCalibCycle: 00066 str = "BeginCalibCycle"; 00067 break; 00068 case InputModule::DoEvent: 00069 str = "DoEvent"; 00070 break; 00071 case InputModule::EndCalibCycle: 00072 str = "EndCalibCycle"; 00073 break; 00074 case InputModule::EndRun: 00075 str = "EndRun"; 00076 break; 00077 case InputModule::Skip: 00078 str = "Skip"; 00079 break; 00080 case InputModule::Stop: 00081 str = "Stop"; 00082 break; 00083 case InputModule::Abort: 00084 str = "Abort"; 00085 break; 00086 } 00087 return out << str; 00088 } 00089 00090 } // namespace psana