aboutsummaryrefslogtreecommitdiff
path: root/src/binary_parse/cached_paged_byte_array.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/binary_parse/cached_paged_byte_array.h')
-rw-r--r--src/binary_parse/cached_paged_byte_array.h73
1 files changed, 0 insertions, 73 deletions
diff --git a/src/binary_parse/cached_paged_byte_array.h b/src/binary_parse/cached_paged_byte_array.h
deleted file mode 100644
index 26f0eae..0000000
--- a/src/binary_parse/cached_paged_byte_array.h
+++ /dev/null
@@ -1,73 +0,0 @@
-// Copyright 2015 Google Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-//
-// LRU cache decorator for binary_parse::PagedByteArray subclasses.
-
-#ifndef PIEX_BINARY_PARSE_CACHED_PAGED_BYTE_ARRAY_H_
-#define PIEX_BINARY_PARSE_CACHED_PAGED_BYTE_ARRAY_H_
-
-#include <mutex>
-#include <vector>
-
-#if !defined(WIN32_LEAN_AND_MEAN)
-#define WIN32_LEAN_AND_MEAN
-#endif
-#include "src/binary_parse/range_checked_byte_ptr.h"
-
-namespace piex {
-namespace binary_parse {
-
-class CachedPagedByteArray : public PagedByteArray {
- public:
- // Decorates 'paged_byte_array' with a LRU cache layer of the size
- // 'cache_size'.
- explicit CachedPagedByteArray(const PagedByteArray* paged_byte_array,
- size_t cache_size);
-
- virtual size_t length() const { return paged_byte_array_->length(); }
-
- virtual size_t pageSize() const { return paged_byte_array_->pageSize(); }
-
- virtual void getPage(size_t page_index, const unsigned char** begin,
- const unsigned char** end,
- PagedByteArray::PagePtr* page) const;
-
- private:
- struct CachedPage {
- size_t index;
- PagedByteArray::PagePtr page;
- const unsigned char* begin;
- const unsigned char* end;
- };
-
- // Disallow copy construction and assignment.
- CachedPagedByteArray(const CachedPagedByteArray&);
- void operator=(const CachedPagedByteArray&);
-
- // Gets the index of the page if it is in the cache and returns true, else
- // returns false.
- bool getFromCache(size_t page_index, size_t* cache_index) const;
-
- mutable std::mutex mutex_;
- const PagedByteArray* paged_byte_array_;
- const size_t cache_size_;
- mutable std::vector<CachedPage> cached_pages_;
-};
-
-} // namespace binary_parse
-} // namespace piex
-
-#endif // PIEX_BINARY_PARSE_CACHED_PAGED_BYTE_ARRAY_H_