diff options
author | Dan Sinclair <dsinclair@chromium.org> | 2016-03-14 13:35:12 -0400 |
---|---|---|
committer | Dan Sinclair <dsinclair@chromium.org> | 2016-03-14 13:35:12 -0400 |
commit | 764ec513eecbebd12781bcc96ce81ed5e736ee92 (patch) | |
tree | 12763fde4be1f10ea1183d92185917b2b587e00b /core/fxcrt/fxcrt_platforms.cpp | |
parent | 97da97662417085774f75c26e535c6fbe70266ae (diff) | |
download | pdfium-764ec513eecbebd12781bcc96ce81ed5e736ee92.tar.xz |
Move core/src/ up to core/.
This CL moves the core/src/ files up to core/ and fixes up the include guards,
includes and build files.
R=tsepez@chromium.org
Review URL: https://codereview.chromium.org/1800523005 .
Diffstat (limited to 'core/fxcrt/fxcrt_platforms.cpp')
-rw-r--r-- | core/fxcrt/fxcrt_platforms.cpp | 132 |
1 files changed, 132 insertions, 0 deletions
diff --git a/core/fxcrt/fxcrt_platforms.cpp b/core/fxcrt/fxcrt_platforms.cpp new file mode 100644 index 0000000000..b4f6ffa109 --- /dev/null +++ b/core/fxcrt/fxcrt_platforms.cpp @@ -0,0 +1,132 @@ +// Copyright 2014 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#include "core/fxcrt/fxcrt_platforms.h" + +#include "core/include/fxcrt/fx_basic.h" + +#if (_FXM_PLATFORM_ != _FXM_PLATFORM_WINDOWS_ && \ + _FXM_PLATFORM_ != _FXM_PLATFORM_LINUX_ && \ + _FXM_PLATFORM_ != _FXM_PLATFORM_APPLE_ && \ + _FXM_PLATFORM_ != _FXM_PLATFORM_ANDROID_) +IFXCRT_FileAccess* FXCRT_FileAccess_Create() { + return new CFXCRT_FileAccess_CRT; +} +void FXCRT_GetFileModeString(FX_DWORD dwModes, CFX_ByteString& bsMode) { + if (dwModes & FX_FILEMODE_ReadOnly) { + bsMode = "rb"; + } else if (dwModes & FX_FILEMODE_Truncate) { + bsMode = "w+b"; + } else { + bsMode = "a+b"; + } +} +void FXCRT_GetFileModeString(FX_DWORD dwModes, CFX_WideString& wsMode) { + if (dwModes & FX_FILEMODE_ReadOnly) { + wsMode = FX_WSTRC(L"rb"); + } else if (dwModes & FX_FILEMODE_Truncate) { + wsMode = FX_WSTRC(L"w+b"); + } else { + wsMode = FX_WSTRC(L"a+b"); + } +} +CFXCRT_FileAccess_CRT::CFXCRT_FileAccess_CRT() : m_hFile(NULL) {} +CFXCRT_FileAccess_CRT::~CFXCRT_FileAccess_CRT() { + Close(); +} +FX_BOOL CFXCRT_FileAccess_CRT::Open(const CFX_ByteStringC& fileName, + FX_DWORD dwMode) { + if (m_hFile) { + return FALSE; + } + CFX_ByteString strMode; + FXCRT_GetFileModeString(dwMode, strMode); + m_hFile = FXSYS_fopen(fileName.GetCStr(), strMode.c_str()); + return m_hFile != NULL; +} +FX_BOOL CFXCRT_FileAccess_CRT::Open(const CFX_WideStringC& fileName, + FX_DWORD dwMode) { + if (m_hFile) { + return FALSE; + } + CFX_WideString strMode; + FXCRT_GetFileModeString(dwMode, strMode); + m_hFile = FXSYS_wfopen(fileName.GetPtr(), strMode.c_str()); + return m_hFile != NULL; +} +void CFXCRT_FileAccess_CRT::Close() { + if (!m_hFile) { + return; + } + FXSYS_fclose(m_hFile); + m_hFile = NULL; +} +void CFXCRT_FileAccess_CRT::Release() { + delete this; +} +FX_FILESIZE CFXCRT_FileAccess_CRT::GetSize() const { + if (!m_hFile) { + return 0; + } + FX_FILESIZE pos = (FX_FILESIZE)FXSYS_ftell(m_hFile); + FXSYS_fseek(m_hFile, 0, FXSYS_SEEK_END); + FX_FILESIZE size = (FX_FILESIZE)FXSYS_ftell(m_hFile); + FXSYS_fseek(m_hFile, pos, FXSYS_SEEK_SET); + return size; +} +FX_FILESIZE CFXCRT_FileAccess_CRT::GetPosition() const { + if (!m_hFile) { + return (FX_FILESIZE)-1; + } + return (FX_FILESIZE)FXSYS_ftell(m_hFile); +} +FX_FILESIZE CFXCRT_FileAccess_CRT::SetPosition(FX_FILESIZE pos) { + if (!m_hFile) { + return (FX_FILESIZE)-1; + } + FXSYS_fseek(m_hFile, pos, FXSYS_SEEK_SET); + return (FX_FILESIZE)FXSYS_ftell(m_hFile); +} +size_t CFXCRT_FileAccess_CRT::Read(void* pBuffer, size_t szBuffer) { + if (!m_hFile) { + return 0; + } + return FXSYS_fread(pBuffer, 1, szBuffer, m_hFile); +} +size_t CFXCRT_FileAccess_CRT::Write(const void* pBuffer, size_t szBuffer) { + if (!m_hFile) { + return 0; + } + return FXSYS_fwrite(pBuffer, 1, szBuffer, m_hFile); +} +size_t CFXCRT_FileAccess_CRT::ReadPos(void* pBuffer, + size_t szBuffer, + FX_FILESIZE pos) { + if (!m_hFile) { + return (FX_FILESIZE)-1; + } + FXSYS_fseek(m_hFile, pos, FXSYS_SEEK_SET); + return FXSYS_fread(pBuffer, 1, szBuffer, m_hFile); +} +size_t CFXCRT_FileAccess_CRT::WritePos(const void* pBuffer, + size_t szBuffer, + FX_FILESIZE pos) { + if (!m_hFile) { + return (FX_FILESIZE)-1; + } + FXSYS_fseek(m_hFile, pos, FXSYS_SEEK_SET); + return FXSYS_fwrite(pBuffer, 1, szBuffer, m_hFile); +} +FX_BOOL CFXCRT_FileAccess_CRT::Flush() { + if (!m_hFile) { + return FALSE; + } + return !FXSYS_fflush(m_hFile); +} +FX_BOOL CFXCRT_FileAccess_CRT::Truncate(FX_FILESIZE szFile) { + return FALSE; +} +#endif |