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

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

Issue 12194030: Rename mount (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix whitespace Created 7 years, 10 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
(Empty)
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
3 * found in the LICENSE file.
4 */
5 #ifndef LIBRARIES_NACL_MOUNTS_MOUNT_NODE_H_
6 #define LIBRARIES_NACL_MOUNTS_MOUNT_NODE_H_
7
8 #include <string>
9
10 #include "nacl_mounts/osstat.h"
11 #include "utils/ref_object.h"
12
13 struct dirent;
14 struct stat;
15 class Mount;
16
17 class MountNode : public RefObject {
18 protected:
19 explicit MountNode(Mount* mount);
20 virtual ~MountNode();
21
22 protected:
23 // Initialize with node specific flags, in this case stat permissions.
24 virtual bool Init(int flags);
25 virtual void Destroy();
26
27 public:
28 // Normal OS operations on a node (file), can be called by the kernel
29 // directly so it must lock and unlock appropriately. These functions
30 // must not be called by the mount.
31 virtual int FSync();
32 virtual int GetDents(size_t offs, struct dirent* pdir, size_t count);
33 virtual int GetStat(struct stat* stat);
34 virtual int Ioctl(int request, char* arg);
35 virtual int Read(size_t offs, void* buf, size_t count);
36 virtual int Truncate(size_t size);
37 virtual int Write(size_t offs, const void* buf, size_t count);
38
39 virtual int GetLinks();
40 virtual int GetMode();
41 virtual int GetType();
42 virtual size_t GetSize();
43 virtual bool IsaDir();
44 virtual bool IsaFile();
45 virtual bool IsaTTY();
46
47 protected:
48 // Directory operations on the node are done by the Mount. The mount's lock
49 // must be held while these calls are made.
50
51 // Adds or removes a directory entry updating the link numbers and refcount
52 virtual int AddChild(const std::string& name, MountNode *node);
53 virtual int RemoveChild(const std::string& name);
54
55 // Find a child and return it without updating the refcount
56 virtual MountNode* FindChild(const std::string& name);
57 virtual int ChildCount();
58
59 // Update the link count
60 virtual void Link();
61 virtual void Unlink();
62
63 protected:
64 struct stat stat_;
65 Mount* mount_;
66
67 friend class Mount;
68 friend class MountDev;
69 friend class MountHtml5Fs;
70 friend class MountHttp;
71 friend class MountMem;
72 friend class MountNodeDir;
73 };
74
75 #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