Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(404)

Unified Diff: native_client_sdk/src/libraries/nacl_io/mount_node_http.h

Issue 16232016: [NaCl SDK] nacl_io: big refactor to return error value (errno). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: merge master, fix windows Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: native_client_sdk/src/libraries/nacl_io/mount_node_http.h
diff --git a/native_client_sdk/src/libraries/nacl_io/mount_node_http.h b/native_client_sdk/src/libraries/nacl_io/mount_node_http.h
new file mode 100644
index 0000000000000000000000000000000000000000..6b174681d11ec7a927f69ec826667fab6fe7cd6b
--- /dev/null
+++ b/native_client_sdk/src/libraries/nacl_io/mount_node_http.h
@@ -0,0 +1,70 @@
+/* Copyright (c) 2013 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 LIBRARIES_NACL_IO_MOUNT_NODE_HTTP_H_
+#define LIBRARIES_NACL_IO_MOUNT_NODE_HTTP_H_
+
+#include <map>
+#include <string>
+#include <vector>
+
+#include "nacl_io/error.h"
+#include "nacl_io/mount_node.h"
+#include "nacl_io/pepper_interface.h"
+
+typedef std::map<std::string, std::string> StringMap_t;
+
+class MountNodeHttp : public MountNode {
+ public:
+ virtual Error FSync();
+ virtual Error GetDents(size_t offs,
+ struct dirent* pdir,
+ size_t count,
+ int* out_bytes);
+ virtual Error GetStat(struct stat* stat);
+ virtual Error Read(size_t offs, void* buf, size_t count, int* out_bytes);
+ virtual Error FTruncate(off_t size);
+ virtual Error Write(size_t offs,
+ const void* buf,
+ size_t count,
+ int* out_bytes);
+ virtual Error GetSize(size_t* out_size);
+
+ void SetCachedSize(off_t size);
+
+ protected:
+ MountNodeHttp(Mount* mount, const std::string& url, bool cache_content);
+
+ private:
+ Error OpenUrl(const char* method,
+ StringMap_t* request_headers,
+ PP_Resource* out_loader,
+ PP_Resource* out_request,
+ PP_Resource* out_response,
+ int32_t* out_statuscode,
+ StringMap_t* out_response_headers);
+
+ Error DownloadToCache();
+ Error ReadPartialFromCache(size_t offs,
+ void* buf,
+ size_t count,
+ int* out_bytes);
+ Error DownloadPartial(size_t offs, void* buf, size_t count, int* out_bytes);
+ Error DownloadToBuffer(PP_Resource loader,
+ void* buf,
+ size_t count,
+ int* out_bytes);
+
+ std::string url_;
+ std::vector<char> buffer_;
+
+ bool cache_content_;
+ bool has_cached_size_;
+ std::vector<char> cached_data_;
+
+ friend class MountHttp;
+};
+
+#endif // LIBRARIES_NACL_IO_MOUNT_NODE_HTTP_H_

Powered by Google App Engine
This is Rietveld 408576698