Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

SH::Status Class Reference
[StreamHandlers]

#include <SHStatus.h>

Inheritance diagram for SH::Status:

Inheritance graph
[legend]
Collaboration diagram for SH::Status:

Collaboration graph
[legend]
List of all members.

Public Member Functions

virtual size_t numSinkSpecs () const
virtual size_t numSourceSpecs () const
virtual SinkEndpoint ** getSinkSpecs ()=0
virtual SourceEndpoint ** getSourceSpecs ()=0

Protected Member Functions

void initSettings (const Status::Settings &orig)
virtual bool isActiveCapable () const
virtual bool isPassiveCapable () const
virtual bool isThroughCapable () const
virtual bool isConnected () const =0
virtual bool isStreaming () const
virtual bool isInActiveMode () const
virtual bool isInPassiveMode () const
virtual bool isInThroughMode () const
virtual void setStreaming (bool yes)
 Change the settings of the _is_streaming flag.

Detailed Description

Inner class for the specification and the current status of a stream handler's abilities.
The class is intended as a means for graph manager to understand the capabilities of a stream handler.

It reports the status of a stream handler to the graph manager. as well. The functions can be evaluated at any time while the stream handler object itself is valid. Usually this interface will be implemented by a subclass of stream handler.


Member Function Documentation

virtual SinkEndpoint** SH::Status::getSinkSpecs  )  [pure virtual]
 

Provide a list of valid sink endpoint specifications to the graph manager.
getSinkPorts() is called by the graph manager and returns an array of pointers to EndpointSpec structures, or NULL if no endpoints in this direction are supported. It is typical that the length of such an array is 1, because several alternatives are specified by one EndpointSpec object, and the maximum number of identical Endpoints is a parameter of the EndpointSpec as well. The maximum number of endpoints may be dynamic, e.g. in an RTP source SH, new SSRCs or PTs will result in the provision of a new Endpoint. The array of endpoint specs is not NULL terminated, it is expected that the application knows the number of endpoints from numSinkSpecs().

Returns:
An array of endpoint specification.

Implemented in SH::DataPopSinkSH, SH::DevNullSH, SH::DummyLayerSinkSH, SH::DummyLayerSourceSH, SH::DynMultiplierSH, SH::GstMpegDemuxSinkSH, SH::ConcatinizerSH, SH::FileSinkSH, SH::FileSourceSH, SH::PacketMultiplierSH, SH::RTPDecoderSH, SH::RTPEncoderSH, SH::RTPSinkSH, SH::RTPSourceSH, SH::NopIntegratedSH, SH::NopSinkSH, SH::NopSourceSH, SH::SendBlockSH, SH::ActiveSH, SH::PushPullSH, SH::PullResizeSH, and SH::SubGraphSH.

virtual SourceEndpoint** SH::Status::getSourceSpecs  )  [pure virtual]
 

Provide a list of valid source endpoint specifications to the graph manager.
getSourceSpecs() works like getSinkSpecs() but on the source endpoint specifications.

Returns:
An array of endpoint specification.

Implemented in SH::DataPopSinkSH, SH::DevNullSH, SH::DummyLayerSinkSH, SH::DummyLayerSourceSH, SH::DynMultiplierSH, SH::GstMpegDemuxSinkSH, SH::ConcatinizerSH, SH::FileSinkSH, SH::FileSourceSH, SH::PacketMultiplierSH, SH::RTPDecoderSH, SH::RTPEncoderSH, SH::RTPSinkSH, SH::RTPSourceSH, SH::NopIntegratedSH, SH::NopSinkSH, SH::NopSourceSH, SH::SendBlockSH, SH::ActiveSH, SH::PushPullSH, SH::PullResizeSH, and SH::SubGraphSH.

void SH::Status::initSettings const Status::Settings orig  )  [protected]
 

Initialize the _settings member to save the subclass implementors some effort if they care. The settings field allows the definition of some return values below without overloading the functions.

virtual bool SH::Status::isActiveCapable  )  const [protected, virtual]
 

Indicate whether the stream handler is capable of pull and push activity (do the pumping).
An active stream handler will call pull operations on the stream handlers connected to its source endpoints, and it will call push operations on the stream handlers connected to its sink endpoints.

Returns:
True if this stream handler can become active (typically by starting a thread). False otherwise.

virtual bool SH::Status::isConnected  )  const [protected, pure virtual]
 

Indicate whether a sufficient number of endpoints are connected for the stream handler to be active.
True if a sufficient number of endpoints is connected for the stream handler to operate in a graph. This should always be true when the stream handler is part of an active graph. This can be called on all stream handlers of a graph to determine whether it will activate successfully.

Implemented in SH::DataPopSinkSH, SH::DevNullSH, SH::DummyLayerSinkSH, SH::DummyLayerSourceSH, SH::DynMultiplierSH, SH::GstMpegDemuxSinkSH, SH::ConcatinizerSH, SH::FileSinkSH, SH::FileSourceSH, SH::PacketMultiplierSH, SH::RTPDecoderSH, SH::RTPEncoderSH, SH::RTPSinkSH, SH::RTPSourceSH, SH::NopIntegratedSH, SH::NopSinkSH, SH::NopSourceSH, SH::SendBlockSH, SH::ActiveSH, SH::PushPullSH, SH::PullResizeSH, and SH::SubGraphSH.

virtual bool SH::Status::isInActiveMode  )  const [protected, virtual]
 

Returns true if the stream handler is in active mode. The stream handler is not necessarily streaming (yet/ any more).

virtual bool SH::Status::isInPassiveMode  )  const [protected, virtual]
 

Returns true if the stream handler in passive mode. The stream handler is not necessarily streaming (yet/ any more).

virtual bool SH::Status::isInThroughMode  )  const [protected, virtual]
 

Returns true if the stream handler in through mode. The stream handler is not necessarily streaming (yet/ any more).

virtual bool SH::Status::isPassiveCapable  )  const [protected, virtual]
 

Indicate whether the stream handler can operate in passive mode (ie queue data).
True if this stream handler can remain passive. A passive stream handler will sit idle until an upstream stream handler calls push operations on it, and until a downstream stream handler calls pull operations on it. For a stream handler with both sink and source endpoints to be passive capable, it needs an internal queue. Of course, a single sided stream handler such as a file system sink or source stream handler, passive capability is appropriate.

virtual bool SH::Status::isStreaming  )  const [protected, virtual]
 

Indicate whether the stream handler is currently part of an active graph.
True if:

  • the stream handler is active
  • the stream handler is connected and in passive mode
  • the stream handler is connected and in through mode
False otherwise.

virtual bool SH::Status::isThroughCapable  )  const [protected, virtual]
 

Indicate whether the stream handler can forward its neighbours activity immediately if called.
True if the stream handler remains passive on one side of the connection, ie. if a downstream stream handler calls a push function, this results in an immediate pull operation on an upstream stream handler, and vice versa.

virtual size_t SH::Status::numSinkSpecs  )  const [virtual]
 

Indicate the number of available sink endpoint specifications.
Returns the number of separate sink endpoint specs that this stream handler can offer to a calling graph manager. It is expected that the typical response will be 0 or 1, since most endpoints provide a set of operations that can be described by a single endpoint spec. However, a sink endpoint that hides a generic MPEG player that accepts either MP3 audio or MPEG system video with vastly differing endpoint specs is conceivable.

virtual size_t SH::Status::numSourceSpecs  )  const [virtual]
 

Indicate the number of available source endpoint specifications.
Returns the number of separate source endpoint specs that this stream handler can offer to a calling graph manager.

virtual void SH::Status::setStreaming bool  yes  )  [protected, virtual]
 

Change the settings of the _is_streaming flag.


The documentation for this class was generated from the following file:
Generated on Sun Mar 6 13:36:36 2005 for Komssys by doxygen 1.3.8