1// Copyright 2014 PDFium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6 7#ifndef _FXCRT_LINUX_ 8#define _FXCRT_LINUX_ 9#include "extension.h" 10#if _FXM_PLATFORM_ == _FXM_PLATFORM_LINUX_ || _FXM_PLATFORM_ == _FXM_PLATFORM_APPLE_ || _FXM_PLATFORM_ == _FXM_PLATFORM_ANDROID_ 11class CFXCRT_FileAccess_Posix : public IFXCRT_FileAccess, public CFX_Object 12{ 13public: 14 CFXCRT_FileAccess_Posix(); 15 virtual ~CFXCRT_FileAccess_Posix(); 16 virtual FX_BOOL Open(FX_BSTR fileName, FX_DWORD dwMode); 17 virtual FX_BOOL Open(FX_WSTR fileName, FX_DWORD dwMode); 18 virtual void Close(); 19 virtual void Release(IFX_Allocator* pAllocator = NULL); 20 virtual FX_FILESIZE GetSize() const; 21 virtual FX_FILESIZE GetPosition() const; 22 virtual FX_FILESIZE SetPosition(FX_FILESIZE pos); 23 virtual size_t Read(void* pBuffer, size_t szBuffer); 24 virtual size_t Write(const void* pBuffer, size_t szBuffer); 25 virtual size_t ReadPos(void* pBuffer, size_t szBuffer, FX_FILESIZE pos); 26 virtual size_t WritePos(const void* pBuffer, size_t szBuffer, FX_FILESIZE pos); 27 virtual FX_BOOL Flush(); 28 virtual FX_BOOL Truncate(FX_FILESIZE szFile); 29protected: 30 FX_INT32 m_nFD; 31}; 32#endif 33#endif 34