mirror of
https://github.com/eclipse-openvehicle-api/openvehicle-api.git
synced 2026-06-30 21:05:10 +00:00
Update sdv_packager (#6)
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
/**
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user