Go2Py/deploy/dds_bridge/thirdparty/include/ddscxx/dds/sub/TSampleInfo.hpp

147 lines
5.8 KiB
C++
Raw Normal View History

2024-01-04 03:45:40 +08:00
/* Copyright 2010, Object Management Group, Inc.
* Copyright 2010, PrismTech, Corp.
* Copyright 2010, Real-Time Innovations, Inc.
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef OMG_DDS_SUB_TSAMPLE_INFO_HPP_
#define OMG_DDS_SUB_TSAMPLE_INFO_HPP_
#include <dds/core/Time.hpp>
#include <dds/core/Value.hpp>
#include <dds/core/InstanceHandle.hpp>
#include <dds/sub/GenerationCount.hpp>
#include <dds/sub/Rank.hpp>
#include <dds/sub/status/DataState.hpp>
namespace dds
{
namespace sub
{
template <typename DELEGATE>
class TSampleInfo;
}
}
/**
* @brief
* The SampleInfo contains information pertaining to the associated Data value.
*
* The SampleInfo contains information pertaining to the associated Data value:
* - The data state (dds::sub::status::DataState).
* - The sample_state of the Data value (i.e., if the sample has already been READ or NOT_READ by that same DataReader).
* - The view_state of the related instance (i.e., if the instance is NEW, or NOT_NEW for that DataReader).
* - The instance_state of the related instance (i.e., if the instance is ALIVE, NOT_ALIVE_DISPOSED, or NOT_ALIVE_NO_WRITERS).
* - The valid data flag. This flag indicates whether there is data associated with the sample. Some samples do not contain data indicating only a change on the instance_state of the corresponding instance.
* - The generation counts (dds::sub::GenerationCount) for the related instance at the time the sample was received. These counters indicate the number of times the instance had become ALIVE.
* - The disposed generation count
* - The no_writer generation count
* - The rank information (dds::sub::Rank).
* - The sample rank. This rank provides a preview of the samples that follow within the sequence returned by the read or take operations.
* - The generation rank. This rank provides a preview of the samples that follow within the sequence returned by the read or take operations.
* - The absolute_generation rank. This is the timestamp provided by the DataWriter at the time the sample was produced.
* - The source timestamp of the sample. This is the timestamp provided by the DataWriter at the time the sample was produced.
* - The InstanceHandle of the associated data Sample.
* - The InstanceHandle of the associated publication.
*
* @see for more information: @ref DCPS_Modules_Subscription_SampleInfo "SampleInfo"
*/
template <typename DELEGATE>
class dds::sub::TSampleInfo : public dds::core::Value<DELEGATE>
{
public:
/** @cond
* Create an empty SampleInfo.
* This constructor is required for containers.
* An application would normally not create a SampleInfo itself.
* So, do not put the creation in the API documentation for clarity.
*/
TSampleInfo();
/** @endcond */
public:
/**
* Gets the timestamp of the sample.
*
* This is the timestamp provided by the DataWriter at the time the sample was produced.
*
* @return the timestamp
*/
const dds::core::Time timestamp() const;
/**
* Gets the DataState of the sample.
*
* The data state (dds::sub::status::DataState).
* - The sample_state of the Data value (i.e., if the sample has already been READ or NOT_READ by that same DataReader).
* - The view_state of the related instance (i.e., if the instance is NEW, or NOT_NEW for that DataReader).
* - The instance_state of the related instance (i.e., if the instance is ALIVE, NOT_ALIVE_DISPOSED, or NOT_ALIVE_NO_WRITERS).
*
* @return the DataState
*/
const dds::sub::status::DataState state() const;
/**
* Gets the GenerationCount of the sample.
*
* The generation counts (dds::sub::GenerationCount) for the related instance at the time the sample was received.
* These counters indicate the number of times the instance had become ALIVE.
* - The disposed generation count
* - The no_writer generation count
*
* @return the GenerationCount
*/
dds::sub::GenerationCount generation_count() const;
/**
* Gets the Rank of the sample.
*
* The rank information (dds::sub::Rank).
* - The sample rank. This rank provides a preview of the samples that follow within the sequence returned by the read or take operations.
* - The generation rank. This rank provides a preview of the samples that follow within the sequence returned by the read or take operations.
* - The absolute_generation rank. This is the timestamp provided by the DataWriter at the time the sample was produced.
*
* @return the Rank
*/
dds::sub::Rank rank() const;
/**
* Gets the valid_data flag.
*
* This flag indicates whether there is data
* associated with the sample. Some samples do not contain data, indicating
* only a change on the instance_state of the corresponding instance.
*
* @return the valid_data flag
*/
bool valid() const;
/**
* Gets the InstanceHandle of the associated data Sample.
*
* @return the InstanceHandle of the sample
*/
dds::core::InstanceHandle instance_handle() const;
/**
* Gets the InstanceHandle of the associated publication.
*
* @return the publication_handle
*/
dds::core::InstanceHandle publication_handle() const;
};
#endif /* OMG_DDS_SUB_TSAMPLE_INFO_HPP_ */