Update sdv_packager (#6)

This commit is contained in:
tompzf
2026-03-27 14:12:49 +01:00
committed by GitHub
parent 234be8917f
commit aefefd52f7
717 changed files with 42252 additions and 11334 deletions

View File

@@ -1,3 +1,16 @@
/********************************************************************************
* Copyright (c) 2025-2026 ZF Friedrichshafen AG
*
* This program and the accompanying materials are made available under the
* terms of the Apache License Version 2.0 which is available at
* https://www.apache.org/licenses/LICENSE-2.0
*
* SPDX-License-Identifier: Apache-2.0
*
* Contributors:
* Erik Verhoeven - initial API and implementation
********************************************************************************/
#include "ascreader.h"
#include <iostream>
#include <fstream>

View File

@@ -1,3 +1,16 @@
/********************************************************************************
* Copyright (c) 2025-2026 ZF Friedrichshafen AG
*
* This program and the accompanying materials are made available under the
* terms of the Apache License Version 2.0 which is available at
* https://www.apache.org/licenses/LICENSE-2.0
*
* SPDX-License-Identifier: Apache-2.0
*
* Contributors:
* Erik Verhoeven - initial API and implementation
********************************************************************************/
#ifndef ASC_FILE_READER_H
#define ASC_FILE_READER_H

View File

@@ -1,3 +1,16 @@
/********************************************************************************
* Copyright (c) 2025-2026 ZF Friedrichshafen AG
*
* This program and the accompanying materials are made available under the
* terms of the Apache License Version 2.0 which is available at
* https://www.apache.org/licenses/LICENSE-2.0
*
* SPDX-License-Identifier: Apache-2.0
*
* Contributors:
* Erik Verhoeven - initial API and implementation
********************************************************************************/
#include "ascwriter.h"
#include <fstream>

View File

@@ -1,3 +1,16 @@
/********************************************************************************
* Copyright (c) 2025-2026 ZF Friedrichshafen AG
*
* This program and the accompanying materials are made available under the
* terms of the Apache License Version 2.0 which is available at
* https://www.apache.org/licenses/LICENSE-2.0
*
* SPDX-License-Identifier: Apache-2.0
*
* Contributors:
* Erik Verhoeven - initial API and implementation
********************************************************************************/
#ifndef ASC_FILE_WRITER_H
#define ASC_FILE_WRITER_H

View File

@@ -1,3 +1,16 @@
/********************************************************************************
* Copyright (c) 2025-2026 ZF Friedrichshafen AG
*
* This program and the accompanying materials are made available under the
* terms of the Apache License Version 2.0 which is available at
* https://www.apache.org/licenses/LICENSE-2.0
*
* SPDX-License-Identifier: Apache-2.0
*
* Contributors:
* Erik Verhoeven - initial API and implementation
********************************************************************************/
#ifndef BASE64_H
#define BASE64_H

View File

@@ -1,3 +1,16 @@
/********************************************************************************
* Copyright (c) 2025-2026 ZF Friedrichshafen AG
*
* This program and the accompanying materials are made available under the
* terms of the Apache License Version 2.0 which is available at
* https://www.apache.org/licenses/LICENSE-2.0
*
* SPDX-License-Identifier: Apache-2.0
*
* Contributors:
* Erik Verhoeven - initial API and implementation
********************************************************************************/
#include "cmdlnparser.h"
#ifdef _WIN32
@@ -537,11 +550,33 @@ void CCommandLine::DumpArguments(std::ostream& rstream, bool bAll /*= true*/) co
std::vector<std::string> CCommandLine::IncompatibleArguments(size_t nArgumentGroup, bool bFull /*= true*/) const
{
std::vector<std::string> vecIncompatible;
// Create a copy of the list and remove all arguments that are available and fit.
auto lstSuppliedCopy = m_lstSupplied;
for (auto& prArgument : m_lstSupplied)
{
// Only valid for options, not for default arguments
if (prArgument.first.get().CheckFlag(EArgumentFlags::default_argument)) continue;
if (prArgument.first.get().CheckFlag(EArgumentFlags::default_argument) ||
prArgument.first.get().PartOfArgumentGroup(nArgumentGroup))
{
// Remove the arguments from the supplied copy list
auto itArgumentCopy = lstSuppliedCopy.begin();
while (itArgumentCopy != lstSuppliedCopy.end())
{
if (itArgumentCopy->second == prArgument.second)
itArgumentCopy = lstSuppliedCopy.erase(itArgumentCopy);
else
++itArgumentCopy;
}
}
}
// Left over are the arguments that do not fit.
std::vector<std::string> vecIncompatible;
for (auto& prArgument : lstSuppliedCopy)
{
// Only valid for options, not for default arguments
if (prArgument.first.get().CheckFlag(EArgumentFlags::default_argument))
continue;
// Is the argument compatible?
if (prArgument.first.get().PartOfArgumentGroup(nArgumentGroup)) continue;

View File

@@ -1,3 +1,16 @@
/********************************************************************************
* Copyright (c) 2025-2026 ZF Friedrichshafen AG
*
* This program and the accompanying materials are made available under the
* terms of the Apache License Version 2.0 which is available at
* https://www.apache.org/licenses/LICENSE-2.0
*
* SPDX-License-Identifier: Apache-2.0
*
* Contributors:
* Erik Verhoeven - initial API and implementation
********************************************************************************/
#ifndef CMDLN_PARSER_H
#define CMDLN_PARSER_H
@@ -428,8 +441,8 @@ private:
uint32_t m_uiParseFlags = 0; ///< The parse flags supplied to the parse function.
std::shared_ptr<CArgumentDefBase> m_ptrDefaultArg; ///< Default argument (if available).
std::list<std::shared_ptr<CArgumentDefBase>> m_lstOptionArgs; ///< List of configured option arguments (in order of definition).
std::map<std::string, CArgumentDefBase&, std::greater<std::string>> m_mapSortedOptions; ///< Map with sorted options.
std::map<std::string, CArgumentDefBase&, std::greater<std::string>> m_mapSortedSubOptions; ///< Map with sorted sub-options.
std::multimap<std::string, CArgumentDefBase&, std::greater<std::string>> m_mapSortedOptions; ///< Map with sorted options.
std::multimap<std::string, CArgumentDefBase&, std::greater<std::string>> m_mapSortedSubOptions; ///< Map with sorted sub-options.
std::shared_ptr<SGroupDef> m_ptrCurrentGroup; ///< Current group to assign the options to.
std::list<std::pair<std::reference_wrapper<CArgumentDefBase>, std::string>> m_lstSupplied; ///< List of supplied arguments.
size_t m_nFixedWidth = 0; ///< Fixed with limit (or 0 for dynamic width).
@@ -2677,21 +2690,21 @@ inline void CCommandLine::Parse(size_t nArgs, const TCharType** rgszArgs)
};
// Find the argument
// NOTE: Multiple arguments with the same name, but different processing can be defined (based on the argument groups they
// might or might not have relevance). Therefore, process all and do not stop after on argument.
bool bFound = false;
if (bOption)
{
for (auto& rvtOption : m_mapSortedOptions)
{
bFound = fnFindAndAssign(rvtOption.second, rvtOption.first);
if (bFound) break;
bFound |= fnFindAndAssign(rvtOption.second, rvtOption.first);
}
}
else if (bSubOption)
{
for (auto& rvtOption : m_mapSortedSubOptions)
{
bFound = fnFindAndAssign(rvtOption.second, rvtOption.first);
if (bFound) break;
bFound |= fnFindAndAssign(rvtOption.second, rvtOption.first);
}
} else // Default argument
bFound = m_ptrDefaultArg ? fnFindAndAssign(*m_ptrDefaultArg.get(), {}) : false;

View File

@@ -1,3 +1,16 @@
/********************************************************************************
* Copyright (c) 2025-2026 ZF Friedrichshafen AG
*
* This program and the accompanying materials are made available under the
* terms of the Apache License Version 2.0 which is available at
* https://www.apache.org/licenses/LICENSE-2.0
*
* SPDX-License-Identifier: Apache-2.0
*
* Contributors:
* Erik Verhoeven - initial API and implementation
********************************************************************************/
#include "dbcparser.h"
#include <fstream>
#include <algorithm>

View File

@@ -1,3 +1,16 @@
/********************************************************************************
* Copyright (c) 2025-2026 ZF Friedrichshafen AG
*
* This program and the accompanying materials are made available under the
* terms of the Apache License Version 2.0 which is available at
* https://www.apache.org/licenses/LICENSE-2.0
*
* SPDX-License-Identifier: Apache-2.0
*
* Contributors:
* Erik Verhoeven - initial API and implementation
********************************************************************************/
#ifndef DBCPARSER_H
#define DBCPARSER_H

View File

@@ -1,3 +1,16 @@
/********************************************************************************
* Copyright (c) 2025-2026 ZF Friedrichshafen AG
*
* This program and the accompanying materials are made available under the
* terms of the Apache License Version 2.0 which is available at
* https://www.apache.org/licenses/LICENSE-2.0
*
* SPDX-License-Identifier: Apache-2.0
*
* Contributors:
* Erik Verhoeven - initial API and implementation
********************************************************************************/
#ifndef DEBUG_LOG_H
#define DEBUG_LOG_H
@@ -18,7 +31,7 @@
/**
* @brief Enable debug log by defining the ENABLE_DEBUG_LOG to a value other than zero.
*/
#define ENABLE_DEBUG_LOG 1
#define ENABLE_DEBUG_LOG 0
#endif
#ifndef DECOUPLED_DEBUG_LOG
@@ -46,9 +59,11 @@ namespace debug
/**
* @brief Constructor, creating the file. If the file exists, it will be overwritten.
*/
CLogger()
CLogger() : m_pathLogFile(GetExecDirectory() / GetExecFilename().replace_extension(".log"))
{
m_pathLogFile = GetExecDirectory() / GetExecFilename().replace_extension(".log");
#if DECOUPLED_DEBUG_LOG == 0
StartLog();
#endif
}
/**
@@ -67,6 +82,8 @@ namespace debug
// Prevent the logger mutex to be still in use.
std::unique_lock<std::mutex> lock(m_mtxLogger);
lock.unlock();
#else
FinishLog();
#endif
}
@@ -89,7 +106,6 @@ namespace debug
while (!m_threadLogger.joinable())
std::this_thread::sleep_for(std::chrono::milliseconds(10));
}
std::cout << rss << std::endl;
// Add message to the log queue
m_queueLogger.push(sMsg);
@@ -123,12 +139,16 @@ namespace debug
{
std::ofstream fstream;
fstream.open(m_pathLogFile, std::ios_base::out | std::ios_base::trunc);
// Make one line out of it... prevents a cut in the middle when multiple streams are being used in parallel.
std::stringstream sstreamMsg;
sstreamMsg << "PID#" << getpid() << ": Starting log of " << GetExecFilename().generic_u8string() << std::endl;
if (fstream.is_open())
{
fstream << "Starting log of " << GetExecFilename().generic_u8string() << std::endl;
fstream << sstreamMsg.str();
fstream.close();
}
std::cout << "Starting log of " << GetExecFilename().generic_u8string() << std::endl << std::flush;
std::cout << sstreamMsg.str() << std::flush;
}
/**
@@ -139,12 +159,16 @@ namespace debug
// Finish logging
std::ofstream fstream;
fstream.open(m_pathLogFile, std::ios_base::out | std::ios_base::app);
// Make one line out of it... prevents a cut in the middle when multiple streams are being used in parallel.
std::stringstream sstreamMsg;
sstreamMsg << "PID#" << getpid() << ": Ending log of " << GetExecFilename().generic_u8string() << std::endl;
if (fstream.is_open())
{
fstream << "End log of " << GetExecFilename().generic_u8string() << std::endl;
fstream << sstreamMsg.str();
fstream.close();
}
std::cout << "End log of " << GetExecFilename().generic_u8string() << std::endl << std::flush;
std::cout << sstreamMsg.str() << std::flush;
}
/**
@@ -160,20 +184,24 @@ namespace debug
/**
* @brief Log a message.
* @param[in] rfstream Reference to the stream to log to.
* @param[in9 rsMsg Reference to the message to log.
* @param[in] rsMsg Reference to the message to log.
*/
void LogMsg(std::ofstream& rfstream, const SLogMsg& rsMsg)
{
std::string ssIndent(rsMsg.nDepth, '>');
if (!ssIndent.empty())
ssIndent += ' ';
// Make one line out of it... prevents a cut in the middle when multiple streams are being used in parallel.
std::stringstream sstreamMsg;
sstreamMsg << "PID#" << getpid() << " THREAD#" << rsMsg.id << ": " << ssIndent << rsMsg.ssMsg << std::endl;
if (rfstream.is_open())
{
rfstream << rsMsg.id << ": " << ssIndent << rsMsg.ssMsg << std::endl;
rfstream << sstreamMsg.str();
rfstream.close();
}
std::cout << rsMsg.id << ": " << ssIndent << rsMsg.ssMsg << std::endl << std::flush;
std::cout << sstreamMsg.str() << std::flush;
}
#if DECOUPLED_DEBUG_LOG != 0
@@ -241,7 +269,7 @@ namespace debug
return nDepth;
}
std::filesystem::path m_pathLogFile; ///< Path to the log file.
std::filesystem::path m_pathLogFile; ///< Path to the log file.
#if DECOUPLED_DEBUG_LOG != 0
std::mutex m_mtxLogger; ///< Protect against multiple log entries at the same time.
std::thread m_threadLogger; ///< Logger thread
@@ -271,10 +299,10 @@ namespace debug
* @param[in] rssFunc Reference to the function name.
* @param[in] rssFile Reference to the source file the function is implemented in.
* @param[in] nLine Reference to the line the function logger object is created.
*/
*/
CFuncLogger(const std::string& rssFunc, const std::string& rssFile, size_t nLine) : m_ssFunc(rssFunc)
{
GetLogger().Log(std::string("Enter function:") + rssFunc + " - file " + rssFile + " - line " + std::to_string(nLine));
GetLogger().Log(std::string("ENTER FUNCTION: ") + rssFunc + " - FILE " + rssFile + " - LINE " + std::to_string(nLine));
GetLogger().IncrDepth();
}
@@ -284,25 +312,27 @@ namespace debug
~CFuncLogger()
{
GetLogger().DecrDepth();
GetLogger().Log(std::string("Leave function:") + m_ssFunc);
GetLogger().Log(std::string("LEAVE FUNCTION: ") + m_ssFunc);
}
/**
* @brief Log a function checkpoint.
* @param[in] rssFunc Reference to the function name.
* @param[in] nLine The line number of this checkpoint.
*/
void Checkpoint(size_t nLine)
void Checkpoint(const std::string& rssFunc, size_t nLine)
{
GetLogger().Log(std::string("Checkpoint #") + std::to_string(m_nCounter++) + " - line " + std::to_string(nLine));
GetLogger().Log("FUNCTION: " + rssFunc + " - LINE " + std::to_string(nLine) + " - CHECKPOINT #" + std::to_string(m_nCounter++));
}
/**
* @brief Log a string.
* @param[in] nLine The line number of this checkpoint.
* @param[in] rss Reference to the string to log.
*/
void Log(const std::string& rss) const
void Log(size_t nLine, const std::string& rss) const
{
GetLogger().Log(rss);
GetLogger().Log("LINE " + std::to_string(nLine) + " - MSG: " + rss);
}
private:
@@ -319,22 +349,29 @@ namespace debug
* @brief Macro to create a function logger object using the function name, the file name and the line number from the compiler.
*/
#define FUNC_LOGGER() debug::CFuncLogger logger(__FUNCSIG__, __FILE__, __LINE__)
/**
* @brief Macro to set a checkpoint providing the line number from the compiler.
*/
#define CHECKPOINT() logger.Checkpoint(__FUNCSIG__, __LINE__)
#else
/**
* @brief Macro to create a function logger object using the function name, the file name and the line number from the compiler.
*/
#define FUNC_LOGGER() debug::CFuncLogger logger(__PRETTY_FUNCTION__, __FILE__, __LINE__)
#endif
/**
* @brief Macro to set a checkpoint providing the line number from the compiler.
*/
#define CHECKPOINT() logger.Checkpoint(__LINE__)
#define CHECKPOINT() logger.Checkpoint(__PRETTY_FUNCTION__, __LINE__)
#endif
/**
* @brief Log a message
*/
#define FUNC_LOG(msg) logger.Log(msg)
#define FUNC_LOG(msg) logger.Log(__LINE__, msg)
#else
/**

View File

@@ -1,13 +1,17 @@
/**
/********************************************************************************
* Copyright (c) 2025-2026 ZF Friedrichshafen AG
*
* @file exec_dir_helper.h
* @brief This file contains helper functions e.g. filesystem
* @version 0.1
* @date 2022.11.14
* @author Thomas.pfleiderer@zf.com
* @copyright Copyright ZF Friedrichshaven AG (c) 2022
* This program and the accompanying materials are made available under the
* terms of the Apache License Version 2.0 which is available at
* https://www.apache.org/licenses/LICENSE-2.0
*
*/
* SPDX-License-Identifier: Apache-2.0
*
* Contributors:
* Erik Verhoeven - initial API and implementation
********************************************************************************/
#ifndef EXEC_DIR_HELPER_H
#define EXEC_DIR_HELPER_H

View File

@@ -1,3 +1,16 @@
/********************************************************************************
* Copyright (c) 2025-2026 ZF Friedrichshafen AG
*
* This program and the accompanying materials are made available under the
* terms of the Apache License Version 2.0 which is available at
* https://www.apache.org/licenses/LICENSE-2.0
*
* SPDX-License-Identifier: Apache-2.0
*
* Contributors:
* Erik Verhoeven - initial API and implementation
********************************************************************************/
#ifndef FILESYSTEM_HELPER
#define FILESYSTEM_HELPER

View File

@@ -1,3 +1,16 @@
/********************************************************************************
* Copyright (c) 2025-2026 ZF Friedrichshafen AG
*
* This program and the accompanying materials are made available under the
* terms of the Apache License Version 2.0 which is available at
* https://www.apache.org/licenses/LICENSE-2.0
*
* SPDX-License-Identifier: Apache-2.0
*
* Contributors:
* Erik Verhoeven - initial API and implementation
********************************************************************************/
#ifndef FLAGS_HELPER_H
#define FLAGS_HELPER_H

View File

@@ -1,3 +1,16 @@
/********************************************************************************
* Copyright (c) 2025-2026 ZF Friedrichshafen AG
*
* This program and the accompanying materials are made available under the
* terms of the Apache License Version 2.0 which is available at
* https://www.apache.org/licenses/LICENSE-2.0
*
* SPDX-License-Identifier: Apache-2.0
*
* Contributors:
* Erik Verhoeven - initial API and implementation
********************************************************************************/
#ifndef IPC_NAMED_MUTEX_H
#define IPC_NAMED_MUTEX_H
@@ -51,9 +64,9 @@ namespace ipc
/**
* @brief Named mutex constructor. Opens or creates a named mutex. This mutex is unlocked.
* @param[in] szName Pointer to the zero terminated name of the mutex. Can be null to automatically generate a name.
* @param[in] rssName Reference to name of the mutex. Can be empty to automatically generate a name.
*/
named_mutex(const char* szName = nullptr) noexcept;
named_mutex(const std::string& rssName = std::string());
/**
* @brief Copy constructor is deleted.
@@ -118,10 +131,10 @@ namespace ipc
};
#ifdef _WIN32
inline named_mutex::named_mutex(const char* szName) noexcept : m_handle(nullptr)
inline named_mutex::named_mutex(const std::string& rssName) : m_handle(nullptr)
{
if (szName)
m_ssName = szName;
if (!rssName.empty())
m_ssName = rssName;
else
{
std::srand(static_cast<unsigned>(std::time(nullptr))); // Use current time as seed for random generator
@@ -186,10 +199,10 @@ namespace ipc
#elif defined __unix__
inline named_mutex::named_mutex(const char* szName) noexcept : m_handle(nullptr)
inline named_mutex::named_mutex(const std::string& rssName) : m_handle(nullptr)
{
if (szName)
m_ssName = szName;
if (!rssName.empty())
m_ssName = rssName;
else
{
std::srand(static_cast<unsigned>(std::time(nullptr))); // Use current time as seed for random generator

View File

@@ -1,8 +1,20 @@
/********************************************************************************
* Copyright (c) 2025-2026 ZF Friedrichshafen AG
*
* This program and the accompanying materials are made available under the
* terms of the Apache License Version 2.0 which is available at
* https://www.apache.org/licenses/LICENSE-2.0
*
* SPDX-License-Identifier: Apache-2.0
*
* Contributors:
* Erik Verhoeven - initial API and implementation
********************************************************************************/
#ifndef LOCAL_MEM_MGR_H
#define LOCAL_MEM_MGR_H
#define SDV_CORE_H
#define SDV_NO_LOADER
#define NO_SDV_CORE_FUNC
#include "../export/interfaces/core.h"
#include "../export//support/interface_ptr.h"

View File

@@ -1,3 +1,16 @@
/********************************************************************************
* Copyright (c) 2025-2026 ZF Friedrichshafen AG
*
* This program and the accompanying materials are made available under the
* terms of the Apache License Version 2.0 which is available at
* https://www.apache.org/licenses/LICENSE-2.0
*
* SPDX-License-Identifier: Apache-2.0
*
* Contributors:
* Erik Verhoeven - initial API and implementation
********************************************************************************/
#ifndef WILDCARD_MATCH_H
#define WILDCARD_MATCH_H
@@ -32,8 +45,8 @@
* extension ending with "n" match.
* - "subdir?_*" - all files from a directory starting with the name "subdir" followed by a single digit or character, followed
* with a "_" and zero or more characters.
* - "**\\/file*.bin" - all files starting with the name "file" followed by zero or more characters and the extension ".bin" in this
* and any subdirectory.
* - "**\\/file*.bin" - all files starting with the name "file" followed by zero or more characters and the extension ".bin" in
* this and any subdirectory.
* @param[in] rpathRel Reference to the relative path to check for a match.
* @param[in] rssPattern Reference to the string containing the pattern to match.
* @return Returns whether the path matches.

View File

@@ -1,3 +1,16 @@
/********************************************************************************
* Copyright (c) 2025-2026 ZF Friedrichshafen AG
*
* This program and the accompanying materials are made available under the
* terms of the Apache License Version 2.0 which is available at
* https://www.apache.org/licenses/LICENSE-2.0
*
* SPDX-License-Identifier: Apache-2.0
*
* Contributors:
* Erik Verhoeven - initial API and implementation
********************************************************************************/
#ifndef PROCESS_WATCHDOG_H
#define PROCESS_WATCHDOG_H
@@ -41,6 +54,7 @@
#else
#error The OS is not supported!
#endif
#include "exec_dir_helper.h"
/**
* @brief Process watchdog class; ends the process when runtime duration has superseded (as is the case when a deadlock has
@@ -125,6 +139,8 @@ private:
if (IsDebuggerPresent()) continue;
std::cerr << "WATCHDOG TERMINATION ENFORCED!!!" << std::endl;
std::cerr << GetExecFilename().generic_u8string() << " will be terminated due to inactivity of " <<
std::chrono::duration_cast<std::chrono::seconds>(tpNow - tpStart).count() << " seconds... " << std::endl;
std::cerr.flush();
#ifdef _WIN32
// Get the current process handle

View File

@@ -1,3 +1,16 @@
/********************************************************************************
* Copyright (c) 2025-2026 ZF Friedrichshafen AG
*
* This program and the accompanying materials are made available under the
* terms of the Apache License Version 2.0 which is available at
* https://www.apache.org/licenses/LICENSE-2.0
*
* SPDX-License-Identifier: Apache-2.0
*
* Contributors:
* Erik Verhoeven - initial API and implementation
********************************************************************************/
#include "scheduler.h"
#include <cassert>

View File

@@ -1,3 +1,16 @@
/********************************************************************************
* Copyright (c) 2025-2026 ZF Friedrichshafen AG
*
* This program and the accompanying materials are made available under the
* terms of the Apache License Version 2.0 which is available at
* https://www.apache.org/licenses/LICENSE-2.0
*
* SPDX-License-Identifier: Apache-2.0
*
* Contributors:
* Erik Verhoeven - initial API and implementation
********************************************************************************/
#ifndef THREAD_POOL_H
#define THREAD_POOL_H

View File

@@ -1,3 +1,16 @@
/********************************************************************************
* Copyright (c) 2025-2026 ZF Friedrichshafen AG
*
* This program and the accompanying materials are made available under the
* terms of the Apache License Version 2.0 which is available at
* https://www.apache.org/licenses/LICENSE-2.0
*
* SPDX-License-Identifier: Apache-2.0
*
* Contributors:
* Erik Verhoeven - initial API and implementation
********************************************************************************/
#ifndef TIME_TRACKER_H
#define TIME_TRACKER_H

View File

@@ -1,3 +1,16 @@
/********************************************************************************
* Copyright (c) 2025-2026 ZF Friedrichshafen AG
*
* This program and the accompanying materials are made available under the
* terms of the Apache License Version 2.0 which is available at
* https://www.apache.org/licenses/LICENSE-2.0
*
* SPDX-License-Identifier: Apache-2.0
*
* Contributors:
* Erik Verhoeven - initial API and implementation
********************************************************************************/
#ifndef TRACE_H
#define TRACE_H

View File

@@ -1,3 +1,16 @@
/********************************************************************************
* Copyright (c) 2025-2026 ZF Friedrichshafen AG
*
* This program and the accompanying materials are made available under the
* terms of the Apache License Version 2.0 which is available at
* https://www.apache.org/licenses/LICENSE-2.0
*
* SPDX-License-Identifier: Apache-2.0
*
* Contributors:
* Erik Verhoeven - initial API and implementation
********************************************************************************/
#include "trace_fifo.h"
// Include the platform support

View File

@@ -1,3 +1,16 @@
/********************************************************************************
* Copyright (c) 2025-2026 ZF Friedrichshafen AG
*
* This program and the accompanying materials are made available under the
* terms of the Apache License Version 2.0 which is available at
* https://www.apache.org/licenses/LICENSE-2.0
*
* SPDX-License-Identifier: Apache-2.0
*
* Contributors:
* Erik Verhoeven - initial API and implementation
********************************************************************************/
#ifndef TRACE_FIFO_H
#define TRACE_FIFO_H

View File

@@ -1,3 +1,16 @@
/********************************************************************************
* Copyright (c) 2025-2026 ZF Friedrichshafen AG
*
* This program and the accompanying materials are made available under the
* terms of the Apache License Version 2.0 which is available at
* https://www.apache.org/licenses/LICENSE-2.0
*
* SPDX-License-Identifier: Apache-2.0
*
* Contributors:
* Erik Verhoeven - initial API and implementation
********************************************************************************/
#if defined __unix__
#ifndef INCLUDE_TRACE_FIFO_PLATFORM

View File

@@ -1,3 +1,16 @@
/********************************************************************************
* Copyright (c) 2025-2026 ZF Friedrichshafen AG
*
* This program and the accompanying materials are made available under the
* terms of the Apache License Version 2.0 which is available at
* https://www.apache.org/licenses/LICENSE-2.0
*
* SPDX-License-Identifier: Apache-2.0
*
* Contributors:
* Erik Verhoeven - initial API and implementation
********************************************************************************/
#if !defined TRACE_FIFO_POSIX_H && defined __unix__
#define TRACE_FIFO_POSIX_H

View File

@@ -1,3 +1,16 @@
/********************************************************************************
* Copyright (c) 2025-2026 ZF Friedrichshafen AG
*
* This program and the accompanying materials are made available under the
* terms of the Apache License Version 2.0 which is available at
* https://www.apache.org/licenses/LICENSE-2.0
*
* SPDX-License-Identifier: Apache-2.0
*
* Contributors:
* Erik Verhoeven - initial API and implementation
********************************************************************************/
#if defined _WIN32
#ifndef INCLUDE_TRACE_FIFO_PLATFORM

View File

@@ -1,3 +1,16 @@
/********************************************************************************
* Copyright (c) 2025-2026 ZF Friedrichshafen AG
*
* This program and the accompanying materials are made available under the
* terms of the Apache License Version 2.0 which is available at
* https://www.apache.org/licenses/LICENSE-2.0
*
* SPDX-License-Identifier: Apache-2.0
*
* Contributors:
* Erik Verhoeven - initial API and implementation
********************************************************************************/
#if !defined TRACE_FIFO_WINDOWS_H && defined _WIN32
#define TRACE_FIFO_WINDOWS_H