00001 #ifndef OMG_TDDS_CORE_STATUS_STATUS_HPP_ 00002 #define OMG_TDDS_CORE_STATUS_STATUS_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 <tdds/core/corefwd.hpp> 00023 #include <dds/core/Value.hpp> 00024 #include <dds/core/InstanceHandle.hpp> 00025 #include <dds/core/policy/CorePolicy.hpp> 00026 #include <dds/core/policy/QosPolicyCount.hpp> 00027 #include <dds/core/status/State.hpp> 00028 00029 namespace tdds { namespace core { namespace status { 00030 00031 template <typename D> 00032 class InconsistentTopicStatus : public dds::core::Value<D> { 00033 public: 00034 InconsistentTopicStatus() : dds::core::Value<D>() { } 00035 00036 public: 00037 int32_t total_count() const { 00038 return this->delegate().total_count(); 00039 } 00040 00041 int32_t total_count_change() const { 00042 return this->delegate().total_count_change(); 00043 } 00044 }; 00045 00046 template <typename D> 00047 class SampleLostStatus : public dds::core::Value<D> { 00048 public: 00049 SampleLostStatus() : dds::core::Value<D>() {} 00050 00051 public: 00052 int32_t total_count() const { 00053 return this->delegate().total_count(); 00054 } 00055 00056 int32_t total_count_change() const { 00057 return this->delegate().total_count_change(); 00058 } 00059 }; 00060 00061 00062 template <typename D> 00063 class SampleRejectedStatus : public dds::core::Value<D> { 00064 public: 00065 SampleRejectedStatus() : dds::core::Value<D>() { } 00066 00067 public: 00068 int32_t total_count() const { 00069 return this->delegate().total_count(); 00070 } 00071 00072 int32_t total_count_change() const { 00073 return this->delegate().total_count_change(); 00074 } 00075 00076 const dds::core::status::SampleRejectedState last_reason() const { 00077 return this->delegate().last_reason(); 00078 } 00079 00080 const dds::core::InstanceHandle last_instance_handle() const { 00081 return this->delegate().last_instance_handle(); 00082 } 00083 }; 00084 00085 template <typename D> 00086 class LivelinessLostStatus : public dds::core::Value<D> { 00087 public: 00088 LivelinessLostStatus() : dds::core::Value<D>() { } 00089 00090 public: 00091 int32_t total_count() const { 00092 return this->delegate().total_count(); 00093 } 00094 00095 int32_t total_count_change() const { 00096 return this->delegate().total_count_change(); 00097 } 00098 }; 00099 00100 template <typename D> 00101 class LivelinessChangedStatus : public dds::core::Value<D> { 00102 public: 00103 LivelinessChangedStatus() : dds::core::Value<D>() { } 00104 00105 public: 00106 int32_t alive_count() const { 00107 return this->delegate().alive_count(); 00108 } 00109 00110 int32_t not_alive_count() const { 00111 return this->delegate().not_alive_count(); 00112 } 00113 00114 int32_t alive_count_change() const { 00115 return this->delegate().alive_count(); 00116 } 00117 00118 int32_t not_alive_count_change() const { 00119 return this->delegate().not_alive_count(); 00120 } 00121 00122 const dds::core::InstanceHandle last_publication_handle() const { 00123 return this->delegate().last_instance_handle(); 00124 } 00125 }; 00126 00127 template <typename D> 00128 class OfferedDeadlineMissedStatus : public dds::core::Value<D> { 00129 public: 00130 OfferedDeadlineMissedStatus() : dds::core::Value<D>() { } 00131 00132 public: 00133 int32_t total_count() const { 00134 return this->delegate().total_count(); 00135 } 00136 00137 int32_t total_count_change() const { 00138 return this->delegate().total_count_change(); 00139 } 00140 00141 const dds::core::InstanceHandle last_instance_handle() const { 00142 return this->delegate().last_instance_handle(); 00143 } 00144 }; 00145 00146 template <typename D> 00147 class RequestedDeadlineMissedStatus : public dds::core::Value<D> { 00148 public: 00149 RequestedDeadlineMissedStatus() : dds::core::Value<D>() { } 00150 00151 public: 00152 int32_t total_count() const { 00153 return this->delegate().total_count(); 00154 } 00155 00156 int32_t total_count_change() const { 00157 return this->delegate().total_count_change(); 00158 } 00159 00160 const dds::core::InstanceHandle last_instance_handle() const { 00161 return this->delegate().last_instance_handle(); 00162 } 00163 }; 00164 00165 00166 00167 template <typename D> 00168 class OfferedIncompatibleQosStatus : public dds::core::Value<D>{ 00169 public: 00170 OfferedIncompatibleQosStatus() 00171 : dds::core::Value<D>() { } 00172 00173 public: 00174 int32_t total_count() const { 00175 return this->delegate().total_count(); 00176 } 00177 00178 int32_t total_count_change() const { 00179 return this->delegate().total_count_change(); 00180 } 00181 00182 dds::core::policy::QosPolicyId last_policy_id() const { 00183 return this->delegate().last_policy_id(); 00184 } 00185 00186 const dds::core::policy::QosPolicyCountSeq policies() const; 00187 00188 dds::core::policy::QosPolicyCountSeq& 00189 policies(dds::core::policy::QosPolicyCountSeq& dst) const; 00190 }; 00191 00192 template <typename D> 00193 class RequestedIncompatibleQosStatus : public dds::core::Value<D> { 00194 public: 00195 RequestedIncompatibleQosStatus() 00196 : dds::core::Value<D>() { } 00197 00198 public: 00199 int32_t total_count() const { 00200 return this->delegate().total_count(); 00201 } 00202 00203 int32_t total_count_change() const { 00204 return this->delegate().total_count_change(); 00205 } 00206 00207 dds::core::policy::QosPolicyId last_policy_id() const { 00208 return this->delegate().last_policy_id(); 00209 } 00210 00211 const dds::core::policy::QosPolicyCountSeq policies() const { 00212 return this->delegate().policies(); 00213 } 00214 00215 dds::core::policy::QosPolicyCountSeq& 00216 policies(dds::core::policy::QosPolicyCountSeq& dst) const; 00217 }; 00218 00219 template <typename D> 00220 class PublicationMatchedStatus : public dds::core::Value<D> { 00221 public: 00222 PublicationMatchedStatus() : dds::core::Value<D>() { } 00223 00224 public: 00225 int32_t total_count() const { 00226 return this->delegate().total_count(); 00227 } 00228 00229 int32_t total_count_change() const { 00230 return this->delegate().total_count_change(); 00231 } 00232 00233 int32_t current_count() const { 00234 return this->delegate().current_count(); 00235 } 00236 00237 int32_t current_count_change() const { 00238 return this->delegate().current_count_change(); 00239 } 00240 00241 const dds::core::InstanceHandle last_subscription_handle() const { 00242 return this->delegate().last_subscription_handle(); 00243 } 00244 }; 00245 00246 template <typename D> 00247 class SubscriptionMatchedStatus : public dds::core::Value<D> { 00248 public: 00249 SubscriptionMatchedStatus() : dds::core::Value<D>() { } 00250 00251 public: 00252 int32_t total_count() const { 00253 return this->delegate().total_count(); 00254 } 00255 00256 int32_t total_count_change() const { 00257 return this->delegate().total_count_change(); 00258 } 00259 00260 int32_t current_count() const { 00261 return this->delegate().current_count(); 00262 } 00263 00264 int32_t current_count_change() const { 00265 return this->delegate().current_count_change(); 00266 } 00267 00268 const dds::core::InstanceHandle last_publication_handle() const { 00269 return this->delegate().last_publication_handle(); 00270 } 00271 }; 00272 00273 } } }/* namespace tdds::core::status */ 00274 00275 #endif /* OMG_TDDS_CORE_STATUS_STATUS_HPP_ */
1.7.1