CodePorting.Translator Cs2Cpp
CodePorting.Translator.Cs2Cpp.Framework
crc_calculator_stream.h
1#ifndef _aspose_zip_crc_calculator_stream_h_
2#define _aspose_zip_crc_calculator_stream_h_
3
4#include <system/array.h>
5#include "zip/crc32.h"
6
7namespace Aspose { namespace Zip {
8
17
18class ASPOSECPP_SHARED_CLASS CrcCalculatorStream : public System::IO::Stream
19{
20 ASPOSECPP_SHARED_RTTI_INFO_DECL();
21public:
22
23 ASPOSECPP_SHARED_API CrcCalculatorStream(const System::SharedPtr<System::IO::Stream>& stream);
24 ASPOSECPP_SHARED_API CrcCalculatorStream(const System::SharedPtr<System::IO::Stream>& stream, bool leaveOpen);
25 ASPOSECPP_SHARED_API CrcCalculatorStream(const System::SharedPtr<System::IO::Stream>& stream, int64_t length);
26 ASPOSECPP_SHARED_API CrcCalculatorStream(const System::SharedPtr<System::IO::Stream>& stream, int64_t length, bool leaveOpen);
27 ASPOSECPP_SHARED_API CrcCalculatorStream(const System::SharedPtr<System::IO::Stream>& stream, int64_t length, bool leaveOpen, bool keepPos);
28
29
30 virtual ASPOSECPP_SHARED_API ~CrcCalculatorStream();
31
32 ASPOSECPP_SHARED_API int64_t get_TotalBytesSlurped() const;
33 ASPOSECPP_SHARED_API int get_Crc() const;
34 ASPOSECPP_SHARED_API bool get_LeaveOpen() const;
35 ASPOSECPP_SHARED_API void set_LeaveOpen(bool value);
36 ASPOSECPP_SHARED_API bool get_CanRead() const override;
37 ASPOSECPP_SHARED_API bool get_CanSeek() const override;
38 ASPOSECPP_SHARED_API bool get_CanWrite() const override;
39 ASPOSECPP_SHARED_API int64_t get_Length() const override;
40 ASPOSECPP_SHARED_API int64_t get_Position() const override;
41 ASPOSECPP_SHARED_API void set_Position(int64_t value) override;
42
43 ASPOSECPP_SHARED_API int32_t Read(const System::ArrayPtr<uint8_t>& buffer, int32_t offset, int32_t count) override;
44 ASPOSECPP_SHARED_API void Write(const System::ArrayPtr<uint8_t>& buffer, int32_t offset, int32_t count) override;
45 ASPOSECPP_SHARED_API int32_t Read(const System::Details::ArrayView<uint8_t>& buffer, int32_t offset, int32_t count) override;
46 ASPOSECPP_SHARED_API void Write(const System::Details::ArrayView<uint8_t>& buffer, int32_t offset, int32_t count) override;
47 ASPOSECPP_SHARED_API void Flush() override;
48 ASPOSECPP_SHARED_API int64_t Seek(int64_t offset, System::IO::SeekOrigin origin) override;
49 ASPOSECPP_SHARED_API void SetLength(int64_t value) override;
50 ASPOSECPP_SHARED_API void Close() override;
51
52private:
53
54 void Init(const System::SharedPtr<System::IO::Stream>& stream, int64_t length, bool leaveOpen, bool keepPos);
55 template<template<typename T> class ArrT> int32_t _Read(const ArrT<uint8_t> & buffer, int32_t offset, int32_t count);
56 template<template<typename T> class ArrT> void _Write(const ArrT<uint8_t>& buffer, int32_t offset, int32_t count);
57
58 static const int64_t s_unsetLengthLimit;
61 int64_t m_lengthLimit;
62 bool m_leaveOpen;
63 int64_t m_streamPos;
64};
65
66}} // namespace Aspose::Zip
67
68#endif // _aspose_zip_crc_calculator_stream_h_
69
A base class for a variety of stream implementations. Objects of this class should only be allocated ...
Definition: stream.h:24
Pointer class to wrap types being allocated on heap. Use it to manage memory for classes inheriting O...
Definition: smart_ptr.h:180
SeekOrigin
Specifies the reference position in the stream relative to which the position to seek to is specified...
Definition: seekorigin.h:11