Program Listing for File publisher.h
↰ Return to documentation for file (ecal/core/include/ecal/config/publisher.h)
/* ========================= eCAL LICENSE =================================
*
* Copyright (C) 2016 - 2025 Continental Corporation
*
* 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.
*
* ========================= eCAL LICENSE =================================
*/
#pragma once
#include <ecal/types/custom_data_types.h>
#include <ecal/config/transport_layer.h>
#include <cstddef>
#include <vector>
namespace eCAL
{
namespace Publisher
{
namespace Layer
{
namespace SHM
{
struct Configuration
{
bool enable { true };
bool zero_copy_mode { false };
unsigned int acknowledge_timeout_ms { 0U };
unsigned int memfile_buffer_count { 1U };
unsigned int memfile_min_size_bytes { 4096 };
unsigned int memfile_reserve_percent { 50 };
};
}
namespace UDP
{
struct Configuration
{
bool enable { true };
};
}
namespace TCP
{
struct Configuration
{
bool enable { true };
};
}
struct Configuration
{
SHM::Configuration shm;
UDP::Configuration udp;
TCP::Configuration tcp;
};
}
struct Configuration
{
Layer::Configuration layer;
using LayerPriorityVector = std::vector<TransportLayer::eType>;
LayerPriorityVector layer_priority_local { TransportLayer::eType::shm, TransportLayer::eType::udp_mc, TransportLayer::eType::tcp };
LayerPriorityVector layer_priority_remote { TransportLayer::eType::udp_mc, TransportLayer::eType::tcp };
};
}
}