lokinet/llarp/util/mem.hpp
Stephen Shelton 273270916e
The Great Wall of Blame
This commit reflects changes to clang-format rules. Unfortunately,
these rule changes create a massive change to the codebase, which
causes an apparent rewrite of git history.

Git blame's --ignore-rev flag can be used to ignore this commit when
attempting to `git blame` some code.
2020-04-07 12:38:56 -06:00

97 lines
1.6 KiB
C++

#ifndef LLARP_MEM_HPP
#define LLARP_MEM_HPP
#include <util/buffer.hpp>
#include <util/mem.h>
#include <cctype>
#include <cstdio>
#include <memory>
namespace llarp
{
void
Zero(void* ptr, size_t sz);
template <typename T>
void
dumphex(const uint8_t* t)
{
size_t idx = 0;
while (idx < sizeof(T))
{
printf("%.2x ", t[idx++]);
if (idx % 8 == 0)
printf("\n");
}
}
template <typename T, size_t align = 128>
void
DumpBufferHex(const T& buff)
{
size_t idx = 0;
printf("buffer of size %zu\n", buff.sz);
while (idx < buff.sz)
{
if (buff.base + idx == buff.cur)
{
#ifndef _WIN32
printf("%c[1;31m", 27);
#endif
}
printf("%.2x", buff.base[idx]);
if (buff.base + idx == buff.cur)
{
#ifndef _WIN32
printf("%c[0;0m", 27);
#endif
}
++idx;
if (idx % align == 0)
printf("\n");
}
printf("\n");
fflush(stdout);
}
template <typename T, size_t align = 128>
void
DumpBuffer(const T& buff)
{
size_t idx = 0;
printf("buffer of size %zu\n", buff.sz);
while (idx < buff.sz)
{
if (buff.base + idx == buff.cur)
{
#ifndef _WIN32
printf("%c[1;31m", 27);
#endif
}
if (std::isprint(buff.base[idx]))
{
printf("%c", buff.base[idx]);
}
else
{
printf(".");
}
if (buff.base + idx == buff.cur)
{
#ifndef _WIN32
printf("%c[0;0m", 27);
#endif
}
++idx;
if (idx % align == 0)
printf("\n");
}
printf("\n");
fflush(stdout);
}
} // namespace llarp
#endif