bit7z 4.1.0
A C++ library for interfacing with the 7-zip shared libs.
Loading...
Searching...
No Matches
bitarchiveitemoffset.hpp
1/*
2 * bit7z - A C++ static library to interface with the 7-zip shared libraries.
3 * Copyright (c) Riccardo Ostani - All Rights Reserved.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at https://mozilla.org/MPL/2.0/.
8 */
9
10#ifndef BITARCHIVEITEMOFFSET_HPP
11#define BITARCHIVEITEMOFFSET_HPP
12
13#include "bitarchiveitem.hpp"
14#include "bitdefines.hpp"
15#include "bitpropvariant.hpp"
16
17#include <cstdint>
18#include <functional>
19
20namespace bit7z {
21
22class BitInputArchive;
23
27class BitArchiveItemOffset final : public BitArchiveItem {
28 public:
29 auto operator++() noexcept -> BitArchiveItemOffset&;
30
31 auto operator++( int ) noexcept -> BitArchiveItemOffset; // NOLINT(cert-dcl21-cpp)
32
33 auto operator==( const BitArchiveItemOffset& other ) const noexcept -> bool;
34
35 auto operator!=( const BitArchiveItemOffset& other ) const noexcept -> bool;
36
44 BIT7Z_NODISCARD auto itemProperty( BitProperty property ) const -> BitPropVariant override;
45
53 BIT7Z_NODISCARD auto hasProperty( BitProperty property ) const -> bool;
54
55 private:
56 /* Note: we use a std::reference_wrapper to make this class, and hence BitInputArchive::ConstIterator,
57 * to be CopyConstructible so that stl algorithms can be used with ConstIterator. */
59
60 BitArchiveItemOffset( const BitInputArchive& inputArchive, std::uint32_t itemIndex ) noexcept;
61
62 friend class BitInputArchive;
63};
64
65} // namespace bit7z
66
67#endif // BITARCHIVEITEMOFFSET_HPP
auto hasProperty(BitProperty property) const -> bool
Checks whether the item has the specified property or not.
auto itemProperty(BitProperty property) const -> BitPropVariant override
Gets the specified item property.
The BitInputArchive class, given a handler object, allows reading/extracting the content of archives.
Definition bitinputarchive.hpp:64
The main namespace of the bit7z library.
Definition bit7zlibrary.hpp:29
BitProperty
The BitProperty enum represents the archive/item properties that 7-zip can read or write.
Definition bitpropvariant.hpp:32
The BitPropVariant struct is a light extension to the WinAPI PROPVARIANT struct providing useful gett...
Definition bitpropvariant.hpp:161