Changeset 1006 for XIOS/trunk/src/filter/output_pin.hpp
- Timestamp:
- 11/28/16 14:02:54 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/filter/output_pin.hpp
r637 r1006 2 2 #define __XIOS_COutputPin__ 3 3 4 #include "garbage_collector.hpp" 4 5 #include "input_pin.hpp" 5 6 … … 9 10 * An output pin handles the connections with downstream filters. 10 11 */ 11 class COutputPin 12 class COutputPin : public InvalidableObject 12 13 { 13 14 public: 15 /*! 16 * Constructs an ouput pin with manual or automatic trigger 17 * and an associated garbage collector. 18 * 19 * \param gc the garbage collector associated with this ouput pin 20 * \param slotsCount the number of slots 21 */ 22 COutputPin(CGarbageCollector& gc, bool manualTrigger = false); 23 14 24 /*! 15 25 * Connects to a specific slot of the input pin of a downstream filter. … … 21 31 void connectOutput(boost::shared_ptr<CInputPin> inputPin, size_t inputSlot); 22 32 33 /*! 34 * Triggers the output of any buffered packet for the specified timestamp. 35 * 36 * \param timestamp the timestamp for which we are triggering the output 37 */ 38 void virtual trigger(Time timestamp); 39 40 /*! 41 * Tests if the pin can be triggered. 42 * 43 * \return true if the pin can be triggered 44 */ 45 bool virtual canBeTriggered() const; 46 47 /*! 48 * Removes all pending packets which are older than the specified timestamp. 49 * 50 * \param timestamp the timestamp used for invalidation 51 */ 52 void virtual invalidate(Time timestamp); 53 23 54 protected: 55 /*! 56 * Function triggered when a packet is ready to be delivered. 57 * 58 * \param packet the packet ready for output 59 */ 60 void onOutputReady(CDataPacketPtr packet); 61 62 /*! 63 * Informs the downstream pins that this output pin should be triggered. 64 */ 65 void setOutputTriggers(); 66 67 private: 24 68 /*! 25 69 * Delivers an output packet to the downstreams filter. … … 29 73 void deliverOuput(CDataPacketPtr packet); 30 74 31 private: 75 CGarbageCollector& gc; //!< The garbage collector associated to the output pin 76 77 //!< Whether the ouput should be triggered manually 78 bool manualTrigger; 79 32 80 //!< The list of connected filters and the corresponding slot numbers 33 81 std::vector<std::pair<boost::shared_ptr<CInputPin>, size_t> > outputs; 82 83 //! Output buffer, store the packets until the output is triggered 84 std::map<Time, CDataPacketPtr> outputPackets; 34 85 }; // class COutputPin 35 86 } // namespace xios
Note: See TracChangeset
for help on using the changeset viewer.