2022-11-19 21:57:32 +00:00
|
|
|
#ifndef WEBFUSE_MESSAGEREADER_HPP
|
|
|
|
#define WEBFUSE_MESSAGEREADER_HPP
|
|
|
|
|
2022-11-20 12:29:34 +00:00
|
|
|
#include <sys/types.h>
|
|
|
|
#include <sys/stat.h>
|
2022-11-20 13:48:56 +00:00
|
|
|
#include <sys/statvfs.h>
|
2022-11-20 12:29:34 +00:00
|
|
|
#include <unistd.h>
|
|
|
|
|
|
|
|
#include <cinttypes>
|
2022-11-19 21:57:32 +00:00
|
|
|
#include <string>
|
2022-11-20 12:29:34 +00:00
|
|
|
#include <vector>
|
2022-11-19 21:57:32 +00:00
|
|
|
|
|
|
|
namespace webfuse
|
|
|
|
{
|
|
|
|
|
|
|
|
class messagereader
|
|
|
|
{
|
2022-11-20 12:29:34 +00:00
|
|
|
messagereader(messagereader const &) = delete;
|
|
|
|
messagereader& operator=(messagereader const &) = delete;
|
2022-11-19 21:57:32 +00:00
|
|
|
public:
|
2022-11-20 12:29:34 +00:00
|
|
|
explicit messagereader(std::string & value);
|
2022-11-19 21:57:32 +00:00
|
|
|
~messagereader() = default;
|
2022-11-20 12:29:34 +00:00
|
|
|
messagereader(messagereader && other);
|
|
|
|
messagereader& operator=(messagereader && other);
|
|
|
|
|
|
|
|
int read_result();
|
|
|
|
void read_attr(struct stat * attr);
|
2022-11-20 13:48:56 +00:00
|
|
|
void read_statistics(struct statvfs * statistics);
|
2022-12-30 22:06:47 +00:00
|
|
|
int read_access_mode();
|
2022-11-20 12:29:34 +00:00
|
|
|
mode_t read_mode();
|
|
|
|
|
|
|
|
uint8_t read_u8();
|
|
|
|
uint32_t read_u32();
|
|
|
|
uint64_t read_u64();
|
|
|
|
|
|
|
|
int32_t read_i32();
|
|
|
|
|
|
|
|
std::string read_str();
|
|
|
|
std::string read_bytes();
|
|
|
|
|
|
|
|
void read_strings(std::vector<std::string> &entries);
|
|
|
|
|
|
|
|
|
2022-11-19 21:57:32 +00:00
|
|
|
|
|
|
|
private:
|
|
|
|
std::string data;
|
|
|
|
size_t pos;
|
|
|
|
};
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|