ReceivedDataStrategy.h

Go to the documentation of this file.
00001 /*
00002  *
00003  *
00004  * Distributed under the OpenDDS License.
00005  * See: http://www.opendds.org/license.html
00006  */
00007 
00008 #ifndef DCPS_RECEIVEDDATASTRATEGY_H
00009 #define DCPS_RECEIVEDDATASTRATEGY_H
00010 
00011 #include "CoherentChangeControl.h"
00012 #include "PoolAllocationBase.h"
00013 
00014 OPENDDS_BEGIN_VERSIONED_NAMESPACE_DECL
00015 
00016 namespace OpenDDS {
00017 namespace DCPS {
00018 
00019 class ReceivedDataElementList;
00020 class ReceivedDataElement;
00021 
00022 class OpenDDS_Dcps_Export ReceivedDataStrategy : public PoolAllocationBase {
00023 public:
00024   explicit ReceivedDataStrategy(ReceivedDataElementList& rcvd_samples);
00025   virtual ~ReceivedDataStrategy();
00026 
00027   virtual void add(ReceivedDataElement* data_sample);
00028 
00029 #ifndef OPENDDS_NO_OBJECT_MODEL_PROFILE
00030   virtual void accept_coherent(PublicationId& writer,
00031                                RepoId& publisher);
00032 
00033   virtual void reject_coherent(PublicationId& writer,
00034                                RepoId& publisher);
00035 #endif
00036 
00037 protected:
00038   ReceivedDataElementList& rcvd_samples_;
00039 };
00040 
00041 class OpenDDS_Dcps_Export ReceptionDataStrategy
00042   : public ReceivedDataStrategy {
00043 public:
00044   explicit ReceptionDataStrategy(ReceivedDataElementList& rcvd_samples);
00045 
00046   ~ReceptionDataStrategy();
00047 };
00048 
00049 class OpenDDS_Dcps_Export SourceDataStrategy
00050   : public ReceivedDataStrategy {
00051 public:
00052   explicit SourceDataStrategy(ReceivedDataElementList& rcvd_samples);
00053 
00054   ~SourceDataStrategy();
00055 
00056   virtual void add(ReceivedDataElement* data_sample);
00057 };
00058 
00059 } // namespace DCPS
00060 } // namespace OpenDDS
00061 
00062 OPENDDS_END_VERSIONED_NAMESPACE_DECL
00063 
00064 #endif /* DCPS_RECEIVEDDATASTRATEGY_H */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 10 Aug 2018 for OpenDDS by  doxygen 1.6.1