summaryrefslogtreecommitdiff
path: root/xfa_test/pdf/document_loader.h
diff options
context:
space:
mode:
Diffstat (limited to 'xfa_test/pdf/document_loader.h')
-rw-r--r--xfa_test/pdf/document_loader.h124
1 files changed, 0 insertions, 124 deletions
diff --git a/xfa_test/pdf/document_loader.h b/xfa_test/pdf/document_loader.h
deleted file mode 100644
index c09dba2ddd..0000000000
--- a/xfa_test/pdf/document_loader.h
+++ /dev/null
@@ -1,124 +0,0 @@
-// Copyright (c) 2010 The Chromium 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 PDF_DOCUMENT_LOADER_H_
-#define PDF_DOCUMENT_LOADER_H_
-
-#include <list>
-#include <string>
-#include <vector>
-
-#include "base/basictypes.h"
-#include "pdf/chunk_stream.h"
-#include "ppapi/cpp/url_loader.h"
-#include "ppapi/utility/completion_callback_factory.h"
-
-#define kDefaultRequestSize 32768u
-
-namespace chrome_pdf {
-
-class DocumentLoader {
- public:
- class Client {
- public:
- // Gets the pp::Instance object.
- virtual pp::Instance* GetPluginInstance() = 0;
- // Creates new URLLoader based on client settings.
- virtual pp::URLLoader CreateURLLoader() = 0;
- // Notification called when partial information about document is available.
- // Only called for urls that returns full content size and supports byte
- // range requests.
- virtual void OnPartialDocumentLoaded() = 0;
- // Notification called when all outstanding pending requests are complete.
- virtual void OnPendingRequestComplete() = 0;
- // Notification called when new data is available.
- virtual void OnNewDataAvailable() = 0;
- // Notification called when document is fully loaded.
- virtual void OnDocumentComplete() = 0;
- };
-
- explicit DocumentLoader(Client* client);
- virtual ~DocumentLoader();
-
- bool Init(const pp::URLLoader& loader,
- const std::string& url,
- const std::string& headers);
-
- // Data access interface. Return true is sucessful.
- bool GetBlock(uint32 position, uint32 size, void* buf) const;
-
- // Data availability interface. Return true data avaialble.
- bool IsDataAvailable(uint32 position, uint32 size) const;
-
- // Data availability interface. Return true data avaialble.
- void RequestData(uint32 position, uint32 size);
-
- bool IsDocumentComplete() const;
- uint32 document_size() const { return document_size_; }
-
- // Return number of bytes available.
- uint32 GetAvailableData() const;
-
- // Clear pending requests from the queue.
- void ClearPendingRequests();
-
- bool is_partial_document() { return partial_document_; }
-
- private:
- // Called by the completion callback of the document's URLLoader.
- void DidOpen(int32_t result);
- // Call to read data from the document's URLLoader.
- void ReadMore();
- // Called by the completion callback of the document's URLLoader.
- void DidRead(int32_t result);
-
- // If the headers have a byte-range response, writes the start and end
- // positions and returns true if at least the start position was parsed.
- // The end position will be set to 0 if it was not found or parsed from the
- // response.
- // Returns false if not even a start position could be parsed.
- static bool GetByteRange(const std::string& headers, uint32* start,
- uint32* end);
-
- // If the headers have a multi-part response, returns the boundary name.
- // Otherwise returns an empty string.
- static std::string GetMultiPartBoundary(const std::string& headers);
-
- // Called when we detect that partial document load is possible.
- void LoadPartialDocument();
- // Called when we have to load full document.
- void LoadFullDocument();
- // Download pending requests.
- void DownloadPendingRequests();
- // Called when we complete server request and read all data from it.
- void ReadComplete();
- // Creates request to download size byte of data data starting from position.
- pp::URLRequestInfo GetRequest(uint32 position, uint32 size) const;
- // Returns current request size in bytes.
- uint32 GetRequestSize() const;
-
- Client* client_;
- std::string url_;
- pp::URLLoader loader_;
- pp::CompletionCallbackFactory<DocumentLoader> loader_factory_;
- ChunkStream chunk_stream_;
- bool partial_document_;
- bool request_pending_;
- typedef std::list<std::pair<size_t, size_t> > PendingRequests;
- PendingRequests pending_requests_;
- char buffer_[kDefaultRequestSize];
- uint32 current_pos_;
- uint32 current_chunk_size_;
- uint32 current_chunk_read_;
- uint32 document_size_;
- bool header_request_;
- bool is_multipart_;
- std::string multipart_boundary_;
- uint32 requests_count_;
- std::list<std::vector<unsigned char> > chunk_buffer_;
-};
-
-} // namespace chrome_pdf
-
-#endif // PDF_DOCUMENT_LOADER_H_