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

Side by Side Diff: native_client_sdk/src/libraries/nacl_mounts/mount_node.h

Issue 9956156: Add mount sources for a MountNode (inode) (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 /* Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 * Use of this source code is governed by a BSD-style license that can be 2 * Use of this source code is governed by a BSD-style license that can be
3 * found in the LICENSE file. 3 * found in the LICENSE file.
4 */ 4 */
5 5
6 #ifndef LIBRARIES_NACL_MOUNTS_MOUNT_NODE_H_ 6 #ifndef LIBRARIES_NACL_MOUNTS_MOUNT_NODE_H_
7 #define LIBRARIES_NACL_MOUNTS_MOUNT_NODE_H_ 7 #define LIBRARIES_NACL_MOUNTS_MOUNT_NODE_H_
8 8
9 #include <sys/stat.h> 9 #include <sys/stat.h>
10 10
11 #include <string> 11 #include <string>
12 #include "ref_object.h" 12 #include "ref_object.h"
13 13
14 struct dirent; 14 struct dirent;
15 struct stat; 15 struct stat;
16 class Mount; 16 class Mount;
17 class MountNode; 17 class MountNode;
18 18
19 class MountNode : public RefObject { 19 class MountNode : public RefObject {
20 protected: 20 protected:
21 virtual ~MountNode(); 21 virtual ~MountNode();
22 22
23 protected: 23 protected:
24 MountNode(Mount* mount, int ino, int dev); 24 MountNode(Mount* mount, int ino, int dev);
25 virtual bool Init(int mode, short uid, short gid); 25 virtual bool Init(int mode, short uid, short gid);
26 virtual void Destroy(); 26 virtual int Close();
27 27
28 public: 28 public:
29 // Normal OS operations on a node (file), can be called by the kernel 29 // Normal OS operations on a node (file), can be called by the kernel
30 // directly so it must lock and unlock appropriately. These functions 30 // directly so it must lock and unlock appropriately. These functions
31 // must not be called by the mount. 31 // must not be called by the mount.
32 virtual int FSync(); 32 virtual int FSync();
33 virtual int GetDents(size_t offs, struct dirent* pdir, size_t count); 33 virtual int GetDents(size_t offs, struct dirent* pdir, size_t count);
34 virtual int GetStat(struct stat* stat); 34 virtual int GetStat(struct stat* stat);
35 virtual int Ioctl(int request, char* arg); 35 virtual int Ioctl(int request, char* arg);
36 virtual int Read(size_t offs, void* buf, size_t count); 36 virtual int Read(size_t offs, void* buf, size_t count);
(...skipping 11 matching lines...) Expand all
48 protected: 48 protected:
49 // Directory operations on the node are done by the Mount. The mount's lock 49 // Directory operations on the node are done by the Mount. The mount's lock
50 // must be held while these calls are made. 50 // must be held while these calls are made.
51 51
52 // Adds or removes a directory entry updating the link numbers and refcount 52 // Adds or removes a directory entry updating the link numbers and refcount
53 virtual int AddChild(const std::string& name, MountNode *node); 53 virtual int AddChild(const std::string& name, MountNode *node);
54 virtual int RemoveChild(const std::string& name); 54 virtual int RemoveChild(const std::string& name);
55 55
56 // Find a child and return it without updating the refcount 56 // Find a child and return it without updating the refcount
57 virtual MountNode* FindChild(const std::string& name); 57 virtual MountNode* FindChild(const std::string& name);
58 virtual int ChildCount();
58 59
59 // Update the link count 60 // Update the link count
60 virtual void Link(); 61 virtual void Link();
61 virtual void Unlink(); 62 virtual void Unlink();
62 63
63 protected: 64 protected:
64 struct stat stat_; 65 struct stat stat_;
65 Mount* mount_; 66 Mount* mount_;
66 67
67 friend class Mount; 68 friend class MountHFS;
69 friend class MountMem;
68 friend class MountNodeDir; 70 friend class MountNodeDir;
69 }; 71 };
70 72
71 #endif // LIBRARIES_NACL_MOUNTS_MOUNT_NODE_H_ 73 #endif // LIBRARIES_NACL_MOUNTS_MOUNT_NODE_H_
OLDNEW
« no previous file with comments | « native_client_sdk/src/libraries/nacl_mounts/mount_mem.cc ('k') | native_client_sdk/src/libraries/nacl_mounts/mount_node.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698