45 lines
1.6 KiB
C++
45 lines
1.6 KiB
C++
#pragma once
|
|
|
|
#include <cstdint>
|
|
#include <fstream>
|
|
#include <vector>
|
|
|
|
#include "usenetsearch/Except.h"
|
|
|
|
namespace usenetsearch {
|
|
|
|
struct ArticleEntry;
|
|
struct NntpHeader;
|
|
struct NntpListEntry;
|
|
|
|
struct SerializeException: public UsenetSearchException
|
|
{
|
|
SerializeException(int errorCode, const std::string& message):
|
|
UsenetSearchException(errorCode, message){}
|
|
|
|
virtual ~SerializeException() = default;
|
|
};
|
|
|
|
class SerializableFile: public std::fstream
|
|
{
|
|
public:
|
|
virtual ~SerializableFile() = default;
|
|
};
|
|
SerializableFile& operator<<(
|
|
SerializableFile& out, const std::vector<std::uint64_t>& arr);
|
|
SerializableFile& operator>>(
|
|
SerializableFile& in, std::vector<std::uint64_t>& arr);
|
|
SerializableFile& operator<<(SerializableFile& out, const ArticleEntry& obj);
|
|
SerializableFile& operator>>(SerializableFile& in, ArticleEntry& obj);
|
|
SerializableFile& operator<<(SerializableFile& out, const std::string& str);
|
|
SerializableFile& operator>>(SerializableFile& in, std::string& str);
|
|
SerializableFile& operator<<(SerializableFile& out, const std::wstring& str);
|
|
SerializableFile& operator>>(SerializableFile& in, std::wstring& str);
|
|
SerializableFile& operator<<(SerializableFile& out, const NntpHeader& obj);
|
|
SerializableFile& operator>>(SerializableFile& in, NntpHeader& obj);
|
|
SerializableFile& operator<<(SerializableFile& out, const NntpListEntry& obj);
|
|
SerializableFile& operator>>(SerializableFile& in, NntpListEntry& obj);
|
|
SerializableFile& operator<<(SerializableFile& out, const uint64_t& obj);
|
|
SerializableFile& operator>>(SerializableFile& in, uint64_t& obj);
|
|
} // namespace usenetsearch
|