This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
#pragma once
|
||||
|
||||
#include <sstream>
|
||||
#include <sp/common/Templates.h>
|
||||
#include <sp/common/Reflection.h>
|
||||
#include <sp/common/Templates.h>
|
||||
#include <sp/protocol/MessagePrinter.h>
|
||||
|
||||
namespace sp {
|
||||
namespace details {
|
||||
@@ -31,37 +31,20 @@ struct IdPrinter<option::StaticNumIdImpl<TId>, TOptions...> {
|
||||
}
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
std::string PrintData(const T& a_Data) {
|
||||
std::stringstream sStream;
|
||||
sStream << a_Data;
|
||||
return sStream.str();
|
||||
}
|
||||
|
||||
template <>
|
||||
std::string PrintData<char>(const char& a_Data) {
|
||||
return std::to_string(a_Data);
|
||||
}
|
||||
|
||||
template <>
|
||||
std::string PrintData<unsigned char>(const unsigned char& a_Data) {
|
||||
return std::to_string(a_Data);
|
||||
}
|
||||
|
||||
template <typename... TFields>
|
||||
std::string PrintFields(const std::tuple<TFields...>& a_Fields);
|
||||
|
||||
template <typename TField, unsigned int IAlignment>
|
||||
struct FieldPrinter {
|
||||
static std::string PrintField(const sp::Field<TField, IAlignment>& a_Field) {
|
||||
return GetClassName<TField>() + "=" + PrintData(a_Field.GetValue());
|
||||
return Reflector<TField>::GetClassName() + "=" + PrintData(a_Field.GetValue());
|
||||
}
|
||||
};
|
||||
|
||||
template <unsigned int IAlignment, typename TContainer, typename... TFields>
|
||||
struct FieldPrinter<BitField<TContainer, TFields...>, IAlignment> {
|
||||
static std::string PrintField(const Field<BitField<TContainer, TFields...>, IAlignment>& a_Field) {
|
||||
return "BitField<" + GetClassName<TContainer>() + ">[" + PrintFields(a_Field.GetValue().GetFields()) + "]";
|
||||
return "BitField<" + Reflector<TContainer>::GetClassName() + ">[" + PrintFields(a_Field.GetValue().GetFields()) + "]";
|
||||
}
|
||||
};
|
||||
|
||||
@@ -80,7 +63,7 @@ std::string PrintFields(const std::tuple<TFields...>& a_Fields) {
|
||||
|
||||
template <typename TBase, typename... TOptions>
|
||||
std::string PrintMessage(const MessageBase<TBase, TOptions...>& a_Message) {
|
||||
return sp::GetClassName(a_Message) + sp::details::IdPrinter<TOptions...>::PrintMessageId() + "[" +
|
||||
return sp::GetBasicClassName(a_Message) + sp::details::IdPrinter<TOptions...>::PrintMessageId() + "[" +
|
||||
sp::details::PrintFields(a_Message.GetFields()) + "]";
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user