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

Unified Diff: ppapi/examples/filesystem_provider/inode.h

Issue 1093383002: [WIP] Provided file system from NACL. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Various cleanups Created 5 years, 7 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: ppapi/examples/filesystem_provider/inode.h
diff --git a/ppapi/examples/filesystem_provider/inode.h b/ppapi/examples/filesystem_provider/inode.h
new file mode 100644
index 0000000000000000000000000000000000000000..6c0b4bf40b1203fab9ccb560670c04222b31e18a
--- /dev/null
+++ b/ppapi/examples/filesystem_provider/inode.h
@@ -0,0 +1,101 @@
+// Copyright 2015 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 INODE_H_
+#define INODE_H_
+
+#include <map>
+#include <string>
+#include <vector>
+
+namespace filesystem{
+//"Thu Apr 24 00:46:52 UTC 2014"
+class BookKeeper;
+
+class Inode{
+public:
+ typedef enum{
+ FILE_TYPE_UNKNOWN = 0,
+ FILE_TYPE_FILE,
+ FILE_TYPE_DIR,
+ }FILE_TYPE;
+ typedef enum{
+ NO_INODE = 0
+ }Inode_Type;
+ Inode(
+ unsigned long long appointed_inode, int file_type,
+ const std::string& inode_modified = "",const std::string& file_modified="",
+ const std::string& file_access="");
+ virtual ~Inode();
+ // Accessors and mutators
+ void set_inode_number( unsigned long long inode );
+ unsigned long long inode_number() const;
+ void set_file_type(int type);
+ int file_type() const;
+ void set_file_access(const std::string& file_access = "");
+ std::string file_access() const;
+ void set_file_modified(const std::string& file_modified = "");
+ std::string file_modified() const;
+ void set_inode_modified(const std::string& inode_modified = "");
+ std::string inode_modified() const;
+ virtual unsigned long long size() const { return 0; }
+ static std::string CurentTime();
+protected:
+ // Unique ID for the inode
+ unsigned long long inode_number_;
+ // One of the FILE_TYPE enum
+ int file_type_;
+ // Containers for timestamps
+ std::string file_access_;
+ std::string file_modified_;
+ std::string inode_modified_;
+};
+
+class InodeFile : public Inode{
+ public:
+ InodeFile(
+ unsigned long long appointed_inode,
+ std::string inode_modified = "",
+ std::string file_modified = "",
+ std::string file_access = "");
+ virtual ~InodeFile();
+ virtual unsigned long long size() const { return data_.size(); }
+ bool Truncate(const size_t length );
+ bool Write(const char *data, uint64_t offset, uint64_t dataSize );
+ bool Read(size_t offset, size_t* inOutLen, const char** outData ) const ;
+ protected:
+ // Payload holder
+ std::string data_;
+};
+
+class InodeDirectory : public Inode{
+ public:
+ typedef std::pair< std::string, unsigned long long > EntryPair;
+ // Operations that manipulate
+ // entries_ list.
+ unsigned long long GetInodeFromName(const std::string& name);
+ void AddEntry(const std::string& name, unsigned long long inode);
+ void DeleteEntry(const std::string& name, unsigned long long inode);
+ // Gets all inodes from entries_
+ void GetAllInodes(std::vector<EntryPair>& inodes) ;
+ virtual unsigned long long size() const { return 0; }
+
+ InodeDirectory(
+ BookKeeper* bookKeeper,
+ unsigned long long appointed_inode,
+ std::string inode_modified = "", std::string file_modified = "",
+ std::string file_access = "");
+
+ virtual ~InodeDirectory();
+ protected:
+ typedef std::map< std::string, unsigned long long > ListOfEntries;
+ typedef ListOfEntries::iterator ListOfEntriesIterator;
+ ListOfEntries entries_;
+ BookKeeper *book_keeper_;
+
+};
+
+}// namespace filesystem
+
+#endif // INODE_H_

Powered by Google App Engine
This is Rietveld 408576698