00001 #ifndef OMG_TDDS_CORE_POLICY_CORE_POLICY_HPP_
00002 #define OMG_TDDS_CORE_POLICY_CORE_POLICY_HPP_
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
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
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
00914