init
This commit is contained in:
153
unitree_SDK/include/ddscxx/dds/topic/discovery.hpp
Normal file
153
unitree_SDK/include/ddscxx/dds/topic/discovery.hpp
Normal file
@@ -0,0 +1,153 @@
|
||||
#ifndef OMG_DDS_TOPIC_DISCOVER_HPP_
|
||||
#define OMG_DDS_TOPIC_DISCOVER_HPP_
|
||||
|
||||
/* Copyright 2010, Object Management Group, Inc.
|
||||
* Copyright 2010, PrismTech, Inc.
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#include <dds/domain/DomainParticipant.hpp>
|
||||
|
||||
namespace dds
|
||||
{
|
||||
namespace topic
|
||||
{
|
||||
|
||||
/**
|
||||
* This operation gives access to an specific existing (or ready to exist) enabled
|
||||
* Topic, ContentFilteredTopic, MultiTopic, AnyTopic or TopicDescription based
|
||||
* on its topic_name.
|
||||
*
|
||||
* Topics that the application has indicated should be 'ignored' (by means of the
|
||||
* dds::topic::ignore operation) will not appear in this list (note: the ignore
|
||||
* feature is not yet supported).
|
||||
*
|
||||
* If a Topic of the same topic_name already exists, it gives access to this Topic.
|
||||
* Otherwise it waits (blocks the caller) until another mechanism creates it. This other
|
||||
* mechanism can be another thread, a configuration tool, or some other Data
|
||||
* Distribution Service utility. If after the specified timeout the Topic can still not be
|
||||
* found, the caller gets unblocked and the returned Topic will be dds::core::null.
|
||||
*
|
||||
* A Topic that is obtained by means of find_topic in a specific
|
||||
* DomainParticipant can only be used to create DataReaders and
|
||||
* DataWriters in that DomainParticipant.
|
||||
*
|
||||
* This operation usually results in network look-ups.
|
||||
*
|
||||
* For finding only locally created Topics, look
|
||||
* @link find(const dds::domain::DomainParticipant& dp, const std::string& topic_name)
|
||||
* here.@endlink
|
||||
*
|
||||
* @param dp the DomainParticipant
|
||||
* @param name the topic name to discover
|
||||
* @param timeout the time out
|
||||
* @throws dds::core::Error
|
||||
* An internal error has occurred.
|
||||
* @throws dds::core::NullReferenceError
|
||||
* The DomainParticipant was not properly created and references to dds::core::null.
|
||||
* @throws dds::core::AlreadyClosedError
|
||||
* The DomainParticipant has already been closed.
|
||||
* @throws dds::core::NotEnabledError
|
||||
* The DomainParticipant has not yet been enabled.
|
||||
* @throws dds::core::OutOfResourcesError
|
||||
* The Data Distribution Service ran out of resources to
|
||||
* complete this operation.
|
||||
* @throws dds::core::TimeoutError
|
||||
* No Topics of the given name found within the timeout.
|
||||
*/
|
||||
template <typename TOPIC>
|
||||
TOPIC discover(const dds::domain::DomainParticipant& dp,
|
||||
const std::string& name,
|
||||
const dds::core::Duration& timeout = dds::core::Duration::infinite());
|
||||
|
||||
/**
|
||||
* This operation retrieves a list of Topics that have been discovered in the domain.
|
||||
*
|
||||
* If the max_size of the given list is large enough, all discovered Topics will be
|
||||
* present in that list. Otherwise, a random sub-set of max_size elements is returned.
|
||||
*
|
||||
* Topics that the application has indicated should be 'ignored' (by means of the
|
||||
* dds::topic::ignore operation) will not appear in this list (note: the ignore
|
||||
* feature is not yet supported).
|
||||
*
|
||||
* Because Topics of various different kinds can be retrieved, the list contains
|
||||
* AnyTopics.
|
||||
*
|
||||
* This operation usually results in network look-ups.
|
||||
*
|
||||
* @param dp the DomainParticipant
|
||||
* @param begin a forward iterator pointing to the beginning of a container
|
||||
* in which to insert the topics
|
||||
* @param max_size the maximum number of topics to return
|
||||
*/
|
||||
template <typename ANYTOPIC, typename FwdIterator>
|
||||
uint32_t discover(const dds::domain::DomainParticipant& dp, FwdIterator begin, uint32_t max_size);
|
||||
|
||||
/**
|
||||
* This operation retrieves a list of all Topics that have been discovered in the domain.
|
||||
*
|
||||
* Topics that the application has indicated should be 'ignored' (by means of the
|
||||
* dds::topic::ignore operation) will not appear in this list (note: the ignore
|
||||
* feature is not yet supported).
|
||||
*
|
||||
* Because Topics of various different kinds can be retrieved, the list contains
|
||||
* AnyTopics.
|
||||
*
|
||||
* This operation usually results in network look-ups.
|
||||
*
|
||||
* @param dp the DomainParticipant
|
||||
* @param begin a back inserting iterator pointing to the beginning of a container
|
||||
* in which to insert the topics
|
||||
*/
|
||||
template <typename ANYTOPIC, typename BinIterator>
|
||||
uint32_t discover_all(const dds::domain::DomainParticipant& dp, BinIterator begin);
|
||||
|
||||
/**
|
||||
* This operation allows an application to instruct the Service to locally ignore
|
||||
* a remote domain participant. From that point onwards the Service will locally
|
||||
* behave as if the remote participant did not exist. This means it will ignore any
|
||||
* Topic, publication, or subscription that originates on that domain participant.
|
||||
*
|
||||
* <b><i>This operation is not yet implemented. It is scheduled for a future release.</i></b>
|
||||
*
|
||||
* @param dp the DomainParticipant
|
||||
* @param handle the handle of the DomainParticipant to ignore
|
||||
*/
|
||||
void OMG_DDS_API ignore(const dds::domain::DomainParticipant& dp, const dds::core::InstanceHandle& handle);
|
||||
|
||||
/**
|
||||
* This operation allows an application to instruct the Service to locally ignore
|
||||
* a remote domain participant. From that point onwards the Service will locally
|
||||
* behave as if the remote participant did not exist. This means it will ignore any
|
||||
* Topic, publication, or subscription that originates on that domain participant.
|
||||
*
|
||||
* <b><i>This operation is not yet implemented. It is scheduled for a future release.</i></b>
|
||||
*
|
||||
* @param dp the DomainParticipant
|
||||
* @param begin a forward iterator pointing to the beginning of a sequence of
|
||||
* InstanceHandles to ignore
|
||||
* @param end a forward iterator pointing to the end of a sequence of
|
||||
* InstanceHandles to ignore
|
||||
*/
|
||||
template <typename FwdIterator>
|
||||
void ignore(const dds::domain::DomainParticipant& dp, FwdIterator begin, FwdIterator end);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#include <dds/topic/detail/discovery.hpp>
|
||||
|
||||
#endif /* OMG_DDS_TOPIC_DISCOVER_HPP_ */
|
Reference in New Issue
Block a user