MultiplexingManager.h

Go to the documentation of this file.
00001 // Copyright CERN 2012 - Developed in collaboration with GSI
00002 
00003 #ifndef MULTIPLEXING_MANAGER_H_
00004 #define MULTIPLEXING_MANAGER_H_
00005 
00006 #include <fesa-core/Synchronization/AbstractMultiplexingManager.h>
00007 
00008 namespace fesa
00009 {
00010 
00011 class MultiplexingDataManager;
00012 
00018 class MultiplexingManager : public AbstractMultiplexingManager
00019 {
00020   public:
00021 
00028     int32_t getSlot(MultiplexingContext& context);
00029 
00036     int32_t requireSlot(MultiplexingContext& context);
00037 
00044     MultiplexingManager(std::string& name, CycleDescriptor* timingDescriptor, MultiplexingDataManager* dataManager);
00045 
00046   protected:
00047 
00053     AbstractMultiplexingDataManager* getMultiplexingDataManager();
00054 
00061     int32_t requireSlot(const std::string& cycleName);
00062     int32_t requireSlot(int32_t cycleId);
00069     int32_t getLastSlot(int32_t cycleId);
00070     int32_t getLastSlot(const std::string& cycleName);
00071 
00072   private:
00073 
00077     MultiplexingDataManager* dataManager_;
00078 };
00079 
00080 } // fesa
00081 
00082 #endif // MULTIPLEXING_MANAGER_H_

Generated on 18 Jan 2013 for Fesa by  doxygen 1.6.1