kodi
PosixFile.h
1 /*
2  * Copyright (C) 2014-2018 Team Kodi
3  * This file is part of Kodi - https://kodi.tv
4  *
5  * SPDX-License-Identifier: GPL-2.0-or-later
6  * See LICENSES/README.md for more information.
7  */
8 
9 #pragma once
10 
11 #include "filesystem/IFile.h"
12 
13 namespace XFILE
14 {
15 
16  class CPosixFile : public IFile
17  {
18  public:
19  ~CPosixFile() override;
20 
21  bool Open(const CURL& url) override;
22  bool OpenForWrite(const CURL& url, bool bOverWrite = false) override;
23  void Close() override;
24 
25  ssize_t Read(void* lpBuf, size_t uiBufSize) override;
26  ssize_t Write(const void* lpBuf, size_t uiBufSize) override;
27  int64_t Seek(int64_t iFilePosition, int iWhence = SEEK_SET) override;
28  int Truncate(int64_t size) override;
29  int64_t GetPosition() override;
30  int64_t GetLength() override;
31  void Flush() override;
32  int IoControl(EIoControl request, void* param) override;
33 
34  bool Delete(const CURL& url) override;
35  bool Rename(const CURL& url, const CURL& urlnew) override;
36  bool Exists(const CURL& url) override;
37  int Stat(const CURL& url, struct __stat64* buffer) override;
38  int Stat(struct __stat64* buffer) override;
39 
40  protected:
41  int m_fd = -1;
42  int64_t m_filePos = -1;
43  int64_t m_lastDropPos = -1;
44  bool m_allowWrite = false;
45  };
46 
47 }
Definition: Scraper.h:41
int Stat(const CURL &url, struct __stat64 *buffer) override
Fills struct __stat64 with information about file specified by url.
Definition: PosixFile.cpp:334
Definition: PosixFile.h:16
Definition: URL.h:21
Definition: IFile.h:42
ssize_t Write(const void *lpBuf, size_t uiBufSize) override
Attempt to write bufSize bytes from buffer bufPtr into currently opened file.
Definition: PosixFile.cpp:139
ssize_t Read(void *lpBuf, size_t uiBufSize) override
Attempt to read bufSize bytes from currently opened file into buffer bufPtr.
Definition: PosixFile.cpp:97