mirror of
				https://bitbucket.org/chromiumembedded/cef
				synced 2025-06-05 21:39:12 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			56 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
// Copyright (c) 2012 The Chromium Embedded Framework Authors. All rights
 | 
						|
// reserved. Use of this source code is governed by a BSD-style license that
 | 
						|
// can be found in the LICENSE file.
 | 
						|
 | 
						|
#ifndef CEF_LIBCEF_BROWSER_ZIP_READER_IMPL_H_
 | 
						|
#define CEF_LIBCEF_BROWSER_ZIP_READER_IMPL_H_
 | 
						|
#pragma once
 | 
						|
 | 
						|
#include <sstream>
 | 
						|
 | 
						|
#include "base/threading/platform_thread.h"
 | 
						|
#include "include/cef_zip_reader.h"
 | 
						|
#include "third_party/zlib/contrib/minizip/unzip.h"
 | 
						|
 | 
						|
// Implementation of CefZipReader
 | 
						|
class CefZipReaderImpl : public CefZipReader {
 | 
						|
 public:
 | 
						|
  CefZipReaderImpl();
 | 
						|
  ~CefZipReaderImpl() override;
 | 
						|
 | 
						|
  // Initialize the reader context.
 | 
						|
  bool Initialize(CefRefPtr<CefStreamReader> stream);
 | 
						|
 | 
						|
  bool MoveToFirstFile() override;
 | 
						|
  bool MoveToNextFile() override;
 | 
						|
  bool MoveToFile(const CefString& fileName, bool caseSensitive) override;
 | 
						|
  bool Close() override;
 | 
						|
  CefString GetFileName() override;
 | 
						|
  int64 GetFileSize() override;
 | 
						|
  CefTime GetFileLastModified() override;
 | 
						|
  bool OpenFile(const CefString& password) override;
 | 
						|
  bool CloseFile() override;
 | 
						|
  int ReadFile(void* buffer, size_t bufferSize) override;
 | 
						|
  int64 Tell() override;
 | 
						|
  bool Eof() override;
 | 
						|
 | 
						|
  bool GetFileInfo();
 | 
						|
 | 
						|
  // Verify that the reader exists and is being accessed from the correct
 | 
						|
  // thread.
 | 
						|
  bool VerifyContext();
 | 
						|
 | 
						|
 protected:
 | 
						|
  base::PlatformThreadId supported_thread_id_;
 | 
						|
  unzFile reader_;
 | 
						|
  bool has_fileopen_;
 | 
						|
  bool has_fileinfo_;
 | 
						|
  CefString filename_;
 | 
						|
  int64 filesize_;
 | 
						|
  time_t filemodified_;
 | 
						|
 | 
						|
  IMPLEMENT_REFCOUNTING(CefZipReaderImpl);
 | 
						|
};
 | 
						|
 | 
						|
#endif  // CEF_LIBCEF_BROWSER_ZIP_READER_IMPL_H_
 |