// ******************** // *** Slot class *** // ******************** New Slot AttributeBits mask: AltInputSlotBit = 0x20000, // *** Alternate Input Slot Mode Support *** // Alternate Input Slot Mode is currently supported only on SeriesSlots. // SeriesSlots can have alternate inputs provided by either a // PeriodicSlot or a ScalarSlot. typedef enum { AltInpMode_Series = 0, AltInpMode_Periodic, AltInpMode_Scalar } AltInpMode; // For SeriesSlots using child Alternate Input Slots virtual bool altInputSlotModeEna() const { return (false); } virtual bool hasAltInputSlots() const { return (false); } virtual AltInpMode altInpMode() const { return (AltInpMode_Series); } virtual PeriodicSlot* altInputPeriodicSlot() const { return (NULL); } virtual ScalarSlot* altInputScalarSlot() const { return (NULL); } // For Slots which are Alternate Input Slots bool isAltInputSlot() const { return ((attributeBits & AltInputSlotBit) != 0); } virtual SeriesSlot* isAltInputForSeriesSlot() const { return (NULL); } // ************************** // *** SeriesSlot class *** // ************************** // Alternate Input Slot Mode Support bool _altInpModeEna; AltInpMode _altInpMode; PeriodicSlot* _altInpPeriodicSlot; // ownership ScalarSlot* _altInpScalarSlot; // ownership public: // Alternate Input Slot Mode Support bool altInpModeEna() const { return _altInpModeEna; } AltInpMode altInpMode() const { return _altInpMode; } PeriodicSlot* altInpPeriodicSlot() const { return _altInpPeriodicSlot; } ScalarSlot* altInpScalarSlot() const { return _altInpScalarSlot; } void setAltInpModeEna (bool); void setAltInpMode (AltInpMode); void dropAltModeSlots(); private: void checkCreateAltInpPeriodicSlot(); void checkCreateAltInpScalarSlot(); // ****************************************** // *** Periodic and Scalar Slot classes *** // ****************************************** // Alternate Input Slot Mode Support SeriesSlot* _altInputForSeriesSlot; // not ownership public: // Alternate Input Slot Mode Support // virtual from Slot virtual SeriesSlot* isAltInputForSeriesSlot() const void setAltInputForSeriesSlot (SeriesSlot* sslot); ---