CDataSource

Name

CDataSource -- Abstract base class of data source for ring items.

Synopsis


            CDataSource
           
  CDataSource();
           
  CRingItem* getItem();
        

DESCRIPTION

Abstract base class for a data source that returns ring items. This class cannot be instantiated because the public method getItem is pure virtual. Normally one gets a pointer to a CDataSource object when creating a data source via CDataSourceFactory"3daqCDataSourceFactoryCreate data sources given a URICDataSourceFactory staticCDataSource*makeSourcestd::stringuristd::vector<uint16_t>samplestd::vector<uint16_t>excludeDESCRIPTIONThis factory class contains a static method to create a ring item data source given a URI.METHODSstaticCDataSource*makeSourcestd::stringuristd::vector<uint16_t>samplestd::vector<uint16_t>excludeCreates a new data source object and returns a pointer to it. The CDataSource object created is dynamically allocated and needs to be deleted by the caller.uri describes the data source. For a live ring this should be of the form tcp://hostname/ringname For a file ring this shouild be of the form file:///path/to/the/file.sample is a vector of ring item types. Ring data sources are free to skip items of this type depending on circumstances.exclde is a vector of ring item types the caller does not want to get from the data source..

METHODS

CRingItem* getItem();

This interface method will, for a concrete class, return a pointer to an item received from the data source. In the event of an error, a NULL pointer will be returned or alternatively an integer exception will be thrown. If an integer exception is thrown its value will be a legitimate error number from <errno.h>. If a NULL is returned, the errno variable should be checked to determine if an end of data source condition or some other error occured. For an end of source condition, the errno value will be ESUCCESS