137 lines
3.4 KiB
C++
137 lines
3.4 KiB
C++
/*
|
|
* Copyright(c) 2006 to 2020 ZettaScale Technology and others
|
|
*
|
|
* This program and the accompanying materials are made available under the
|
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
* http://www.eclipse.org/legal/epl-2.0, or the Eclipse Distribution License
|
|
* v. 1.0 which is available at
|
|
* http://www.eclipse.org/org/documents/edl-v10.php.
|
|
*
|
|
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
|
|
*/
|
|
#ifndef CYCLONEDDS_DDS_SUB_DETAIL_QUERY_IMPL_HPP_
|
|
#define CYCLONEDDS_DDS_SUB_DETAIL_QUERY_IMPL_HPP_
|
|
|
|
/**
|
|
* @file
|
|
*/
|
|
|
|
// Implementation
|
|
#include <dds/sub/TQuery.hpp>
|
|
|
|
template <typename DELEGATE>
|
|
dds::sub::TQuery<DELEGATE>::TQuery(
|
|
const dds::sub::AnyDataReader& dr,
|
|
const std::string& expression) :
|
|
dds::core::Reference<DELEGATE>(new DELEGATE(AnyDataReader(dr), expression))
|
|
{
|
|
}
|
|
|
|
template <typename DELEGATE>
|
|
template<typename FWIterator>
|
|
dds::sub::TQuery<DELEGATE>::TQuery(
|
|
const dds::sub::AnyDataReader& dr,
|
|
const std::string& expression,
|
|
const FWIterator& params_begin,
|
|
const FWIterator& params_end) :
|
|
dds::core::Reference<DELEGATE>(new DELEGATE(AnyDataReader(dr), expression))
|
|
{
|
|
for (FWIterator it = params_begin; it != params_end; ++it) {
|
|
add_parameter(*it);
|
|
}
|
|
}
|
|
|
|
template <typename DELEGATE>
|
|
dds::sub::TQuery<DELEGATE>::TQuery(
|
|
const dds::sub::AnyDataReader& dr,
|
|
const std::string& expression,
|
|
const std::vector<std::string>& params) :
|
|
dds::core::Reference<DELEGATE>(new DELEGATE(AnyDataReader(dr), expression, params))
|
|
{
|
|
|
|
}
|
|
|
|
template <typename DELEGATE>
|
|
const std::string& dds::sub::TQuery<DELEGATE>::expression() const
|
|
{
|
|
return this->delegate()->expression();
|
|
}
|
|
|
|
template <typename DELEGATE>
|
|
void dds::sub::TQuery<DELEGATE>::expression(const std::string& expr)
|
|
{
|
|
this->delegate()->expression(expr);
|
|
}
|
|
|
|
/**
|
|
* Provides the begin iterator to the parameter list.
|
|
*/
|
|
template <typename DELEGATE>
|
|
typename dds::sub::TQuery<DELEGATE>::const_iterator dds::sub::TQuery<DELEGATE>::begin() const
|
|
{
|
|
return this->delegate()->begin();
|
|
}
|
|
|
|
/**
|
|
* The end iterator to the parameter list.
|
|
*/
|
|
template <typename DELEGATE>
|
|
typename dds::sub::TQuery<DELEGATE>::const_iterator dds::sub::TQuery<DELEGATE>::end() const
|
|
{
|
|
return this->delegate()->end();
|
|
}
|
|
|
|
/**
|
|
* Provides the begin iterator to the parameter list.
|
|
*/
|
|
template <typename DELEGATE>
|
|
typename dds::sub::TQuery<DELEGATE>::iterator dds::sub::TQuery<DELEGATE>::begin()
|
|
{
|
|
return this->delegate()->begin();
|
|
}
|
|
|
|
/**
|
|
* The end iterator to the parameter list.
|
|
*/
|
|
template <typename DELEGATE>
|
|
typename dds::sub::TQuery<DELEGATE>::iterator dds::sub::TQuery<DELEGATE>::end()
|
|
{
|
|
return this->delegate()->end();
|
|
}
|
|
|
|
template <typename DELEGATE>
|
|
template<typename FWIterator>
|
|
void dds::sub::TQuery<DELEGATE>::parameters(
|
|
const FWIterator& begin,
|
|
const FWIterator end)
|
|
{
|
|
for (FWIterator it = begin; it != end; ++it) {
|
|
add_parameter(*it);
|
|
}
|
|
}
|
|
|
|
template <typename DELEGATE>
|
|
void dds::sub::TQuery<DELEGATE>::add_parameter(
|
|
const std::string& param)
|
|
{
|
|
this->delegate()->add_parameter(param);
|
|
}
|
|
|
|
template <typename DELEGATE>
|
|
uint32_t dds::sub::TQuery<DELEGATE>::parameters_length() const
|
|
{
|
|
return this->delegate()->parameters_length();
|
|
}
|
|
|
|
template <typename DELEGATE>
|
|
const dds::sub::AnyDataReader&
|
|
dds::sub::TQuery<DELEGATE>::data_reader() const
|
|
{
|
|
return this->delegate()->data_reader();
|
|
}
|
|
|
|
|
|
|
|
|
|
#endif /* CYCLONEDDS_DDS_SUB_DETAIL_QUERY_IMPL_HPP_ */
|