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

JobCDemoModuleA.cxx

Go to the documentation of this file.
00001 
00002 // $Id: JobCDemoModuleA.cxx,v 1.10 2002/07/17 14:09:13 rhatcher Exp $
00003 //
00004 // Empty implementation of a job module
00005 //
00006 // messier@huhepl.harvard.edu
00008 #include "JobControl/test/JobCDemoModuleA.h"
00009 #include "MessageService/MsgService.h"
00010 #include "JobControl/JobCommand.h"
00011 #include "JobControl/JobCEnv.h"
00012 #include "JobControl/JobCModuleRegistry.h" // For JOBMODULE macro
00013 
00014 //......................................................................
00015 
00016 CVSID("$Id: JobCDemoModuleA.cxx,v 1.10 2002/07/17 14:09:13 rhatcher Exp $");
00017 
00018 // Declare this module to JobControll. Arguments are:
00019 //  (1) The class name 
00020 //  (2) The human-readable name 
00021 //  (3) A short, human-readable description of what the module does
00022 JOBMODULE(JobCDemoModuleA, 
00023           "DemoA",
00024           "A dummy module used for testing the JobControl package");
00025 
00026 //......................................................................
00027 
00028 JobCDemoModuleA::JobCDemoModuleA() : fNget(0),fNana(0),fNreco(0)
00029 {
00030   MSG("JobC", Msg::kDebug) << "** DemoModuleA::Constructor\n";
00031 }
00032 
00033 //......................................................................
00034 
00035 JobCDemoModuleA::~JobCDemoModuleA() 
00036 {
00037   MSG("JobC", Msg::kDebug) << "** DemoModuleA::Destructor\n";
00038 }
00039 
00040 //......................................................................
00041 
00042 const Registry& JobCDemoModuleA::DefaultConfig() const
00043 {
00044 //======================================================================
00045 // Setup the default configuration for the module
00046 //======================================================================
00047   static Registry r;
00048   r.UnLockValues();
00049   r.SetName("DemoA.config");
00050   r.Set("Sweet",  16);  
00051   r.Set("Pi",     3.14);
00052   r.Set("OutFile","output.root");
00053   r.LockValues();
00054   return r;
00055 }
00056 
00057 //......................................................................
00058 
00059 void JobCDemoModuleA::Config(const Registry& r) 
00060 {
00061 //======================================================================
00062 // Dummy config method.
00063 //======================================================================
00064   MsgStream& m = MSGSTREAM("JobC",Msg::kInfo);
00065   m << "DemoA::Config()\n";
00066   if (r.KeyExists("Sweet")) { 
00067     m << " New value of Sweet = " << r.GetInt("Sweet") << "\n";
00068   }
00069   if (r.KeyExists("Pi")) {
00070     m << " New value of Pi = " << r.GetDouble("Pi") << "\n";
00071   }
00072   if (r.KeyExists("OutFile")) {
00073     m << " New value of OutFile = " << r.GetCharString("OutFile") << "\n";
00074   }
00075 }
00076 
00077 //......................................................................
00078 
00079 void JobCDemoModuleA::BeginJob() 
00080 {
00081   MSG("JobC", Msg::kInfo) << "** DemoModuleA::BeginJob()\n";
00082 }
00083 
00084 //......................................................................
00085 
00086 void JobCDemoModuleA::EndJob() 
00087 {
00088   MSG("JobC", Msg::kInfo) << "** DemoModuleA::EndJob()\n";
00089 }
00090 
00091 //......................................................................
00092 
00093 void JobCDemoModuleA::BeginFile()
00094 {
00095   MSG("JobC", Msg::kInfo) << "** DemoModuleA::BeginFile()\n";
00096 }
00097 
00098 //......................................................................
00099 
00100 void JobCDemoModuleA::EndFile()
00101 {
00102   MSG("JobC", Msg::kInfo) << "** DemoModuleA::EndFile()\n";
00103 }
00104 
00105 //......................................................................
00106 
00107 void JobCDemoModuleA::BeginRun()
00108 {
00109   MSG("JobC", Msg::kInfo) << "** DemoModuleA::BeginRun()\n";
00110 }
00111 
00112 //......................................................................
00113 
00114 void JobCDemoModuleA::EndRun()
00115 {
00116   MSG("JobC", Msg::kInfo) << "** DemoModuleA::EndRun()\n";
00117 }
00118 
00119 //......................................................................
00120 
00121 JobCResult JobCDemoModuleA::Get(MomNavigator *mom)
00122 {
00123   ++fNget;
00124   MSG("JobC", Msg::kInfo) << 
00125     "** DemoModuleA::Get (" << mom << ") nGet=" << fNget << "\n";
00126   
00127   // Practice sending some typical results
00128   JobCResult r;
00129   // Begin/End File
00130   if (fNget%5 == 1) {
00131     r.SetBeginFile();
00132     if (fNget>1) r.SetEndFile();
00133   }
00134   // Begin/End Run
00135   if (fNget%10 == 1) {
00136     r.SetBeginRun();
00137     if (fNget>1) r.SetEndRun();
00138   }
00139   // End of input stream
00140   if (fNget > 30) {
00141     r.SetEndOfInputStream();
00142   }
00143   return r;
00144 }
00145 
00146 //......................................................................
00147 
00148 JobCResult JobCDemoModuleA::Ana(const MomNavigator *mom)
00149 {
00150   ++fNana;
00151   
00152   MSG("JobC", Msg::kInfo)
00153     << "** DemoModuleA(" << this << ")::Ana (" << mom << ")" 
00154     << " Ana=" << fNana << "\n";
00155   
00156   return JobCResult::kAOK;
00157 }
00158 
00159 //......................................................................
00160 
00161 JobCResult JobCDemoModuleA::Reco(MomNavigator *mom)
00162 {
00163   ++fNreco;
00164   MSG("JobC", Msg::kInfo) << 
00165     "** DemoModuleA(" << this << ")::Reco(" << mom << ") nReco=" << 
00166     fNreco << "\n";
00167   if (fNreco%2 == 0) return JobCResult::kPassed;
00168   return JobCResult::kFailed;
00169 }
00170 
00171 //......................................................................
00172 
00173 void JobCDemoModuleA::HandleCommand(JobCommand* c) 
00174 {
00175   MsgStream& m = MSGSTREAM("JobC", Msg::kInfo);
00176 
00177   bool ifirst = true;
00178   m << "** DemoModuleA::HandleCommand: ";
00179   while (c->HaveCmd()) {
00180     if (!ifirst) m << "/";
00181     m << c->PopCmd();
00182     ifirst = false;
00183   }
00184   m << " opt={";
00185   ifirst = true;
00186   while (c->HaveOpt()) {
00187     if (!ifirst) m << ",";
00188     m << c->PopOpt();
00189     ifirst = false;
00190   }
00191   m << "}\n";
00192 }
00193 
00194 //......................................................................
00195 
00196 void JobCDemoModuleA::Help() 
00197 {
00198   MSG("JobC", Msg::kInfo) << "** DemoModuleA::Help()\n";
00199 }
00200 

Generated on Mon Feb 15 11:06:48 2010 for loon by  doxygen 1.3.9.1