kodi
UDFFile.h
1 /*
2  * Copyright (C) 2005-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 "IFile.h"
12 #include "filesystem/UDFBlockInput.h"
13 
14 #include <memory>
15 
16 class udfread;
17 typedef struct udfread_file UDFFILE;
18 
19 namespace XFILE
20 {
21 
22 class CUDFFile : public IFile
23 {
24 public:
25  CUDFFile();
26  ~CUDFFile() override = default;
27 
28  bool Open(const CURL& url) override;
29  void Close() override;
30 
31  int Stat(const CURL& url, struct __stat64* buffer) override;
32 
33  ssize_t Read(void* buffer, size_t size) override;
34  int64_t Seek(int64_t filePosition, int whence) override;
35 
36  int64_t GetLength() override;
37  int64_t GetPosition() override;
38 
39  bool Exists(const CURL& url) override;
40 
41 private:
42  std::unique_ptr<CUDFBlockInput> m_bi{nullptr};
43 
44  udfread* m_udf{nullptr};
45  UDFFILE* m_file{nullptr};
46 };
47 
48 } // namespace XFILE
Definition: Scraper.h:41
Definition: URL.h:21
Definition: IFile.h:42
ssize_t Read(void *buffer, size_t size) override
Attempt to read bufSize bytes from currently opened file into buffer bufPtr.
Definition: UDFFile.cpp:82
int Stat(const CURL &url, struct __stat64 *buffer) override
Fills struct __stat64 with information about file specified by url.
Definition: UDFFile.cpp:71
Definition: UDFFile.h:22