00001 00011 #ifndef DYBNEXTENTRYPLICYTOOL 00012 #define DYBNEXTENTRYPLICYTOOL 00013 00014 #include "GaudiAlg/GaudiTool.h" 00015 #include "DybIO/IDybEntryPolicyTool.h" 00016 #include "GaudiKernel/RndmGenerators.h" 00017 #include <string> 00018 00019 class IRootIOSvc; 00020 class IConversionSvc; 00021 class RootInputStream; 00022 class PerHeaderObject; 00023 00024 class DybNextEntryPolicyTool : public GaudiTool, 00025 virtual public IDybEntryPolicyTool 00026 { 00027 public: 00028 DybNextEntryPolicyTool(const std::string& type, 00029 const std::string& name, 00030 const IInterface* parent); 00031 00032 virtual ~DybNextEntryPolicyTool(); 00033 00034 StatusCode queryInterface( const InterfaceID& riid, void** ppvIf ); 00035 00036 virtual StatusCode initialize(); 00037 00038 // Set the max entry number for this policy 00039 int set_entries(int entries); 00040 00041 // IDybEntryPolicyTool interface 00042 int next_entry(); 00043 00044 private: 00045 int m_entries; 00046 int m_entry, m_step; 00047 // For a root tree entry number start with 0 to entries-1. 00048 00049 std::string m_modeName; 00050 int m_mode; 00051 // 1 - random 00052 // 2 - sequential 00053 00054 Rndm::Numbers m_rand; 00055 int m_last; 00056 }; 00057 00058 #endif // DYBNEXTENTRYPOLICYTOOL