UTILLib 2.0
Common C++ library with utilities.
Loading...
Searching...
No Matches
ifile.h
1/*
2 * Copyright 2023 Ingemar Hedvall
3 * SPDX-License-Identifier: MIT
4 */
5
6#pragma once
7#include <cstdint>
8#include <string>
9
10namespace util::log {
11
18class IFile {
19 public:
20 IFile() = default;
21
27 explicit IFile(const std::string& filename);
28 IFile(const IFile& source) = default;
29 virtual ~IFile();
30
31 [[nodiscard]] std::string Name()
32 const;
33
39 void Filename(const std::string& filename);
40
46 [[nodiscard]] const std::string& Filename() const { return filename_; }
47
54 void Checksum(const std::string& checksum) { checksum_ = checksum; }
55
63 [[nodiscard]] const std::string& Checksum() const { return checksum_; };
64
71 void Modified(uint64_t ns1970) { modified_ = ns1970; }
72
79 [[nodiscard]] uint64_t Modified() const { return modified_; }
80
87 void FileSize(uint64_t size) { file_size_ = size; }
88
94 [[nodiscard]] uint64_t FileSize() const { return file_size_; }
95
96 private:
97 std::string filename_;
98 std::string checksum_;
99 uint64_t modified_ = 0;
100 uint64_t file_size_ = 0;
101};
102
103} // namespace util::log
virtual ~IFile()
Destructor.
const std::string & Filename() const
Returns the filename including the path.
Definition ifile.h:46
void Modified(uint64_t ns1970)
Sets the last change time for the file.
Definition ifile.h:71
uint64_t FileSize() const
Return the file size in bytes.
Definition ifile.h:94
IFile(const IFile &source)=default
Default copy constructor.
void Checksum(const std::string &checksum)
Sets a file checksum.
Definition ifile.h:54
void Filename(const std::string &filename)
Sets the filename.
std::string Name() const
Name (stem) without path and extension.
uint64_t Modified() const
Returns the last change time.
Definition ifile.h:79
void FileSize(uint64_t size)
Sets the file size.
Definition ifile.h:87
IFile(const std::string &filename)
Constructor with a filename as input.
const std::string & Checksum() const
Returns the file checksum.
Definition ifile.h:63
IFile()=default
Default constructor.
The log namespace is used for log related classes and functions.
Definition idirectory.h:18