| OLD | NEW |
| 1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
| 6 | 6 |
| 7 #include "xfa/fgas/crt/fgas_stream.h" | 7 #include "xfa/fgas/crt/fgas_stream.h" |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 | 10 |
| (...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 194 virtual int32_t ReadData(uint8_t* pBuffer, int32_t iBufferSize); | 194 virtual int32_t ReadData(uint8_t* pBuffer, int32_t iBufferSize); |
| 195 virtual int32_t ReadString(FX_WCHAR* pStr, | 195 virtual int32_t ReadString(FX_WCHAR* pStr, |
| 196 int32_t iMaxLength, | 196 int32_t iMaxLength, |
| 197 FX_BOOL& bEOS, | 197 FX_BOOL& bEOS, |
| 198 int32_t const* pByteSize = NULL); | 198 int32_t const* pByteSize = NULL); |
| 199 virtual int32_t WriteData(const uint8_t* pBuffer, int32_t iBufferSize); | 199 virtual int32_t WriteData(const uint8_t* pBuffer, int32_t iBufferSize); |
| 200 virtual int32_t WriteString(const FX_WCHAR* pStr, int32_t iLength); | 200 virtual int32_t WriteString(const FX_WCHAR* pStr, int32_t iLength); |
| 201 virtual void Flush(); | 201 virtual void Flush(); |
| 202 virtual FX_BOOL SetLength(int32_t iLength); | 202 virtual FX_BOOL SetLength(int32_t iLength); |
| 203 virtual int32_t GetBOM(uint8_t bom[4]) const; | 203 virtual int32_t GetBOM(uint8_t bom[4]) const; |
| 204 virtual FX_WORD GetCodePage() const; | 204 virtual uint16_t GetCodePage() const; |
| 205 virtual FX_WORD SetCodePage(FX_WORD wCodePage); | 205 virtual uint16_t SetCodePage(uint16_t wCodePage); |
| 206 virtual IFX_Stream* CreateSharedStream(FX_DWORD dwAccess, | 206 virtual IFX_Stream* CreateSharedStream(FX_DWORD dwAccess, |
| 207 int32_t iOffset, | 207 int32_t iOffset, |
| 208 int32_t iLength); | 208 int32_t iLength); |
| 209 | 209 |
| 210 protected: | 210 protected: |
| 211 FX_STREAMTYPE m_eStreamType; | 211 FX_STREAMTYPE m_eStreamType; |
| 212 CFX_StreamImp* m_pStreamImp; | 212 CFX_StreamImp* m_pStreamImp; |
| 213 FX_DWORD m_dwAccess; | 213 FX_DWORD m_dwAccess; |
| 214 int32_t m_iTotalSize; | 214 int32_t m_iTotalSize; |
| 215 int32_t m_iPosition; | 215 int32_t m_iPosition; |
| (...skipping 19 matching lines...) Expand all Loading... |
| 235 virtual int32_t ReadString(FX_WCHAR* pStr, | 235 virtual int32_t ReadString(FX_WCHAR* pStr, |
| 236 int32_t iMaxLength, | 236 int32_t iMaxLength, |
| 237 FX_BOOL& bEOS, | 237 FX_BOOL& bEOS, |
| 238 int32_t const* pByteSize = NULL); | 238 int32_t const* pByteSize = NULL); |
| 239 virtual int32_t WriteData(const uint8_t* pBuffer, int32_t iBufferSize); | 239 virtual int32_t WriteData(const uint8_t* pBuffer, int32_t iBufferSize); |
| 240 virtual int32_t WriteString(const FX_WCHAR* pStr, int32_t iLength); | 240 virtual int32_t WriteString(const FX_WCHAR* pStr, int32_t iLength); |
| 241 virtual void Flush(); | 241 virtual void Flush(); |
| 242 virtual FX_BOOL SetLength(int32_t iLength); | 242 virtual FX_BOOL SetLength(int32_t iLength); |
| 243 | 243 |
| 244 virtual int32_t GetBOM(uint8_t bom[4]) const; | 244 virtual int32_t GetBOM(uint8_t bom[4]) const; |
| 245 virtual FX_WORD GetCodePage() const; | 245 virtual uint16_t GetCodePage() const; |
| 246 virtual FX_WORD SetCodePage(FX_WORD wCodePage); | 246 virtual uint16_t SetCodePage(uint16_t wCodePage); |
| 247 | 247 |
| 248 virtual IFX_Stream* CreateSharedStream(FX_DWORD dwAccess, | 248 virtual IFX_Stream* CreateSharedStream(FX_DWORD dwAccess, |
| 249 int32_t iOffset, | 249 int32_t iOffset, |
| 250 int32_t iLength); | 250 int32_t iLength); |
| 251 | 251 |
| 252 protected: | 252 protected: |
| 253 FX_WORD m_wCodePage; | 253 uint16_t m_wCodePage; |
| 254 int32_t m_wBOMLength; | 254 int32_t m_wBOMLength; |
| 255 FX_DWORD m_dwBOM; | 255 FX_DWORD m_dwBOM; |
| 256 uint8_t* m_pBuf; | 256 uint8_t* m_pBuf; |
| 257 int32_t m_iBufSize; | 257 int32_t m_iBufSize; |
| 258 FX_BOOL m_bDelStream; | 258 FX_BOOL m_bDelStream; |
| 259 IFX_Stream* m_pStreamImp; | 259 IFX_Stream* m_pStreamImp; |
| 260 int32_t m_iRefCount; | 260 int32_t m_iRefCount; |
| 261 void InitStream(); | 261 void InitStream(); |
| 262 }; | 262 }; |
| 263 | 263 |
| (...skipping 744 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1008 } | 1008 } |
| 1009 int32_t CFX_TextStream::WriteData(const uint8_t* pBuffer, int32_t iBufferSize) { | 1009 int32_t CFX_TextStream::WriteData(const uint8_t* pBuffer, int32_t iBufferSize) { |
| 1010 return m_pStreamImp->WriteData(pBuffer, iBufferSize); | 1010 return m_pStreamImp->WriteData(pBuffer, iBufferSize); |
| 1011 } | 1011 } |
| 1012 void CFX_TextStream::Flush() { | 1012 void CFX_TextStream::Flush() { |
| 1013 m_pStreamImp->Flush(); | 1013 m_pStreamImp->Flush(); |
| 1014 } | 1014 } |
| 1015 FX_BOOL CFX_TextStream::SetLength(int32_t iLength) { | 1015 FX_BOOL CFX_TextStream::SetLength(int32_t iLength) { |
| 1016 return m_pStreamImp->SetLength(iLength); | 1016 return m_pStreamImp->SetLength(iLength); |
| 1017 } | 1017 } |
| 1018 FX_WORD CFX_TextStream::GetCodePage() const { | 1018 uint16_t CFX_TextStream::GetCodePage() const { |
| 1019 return m_wCodePage; | 1019 return m_wCodePage; |
| 1020 } | 1020 } |
| 1021 IFX_Stream* CFX_TextStream::CreateSharedStream(FX_DWORD dwAccess, | 1021 IFX_Stream* CFX_TextStream::CreateSharedStream(FX_DWORD dwAccess, |
| 1022 int32_t iOffset, | 1022 int32_t iOffset, |
| 1023 int32_t iLength) { | 1023 int32_t iLength) { |
| 1024 IFX_Stream* pSR = | 1024 IFX_Stream* pSR = |
| 1025 m_pStreamImp->CreateSharedStream(dwAccess, iOffset, iLength); | 1025 m_pStreamImp->CreateSharedStream(dwAccess, iOffset, iLength); |
| 1026 if (pSR == NULL) { | 1026 if (pSR == NULL) { |
| 1027 return NULL; | 1027 return NULL; |
| 1028 } | 1028 } |
| 1029 if (dwAccess & FX_STREAMACCESS_Text) { | 1029 if (dwAccess & FX_STREAMACCESS_Text) { |
| 1030 return new CFX_TextStream(pSR, TRUE); | 1030 return new CFX_TextStream(pSR, TRUE); |
| 1031 } | 1031 } |
| 1032 return pSR; | 1032 return pSR; |
| 1033 } | 1033 } |
| 1034 int32_t CFX_TextStream::GetBOM(uint8_t bom[4]) const { | 1034 int32_t CFX_TextStream::GetBOM(uint8_t bom[4]) const { |
| 1035 if (m_wBOMLength < 1) { | 1035 if (m_wBOMLength < 1) { |
| 1036 return 0; | 1036 return 0; |
| 1037 } | 1037 } |
| 1038 *(FX_DWORD*)bom = m_dwBOM; | 1038 *(FX_DWORD*)bom = m_dwBOM; |
| 1039 return m_wBOMLength; | 1039 return m_wBOMLength; |
| 1040 } | 1040 } |
| 1041 FX_WORD CFX_TextStream::SetCodePage(FX_WORD wCodePage) { | 1041 uint16_t CFX_TextStream::SetCodePage(uint16_t wCodePage) { |
| 1042 if (m_wBOMLength > 0) { | 1042 if (m_wBOMLength > 0) { |
| 1043 return m_wCodePage; | 1043 return m_wCodePage; |
| 1044 } | 1044 } |
| 1045 FX_WORD v = m_wCodePage; | 1045 uint16_t v = m_wCodePage; |
| 1046 m_wCodePage = wCodePage; | 1046 m_wCodePage = wCodePage; |
| 1047 return v; | 1047 return v; |
| 1048 } | 1048 } |
| 1049 int32_t CFX_TextStream::ReadString(FX_WCHAR* pStr, | 1049 int32_t CFX_TextStream::ReadString(FX_WCHAR* pStr, |
| 1050 int32_t iMaxLength, | 1050 int32_t iMaxLength, |
| 1051 FX_BOOL& bEOS, | 1051 FX_BOOL& bEOS, |
| 1052 int32_t const* pByteSize) { | 1052 int32_t const* pByteSize) { |
| 1053 FXSYS_assert(pStr != NULL && iMaxLength > 0); | 1053 FXSYS_assert(pStr != NULL && iMaxLength > 0); |
| 1054 if (m_pStreamImp == NULL) { | 1054 if (m_pStreamImp == NULL) { |
| 1055 return -1; | 1055 return -1; |
| (...skipping 358 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1414 return FALSE; | 1414 return FALSE; |
| 1415 } | 1415 } |
| 1416 return m_pStreamImp->SetLength(iLength); | 1416 return m_pStreamImp->SetLength(iLength); |
| 1417 } | 1417 } |
| 1418 int32_t CFX_Stream::GetBOM(uint8_t bom[4]) const { | 1418 int32_t CFX_Stream::GetBOM(uint8_t bom[4]) const { |
| 1419 if (m_pStreamImp == NULL) { | 1419 if (m_pStreamImp == NULL) { |
| 1420 return -1; | 1420 return -1; |
| 1421 } | 1421 } |
| 1422 return 0; | 1422 return 0; |
| 1423 } | 1423 } |
| 1424 FX_WORD CFX_Stream::GetCodePage() const { | 1424 uint16_t CFX_Stream::GetCodePage() const { |
| 1425 #if _FX_ENDIAN_ == _FX_LITTLE_ENDIAN_ | 1425 #if _FX_ENDIAN_ == _FX_LITTLE_ENDIAN_ |
| 1426 return FX_CODEPAGE_UTF16LE; | 1426 return FX_CODEPAGE_UTF16LE; |
| 1427 #else | 1427 #else |
| 1428 return FX_CODEPAGE_UTF16BE; | 1428 return FX_CODEPAGE_UTF16BE; |
| 1429 #endif | 1429 #endif |
| 1430 } | 1430 } |
| 1431 FX_WORD CFX_Stream::SetCodePage(FX_WORD wCodePage) { | 1431 uint16_t CFX_Stream::SetCodePage(uint16_t wCodePage) { |
| 1432 #if _FX_ENDIAN_ == _FX_LITTLE_ENDIAN_ | 1432 #if _FX_ENDIAN_ == _FX_LITTLE_ENDIAN_ |
| 1433 return FX_CODEPAGE_UTF16LE; | 1433 return FX_CODEPAGE_UTF16LE; |
| 1434 #else | 1434 #else |
| 1435 return FX_CODEPAGE_UTF16BE; | 1435 return FX_CODEPAGE_UTF16BE; |
| 1436 #endif | 1436 #endif |
| 1437 } | 1437 } |
| 1438 IFX_Stream* CFX_Stream::CreateSharedStream(FX_DWORD dwAccess, | 1438 IFX_Stream* CFX_Stream::CreateSharedStream(FX_DWORD dwAccess, |
| 1439 int32_t iOffset, | 1439 int32_t iOffset, |
| 1440 int32_t iLength) { | 1440 int32_t iLength) { |
| 1441 FXSYS_assert(iLength > 0); | 1441 FXSYS_assert(iLength > 0); |
| (...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1617 return m_pStream->WriteData((const uint8_t*)pData, (int32_t)size) == | 1617 return m_pStream->WriteData((const uint8_t*)pData, (int32_t)size) == |
| 1618 (int32_t)size; | 1618 (int32_t)size; |
| 1619 } | 1619 } |
| 1620 FX_BOOL CFGAS_FileWrite::WriteBlock(const void* pData, | 1620 FX_BOOL CFGAS_FileWrite::WriteBlock(const void* pData, |
| 1621 FX_FILESIZE offset, | 1621 FX_FILESIZE offset, |
| 1622 size_t size) { | 1622 size_t size) { |
| 1623 m_pStream->Seek(FX_STREAMSEEK_Begin, offset); | 1623 m_pStream->Seek(FX_STREAMSEEK_Begin, offset); |
| 1624 int32_t iLen = m_pStream->WriteData((uint8_t*)pData, (int32_t)size); | 1624 int32_t iLen = m_pStream->WriteData((uint8_t*)pData, (int32_t)size); |
| 1625 return iLen == (int32_t)size; | 1625 return iLen == (int32_t)size; |
| 1626 } | 1626 } |
| OLD | NEW |