Generic hardware access library
/home/cschwick/hal/generic/include/hal/VME64xHardwareAddress.hh
Go to the documentation of this file.
00001 #ifndef __VME64xHardwareAddress
00002 #define __VME64xHardwareAddress
00003 
00004 #include <string>
00005 #include <iostream>
00006 
00007 #include "hal/GeneralHardwareAddress.hh"
00008 #include "hal/IllegalValueException.hh"
00009 #include "hal/AddressSpace.hh"
00010 
00011 namespace HAL {
00012 
00034 class VME64xHardwareAddress : public GeneralHardwareAddress {
00035 public:
00043   VME64xHardwareAddress( uint32_t address, 
00044                          enum AddressSpace addressSpace,
00045                          uint32_t mappedWindowId,
00046                          uint32_t width )
00047     throw( IllegalValueException );
00048 
00049   virtual uint32_t getAddressModifier() const
00050     throw();
00051   virtual bool isIOSpace() const
00052     throw (IllegalOperationException);
00053   virtual void print( std::ostream& os = std::cout ) const;
00054 
00061   void setWindowConfiguration( uint32_t AM,
00062                                uint32_t dataWdith )
00063     throw( IllegalValueException );
00064 
00065   virtual GeneralHardwareAddress* clone() const;
00066 
00067 private:
00071   std::string getAddressSpaceString() const;
00072 
00073   uint32_t addressModifier_;
00074 
00075 };
00076 
00077 } /* namespace HAL */
00078 
00079 #endif /* __VME64xHardwareAddress */