xbmc
APKFile.h
1 /*
2  * Copyright (C) 2012-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 "URL.h"
12 #include "filesystem/IFile.h"
13 
14 struct zip;
15 struct zip_file;
16 
17 namespace XFILE
18 {
19  class CAPKFile : public IFile
20  {
21  public:
22  CAPKFile();
23  ~CAPKFile() override = default;
24  bool Open(const CURL& url) override;
25  void Close() override;
26  bool Exists(const CURL& url) override;
27 
28  int64_t Seek(int64_t iFilePosition, int iWhence = SEEK_SET) override;
29  ssize_t Read(void* lpBuf, size_t uiBufSize) override;
30  int Stat(struct __stat64* buffer) override;
31  int Stat(const CURL& url, struct __stat64* buffer) override;
32  int64_t GetLength() override;
33  int64_t GetPosition() override;
34  int GetChunkSize() override;
35 
36  protected:
37  CURL m_url;
38  int m_zip_index;
39  int64_t m_file_pos;
40  int64_t m_file_size;
41  struct zip_file *m_zip_file;
42  struct zip *m_zip_archive;
43  };
44 }
Definition: Scraper.h:41
Definition: URL.h:20
Definition: IFile.h:42
ssize_t Read(void *lpBuf, size_t uiBufSize) override
Attempt to read bufSize bytes from currently opened file into buffer bufPtr.
Definition: APKFile.cpp:158
Definition: APKFile.h:19
int Stat(struct __stat64 *buffer) override
Fills struct __stat64 with information about currently open file For st_mode function will set correc...
Definition: APKFile.cpp:180