OpenDDS
Snapshot(2023/04/28-20:55)
dds
DCPS
FeatureDisabledQosCheck.h
Go to the documentation of this file.
1
/*
2
*
3
*
4
* Distributed under the OpenDDS License.
5
* See: http://www.opendds.org/license.html
6
*/
7
8
#ifndef OPENDDS_DCPS_FEATURE_DISABLED_QOS_CHECK_H
9
#define OPENDDS_DCPS_FEATURE_DISABLED_QOS_CHECK_H
10
11
#include "
Qos_Helper.h
"
12
13
#ifdef OPENDDS_NO_OWNERSHIP_PROFILE
14
#define OPENDDS_NO_OWNERSHIP_PROFILE_COMPATIBILITY_CHECK(qos, error_rtn_value) \
15
if (qos.history.kind == ::DDS::KEEP_ALL_HISTORY_QOS || qos.history.depth > 1) { \
16
ACE_ERROR((LM_ERROR, \
17
ACE_TEXT("(%P|%t) ERROR: ") \
18
ACE_TEXT("Feature ownership_profile disabled, ") \
19
ACE_TEXT("therefore history must be KEEP_LAST, depth 1.\n"))); \
20
return error_rtn_value; \
21
}
22
#else
23
#define OPENDDS_NO_OWNERSHIP_PROFILE_COMPATIBILITY_CHECK(qos, error_rtn_value)
24
#endif
25
26
#ifdef OPENDDS_NO_OWNERSHIP_KIND_EXCLUSIVE
27
#define OPENDDS_NO_OWNERSHIP_KIND_EXCLUSIVE_COMPATIBILITY_CHECK(qos, error_rtn_value) \
28
if (qos.ownership.kind == ::DDS::EXCLUSIVE_OWNERSHIP_QOS) { \
29
ACE_ERROR((LM_ERROR, \
30
ACE_TEXT("(%P|%t) ERROR: ") \
31
ACE_TEXT("Feature ownership_kind_exclusive disabled, ") \
32
ACE_TEXT("therefore ownership kind must be SHARED.\n"))); \
33
return error_rtn_value; \
34
}
35
#define OPENDDS_NO_OWNERSHIP_STRENGTH_COMPATIBILITY_CHECK(qos, error_rtn_value) \
36
if (qos.ownership_strength.value != 0) { \
37
ACE_ERROR((LM_ERROR, \
38
ACE_TEXT("(%P|%t) ERROR: ") \
39
ACE_TEXT("Feature ownership_kind_exclusive disabled, ") \
40
ACE_TEXT("therefore ownership strength must be the default.\n"))); \
41
return error_rtn_value; \
42
}
43
#else
44
#define OPENDDS_NO_OWNERSHIP_KIND_EXCLUSIVE_COMPATIBILITY_CHECK(qos, error_rtn_value)
45
#define OPENDDS_NO_OWNERSHIP_STRENGTH_COMPATIBILITY_CHECK(qos, error_rtn_value)
46
#endif
47
48
#ifdef OPENDDS_NO_OBJECT_MODEL_PROFILE
49
#define OPENDDS_NO_OBJECT_MODEL_PROFILE_COMPATIBILITY_CHECK(qos, error_rtn_value) \
50
if (qos.presentation.access_scope == ::DDS::GROUP_PRESENTATION_QOS) { \
51
ACE_ERROR((LM_ERROR, \
52
ACE_TEXT("(%P|%t) ERROR: ") \
53
ACE_TEXT("Feature object_model_profile disabled, ") \
54
ACE_TEXT("therefore presentation access scope cannot be GROUP.\n"))); \
55
return error_rtn_value; \
56
} \
57
if (qos.presentation.access_scope == ::DDS::TOPIC_PRESENTATION_QOS) { \
58
ACE_ERROR((LM_ERROR, \
59
ACE_TEXT("(%P|%t) ERROR: ") \
60
ACE_TEXT("Feature object_model_profile disabled. ") \
61
ACE_TEXT("Although not part of the profile, currently ") \
62
ACE_TEXT("this means presentation access scope cannot be TOPIC.\n"))); \
63
return error_rtn_value; \
64
}
65
#else
66
#define OPENDDS_NO_OBJECT_MODEL_PROFILE_COMPATIBILITY_CHECK(qos, error_rtn_value)
67
#endif
68
69
#ifdef OPENDDS_NO_PERSISTENCE_PROFILE
70
71
#define OPENDDS_NO_DURABILITY_SERVICE_COMPATIBILITY_CHECK(qos, error_rtn_value) \
72
if (qos.durability_service != TheServiceParticipant->initial_DurabilityServiceQosPolicy()) { \
73
ACE_ERROR((LM_ERROR, \
74
ACE_TEXT("(%P|%t) ERROR: ") \
75
ACE_TEXT("Feature persistence_profile disabled, ") \
76
ACE_TEXT("therefore durability service must be the default.\n"))); \
77
return error_rtn_value; \
78
}
79
80
#define OPENDDS_NO_DURABILITY_KIND_TRANSIENT_PERSISTENT_COMPATIBILITY_CHECK(qos, error_rtn_value) \
81
if (qos.durability.kind == ::DDS::TRANSIENT_DURABILITY_QOS || \
82
qos.durability.kind == ::DDS::PERSISTENT_DURABILITY_QOS) { \
83
ACE_ERROR((LM_ERROR, \
84
ACE_TEXT("(%P|%t) ERROR: ") \
85
ACE_TEXT("Feature persistence_profile disabled, ") \
86
ACE_TEXT("therefore durability kind must not ") \
87
ACE_TEXT("be TRANSIENT_DURABILITY_QOS or PERSISTENT_DURABILITY_QOS.\n"))); \
88
return error_rtn_value; \
89
}
90
91
#else
92
93
#define OPENDDS_NO_DURABILITY_SERVICE_COMPATIBILITY_CHECK(qos, error_rtn_value)
94
#define OPENDDS_NO_DURABILITY_KIND_TRANSIENT_PERSISTENT_COMPATIBILITY_CHECK(qos, error_rtn_value)
95
96
#endif
97
98
#endif
Qos_Helper.h
Generated by
1.8.13