• Main Page
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

src/hpp/tdds/core/policy/CorePolicy.hpp

Go to the documentation of this file.
00001 #ifndef OMG_TDDS_CORE_POLICY_CORE_POLICY_HPP_
00002 #define OMG_TDDS_CORE_POLICY_CORE_POLICY_HPP_
00003 
00004 /* Copyright 2010, Object Management Group, Inc.
00005  * Copyright 2010, PrismTech, Corp.
00006  * Copyright 2010, Real-Time Innovations, Inc.
00007  * All rights reserved.
00008  *
00009  * Licensed under the Apache License, Version 2.0 (the "License");
00010  * you may not use this file except in compliance with the License.
00011  * You may obtain a copy of the License at
00012  *
00013  *     http://www.apache.org/licenses/LICENSE-2.0
00014  *
00015  * Unless required by applicable law or agreed to in writing, software
00016  * distributed under the License is distributed on an "AS IS" BASIS,
00017  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00018  * See the License for the specific language governing permissions and
00019  * limitations under the License.
00020  */
00021 
00022 #include <dds/core/detail/conformance.hpp>
00023 #include <tdds/core/corefwd.hpp>
00024 #include <dds/core/LengthUnlimited.hpp>
00025 #include <dds/core/Value.hpp>
00026 #include <dds/core/policy/PolicyKind.hpp>
00027 
00028 //==============================================================================
00029 // DDS Policy Classes
00030 namespace tdds { namespace core { namespace policy {
00031 
00032 //==============================================================================
00045 template <typename D>
00046 class UserData : public dds::core::Value<D> {
00047 public:
00051         UserData() : dds::core::Value<D>() { }
00052 
00058         explicit UserData(const dds::core::ByteSeq& seq) : dds::core::Value<D>(seq) { }
00059 
00060         UserData(const uint8_t* value_begin, const uint8_t* value_end);
00061 
00062 public:
00068         void value(const dds::core::ByteSeq& seq) {
00069                 this->delegate().value(seq);
00070         }
00071 
00075         template <typename OCTET_ITER>
00076         void value(OCTET_ITER begin, OCTET_ITER end);
00077 
00083         const dds::core::ByteSeq value() const {
00084                 return this->delegate().value();
00085         }
00086 
00090         dds::core::ByteSeq& value(dds::core::ByteSeq& dst) const;
00091 
00092         const uint8_t* begin() const;
00093         const uint8_t* end() const;
00094 };
00095 
00096 //==============================================================================
00097 
00108 template <typename D>
00109 class GroupData : public dds::core::Value<D> {
00110 public:
00114         GroupData() : dds::core::Value<D>() { }
00115 
00121         explicit GroupData(const dds::core::ByteSeq& seq) : dds::core::Value<D>(seq) { }
00122 
00123         GroupData(const uint8_t* value_begin, const uint8_t* value_end);
00124 
00125 public:
00131         void value(const dds::core::ByteSeq& seq) {
00132                 this->delegate().value(seq);
00133         }
00134 
00138         template <typename OCTET_ITER>
00139         void value(OCTET_ITER begin, OCTET_ITER end);
00140 
00146         const dds::core::ByteSeq value() const {
00147                 return this->delegate().value();
00148         }
00149 
00153         dds::core::ByteSeq& value(dds::core::ByteSeq& dst) const;
00154 
00155         const uint8_t* begin() const;
00156         const uint8_t* end() const;
00157 };
00158 
00159 //==============================================================================
00160 
00169 template <typename D>
00170 class TopicData : public dds::core::Value<D> {
00171 public:
00172         TopicData() : dds::core::Value<D>() { }
00173 
00174         explicit TopicData(const dds::core::ByteSeq& seq) : dds::core::Value<D>(seq) { }
00175 
00176         TopicData(const uint8_t* value_begin, const uint8_t* value_end);
00177 
00178 public:
00184         void value(const dds::core::ByteSeq& seq) {
00185                 this->delegate().value(seq);
00186         }
00187 
00191         template <typename OCTET_ITER>
00192         void value(OCTET_ITER begin, OCTET_ITER end);
00193 
00199         const dds::core::ByteSeq value() const {
00200                 return this->delegate().value();
00201         }
00202 
00206         dds::core::ByteSeq& value(dds::core::ByteSeq& dst) const;
00207 
00208         const uint8_t* begin() const;
00209         const uint8_t* end() const;
00210 };
00211 
00212 //==============================================================================
00213 
00229 template <typename D>
00230 class EntityFactory : public dds::core::Value<D> {
00231 public:
00232         EntityFactory() :dds::core::Value<D>(true) { }
00233 
00234         explicit EntityFactory(bool the_auto_enable)
00235         : dds::core::Value<D>(the_auto_enable) { }
00236 
00237 public:
00238         void autoenable_created_entities(bool on) {
00239                 this->delegate().auto_enable(on);
00240         }
00241         bool autoenable_created_entities() const {
00242                 return this->delegate().auto_enable();
00243         }
00244 
00245 public:
00246         static EntityFactory AutoEnable() {
00247                 return EntityFactory(true);
00248         }
00249         static EntityFactory ManuallyEnable() {
00250                 return EntityFactory(false);
00251         }
00252 };
00253 
00254 //==============================================================================
00255 
00272 template <typename D>
00273 class TransportPriority : public dds::core::Value<D> {
00274 public:
00275         explicit TransportPriority(int32_t prio) : dds::core::Value<D>(prio) { }
00276         TransportPriority() : dds::core::Value<D>(0) { }
00277 public:
00278         void value(int32_t prio) {
00279                 this->delegate().value(prio);
00280         }
00281         int32_t value() const {
00282                 return this->delegate().value();
00283         }
00284 };
00285 
00286 //==============================================================================
00287 
00306 template <typename D>
00307 class Lifespan : public dds::core::Value<D> {
00308 public:
00309         explicit Lifespan(const dds::core::Duration& d) : dds::core::Value<D>(d) { }
00310         Lifespan() : dds::core::Value<D>(dds::core::Duration::infinite()) { }
00311 
00312 public:
00313         void duration(const dds::core::Duration& d) {
00314                 this->delegate().duration(d);
00315         }
00316         const dds::core::Duration duration() const {
00317                 return this->delegate().duration();
00318         }
00319 };
00320 
00321 //==============================================================================
00322 
00343 template <typename D>
00344 class Deadline : public dds::core::Value<D> {
00345 public:
00346         explicit Deadline(const dds::core::Duration& d) : dds::core::Value<D>(d) { }
00347 
00348         Deadline() : dds::core::Value<D>(dds::core::Duration::infinite()) { }
00349 
00350 public:
00351         void period(const dds::core::Duration& d) {
00352                 this->delegate().period(d);
00353         }
00354         const dds::core::Duration period() const {
00355                 return this->delegate().period();
00356         }
00357 };
00358 
00359 //==============================================================================
00360 
00361 template <typename D>
00362 class LatencyBudget : public dds::core::Value<D>{
00363 public:
00364         explicit LatencyBudget(const dds::core::Duration& d) : dds::core::Value<D>(d) { }
00365         LatencyBudget() : dds::core::Value<D>(dds::core::Duration::zero()) { }
00366 
00367 public:
00368         void duration(const dds::core::Duration& d) {
00369                 this->delegate().duration(d);
00370         }
00371         const dds::core::Duration duration() const {
00372                 return this->delegate().duration();
00373         }
00374 };
00375 
00376 //==============================================================================
00377 template <typename D>
00378 class TimeBasedFilter : public dds::core::Value<D> {
00379 public:
00380         TimeBasedFilter() : dds::core::Value<D>(dds::core::Duration::zero()) { }
00381         explicit TimeBasedFilter(const dds::core::Duration& the_min_separation)
00382         : dds::core::Value<D>(the_min_separation) { }
00383 
00384 public:
00385         void minimum_separation(const dds::core::Duration& ms) {
00386                 this->delegate().min_separation(ms);
00387         }
00388         const dds::core::Duration minimum_separation() const {
00389                 return this->delegate().min_separation();
00390         }
00391 };
00392 
00393 //==============================================================================
00394 template <typename D>
00395 class Partition : public dds::core::Value<D> {
00396 public:
00397         explicit Partition(const std::string& partition) : dds::core::Value<D>() {
00398                 this->delegate().name().push_back(partition);
00399         }
00400         explicit Partition(const dds::core::StringSeq& partitions)
00401         : dds::core::Value<D>(partitions) { }
00402 
00403         Partition() : dds::core::Value<D>() {
00404                 this->delegate().name().push_back("");
00405         }
00406 
00407 public:
00408         void name(const dds::core::StringSeq& partitions) {
00409                 this->delegate().name() = partitions;
00410         }
00411 
00412         const dds::core::StringSeq name() const {
00413                 return this->delegate().name();
00414         }
00415 
00416         dds::core::StringSeq& name(dds::core::StringSeq& dst) const;
00417 };
00418 
00419 //==============================================================================
00420 
00421 template <typename D>
00422 class Ownership : public dds::core::Value<D> {
00423 public:
00424         explicit Ownership(dds::core::policy::OwnershipKind::Type the_kind)
00425         : dds::core::Value<D>(the_kind) { }
00426         Ownership() : dds::core::Value<D>(dds::core::policy::OwnershipKind::SHARED) { }
00427 
00428 public:
00429     void kind(dds::core::policy::OwnershipKind::Type the_kind) {
00430         this->delegate().kind(the_kind);
00431     }
00432     dds::core::policy::OwnershipKind::Type kind() const {
00433         return this->delegate().kind();
00434     }
00435 
00436 public:
00437         static Ownership Exclusive() {
00438                 return Ownership(dds::core::policy::OwnershipKind::EXCLUSIVE);
00439         }
00440         static Ownership Shared() {
00441                 return Ownership(dds::core::policy::OwnershipKind::SHARED);
00442         }
00443 };
00444 //==============================================================================
00445 
00446 #ifdef OMG_DDS_OWNERSHIP_SUPPORT
00447 
00448 template <typename D>
00449 class OwnershipStrength : public dds::core::Value<D> {
00450 public:
00451         explicit OwnershipStrength(int32_t s) : dds::core::Value<D>(s) { }
00452 
00453 public:
00454         int32_t value() const { return this->delegate().strength(); }
00455         void value(int32_t s) { this->delegate().strength(s); }
00456 };
00457 
00458 #endif  // OMG_DDS_OWNERSHIP_SUPPORT
00459 
00460 
00461 //==============================================================================
00462 
00463 template <typename D>
00464 class WriterDataLifecycle : public dds::core::Value<D> {
00465 public:
00466         WriterDataLifecycle() :
00467                 dds::core::Value<D>(true) { }
00468 
00469         explicit WriterDataLifecycle(bool the_autodispose)
00470         : dds::core::Value<D>(the_autodispose) { }
00471 
00472 public:
00473     bool autodispose_unregistered_instances() const {
00474         return this->delegate().autodispose();
00475     }
00476     void autodispose_unregistered_instances(bool b) {
00477         this->delegate().autodispose(b);
00478     }
00479 
00480 public:
00481         static WriterDataLifecycle AutoDisposeUnregisteredInstances() {
00482                 return WriterDataLifecycle(true);
00483         }
00484         static WriterDataLifecycle ManuallyDisposeUnregisteredInstances() {
00485                 return WriterDataLifecycle(false);
00486         }
00487 };
00488 
00489 template <typename D>
00490 class ReaderDataLifecycle : public dds::core::Value<D> {
00491 public:
00492         ReaderDataLifecycle() :
00493                 dds::core::Value<D>(dds::core::Duration::infinite(),
00494                                 dds::core::Duration::infinite())  { }
00495 
00496         ReaderDataLifecycle(const dds::core::Duration& the_nowriter_delay,
00497                         const dds::core::Duration& the_disposed_samples_delay)
00498         : dds::core::Value<D>(the_nowriter_delay, the_disposed_samples_delay) { }
00499 
00500 public:
00501         const dds::core::Duration autopurge_nowriter_samples_delay() const {
00502                 return this->delegate().nowriter_delay();
00503         }
00504 
00505         void autopurge_nowriter_samples_delay(const dds::core::Duration& d) {
00506                 this->delegate().nowriter_delay(d);
00507         }
00508 
00509         const dds::core::Duration autopurge_disposed_samples_delay() const {
00510                 return this->delegate().disposed_samples_delay();
00511         }
00512 
00513         void autopurge_disposed_samples_delay(const dds::core::Duration& d) {
00514                 this->delegate().disposed_samples_delay(d);
00515         }
00516 public:
00517         static ReaderDataLifecycle NoAutoPurgeDisposedSamples() {
00518                 return ReaderDataLifecycle();
00519         }
00520         static ReaderDataLifecycle AutoPurgeDisposedSamples(const dds::core::Duration& d) {
00521                 return ReaderDataLifecycle(d);
00522         }
00523 };
00524 
00525 //==============================================================================
00526 template <typename D>
00527 class Durability : public dds::core::Value<D> {
00528 public:
00529         Durability(dds::core::policy::DurabilityKind::Type the_kind)
00530         : dds::core::Value<D>(the_kind) { }
00531         Durability() : dds::core::Value<D>(dds::core::policy::DurabilityKind::VOLATILE) { }
00532 
00533 public:
00534         void kind(dds::core::policy::DurabilityKind::Type the_kind) {
00535                 this->delegate().kind(the_kind);
00536         }
00537 
00538         dds::core::policy::DurabilityKind::Type  kind() const {
00539                 return this->delegate().kind();
00540         }
00541 public:
00542         static Durability Volatile() {
00543                 return Durability(dds::core::policy::DurabilityKind::VOLATILE);
00544         }
00545         static Durability TransientLocal() {
00546                 return Durability(dds::core::policy::DurabilityKind::TRANSIENT_LOCAL);
00547         }
00548         static Durability Transient() {
00549                 return Durability(dds::core::policy::DurabilityKind::TRANSIENT);
00550         }
00551         static Durability Persistent() {
00552                 return Durability(dds::core::policy::DurabilityKind::PERSISTENT);
00553         }
00554 };
00555 //==============================================================================
00556 template <typename D>
00557 class Presentation : public dds::core::Value<D> {
00558 public:
00559         Presentation()
00560         :  dds::core::Value<D>(dds::core::policy::PresentationAccessScopeKind::INSTANCE,
00561                         false,
00562                         false) { }
00563 
00564         Presentation(dds::core::policy::PresentationAccessScopeKind::Type the_access_scope,
00565                         bool the_coherent_access,
00566                         bool the_ordered_access)
00567         :  dds::core::Value<D>(the_access_scope,
00568                         the_coherent_access,
00569                         the_ordered_access)
00570                         { }
00571 
00572 public:
00573         void access_scope(dds::core::policy::PresentationAccessScopeKind::Type  as) {
00574                 this->delegate().access_scope(as);
00575         }
00576         dds::core::policy::PresentationAccessScopeKind::Type  access_scope() const {
00577                 return this->delegate().access_scope();
00578         }
00579 
00580         void coherent_access(bool on) {
00581                 this->delegate().coherent_access(on);
00582         }
00583         bool coherent_access() const {
00584                 return this->delegate().coherent_access();
00585         }
00586 
00587         void ordered_access(bool on) {
00588                 this->delegate().ordered_access(on);
00589         }
00590         bool ordered_access() const {
00591                 return this->delegate().ordered_access();
00592         }
00593 public:
00594         static Presentation GroupAccessScope(bool coherent = false, bool ordered = false) {
00595                 return GroupAccessScope(dds::core::policy::PresentationAccessScopeKind::GROUP,
00596                                 coherent,
00597                                 ordered);
00598         }
00599         static Presentation InstanceAccessScope(bool coherent = false, bool ordered = false) {
00600                 return GroupAccessScope(dds::core::policy::PresentationAccessScopeKind::INSTANCE,
00601                                 coherent,
00602                                 ordered);
00603         }
00604         static Presentation TopicAccessScope(bool coherent = false, bool ordered = false) {
00605                 return GroupAccessScope(dds::core::policy::PresentationAccessScopeKind::TOPIC,
00606                                 coherent,
00607                                 ordered);
00608         }
00609 };
00610 
00611 //==============================================================================
00612 
00613 template <typename D>
00614 class Reliability : public dds::core::Value<D> {
00615 public:
00616         Reliability()
00617         :  dds::core::Value<D>(dds::core::policy::ReliabilityKind::BEST_EFFORT,
00618                         dds::core::Duration::zero()) { }
00619 
00620         Reliability(dds::core::policy::ReliabilityKind::Type the_kind,
00621                         const dds::core::Duration& the_max_blocking_time)
00622         :  dds::core::Value<D>(the_kind,
00623                         the_max_blocking_time)
00624                         { }
00625 
00626 public:
00627 
00628         void kind(dds::core::policy::ReliabilityKind::Type the_kind) {
00629                 this->delegate().kind(the_kind);
00630         }
00631         dds::core::policy::ReliabilityKind::Type  kind() const {
00632                 return this->delegate().kind();
00633         }
00634 
00635         void max_blocking_time(const dds::core::Duration& d) {
00636                 this->delegate().max_blocking_time(d);
00637         }
00638         const dds::core::Duration max_blocking_time() const {
00639                 return this->delegate().max_blocking_time();
00640         }
00641 public:
00642         static Reliability Reliable(const dds::core::Duration& d = dds::core::Duration::infinite()) {
00643                 return Reliability(dds::core::policy::ReliabilityKind::RELIABLE, d);
00644         }
00645         static Reliability BestEffort() {
00646                 return Reliability(dds::core::policy::ReliabilityKind::BEST_EFFORT);
00647         }
00648 };
00649 
00650 
00651 //==============================================================================
00652 
00653 template <typename D>
00654 class DestinationOrder : public dds::core::Value<D> {
00655 
00656 public:
00657         explicit DestinationOrder(dds::core::policy::DestinationOrderKind::Type the_kind)
00658         : dds::core::Value<D>(the_kind) { }
00659         DestinationOrder() :
00660                 dds::core::Value<D>(dds::core::policy::DestinationOrderKind::BY_SOURCE_TIMESTAMP) { }
00661 
00662 public:
00663         void kind(dds::core::policy::DestinationOrderKind::Type the_kind) {
00664                 this->delegate().kind(the_kind);
00665         }
00666         dds::core::policy::DestinationOrderKind::Type  kind() const {
00667                 return this->delegate().kind();
00668         }
00669 public:
00670         static DestinationOrder SourceTimestamp() {
00671                 return DestinationOrder(dds::core::policy::DestinationOrderKind::BY_SOURCE_TIMESTAMP);
00672         }
00673         static DestinationOrder ReceptionTimestamp() {
00674                 return DestinationOrder(dds::core::policy::DestinationOrderKind::BY_RECEPTION_TIMESTAMP);
00675         }
00676 };
00677 
00678 //==============================================================================
00679 template <typename D>
00680 class History : public dds::core::Value<D> {
00681 public:
00682         History()
00683         :  dds::core::Value<D>(dds::core::policy::HistoryKind::KEEP_LAST, 1) { }
00684 
00685 
00686         History(dds::core::policy::HistoryKind::Type the_kind, int32_t the_depth)
00687         : dds::core::Value<D>(the_kind, the_depth) { }
00688 
00689 public:
00690         dds::core::policy::HistoryKind::Type  kind() const {
00691                 return this->delegate().kind();
00692         }
00693         void kind(dds::core::policy::HistoryKind::Type the_kind) {
00694                 this->delegate().kind(the_kind);
00695         }
00696 
00697         int32_t depth() const {
00698                 return this->delegate().depth();
00699         }
00700         void depth(int32_t the_depth) {
00701                 this->delegate().depth(the_depth);
00702         }
00703 public:
00704         static History KeepAll() {
00705                 return History(dds::core::policy::HistoryKind::KEEP_ALL);
00706         }
00707         static History KeepLast(uint32_t depth) {
00708                 return History(dds::core::policy::HistoryKind::KEEP_LAST, depth);
00709         }
00710 };
00711 
00712 //==============================================================================
00713 
00714 template <typename D>
00715 class ResourceLimits : public dds::core::Value<D> {
00716 public:
00717         ResourceLimits()
00718         :  dds::core::Value<D>(dds::core::LENGTH_UNLIMITED,
00719                         dds::core::LENGTH_UNLIMITED,
00720                         dds::core::LENGTH_UNLIMITED) { }
00721 
00722         ResourceLimits(int32_t the_max_samples,
00723                         int32_t the_max_instances,
00724                         int32_t the_max_samples_per_instance)
00725         :  dds::core::Value<D>(the_max_samples,
00726                         the_max_instances,
00727                         the_max_samples_per_instance)
00728                         { }
00729 
00730 public:
00731         void max_samples(int32_t samples) {
00732                 this->delegate().max_samples(samples);
00733         }
00734         int32_t max_samples() const {
00735                 return this->delegate().max_samples();
00736         }
00737 
00738         void max_instances(int32_t the_max_instances) {
00739                 this->delegate().max_instances(the_max_instances);
00740         }
00741         int32_t max_instances() const {
00742                 return this->delegate().max_instances();
00743         }
00744 
00745         void max_samples_per_instance(int32_t the_max_samples_per_instance) {
00746                 this->delegate().max_samples_per_instance(the_max_samples_per_instance);
00747         }
00748         int32_t max_samples_per_instance() const {
00749                 return this->delegate().max_samples_per_instance();
00750         }
00751 };
00752 
00753 
00754 //==============================================================================
00755 
00756 template <typename D>
00757 class Liveliness : public dds::core::Value<D> {
00758 public:
00759         Liveliness()
00760         :  dds::core::Value<D>(dds::core::policy::LivelinessKind::AUTOMATIC,
00761                         dds::core::Duration::infinite()) { }
00762 
00763         Liveliness(dds::core::policy::LivelinessKind::Type the_kind,
00764                         const dds::core::Duration& the_lease_duration)
00765         :  dds::core::Value<D>(the_kind, the_lease_duration) { }
00766 
00767 public:
00768         void kind(dds::core::policy::LivelinessKind::Type the_kind) {
00769                 this->delegate().kind(kind);
00770         }
00771         dds::core::policy::LivelinessKind::Type kind() const {
00772                 return this->delegate().kind();
00773         }
00774 
00775         void lease_duration(const dds::core::Duration& the_lease_duration){
00776                 this->delegate().lease_duration(the_lease_duration);
00777         }
00778         const dds::core::Duration lease_duration() const {
00779                 return this->delegate().lease_duration();
00780         }
00781 public:
00782         static Liveliness Automatic() {
00783                 return Liveliness(dds::core::policy::LivelinessKind::AUTOMATIC, dds::core::Duration::infinite());
00784         }
00785         static Liveliness ManualByParticipant(const dds::core::Duration& lease = dds::core::Duration::infinite()) {
00786                 return Liveliness(dds::core::policy::LivelinessKind::MANUAL_BY_PARTICIPANT, lease);
00787         }
00788         static Liveliness ManualByTopic(const dds::core::Duration& lease = dds::core::Duration::infinite()) {
00789                 return Liveliness(dds::core::policy::LivelinessKind::MANUAL_BY_TOPIC, lease);
00790         }
00791 };
00792 
00793 
00794 //==============================================================================
00795 
00796 #ifdef OMG_DDS_PERSISTENCE_SUPPORT
00797 
00798 template <typename D>
00799 class DurabilityService : public dds::core::Value<D> {
00800 public:
00801         DurabilityService() :
00802                 dds::core::Value<D>() { }
00803 
00804         DurabilityService(
00805                         const dds::core::Duration& the_service_cleanup_delay,
00806                         dds::core::policy::HistoryKind::Type the_history_kind,
00807                         int32_t the_history_depth,
00808                         int32_t the_max_samples,
00809                         int32_t the_max_instances,
00810                         int32_t the_max_samples_per_instance)
00811         : dds::core::Value<D>(the_service_cleanup_delay,
00812                         the_history_kind,
00813                         the_history_depth,
00814                         the_max_samples,
00815                         the_max_instances,
00816                         the_max_samples_per_instance) { }
00817 
00818 public:
00819         void service_cleanup_delay(const dds::core::Duration& d)  {
00820                 this->delegate().service_cleanup_delay(d);
00821         }
00822         const dds::core::Duration service_cleanup_delay() const {
00823                 return this->delegate().service_cleanup_delay();
00824         }
00825 
00826         void history_kind(dds::core::policy::HistoryKind::Type the_kind) {
00827                 this->delegate().history_kind(the_kind);
00828         }
00829         dds::core::policy::HistoryKind::Type history_kind() const {
00830                 return this->delegate().history_kind();
00831         }
00832 
00833         void history_depth(int32_t the_depth) {
00834                 this->delegate().history_depth(the_depth);
00835         }
00836         int32_t history_depth() const {
00837                 return this->delegate().history_depth();
00838         }
00839 
00840         void max_samples(int32_t the_max_samples) {
00841                 this->delegate().max_samples(the_max_samples);
00842         }
00843         int32_t max_samples() const {
00844                 return this->delegate().max_samples();
00845         }
00846 
00847         void max_instances(int32_t the_max_instances) {
00848                 this->delegate().the_max_instances(the_max_instances);
00849         }
00850         int32_t max_instances() const {
00851                 return this->delegate().max_instances();
00852         }
00853 
00854         void max_samples_per_instance(int32_t the_max_samples_per_instance) {
00855                 this->delegate().the_max_instances(
00856                                 the_max_samples_per_instance);
00857         }
00858         int32_t max_samples_per_instance() const {
00859                 return this->delegate().max_samples_per_instance();
00860         }
00861 };
00862 
00863 #endif  // OMG_DDS_PERSISTENCE_SUPPORT
00864 
00865 
00866 //============================================================================
00867 
00868 //============================================================================
00869 
00870 #ifdef OMG_DDS_EXTENSIBLE_AND_DYNAMIC_TOPIC_TYPE_SUPPORT
00871 
00872 template <typename D>
00873 class DataRepresentation : public dds::core::Value<D> {
00874 
00875 public:
00876     explicit DataRepresentation(
00877         const dds::core::policy::DataRepresentationIdSeq& value);
00878 
00879 public:
00880     void value(const dds::core::policy::DataRepresentationIdSeq& value);
00881 
00882     const dds::core::policy::DataRepresentationIdSeq value() const;
00883 
00884     dds::core::policy::DataRepresentationIdSeq&
00885     value(dds::core::policy::DataRepresentationIdSeq& dst) const;
00886 };
00887 
00888 #endif  // defined(OMG_DDS_EXTENSIBLE_AND_DYNAMIC_TOPIC_TYPE_SUPPORT)
00889 
00890 
00891 //============================================================================
00892 
00893 #ifdef OMG_DDS_EXTENSIBLE_AND_DYNAMIC_TOPIC_TYPE_SUPPORT
00894 
00895 template <typename D>
00896 class TypeConsistencyEnforcement : public dds::core::Value<D> {
00897 public:
00898     explicit TypeConsistencyEnforcement(dds::core::policy::TypeConsistencyEnforcementKind::Type kind);
00899 
00900 public:
00901     void kind(dds::core::policy::TypeConsistencyEnforcementKind::Type  value);
00902     dds::core::policy::TypeConsistencyEnforcementKind::Type  kind() const;
00903 };
00904 
00905 #endif  // defined(OMG_DDS_EXTENSIBLE_AND_DYNAMIC_TOPIC_TYPE_SUPPORT)
00906 
00907 
00908 //==============================================================================
00909 
00910 
00911 } } }
00912 
00913 #endif /* OMG_TDDS_CORE_POLICY_CORE_POLICY_HPP_ */
00914 

Generated on Tue Nov 9 2010 02:16:21 for dds-psm-cxx-doc by  doxygen 1.7.1