This commit is contained in:
@@ -14,7 +14,7 @@ class ConcreteMessage : public MessageBase<TMessageID, THandler> {
|
||||
|
||||
virtual ~ConcreteMessage() {}
|
||||
|
||||
virtual constexpr TMessageID GetId() const override {
|
||||
virtual TMessageID GetId() const override {
|
||||
return ID;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,61 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <map>
|
||||
#include <ostream>
|
||||
#include <sp/protocol/Field.h>
|
||||
#include <sp/protocol/message/OstreamFieldIterator.h>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
namespace sp {
|
||||
|
||||
template <typename T, std::enable_if_t<details::is_primitive<T>::value, bool> = true>
|
||||
std::ostream& operator<<(std::ostream& a_Stream, const PrintableField<T>& a_Field) {
|
||||
return a_Stream << std::to_string(a_Field.GetValue());
|
||||
}
|
||||
|
||||
inline std::ostream& operator<<(std::ostream& a_Stream, const PrintableField<long unsigned int>& a_Field) {
|
||||
return a_Stream << a_Field.GetValue();
|
||||
}
|
||||
|
||||
inline std::ostream& operator<<(std::ostream& a_Stream, const PrintableField<std::string>& a_Field) {
|
||||
return a_Stream << "\"" << a_Field.GetValue() << "\"";
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
template <typename K, typename V>
|
||||
std::ostream& operator<<(std::ostream& a_Stream, const PrintableField<std::pair<K, V>>& a_Data);
|
||||
|
||||
template <typename K, typename V>
|
||||
std::ostream& operator<<(std::ostream& a_Stream, const PrintableField<std::map<K, V>>& a_Data);
|
||||
|
||||
template <typename T>
|
||||
std::ostream& operator<<(std::ostream& a_Stream, const PrintableField<std::vector<T>>& a_Data);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
template <typename K, typename V>
|
||||
std::ostream& operator<<(std::ostream& a_Stream, const PrintableField<std::pair<K, V>>& a_Data) {
|
||||
return a_Stream << PrintableField<K>(a_Data.GetValue().first) << " => " << PrintableField<V>(a_Data.GetValue().second);
|
||||
}
|
||||
|
||||
template <typename K, typename V>
|
||||
std::ostream& operator<<(std::ostream& a_Stream, const PrintableField<std::map<K, V>>& a_Data) {
|
||||
a_Stream << "{";
|
||||
std::copy(a_Data.GetValue().begin(), a_Data.GetValue().end(), OstreamFieldIterator<std::pair<K, V>>(std::cout, ", "));
|
||||
return a_Stream << "}";
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
std::ostream& operator<<(std::ostream& a_Stream, const PrintableField<std::vector<T>>& a_Data) {
|
||||
a_Stream << "{";
|
||||
std::copy(a_Data.GetValue().begin(), a_Data.GetValue().end(), OstreamFieldIterator<T>(std::cout, ", "));
|
||||
return a_Stream << "}";
|
||||
}
|
||||
|
||||
} // namespace sp
|
||||
Reference in New Issue
Block a user