main
Piotr Lewandowski 2023-10-02 20:21:58 +02:00
rodzic 66d8120b7d
commit fd38eee6d7
6 zmienionych plików z 1202 dodań i 258 usunięć

440
paker.hpp
Wyświetl plik

@ -9,267 +9,267 @@
namespace Protocol
{
namespace Paker
{
struct TFormatElement
{
const char c8Id;
const unsigned int u32Base;
const char *C8CharcterMap;
};
namespace Paker
{
struct TFormatElement
{
const char c8Id;
const unsigned int u32Base;
const char *C8CharcterMap;
};
// compile time format info
template <unsigned int ElmSize, const TFormatElement (&FormatElemets)[ElmSize], const char pattern[]>
class CFormat
{
static constexpr auto PatternLen = strlen(pattern);
using ArrType = const char[PatternLen];
// compile time format info
template <unsigned int ElmSize, const TFormatElement (&FormatElemets)[ElmSize], const char pattern[]>
class CFormat
{
static constexpr auto PatternLen = strlen(pattern);
using ArrType = const char[PatternLen];
public:
static constexpr auto GetLen() { return PatternLen; }
static constexpr auto GetPattern() { return pattern; }
static constexpr auto GetSeqNrIdx()
{
for (unsigned int i = 0; i < GetLen(); i++)
{
if (pattern[i] == 'S')
return i;
}
return (unsigned int)UINT32_MAX;
}
public:
static constexpr auto GetLen() { return PatternLen; }
static constexpr auto GetPattern() { return pattern; }
static constexpr auto GetSeqNrIdx()
{
for (unsigned int i = 0; i < GetLen(); i++)
{
if (pattern[i] == 'S')
return i;
}
return (unsigned int)UINT32_MAX;
}
static constexpr unsigned int GetBase(unsigned int u32Idx)
{
if (u32Idx >= GetLen())
return 0;
static constexpr unsigned int GetBase(unsigned int u32Idx)
{
if (u32Idx >= GetLen())
return 0;
return GetBase(pattern[u32Idx]);
}
return GetBase(pattern[u32Idx]);
}
static constexpr unsigned int GetBase(const char sign)
{
for (const auto &element : FormatElemets)
{
if (element.c8Id == sign)
return element.u32Base;
}
static constexpr unsigned int GetBase(const char sign)
{
for (const auto &element : FormatElemets)
{
if (element.c8Id == sign)
return element.u32Base;
}
return 1;
}
return 1;
}
static constexpr auto GetMaxPermutations()
{
return GetPermutationsRightSide(0);
}
static constexpr auto GetMaxPermutations()
{
return GetPermutationsRightSide(0);
}
static constexpr auto GetPermutationsRightSide(unsigned int u32Idx)
{
unsigned long long u64Permutations = 1;
for (unsigned int i = u32Idx; i < GetLen(); i++)
{
u64Permutations *= GetBase(i);
}
static constexpr auto GetPermutationsRightSide(unsigned int u32Idx)
{
unsigned long long u64Permutations = 1;
for (unsigned int i = u32Idx; i < GetLen(); i++)
{
u64Permutations *= GetBase(i);
}
return u64Permutations;
}
return u64Permutations;
}
static constexpr auto GetBitSizeFloor()
{
return (unsigned int)floor(log2(GetMaxPermutations()));
}
static constexpr auto GetBitSizeFloor()
{
return (unsigned int)floor(log2(GetMaxPermutations()));
}
static constexpr const TFormatElement &GetFormatElement(unsigned int u32FormatIdx)
{
for (const auto &element : FormatElemets)
{
if (element.c8Id == pattern[u32FormatIdx])
return element;
}
static constexpr const TFormatElement &GetFormatElement(unsigned int u32FormatIdx)
{
for (const auto &element : FormatElemets)
{
if (element.c8Id == pattern[u32FormatIdx])
return element;
}
return FormatElemets[0];
}
return FormatElemets[0];
}
static constexpr auto CustomBaseMap(unsigned int u32FormatIdx, unsigned int u32Val)
{
const auto &PatternElement = GetFormatElement(u32FormatIdx);
if (u32Val >= PatternElement.u32Base || !PatternElement.C8CharcterMap)
return PatternElement.c8Id;
static constexpr auto CustomBaseMap(unsigned int u32FormatIdx, unsigned int u32Val)
{
const auto &PatternElement = GetFormatElement(u32FormatIdx);
if (u32Val >= PatternElement.u32Base || !PatternElement.C8CharcterMap)
return PatternElement.c8Id;
return PatternElement.C8CharcterMap[u32Val];
}
return PatternElement.C8CharcterMap[u32Val];
}
static constexpr unsigned int CustomBaseToDec(unsigned int u32FormatIdx, char c8Input)
{
const auto &PatternElement = GetFormatElement(u32FormatIdx);
if (!PatternElement.C8CharcterMap || PatternElement.c8Id == 'S')
return 0;
static constexpr unsigned int CustomBaseToDec(unsigned int u32FormatIdx, char c8Input)
{
const auto &PatternElement = GetFormatElement(u32FormatIdx);
if (!PatternElement.C8CharcterMap || PatternElement.c8Id == 'S')
return 0;
for (unsigned int i = 0; i < strlen(PatternElement.C8CharcterMap); i++)
{
if (PatternElement.C8CharcterMap[i] == c8Input)
{
return i;
}
}
for (unsigned int i = 0; i < strlen(PatternElement.C8CharcterMap); i++)
{
if (PatternElement.C8CharcterMap[i] == c8Input)
{
return i;
}
}
return 0;
}
return 0;
}
static constexpr auto SequenceNrMap(unsigned char u8SequenceNr)
{
auto const &SequenceFormatElem = GetFormatElement(GetSeqNrIdx());
return SequenceFormatElem.C8CharcterMap[u8SequenceNr % strlen(SequenceFormatElem.C8CharcterMap)];
}
static constexpr auto SequenceNrMap(unsigned char u8SequenceNr)
{
auto const &SequenceFormatElem = GetFormatElement(GetSeqNrIdx());
return SequenceFormatElem.C8CharcterMap[u8SequenceNr % strlen(SequenceFormatElem.C8CharcterMap)];
}
static constexpr char GetPatternCharacter(unsigned int u32Idx)
{
if (u32Idx >= GetLen())
{
return ' ';
}
static constexpr char GetPatternCharacter(unsigned int u32Idx)
{
if (u32Idx >= GetLen())
{
return ' ';
}
return pattern[u32Idx];
}
};
return pattern[u32Idx];
}
};
template <class FormatT, unsigned int BuffersCnt>
class TEncoder
{
char (&OutBuffors)[BuffersCnt][FormatT::GetLen() + 1];
template <class FormatT, unsigned int BuffersCnt>
class TEncoder
{
char (&OutBuffors)[BuffersCnt][FormatT::GetLen() + 1];
public:
template <unsigned int N>
TEncoder(char (&outStrArrs)[BuffersCnt][N]) : OutBuffors(outStrArrs){};
public:
template <unsigned int N>
TEncoder(char (&outStrArrs)[BuffersCnt][N]) : OutBuffors(outStrArrs){};
unsigned int EncodeBigEndian(unsigned char *p8Data, unsigned int u32BitSize) // conisering little endian arch
{
unsigned int u32SrcBitIdx = 0;
const auto requeredFrames = (u32BitSize + FormatT::GetBitSizeFloor() - 1) / FormatT::GetBitSizeFloor();
for (unsigned int u32Frame = 0; u32Frame < requeredFrames; u32Frame++)
{
unsigned long long u64Temp = 0;
BitwiseCopy(&u64Temp, 0, p8Data, u32SrcBitIdx, std::min(FormatT::GetBitSizeFloor(), u32BitSize - u32SrcBitIdx));
for (unsigned int u32SymbolIdx = 0; u32SymbolIdx < FormatT::GetLen(); u32SymbolIdx++)
{
if (u32SymbolIdx == FormatT::GetSeqNrIdx())
{
OutBuffors[u32Frame][u32SymbolIdx] = FormatT::SequenceNrMap(u32Frame);
continue;
}
unsigned int EncodeBigEndian(unsigned char *p8Data, unsigned int u32BitSize) // conisering little endian arch
{
unsigned int u32SrcBitIdx = 0;
const auto requeredFrames = (u32BitSize + FormatT::GetBitSizeFloor() - 1) / FormatT::GetBitSizeFloor();
for (unsigned int u32Frame = 0; u32Frame < requeredFrames; u32Frame++)
{
unsigned long long u64Temp = 0;
BitwiseCopy(&u64Temp, 0, p8Data, u32SrcBitIdx, std::min(FormatT::GetBitSizeFloor(), u32BitSize - u32SrcBitIdx));
for (unsigned int u32SymbolIdx = 0; u32SymbolIdx < FormatT::GetLen(); u32SymbolIdx++)
{
if (u32SymbolIdx == FormatT::GetSeqNrIdx())
{
OutBuffors[u32Frame][u32SymbolIdx] = FormatT::SequenceNrMap(u32Frame);
continue;
}
auto const SymbolBase = FormatT::GetBase(u32SymbolIdx);
if (SymbolBase < 2)
{
OutBuffors[u32Frame][u32SymbolIdx] = FormatT::GetPatternCharacter(u32SymbolIdx);
continue;
}
auto const SymbolBase = FormatT::GetBase(u32SymbolIdx);
if (SymbolBase < 2)
{
OutBuffors[u32Frame][u32SymbolIdx] = FormatT::GetPatternCharacter(u32SymbolIdx);
continue;
}
unsigned long long u64CurrentSymbol = u64Temp / FormatT::GetPermutationsRightSide(u32SymbolIdx + 1);
u64CurrentSymbol %= SymbolBase;
OutBuffors[u32Frame][u32SymbolIdx] = FormatT::CustomBaseMap(u32SymbolIdx, u64CurrentSymbol);
}
unsigned long long u64CurrentSymbol = u64Temp / FormatT::GetPermutationsRightSide(u32SymbolIdx + 1);
u64CurrentSymbol %= SymbolBase;
OutBuffors[u32Frame][u32SymbolIdx] = FormatT::CustomBaseMap(u32SymbolIdx, u64CurrentSymbol);
}
u32SrcBitIdx += FormatT::GetBitSizeFloor();
}
u32SrcBitIdx += FormatT::GetBitSizeFloor();
}
return requeredFrames;
}
return requeredFrames;
}
unsigned int DecodeBigEndian(unsigned char u8FramesToDecode, unsigned char *pOutData, unsigned int u32OutBuffLen)
{
// unsigned int
if (u32OutBuffLen * 8 < u8FramesToDecode * FormatT::GetBitSizeFloor())
{
return 0;
}
unsigned int DecodeBigEndian(unsigned char u8FramesToDecode, unsigned char *pOutData, unsigned int u32OutBuffLen)
{
// unsigned int
if (u32OutBuffLen * 8 < u8FramesToDecode * FormatT::GetBitSizeFloor())
{
return 0;
}
unsigned int u32OutDataBitIdx = 0;
for (unsigned int u32Frame = 0; u32Frame < u8FramesToDecode; u32Frame++)
{
unsigned long long u64Temp = 0;
for (unsigned int u32SymbolIdx = 0; u32SymbolIdx < FormatT::GetLen(); u32SymbolIdx++)
{
if (u32SymbolIdx == FormatT::GetSeqNrIdx())
continue;
unsigned int u32OutDataBitIdx = 0;
for (unsigned int u32Frame = 0; u32Frame < u8FramesToDecode; u32Frame++)
{
unsigned long long u64Temp = 0;
for (unsigned int u32SymbolIdx = 0; u32SymbolIdx < FormatT::GetLen(); u32SymbolIdx++)
{
if (u32SymbolIdx == FormatT::GetSeqNrIdx())
continue;
u64Temp += FormatT::CustomBaseToDec(u32SymbolIdx, OutBuffors[u32Frame][u32SymbolIdx]) *
FormatT::GetPermutationsRightSide(u32SymbolIdx + 1);
}
u64Temp += FormatT::CustomBaseToDec(u32SymbolIdx, OutBuffors[u32Frame][u32SymbolIdx]) *
FormatT::GetPermutationsRightSide(u32SymbolIdx + 1);
}
BitwiseCopy(pOutData, u32OutDataBitIdx, (unsigned char *)&u64Temp, 0, FormatT::GetBitSizeFloor());
u32OutDataBitIdx += FormatT::GetBitSizeFloor();
}
BitwiseCopy(pOutData, u32OutDataBitIdx, (unsigned char *)&u64Temp, 0, FormatT::GetBitSizeFloor());
u32OutDataBitIdx += FormatT::GetBitSizeFloor();
}
return u32OutDataBitIdx;
}
return u32OutDataBitIdx;
}
private:
void BitwiseCopy(void *pDest, unsigned int u32DestBitIdx, const unsigned char *pSource, unsigned int u32SourceBitIdx, unsigned int u32BitsToCopy)
{
while (u32BitsToCopy--)
{
unsigned char u8Bit = pSource[u32SourceBitIdx / 8] >> (u32SourceBitIdx % 8);
u8Bit &= 1;
private:
void BitwiseCopy(void *pDest, unsigned int u32DestBitIdx, const unsigned char *pSource, unsigned int u32SourceBitIdx, unsigned int u32BitsToCopy)
{
while (u32BitsToCopy--)
{
unsigned char u8Bit = pSource[u32SourceBitIdx / 8] >> (u32SourceBitIdx % 8);
u8Bit &= 1;
unsigned char *p8Dest = reinterpret_cast<unsigned char *>(pDest);
p8Dest[u32DestBitIdx / 8] &= ~(1 << (u32DestBitIdx % 8));
p8Dest[u32DestBitIdx / 8] |= (u8Bit << (u32DestBitIdx % 8));
u32DestBitIdx++;
u32SourceBitIdx++;
}
}
};
unsigned char *p8Dest = reinterpret_cast<unsigned char *>(pDest);
p8Dest[u32DestBitIdx / 8] &= ~(1 << (u32DestBitIdx % 8));
p8Dest[u32DestBitIdx / 8] |= (u8Bit << (u32DestBitIdx % 8));
u32DestBitIdx++;
u32SourceBitIdx++;
}
}
};
struct TPatternFormats
{
TPatternFormats() = delete;
static constexpr auto DefElmCnt = 6;
static constexpr TFormatElement DefaultFormatElements[DefElmCnt] =
{
{'0', 1, " "}, // nothing
{'S', 1, "0123456789"}, // sequence number
{'x', 26, "ABCDEFGHIJKLMNOPRSTQUVWXYZ"},
{'X', 36, "ABCDEFGHIJKLMNOPRSTQUWXYVZ0123456789"},
{'N', 10, "1234567890"},
{'n', 2, "01"},
};
};
struct TPatternFormats
{
TPatternFormats() = delete;
static constexpr auto DefElmCnt = 6;
static constexpr TFormatElement DefaultFormatElements[DefElmCnt] =
{
{'0', 1, " "}, // nothing
{'S', 1, "0123456789"}, // sequence number
{'x', 26, "ABCDEFGHIJKLMNOPQRSTUVWXYZ"},
{'X', 36, "ABCDEFGHIJKLMNOPRSTQUWXYVZ0123456789"},
{'l', 18, "ABCDEFGHIJKLMNOPQR"},
{'U', 10, "0123456789"},
};
};
template<const char pattern[]>
using CFormatWithDefaultElements = CFormat<TPatternFormats::DefElmCnt, TPatternFormats::DefaultFormatElements, pattern>;
template <const char pattern[]>
using CFormatWithDefaultElements = CFormat<TPatternFormats::DefElmCnt, TPatternFormats::DefaultFormatElements, pattern>;
class CFT4PacketFactory
{
static constexpr char FT4FormatStr[] = "CQ nQSxxx xxNN";
static constexpr auto MaxFt4Subframes = 8;
class CFT4PacketFactory
{
static constexpr char FT4FormatStr[] = "CQ 4NSxxx llUU";
static constexpr auto MaxFt4Subframes = 8;
public:
using TFT4Format = CFormatWithDefaultElements<FT4FormatStr>;
using CFT4Encoder = TEncoder<TFT4Format, MaxFt4Subframes>;
char C8Frames[MaxFt4Subframes][TFT4Format::GetLen() + 1];
CFT4Encoder FT4Encoder;
public:
using TFT4Format = CFormatWithDefaultElements<FT4FormatStr>;
using CFT4Encoder = TEncoder<TFT4Format, MaxFt4Subframes>;
char C8Frames[MaxFt4Subframes][TFT4Format::GetLen() + 1];
CFT4Encoder FT4Encoder;
unsigned char u8EncodedFrames = 0;
CFT4PacketFactory() : FT4Encoder(C8Frames){};
unsigned char u8EncodedFrames = 0;
CFT4PacketFactory() : FT4Encoder(C8Frames){};
const char *GetPacket(unsigned int u32Idx)
{
if (u32Idx >= MaxFt4Subframes)
return "NOT VALID";
const char *GetPacket(unsigned int u32Idx)
{
if (u32Idx >= MaxFt4Subframes)
return "NOT VALID";
return C8Frames[u32Idx];
}
return C8Frames[u32Idx];
}
unsigned int EncodeRaw(unsigned char *p8Data, unsigned int u32BitLen)
{
u8EncodedFrames = FT4Encoder.EncodeBigEndian(p8Data, u32BitLen);
return u8EncodedFrames;
}
unsigned int EncodeRaw(unsigned char *p8Data, unsigned int u32BitLen)
{
u8EncodedFrames = FT4Encoder.EncodeBigEndian(p8Data, u32BitLen);
return u8EncodedFrames;
}
unsigned int DecodeFrames(unsigned char u8FramesToDecode, unsigned char *pOutData, unsigned int u32OutBuffLen)
{
return FT4Encoder.DecodeBigEndian(u8FramesToDecode, pOutData, u32OutBuffLen);
}
};
}
unsigned int DecodeFrames(unsigned char u8FramesToDecode, unsigned char *pOutData, unsigned int u32OutBuffLen)
{
return FT4Encoder.DecodeBigEndian(u8FramesToDecode, pOutData, u32OutBuffLen);
}
};
}
}

Wyświetl plik

@ -0,0 +1,234 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.25
CMakeFiles/paker_test.dir/paker_test.cpp.o
/home/piotr/dev/wspaker/utils/paker_test.cpp
/usr/include/stdc-predef.h
/usr/include/c++/11/cstdint
/usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h
/usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h
/usr/include/features.h
/usr/include/features-time64.h
/usr/include/x86_64-linux-gnu/bits/wordsize.h
/usr/include/x86_64-linux-gnu/bits/timesize.h
/usr/include/x86_64-linux-gnu/sys/cdefs.h
/usr/include/x86_64-linux-gnu/bits/long-double.h
/usr/include/x86_64-linux-gnu/gnu/stubs.h
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h
/usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h
/usr/include/c++/11/pstl/pstl_config.h
/usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h
/usr/include/stdint.h
/usr/include/x86_64-linux-gnu/bits/libc-header-start.h
/usr/include/x86_64-linux-gnu/bits/types.h
/usr/include/x86_64-linux-gnu/bits/typesizes.h
/usr/include/x86_64-linux-gnu/bits/time64.h
/usr/include/x86_64-linux-gnu/bits/wchar.h
/usr/include/x86_64-linux-gnu/bits/stdint-intn.h
/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h
/home/piotr/dev/wspaker/paker.hpp
/usr/include/string.h
/usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h
/usr/include/x86_64-linux-gnu/bits/types/locale_t.h
/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h
/usr/include/strings.h
/usr/include/c++/11/math.h
/usr/include/c++/11/cmath
/usr/include/c++/11/bits/cpp_type_traits.h
/usr/include/c++/11/ext/type_traits.h
/usr/include/math.h
/usr/include/x86_64-linux-gnu/bits/math-vector.h
/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h
/usr/include/x86_64-linux-gnu/bits/floatn.h
/usr/include/x86_64-linux-gnu/bits/floatn-common.h
/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h
/usr/include/x86_64-linux-gnu/bits/fp-logb.h
/usr/include/x86_64-linux-gnu/bits/fp-fast.h
/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h
/usr/include/x86_64-linux-gnu/bits/mathcalls.h
/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h
/usr/include/x86_64-linux-gnu/bits/iscanonical.h
/usr/include/c++/11/bits/std_abs.h
/usr/include/stdlib.h
/usr/include/x86_64-linux-gnu/bits/waitflags.h
/usr/include/x86_64-linux-gnu/bits/waitstatus.h
/usr/include/x86_64-linux-gnu/sys/types.h
/usr/include/x86_64-linux-gnu/bits/types/clock_t.h
/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h
/usr/include/x86_64-linux-gnu/bits/types/time_t.h
/usr/include/x86_64-linux-gnu/bits/types/timer_t.h
/usr/include/endian.h
/usr/include/x86_64-linux-gnu/bits/endian.h
/usr/include/x86_64-linux-gnu/bits/endianness.h
/usr/include/x86_64-linux-gnu/bits/byteswap.h
/usr/include/x86_64-linux-gnu/bits/uintn-identity.h
/usr/include/x86_64-linux-gnu/sys/select.h
/usr/include/x86_64-linux-gnu/bits/select.h
/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h
/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h
/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h
/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h
/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h
/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h
/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h
/usr/include/x86_64-linux-gnu/bits/struct_mutex.h
/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h
/usr/include/alloca.h
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h
/usr/include/c++/11/bits/specfun.h
/usr/include/c++/11/bits/stl_algobase.h
/usr/include/c++/11/bits/functexcept.h
/usr/include/c++/11/bits/exception_defines.h
/usr/include/c++/11/ext/numeric_traits.h
/usr/include/c++/11/bits/stl_pair.h
/usr/include/c++/11/bits/move.h
/usr/include/c++/11/type_traits
/usr/include/c++/11/bits/stl_iterator_base_types.h
/usr/include/c++/11/bits/stl_iterator_base_funcs.h
/usr/include/c++/11/bits/concept_check.h
/usr/include/c++/11/debug/assertions.h
/usr/include/c++/11/bits/stl_iterator.h
/usr/include/c++/11/bits/ptr_traits.h
/usr/include/c++/11/debug/debug.h
/usr/include/c++/11/bits/predefined_ops.h
/usr/include/c++/11/limits
/usr/include/c++/11/tr1/gamma.tcc
/usr/include/c++/11/tr1/special_function_util.h
/usr/include/c++/11/tr1/bessel_function.tcc
/usr/include/c++/11/tr1/beta_function.tcc
/usr/include/c++/11/tr1/ell_integral.tcc
/usr/include/c++/11/tr1/exp_integral.tcc
/usr/include/c++/11/tr1/hypergeometric.tcc
/usr/include/c++/11/tr1/legendre_function.tcc
/usr/include/c++/11/tr1/modified_bessel_func.tcc
/usr/include/c++/11/tr1/poly_hermite.tcc
/usr/include/c++/11/tr1/poly_laguerre.tcc
/usr/include/c++/11/tr1/riemann_zeta.tcc
/usr/include/c++/11/iostream
/usr/include/c++/11/ostream
/usr/include/c++/11/ios
/usr/include/c++/11/iosfwd
/usr/include/c++/11/bits/stringfwd.h
/usr/include/c++/11/bits/memoryfwd.h
/usr/include/c++/11/bits/postypes.h
/usr/include/c++/11/cwchar
/usr/include/wchar.h
/usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h
/usr/include/x86_64-linux-gnu/bits/types/wint_t.h
/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h
/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h
/usr/include/x86_64-linux-gnu/bits/types/__FILE.h
/usr/include/x86_64-linux-gnu/bits/types/FILE.h
/usr/include/c++/11/exception
/usr/include/c++/11/bits/exception.h
/usr/include/c++/11/bits/exception_ptr.h
/usr/include/c++/11/bits/cxxabi_init_exception.h
/usr/include/c++/11/typeinfo
/usr/include/c++/11/bits/hash_bytes.h
/usr/include/c++/11/new
/usr/include/c++/11/bits/nested_exception.h
/usr/include/c++/11/bits/char_traits.h
/usr/include/c++/11/bits/localefwd.h
/usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h
/usr/include/c++/11/clocale
/usr/include/locale.h
/usr/include/x86_64-linux-gnu/bits/locale.h
/usr/include/c++/11/cctype
/usr/include/ctype.h
/usr/include/c++/11/bits/ios_base.h
/usr/include/c++/11/ext/atomicity.h
/usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h
/usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h
/usr/include/pthread.h
/usr/include/sched.h
/usr/include/x86_64-linux-gnu/bits/sched.h
/usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h
/usr/include/x86_64-linux-gnu/bits/cpu-set.h
/usr/include/time.h
/usr/include/x86_64-linux-gnu/bits/time.h
/usr/include/x86_64-linux-gnu/bits/timex.h
/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h
/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h
/usr/include/x86_64-linux-gnu/bits/setjmp.h
/usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h
/usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h
/usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h
/usr/include/x86_64-linux-gnu/sys/single_threaded.h
/usr/include/c++/11/bits/locale_classes.h
/usr/include/c++/11/string
/usr/include/c++/11/bits/allocator.h
/usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h
/usr/include/c++/11/ext/new_allocator.h
/usr/include/c++/11/bits/ostream_insert.h
/usr/include/c++/11/bits/cxxabi_forced.h
/usr/include/c++/11/bits/stl_function.h
/usr/include/c++/11/backward/binders.h
/usr/include/c++/11/bits/range_access.h
/usr/include/c++/11/initializer_list
/usr/include/c++/11/bits/basic_string.h
/usr/include/c++/11/ext/alloc_traits.h
/usr/include/c++/11/bits/alloc_traits.h
/usr/include/c++/11/bits/stl_construct.h
/usr/include/c++/11/string_view
/usr/include/c++/11/bits/functional_hash.h
/usr/include/c++/11/bits/string_view.tcc
/usr/include/c++/11/ext/string_conversions.h
/usr/include/c++/11/cstdlib
/usr/include/c++/11/cstdio
/usr/include/stdio.h
/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h
/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h
/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h
/usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h
/usr/include/c++/11/cerrno
/usr/include/errno.h
/usr/include/x86_64-linux-gnu/bits/errno.h
/usr/include/linux/errno.h
/usr/include/x86_64-linux-gnu/asm/errno.h
/usr/include/asm-generic/errno.h
/usr/include/asm-generic/errno-base.h
/usr/include/x86_64-linux-gnu/bits/types/error_t.h
/usr/include/c++/11/bits/charconv.h
/usr/include/c++/11/bits/basic_string.tcc
/usr/include/c++/11/bits/locale_classes.tcc
/usr/include/c++/11/system_error
/usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h
/usr/include/c++/11/stdexcept
/usr/include/c++/11/streambuf
/usr/include/c++/11/bits/streambuf.tcc
/usr/include/c++/11/bits/basic_ios.h
/usr/include/c++/11/bits/locale_facets.h
/usr/include/c++/11/cwctype
/usr/include/wctype.h
/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h
/usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h
/usr/include/c++/11/bits/streambuf_iterator.h
/usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h
/usr/include/c++/11/bits/locale_facets.tcc
/usr/include/c++/11/bits/basic_ios.tcc
/usr/include/c++/11/bits/ostream.tcc
/usr/include/c++/11/istream
/usr/include/c++/11/bits/istream.tcc
/usr/include/c++/11/iomanip
/usr/include/c++/11/locale
/usr/include/c++/11/bits/locale_facets_nonio.h
/usr/include/c++/11/ctime
/usr/include/x86_64-linux-gnu/c++/11/bits/time_members.h
/usr/include/x86_64-linux-gnu/c++/11/bits/messages_members.h
/usr/include/libintl.h
/usr/include/c++/11/bits/codecvt.h
/usr/include/c++/11/bits/locale_facets_nonio.tcc
/usr/include/c++/11/bits/locale_conv.h
/usr/include/c++/11/bits/unique_ptr.h
/usr/include/c++/11/utility
/usr/include/c++/11/bits/stl_relops.h
/usr/include/c++/11/tuple
/usr/include/c++/11/array
/usr/include/c++/11/bits/uses_allocator.h
/usr/include/c++/11/bits/invoke.h
/usr/include/c++/11/bits/quoted_string.h
/usr/include/c++/11/sstream
/usr/include/c++/11/bits/sstream.tcc

Wyświetl plik

@ -1,2 +1,691 @@
# Empty compiler generated dependencies file for paker_test.
# This may be replaced when dependencies are built.
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.25
CMakeFiles/paker_test.dir/paker_test.cpp.o: /home/piotr/dev/wspaker/utils/paker_test.cpp \
/usr/include/stdc-predef.h \
/usr/include/c++/11/cstdint \
/usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \
/usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \
/usr/include/features.h \
/usr/include/features-time64.h \
/usr/include/x86_64-linux-gnu/bits/wordsize.h \
/usr/include/x86_64-linux-gnu/bits/timesize.h \
/usr/include/x86_64-linux-gnu/sys/cdefs.h \
/usr/include/x86_64-linux-gnu/bits/long-double.h \
/usr/include/x86_64-linux-gnu/gnu/stubs.h \
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
/usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \
/usr/include/c++/11/pstl/pstl_config.h \
/usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h \
/usr/include/stdint.h \
/usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
/usr/include/x86_64-linux-gnu/bits/types.h \
/usr/include/x86_64-linux-gnu/bits/typesizes.h \
/usr/include/x86_64-linux-gnu/bits/time64.h \
/usr/include/x86_64-linux-gnu/bits/wchar.h \
/usr/include/x86_64-linux-gnu/bits/stdint-intn.h \
/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \
/home/piotr/dev/wspaker/paker.hpp \
/usr/include/string.h \
/usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \
/usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
/usr/include/strings.h \
/usr/include/c++/11/math.h \
/usr/include/c++/11/cmath \
/usr/include/c++/11/bits/cpp_type_traits.h \
/usr/include/c++/11/ext/type_traits.h \
/usr/include/math.h \
/usr/include/x86_64-linux-gnu/bits/math-vector.h \
/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
/usr/include/x86_64-linux-gnu/bits/floatn.h \
/usr/include/x86_64-linux-gnu/bits/floatn-common.h \
/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
/usr/include/x86_64-linux-gnu/bits/fp-logb.h \
/usr/include/x86_64-linux-gnu/bits/fp-fast.h \
/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
/usr/include/x86_64-linux-gnu/bits/mathcalls.h \
/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \
/usr/include/x86_64-linux-gnu/bits/iscanonical.h \
/usr/include/c++/11/bits/std_abs.h \
/usr/include/stdlib.h \
/usr/include/x86_64-linux-gnu/bits/waitflags.h \
/usr/include/x86_64-linux-gnu/bits/waitstatus.h \
/usr/include/x86_64-linux-gnu/sys/types.h \
/usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
/usr/include/x86_64-linux-gnu/bits/types/time_t.h \
/usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
/usr/include/endian.h \
/usr/include/x86_64-linux-gnu/bits/endian.h \
/usr/include/x86_64-linux-gnu/bits/endianness.h \
/usr/include/x86_64-linux-gnu/bits/byteswap.h \
/usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
/usr/include/x86_64-linux-gnu/sys/select.h \
/usr/include/x86_64-linux-gnu/bits/select.h \
/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \
/usr/include/x86_64-linux-gnu/bits/struct_mutex.h \
/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \
/usr/include/alloca.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
/usr/include/c++/11/bits/specfun.h \
/usr/include/c++/11/bits/stl_algobase.h \
/usr/include/c++/11/bits/functexcept.h \
/usr/include/c++/11/bits/exception_defines.h \
/usr/include/c++/11/ext/numeric_traits.h \
/usr/include/c++/11/bits/stl_pair.h \
/usr/include/c++/11/bits/move.h \
/usr/include/c++/11/type_traits \
/usr/include/c++/11/bits/stl_iterator_base_types.h \
/usr/include/c++/11/bits/stl_iterator_base_funcs.h \
/usr/include/c++/11/bits/concept_check.h \
/usr/include/c++/11/debug/assertions.h \
/usr/include/c++/11/bits/stl_iterator.h \
/usr/include/c++/11/bits/ptr_traits.h \
/usr/include/c++/11/debug/debug.h \
/usr/include/c++/11/bits/predefined_ops.h \
/usr/include/c++/11/limits \
/usr/include/c++/11/tr1/gamma.tcc \
/usr/include/c++/11/tr1/special_function_util.h \
/usr/include/c++/11/tr1/bessel_function.tcc \
/usr/include/c++/11/tr1/beta_function.tcc \
/usr/include/c++/11/tr1/ell_integral.tcc \
/usr/include/c++/11/tr1/exp_integral.tcc \
/usr/include/c++/11/tr1/hypergeometric.tcc \
/usr/include/c++/11/tr1/legendre_function.tcc \
/usr/include/c++/11/tr1/modified_bessel_func.tcc \
/usr/include/c++/11/tr1/poly_hermite.tcc \
/usr/include/c++/11/tr1/poly_laguerre.tcc \
/usr/include/c++/11/tr1/riemann_zeta.tcc \
/usr/include/c++/11/iostream \
/usr/include/c++/11/ostream \
/usr/include/c++/11/ios \
/usr/include/c++/11/iosfwd \
/usr/include/c++/11/bits/stringfwd.h \
/usr/include/c++/11/bits/memoryfwd.h \
/usr/include/c++/11/bits/postypes.h \
/usr/include/c++/11/cwchar \
/usr/include/wchar.h \
/usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \
/usr/include/x86_64-linux-gnu/bits/types/wint_t.h \
/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
/usr/include/x86_64-linux-gnu/bits/types/FILE.h \
/usr/include/c++/11/exception \
/usr/include/c++/11/bits/exception.h \
/usr/include/c++/11/bits/exception_ptr.h \
/usr/include/c++/11/bits/cxxabi_init_exception.h \
/usr/include/c++/11/typeinfo \
/usr/include/c++/11/bits/hash_bytes.h \
/usr/include/c++/11/new \
/usr/include/c++/11/bits/nested_exception.h \
/usr/include/c++/11/bits/char_traits.h \
/usr/include/c++/11/bits/localefwd.h \
/usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \
/usr/include/c++/11/clocale \
/usr/include/locale.h \
/usr/include/x86_64-linux-gnu/bits/locale.h \
/usr/include/c++/11/cctype \
/usr/include/ctype.h \
/usr/include/c++/11/bits/ios_base.h \
/usr/include/c++/11/ext/atomicity.h \
/usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \
/usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \
/usr/include/pthread.h \
/usr/include/sched.h \
/usr/include/x86_64-linux-gnu/bits/sched.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \
/usr/include/x86_64-linux-gnu/bits/cpu-set.h \
/usr/include/time.h \
/usr/include/x86_64-linux-gnu/bits/time.h \
/usr/include/x86_64-linux-gnu/bits/timex.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \
/usr/include/x86_64-linux-gnu/bits/setjmp.h \
/usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \
/usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \
/usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \
/usr/include/x86_64-linux-gnu/sys/single_threaded.h \
/usr/include/c++/11/bits/locale_classes.h \
/usr/include/c++/11/string \
/usr/include/c++/11/bits/allocator.h \
/usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \
/usr/include/c++/11/ext/new_allocator.h \
/usr/include/c++/11/bits/ostream_insert.h \
/usr/include/c++/11/bits/cxxabi_forced.h \
/usr/include/c++/11/bits/stl_function.h \
/usr/include/c++/11/backward/binders.h \
/usr/include/c++/11/bits/range_access.h \
/usr/include/c++/11/initializer_list \
/usr/include/c++/11/bits/basic_string.h \
/usr/include/c++/11/ext/alloc_traits.h \
/usr/include/c++/11/bits/alloc_traits.h \
/usr/include/c++/11/bits/stl_construct.h \
/usr/include/c++/11/string_view \
/usr/include/c++/11/bits/functional_hash.h \
/usr/include/c++/11/bits/string_view.tcc \
/usr/include/c++/11/ext/string_conversions.h \
/usr/include/c++/11/cstdlib \
/usr/include/c++/11/cstdio \
/usr/include/stdio.h \
/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \
/usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
/usr/include/c++/11/cerrno \
/usr/include/errno.h \
/usr/include/x86_64-linux-gnu/bits/errno.h \
/usr/include/linux/errno.h \
/usr/include/x86_64-linux-gnu/asm/errno.h \
/usr/include/asm-generic/errno.h \
/usr/include/asm-generic/errno-base.h \
/usr/include/x86_64-linux-gnu/bits/types/error_t.h \
/usr/include/c++/11/bits/charconv.h \
/usr/include/c++/11/bits/basic_string.tcc \
/usr/include/c++/11/bits/locale_classes.tcc \
/usr/include/c++/11/system_error \
/usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \
/usr/include/c++/11/stdexcept \
/usr/include/c++/11/streambuf \
/usr/include/c++/11/bits/streambuf.tcc \
/usr/include/c++/11/bits/basic_ios.h \
/usr/include/c++/11/bits/locale_facets.h \
/usr/include/c++/11/cwctype \
/usr/include/wctype.h \
/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \
/usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \
/usr/include/c++/11/bits/streambuf_iterator.h \
/usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \
/usr/include/c++/11/bits/locale_facets.tcc \
/usr/include/c++/11/bits/basic_ios.tcc \
/usr/include/c++/11/bits/ostream.tcc \
/usr/include/c++/11/istream \
/usr/include/c++/11/bits/istream.tcc \
/usr/include/c++/11/iomanip \
/usr/include/c++/11/locale \
/usr/include/c++/11/bits/locale_facets_nonio.h \
/usr/include/c++/11/ctime \
/usr/include/x86_64-linux-gnu/c++/11/bits/time_members.h \
/usr/include/x86_64-linux-gnu/c++/11/bits/messages_members.h \
/usr/include/libintl.h \
/usr/include/c++/11/bits/codecvt.h \
/usr/include/c++/11/bits/locale_facets_nonio.tcc \
/usr/include/c++/11/bits/locale_conv.h \
/usr/include/c++/11/bits/unique_ptr.h \
/usr/include/c++/11/utility \
/usr/include/c++/11/bits/stl_relops.h \
/usr/include/c++/11/tuple \
/usr/include/c++/11/array \
/usr/include/c++/11/bits/uses_allocator.h \
/usr/include/c++/11/bits/invoke.h \
/usr/include/c++/11/bits/quoted_string.h \
/usr/include/c++/11/sstream \
/usr/include/c++/11/bits/sstream.tcc
/usr/include/c++/11/sstream:
/usr/include/c++/11/bits/uses_allocator.h:
/usr/include/c++/11/array:
/usr/include/c++/11/bits/stl_relops.h:
/usr/include/c++/11/bits/locale_conv.h:
/usr/include/x86_64-linux-gnu/c++/11/bits/messages_members.h:
/usr/include/x86_64-linux-gnu/c++/11/bits/time_members.h:
/usr/include/c++/11/bits/locale_facets_nonio.h:
/usr/include/c++/11/bits/istream.tcc:
/usr/include/c++/11/istream:
/usr/include/c++/11/bits/basic_ios.tcc:
/usr/include/c++/11/bits/locale_facets.tcc:
/usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h:
/usr/include/c++/11/bits/streambuf_iterator.h:
/usr/include/c++/11/cwctype:
/usr/include/c++/11/bits/basic_ios.h:
/usr/include/c++/11/stdexcept:
/usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h:
/usr/include/c++/11/system_error:
/usr/include/c++/11/bits/basic_string.tcc:
/usr/include/c++/11/bits/charconv.h:
/usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h:
/usr/include/wctype.h:
/usr/include/x86_64-linux-gnu/bits/errno.h:
/usr/include/c++/11/utility:
/usr/include/errno.h:
/usr/include/c++/11/cerrno:
/usr/include/stdio.h:
/usr/include/c++/11/cstdio:
/usr/include/c++/11/bits/functional_hash.h:
/usr/include/c++/11/string_view:
/usr/include/c++/11/bits/alloc_traits.h:
/usr/include/c++/11/initializer_list:
/usr/include/c++/11/bits/range_access.h:
/usr/include/c++/11/bits/stl_function.h:
/usr/include/c++/11/ext/alloc_traits.h:
/usr/include/c++/11/bits/cxxabi_forced.h:
/usr/include/c++/11/bits/ostream_insert.h:
/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h:
/usr/include/c++/11/string:
/usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h:
/usr/include/c++/11/locale:
/usr/include/linux/errno.h:
/usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h:
/usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h:
/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h:
/usr/include/x86_64-linux-gnu/bits/setjmp.h:
/usr/include/c++/11/bits/invoke.h:
/usr/include/x86_64-linux-gnu/bits/timex.h:
/usr/include/time.h:
/usr/include/x86_64-linux-gnu/bits/cpu-set.h:
/usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h:
/usr/include/x86_64-linux-gnu/bits/sched.h:
/usr/include/sched.h:
/usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h:
/usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h:
/usr/include/ctype.h:
/usr/include/c++/11/cctype:
/usr/include/x86_64-linux-gnu/bits/locale.h:
/usr/include/c++/11/bits/ostream.tcc:
/usr/include/c++/11/clocale:
/usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h:
/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
/usr/include/endian.h:
/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
/usr/include/locale.h:
/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
/usr/include/x86_64-linux-gnu/sys/types.h:
/usr/include/x86_64-linux-gnu/bits/types/error_t.h:
/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
/usr/include/c++/11/bits/locale_classes.tcc:
/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
/usr/include/stdint.h:
/usr/include/c++/11/bits/concept_check.h:
/usr/include/c++/11/ext/string_conversions.h:
/usr/include/c++/11/bits/exception_ptr.h:
/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
/usr/include/c++/11/bits/locale_classes.h:
/usr/include/c++/11/tr1/gamma.tcc:
/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
/usr/include/x86_64-linux-gnu/bits/struct_mutex.h:
/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h:
/usr/include/x86_64-linux-gnu/bits/floatn.h:
/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
/usr/include/c++/11/bits/streambuf.tcc:
/usr/include/c++/11/tr1/bessel_function.tcc:
/usr/include/x86_64-linux-gnu/bits/math-vector.h:
/usr/include/c++/11/tr1/riemann_zeta.tcc:
/usr/include/string.h:
/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h:
/usr/include/pthread.h:
/usr/include/c++/11/bits/cpp_type_traits.h:
/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
/usr/include/x86_64-linux-gnu/bits/waitflags.h:
/usr/include/c++/11/math.h:
/home/piotr/dev/wspaker/paker.hpp:
/usr/include/c++/11/debug/debug.h:
/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
/usr/include/features.h:
/usr/include/c++/11/ext/numeric_traits.h:
/usr/include/c++/11/limits:
/usr/include/features-time64.h:
/usr/include/c++/11/bits/ios_base.h:
/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
/usr/include/c++/11/bits/stl_iterator_base_funcs.h:
/usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h:
/usr/include/x86_64-linux-gnu/bits/timesize.h:
/usr/include/stdlib.h:
/usr/include/x86_64-linux-gnu/bits/wordsize.h:
/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h:
/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
/usr/include/c++/11/bits/basic_string.h:
/usr/include/x86_64-linux-gnu/bits/endian.h:
/usr/include/x86_64-linux-gnu/gnu/stubs.h:
/usr/include/c++/11/cstdint:
/usr/include/c++/11/bits/allocator.h:
/usr/include/x86_64-linux-gnu/sys/single_threaded.h:
/usr/include/c++/11/pstl/pstl_config.h:
/usr/include/x86_64-linux-gnu/bits/byteswap.h:
/usr/include/x86_64-linux-gnu/bits/long-double.h:
/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
/usr/include/c++/11/ext/type_traits.h:
/usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h:
/usr/include/c++/11/bits/codecvt.h:
/usr/include/c++/11/ctime:
/usr/include/x86_64-linux-gnu/bits/time64.h:
/usr/include/c++/11/streambuf:
/usr/include/c++/11/bits/functexcept.h:
/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
/usr/include/c++/11/iosfwd:
/usr/include/stdc-predef.h:
/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
/usr/include/x86_64-linux-gnu/sys/cdefs.h:
/usr/include/x86_64-linux-gnu/asm/errno.h:
/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
/usr/include/libintl.h:
/usr/include/c++/11/tr1/modified_bessel_func.tcc:
/usr/include/x86_64-linux-gnu/bits/endianness.h:
/usr/include/c++/11/bits/quoted_string.h:
/usr/include/math.h:
/usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h:
/usr/include/c++/11/cmath:
/usr/include/x86_64-linux-gnu/bits/typesizes.h:
/usr/include/x86_64-linux-gnu/bits/types.h:
/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
/usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h:
/usr/include/x86_64-linux-gnu/bits/wchar.h:
/usr/include/c++/11/bits/exception.h:
/usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h:
/usr/include/c++/11/bits/unique_ptr.h:
/home/piotr/dev/wspaker/utils/paker_test.cpp:
/usr/include/c++/11/ostream:
/usr/include/c++/11/bits/std_abs.h:
/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
/usr/include/c++/11/ios:
/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h:
/usr/include/x86_64-linux-gnu/sys/select.h:
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
/usr/include/c++/11/iomanip:
/usr/include/c++/11/ext/new_allocator.h:
/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
/usr/include/c++/11/bits/sstream.tcc:
/usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h:
/usr/include/strings.h:
/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h:
/usr/include/alloca.h:
/usr/include/c++/11/bits/specfun.h:
/usr/include/c++/11/bits/exception_defines.h:
/usr/include/c++/11/bits/locale_facets_nonio.tcc:
/usr/include/x86_64-linux-gnu/bits/time.h:
/usr/include/c++/11/ext/atomicity.h:
/usr/include/c++/11/bits/stl_pair.h:
/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h:
/usr/include/c++/11/bits/move.h:
/usr/include/c++/11/tuple:
/usr/include/c++/11/type_traits:
/usr/include/c++/11/debug/assertions.h:
/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h:
/usr/include/c++/11/new:
/usr/include/c++/11/bits/stl_iterator.h:
/usr/include/c++/11/bits/ptr_traits.h:
/usr/include/c++/11/bits/predefined_ops.h:
/usr/include/c++/11/tr1/beta_function.tcc:
/usr/include/c++/11/cstdlib:
/usr/include/c++/11/bits/stl_iterator_base_types.h:
/usr/include/c++/11/tr1/poly_laguerre.tcc:
/usr/include/asm-generic/errno.h:
/usr/include/c++/11/tr1/ell_integral.tcc:
/usr/include/c++/11/bits/stl_construct.h:
/usr/include/c++/11/tr1/exp_integral.tcc:
/usr/include/c++/11/bits/localefwd.h:
/usr/include/c++/11/tr1/hypergeometric.tcc:
/usr/include/c++/11/tr1/legendre_function.tcc:
/usr/include/c++/11/bits/locale_facets.h:
/usr/include/c++/11/tr1/poly_hermite.tcc:
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
/usr/include/c++/11/backward/binders.h:
/usr/include/x86_64-linux-gnu/bits/select.h:
/usr/include/c++/11/iostream:
/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h:
/usr/include/c++/11/bits/stringfwd.h:
/usr/include/c++/11/bits/memoryfwd.h:
/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
/usr/include/c++/11/tr1/special_function_util.h:
/usr/include/c++/11/bits/postypes.h:
/usr/include/c++/11/bits/stl_algobase.h:
/usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h:
/usr/include/c++/11/cwchar:
/usr/include/c++/11/bits/nested_exception.h:
/usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h:
/usr/include/x86_64-linux-gnu/bits/floatn-common.h:
/usr/include/x86_64-linux-gnu/bits/types/wint_t.h:
/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
/usr/include/c++/11/exception:
/usr/include/wchar.h:
/usr/include/c++/11/bits/cxxabi_init_exception.h:
/usr/include/c++/11/typeinfo:
/usr/include/c++/11/bits/string_view.tcc:
/usr/include/c++/11/bits/hash_bytes.h:
/usr/include/asm-generic/errno-base.h:
/usr/include/c++/11/bits/char_traits.h:

Plik binarny nie jest wyświetlany.

Wyświetl plik

@ -1,6 +1,6 @@
#include <cstdint>
#define __packed
#define __packed __attribute__((packed))
#include "../paker.hpp"
#include <iostream>
#include <string>
@ -9,51 +9,72 @@
using namespace std;
using namespace Protocol::Paker;
struct TRawFrame
struct __attribute__((packed, aligned(4))) TRawFrame
{
int32_t s32Lat;
int32_t s32Lon;
uint16_t u16Alt;
uint8_t u8Course;
uint8_t u8SomeTelemetry;
int32_t s32Lat;
int32_t s32Lon;
uint16_t u16Alt;
};
struct __packed TDiagnosticsFrame
{
static constexpr auto FrameId = 1;
unsigned char u3FrameId : 3;
unsigned char u5TelemetryBits : 5;
unsigned short u16RstCnt;
unsigned short s16Voltage;
char s8Temperature;
};
struct __packed TPositionFrame
{
static constexpr auto FrameId = 0;
unsigned char u3FrameId : 3;
unsigned char u5TelemetryBits : 5;
int s32Lon;
int s32Lat;
unsigned short u16Alt;
};
CFT4PacketFactory PacketFactory;
int main()
{
TRawFrame RawFrame = {-22,-3949211, 9210, 11, 12};
auto const FtFramesCnt = PacketFactory.EncodeRaw((unsigned char*)&RawFrame, sizeof(TRawFrame)*8);
cout << "\npaker format: " << CFT4PacketFactory::TFT4Format::GetPattern() << endl;
cout << "frame permutations: " << CFT4PacketFactory::TFT4Format::GetMaxPermutations() << endl;
cout << "frame bitsize ffloor: " << CFT4PacketFactory::TFT4Format::GetBitSizeFloor() << endl;
cout << "specific base: ";;
TRawFrame RawFrame = {-22, -3949211, 12233};
auto const FtFramesCnt = PacketFactory.EncodeRaw((unsigned char *)&RawFrame, sizeof(TRawFrame) * 8);
cout << "\npaker format: " << CFT4PacketFactory::TFT4Format::GetPattern() << endl;
cout << "frame permutations: " << CFT4PacketFactory::TFT4Format::GetMaxPermutations() << endl;
cout << "frame bitsize ffloor: " << CFT4PacketFactory::TFT4Format::GetBitSizeFloor() << endl;
cout << "specific base: ";
;
const char* pattern = CFT4PacketFactory::TFT4Format::GetPattern();
for(int i = 0; i < strlen(pattern); i++)
{
cout << pattern[i] << "=" << CFT4PacketFactory::TFT4Format::GetBase(pattern[i]) << " ";
}
cout << endl << endl;
const char *pattern = CFT4PacketFactory::TFT4Format::GetPattern();
for (int i = 0; i < strlen(pattern); i++)
{
cout << pattern[i] << "=" << CFT4PacketFactory::TFT4Format::GetBase(pattern[i]) << " ";
}
cout << endl
<< endl;
cout << "test raw data: ";
cout << "test raw data: ";
for(int i = 0; i < sizeof(RawFrame); ++i) {
std::cout << std::hex << std::setw(2) << std::setfill('0') << static_cast<int>(((unsigned char*)&RawFrame)[i]);
}
for (int i = 0; i < sizeof(RawFrame); ++i)
{
std::cout << std::hex << std::setw(2) << std::setfill('0') << static_cast<int>(((unsigned char *)&RawFrame)[i]);
}
cout << "\n\nencoded output: \n";
for(unsigned int i = 0; i < FtFramesCnt; i++)
{
cout << "frame [" << i << "]: " << PacketFactory.GetPacket(i) << endl;
}
cout << "\n\nencoded output: \n";
for (unsigned int i = 0; i < FtFramesCnt; i++)
{
cout << "frame [" << i << "]: " << PacketFactory.GetPacket(i) << endl;
}
cout << "\ndecoded back to: ";
unsigned char C8Dupa[sizeof(RawFrame) + 4] = {0};
PacketFactory.DecodeFrames(FtFramesCnt, C8Dupa, sizeof(C8Dupa));
for(int i = 0; i < sizeof(RawFrame); ++i) {
std::cout << std::hex << std::setw(2) << std::setfill('0') << static_cast<int>(((unsigned char*)C8Dupa)[i]);
}
cout << "\ndecoded back to: ";
unsigned char C8Dupa[sizeof(RawFrame) + 4] = {0};
PacketFactory.DecodeFrames(FtFramesCnt, C8Dupa, sizeof(C8Dupa));
for (int i = 0; i < sizeof(RawFrame); ++i)
{
std::cout << std::hex << std::setw(2) << std::setfill('0') << static_cast<int>(((unsigned char *)C8Dupa)[i]);
}
cout << endl;
cout << endl;
}