-
Notifications
You must be signed in to change notification settings - Fork 783
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Javier Gil Aviles <javiergil@eprosima.com>
- Loading branch information
Showing
44 changed files
with
5,863 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
// Copyright 2024 Proyectos y Sistemas de Mantenimiento SL (eProsima). | ||
// | ||
// 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. | ||
|
||
/** | ||
* @file Application.cpp | ||
* | ||
*/ | ||
|
||
#include "Application.hpp" | ||
|
||
#include "SubscriberApp.hpp" | ||
#include "PublisherApp.hpp" | ||
|
||
using namespace eprosima::fastdds::dds; | ||
|
||
namespace eprosima { | ||
namespace fastdds { | ||
namespace examples { | ||
namespace benchmark { | ||
|
||
//! Factory method to create a publisher or subscriber | ||
std::shared_ptr<Application> Application::make_app( | ||
const CLIParser::benchmark_config& config) | ||
{ | ||
std::shared_ptr<Application> entity; | ||
switch (config.entity) | ||
{ | ||
case CLIParser::EntityKind::PUBLISHER: | ||
entity = std::make_shared<PublisherApp>(config.pub_config); | ||
break; | ||
case CLIParser::EntityKind::SUBSCRIBER: | ||
entity = std::make_shared<SubscriberApp>(config.sub_config); | ||
break; | ||
case CLIParser::EntityKind::UNDEFINED: | ||
default: | ||
throw std::runtime_error("Entity initialization failed"); | ||
break; | ||
} | ||
return entity; | ||
} | ||
|
||
} // namespace benchmark | ||
} // namespace examples | ||
} // namespace fastdds | ||
} // namespace eprosima |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
// Copyright 2024 Proyectos y Sistemas de Mantenimiento SL (eProsima). | ||
// | ||
// 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. | ||
|
||
/** | ||
* @file Application.hpp | ||
* | ||
*/ | ||
|
||
#ifndef FASTDDS_EXAMPLES_CPP_BENCHMARK__APPLICATION_HPP | ||
#define FASTDDS_EXAMPLES_CPP_BENCHMARK__APPLICATION_HPP | ||
|
||
#include <atomic> | ||
|
||
#include "CLIParser.hpp" | ||
|
||
namespace eprosima { | ||
namespace fastdds { | ||
namespace examples { | ||
namespace benchmark { | ||
|
||
class Application | ||
{ | ||
public: | ||
|
||
//! Virtual destructor | ||
virtual ~Application() = default; | ||
|
||
//! Run application | ||
virtual void run() = 0; | ||
|
||
//! Trigger the end of execution | ||
virtual void stop() = 0; | ||
|
||
//! Factory method to create applications based on configuration | ||
static std::shared_ptr<Application> make_app( | ||
const CLIParser::benchmark_config& config); | ||
}; | ||
|
||
} // namespace benchmark | ||
} // namespace examples | ||
} // namespace fastdds | ||
} // namespace eprosima | ||
|
||
#endif // FASTDDS_EXAMPLES_CPP_BENCHMARK__APPLICATION_HPP |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,178 @@ | ||
// Copyright 2016 Proyectos y Sistemas de Mantenimiento SL (eProsima). | ||
// | ||
// 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. | ||
|
||
/*! | ||
* @file Benchmark.hpp | ||
* This header file contains the declaration of the described types in the IDL file. | ||
* | ||
* This file was generated by the tool fastddsgen. | ||
*/ | ||
|
||
#ifndef FAST_DDS_GENERATED__BENCHMARK_HPP | ||
#define FAST_DDS_GENERATED__BENCHMARK_HPP | ||
|
||
#include <cstdint> | ||
#include <utility> | ||
|
||
#if defined(_WIN32) | ||
#if defined(EPROSIMA_USER_DLL_EXPORT) | ||
#define eProsima_user_DllExport __declspec( dllexport ) | ||
#else | ||
#define eProsima_user_DllExport | ||
#endif // EPROSIMA_USER_DLL_EXPORT | ||
#else | ||
#define eProsima_user_DllExport | ||
#endif // _WIN32 | ||
|
||
#if defined(_WIN32) | ||
#if defined(EPROSIMA_USER_DLL_EXPORT) | ||
#if defined(BENCHMARK_SOURCE) | ||
#define BENCHMARK_DllAPI __declspec( dllexport ) | ||
#else | ||
#define BENCHMARK_DllAPI __declspec( dllimport ) | ||
#endif // BENCHMARK_SOURCE | ||
#else | ||
#define BENCHMARK_DllAPI | ||
#endif // EPROSIMA_USER_DLL_EXPORT | ||
#else | ||
#define BENCHMARK_DllAPI | ||
#endif // _WIN32 | ||
|
||
/*! | ||
* @brief This class represents the structure BenchMark defined by the user in the IDL file. | ||
* @ingroup Benchmark | ||
*/ | ||
class BenchMark | ||
{ | ||
public: | ||
|
||
/*! | ||
* @brief Default constructor. | ||
*/ | ||
eProsima_user_DllExport BenchMark() | ||
{ | ||
} | ||
|
||
/*! | ||
* @brief Default destructor. | ||
*/ | ||
eProsima_user_DllExport ~BenchMark() | ||
{ | ||
} | ||
|
||
/*! | ||
* @brief Copy constructor. | ||
* @param x Reference to the object BenchMark that will be copied. | ||
*/ | ||
eProsima_user_DllExport BenchMark( | ||
const BenchMark& x) | ||
{ | ||
m_index = x.m_index; | ||
|
||
} | ||
|
||
/*! | ||
* @brief Move constructor. | ||
* @param x Reference to the object BenchMark that will be copied. | ||
*/ | ||
eProsima_user_DllExport BenchMark( | ||
BenchMark&& x) noexcept | ||
{ | ||
m_index = x.m_index; | ||
} | ||
|
||
/*! | ||
* @brief Copy assignment. | ||
* @param x Reference to the object BenchMark that will be copied. | ||
*/ | ||
eProsima_user_DllExport BenchMark& operator =( | ||
const BenchMark& x) | ||
{ | ||
|
||
m_index = x.m_index; | ||
|
||
return *this; | ||
} | ||
|
||
/*! | ||
* @brief Move assignment. | ||
* @param x Reference to the object BenchMark that will be copied. | ||
*/ | ||
eProsima_user_DllExport BenchMark& operator =( | ||
BenchMark&& x) noexcept | ||
{ | ||
|
||
m_index = x.m_index; | ||
return *this; | ||
} | ||
|
||
/*! | ||
* @brief Comparison operator. | ||
* @param x BenchMark object to compare. | ||
*/ | ||
eProsima_user_DllExport bool operator ==( | ||
const BenchMark& x) const | ||
{ | ||
return (m_index == x.m_index); | ||
} | ||
|
||
/*! | ||
* @brief Comparison operator. | ||
* @param x BenchMark object to compare. | ||
*/ | ||
eProsima_user_DllExport bool operator !=( | ||
const BenchMark& x) const | ||
{ | ||
return !(*this == x); | ||
} | ||
|
||
/*! | ||
* @brief This function sets a value in member index | ||
* @param _index New value for member index | ||
*/ | ||
eProsima_user_DllExport void index( | ||
uint32_t _index) | ||
{ | ||
m_index = _index; | ||
} | ||
|
||
/*! | ||
* @brief This function returns the value of member index | ||
* @return Value of member index | ||
*/ | ||
eProsima_user_DllExport uint32_t index() const | ||
{ | ||
return m_index; | ||
} | ||
|
||
/*! | ||
* @brief This function returns a reference to member index | ||
* @return Reference to member index | ||
*/ | ||
eProsima_user_DllExport uint32_t& index() | ||
{ | ||
return m_index; | ||
} | ||
|
||
|
||
|
||
private: | ||
|
||
uint32_t m_index{0}; | ||
|
||
}; | ||
|
||
#endif // _FAST_DDS_GENERATED_BENCHMARK_HPP_ | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
@extensibility(APPENDABLE) | ||
struct BenchMark | ||
{ | ||
unsigned long index; | ||
}; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
// Copyright 2016 Proyectos y Sistemas de Mantenimiento SL (eProsima). | ||
// | ||
// 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. | ||
|
||
/*! | ||
* @file BenchmarkCdrAux.hpp | ||
* This source file contains some definitions of CDR related functions. | ||
* | ||
* This file was generated by the tool fastddsgen. | ||
*/ | ||
|
||
#ifndef FAST_DDS_GENERATED__BENCHMARKCDRAUX_HPP | ||
#define FAST_DDS_GENERATED__BENCHMARKCDRAUX_HPP | ||
|
||
#include "Benchmark.hpp" | ||
|
||
constexpr uint32_t BenchMark_max_cdr_typesize {8UL}; | ||
constexpr uint32_t BenchMark_max_key_cdr_typesize {0UL}; | ||
|
||
|
||
namespace eprosima { | ||
namespace fastcdr { | ||
|
||
class Cdr; | ||
class CdrSizeCalculator; | ||
|
||
eProsima_user_DllExport void serialize_key( | ||
eprosima::fastcdr::Cdr& scdr, | ||
const BenchMark& data); | ||
|
||
|
||
} // namespace fastcdr | ||
} // namespace eprosima | ||
|
||
#endif // FAST_DDS_GENERATED__BENCHMARKCDRAUX_HPP | ||
|
Oops, something went wrong.