Ignore:
Timestamp:
01/10/17 14:36:29 (7 years ago)
Author:
oabramkina
Message:

Intermeadiate version for merging with new server functionalities.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/dev_olga/src/filter/output_pin.hpp

    r637 r1021  
    22#define __XIOS_COutputPin__ 
    33 
     4#include "garbage_collector.hpp" 
    45#include "input_pin.hpp" 
    56 
     
    910   * An output pin handles the connections with downstream filters. 
    1011   */ 
    11   class COutputPin 
     12  class COutputPin : public InvalidableObject 
    1213  { 
    1314    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 
    1424      /*! 
    1525       * Connects to a specific slot of the input pin of a downstream filter. 
     
    2131      void connectOutput(boost::shared_ptr<CInputPin> inputPin, size_t inputSlot); 
    2232 
     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 
    2354    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: 
    2468      /*! 
    2569       * Delivers an output packet to the downstreams filter. 
     
    2973      void deliverOuput(CDataPacketPtr packet); 
    3074 
    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 
    3280      //!< The list of connected filters and the corresponding slot numbers 
    3381      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; 
    3485  }; // class COutputPin 
    3586} // namespace xios 
Note: See TracChangeset for help on using the changeset viewer.