CodePorting.Translator Cs2Cpp
CodePorting.Translator.Cs2Cpp.Framework
crc32.h
1
2#pragma once
3
4#include <system/object.h>
5#include <system/io/stream.h>
6#include <system/io/seekorigin.h>
7#include <system/array.h>
8#include <system/details/array_view.h>
9#include <system/details/stack_array.h>
10
11namespace Aspose { namespace Zip {
12
14class ASPOSECPP_SHARED_CLASS CRC32 : public System::Object
15{
17 ASPOSECPP_SHARED_RTTI_INFO_DECL();
18
19public:
21 typedef System::SharedPtr<CRC32> Ptr;
22
25 ASPOSECPP_SHARED_API size_t get_TotalBytesRead() const;
28 ASPOSECPP_SHARED_API int get_Crc32Result() const;
29
31 ASPOSECPP_SHARED_API CRC32();
32
36 ASPOSECPP_SHARED_API int GetCrc32(const System::IO::Stream::Ptr& input);
37
42 ASPOSECPP_SHARED_API int GetCrc32AndCopy(const System::IO::Stream::Ptr& input, const System::IO::Stream::Ptr& output);
43
48 ASPOSECPP_SHARED_API int ComputeCrc32(int W, uint8_t B);
49
55 ASPOSECPP_SHARED_API void SlurpBlock(const System::ArrayPtr<uint8_t>& block, int offset, int count);
61 ASPOSECPP_SHARED_API void SlurpBlock(const System::Details::ArrayView<uint8_t>& block, int offset, int count);
67 template<std::size_t N>
68 void SlurpBlock(const System::Details::StackArray<uint8_t, N> &block, int offset, int count)
69 {
70 SlurpBlock(static_cast<System::Details::ArrayView<uint8_t>>(block), offset, count);
71 }
72
77 static ASPOSECPP_SHARED_API uint32_t Crc32Byte(uint32_t prevCrc32, uint8_t c);
78
79private:
81 uint32_t m_crc;
83 size_t m_read;
84
86 static const size_t s_stream_buf_size;
87};
88
89}} // namespace Aspose::Zip
Base class that enables using methods available for System.Object class in C#. All non-trivial classe...
Definition: object.h:62
Pointer class to wrap types being allocated on heap. Use it to manage memory for classes inheriting O...
Definition: smart_ptr.h:180