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

IoOutputModule.h

Go to the documentation of this file.
00001 
00002 // $Id: IoOutputModule.h,v 1.12 2005/11/29 01:33:19 schubert Exp $
00003 //
00004 // messier@huhepl.harvard.edu
00006 #ifndef IOOUTPUTMODULE_H
00007 #define IOOUTPUTMODULE_H
00008 #ifndef STRING
00009 #include <string>
00010 #endif
00011 #ifndef VECTOR
00012 #include <vector>
00013 #endif
00014 #ifndef PER_H
00015 #include "Persistency/Per.h" // For EAccessMode
00016 #endif
00017 #ifndef JOBCMODULE_H
00018 #include "JobControl/JobCModule.h"
00019 #endif
00020 
00021 class MomNavigator;
00022 class JobCommand;
00023 class PerOutputStreamManager;
00024 class Registry;
00025 
00026 class IoOutputModule : public JobCModule 
00027 {
00028 public:
00029   IoOutputModule();
00030   ~IoOutputModule();
00031 
00032   const Registry& DefaultConfig() const;
00033   
00034   void       BeginJob();
00035   void       Config(const Registry& r);
00036   void       EndJob();
00037   JobCResult Put(const MomNavigator* mom);  
00038 
00039   // Soon to be obsolete
00040   void HandleCommand(JobCommand* cmd);
00041   
00042   bool OpenFile();
00043   bool CloseFile();
00044   int  AddStreams(std::string streamList);
00045   int  DefineStream(std::string streamName,std::string className, 
00046              std::string userName="", std::string inputStreamName="", 
00047              Int_t splitlevel=Per::kRecSplit);
00048   int  SetStreams(std::string streamList);
00049   int  RemoveStreams(std::string streamList);
00050   
00051 private:
00052   int  AttachAssociatedStreams();
00053   int  EnableStreamList();
00054 
00055   PerOutputStreamManager*  fOutputStreamManager;
00056   int                      fAutoSaveInt;   // Save trees at this entry interval
00057   int                      fAutoSaveTime;  // Save trees at this time interval
00058   int                      fAutoSaveBytes; // Save trees at this byte interval
00059   std::string              fFileName;        // Output file name  
00060   std::string              fDefaultFileName; // Default output file name
00061   Per::EAccessMode         fAccessMode;      // Output access mode
00062   std::vector<std::string> fStreamList;      // list of enabled output streams 
00063   bool                     fOutputFileOpen;  // Is the output file open?
00064 
00065 };
00066 
00067 #endif // IOOUTPUTMODULE_H
00068 

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