From 8fb06810185b76fc2ef0f2ea253950dcc00e88fb Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Fri, 15 Jul 2011 13:03:22 +0200 Subject: [PATCH] Implement more virtuals in Node and Directory * Node: Add default implementations for UserID(), GroupID(), OpenAttributeDirectory(), and OpenAttribute(). * Directory: Add default implementations for Mode() and FileSize(). * Remove the respective hook implementations in the PackageLink* classes. --- .../file_systems/packagefs/Directory.cpp | 14 +++++ .../kernel/file_systems/packagefs/Directory.h | 3 ++ .../kernel/file_systems/packagefs/Node.cpp | 35 +++++++++++++ .../kernel/file_systems/packagefs/Node.h | 8 +-- .../packagefs/PackageLinkDirectory.cpp | 52 ------------------- .../packagefs/PackageLinkDirectory.h | 9 ---- .../packagefs/PackageLinkSymlink.cpp | 36 ------------- .../packagefs/PackageLinkSymlink.h | 7 --- .../packagefs/PackageLinksDirectory.cpp | 51 ------------------ .../packagefs/PackageLinksDirectory.h | 9 ---- 10 files changed, 56 insertions(+), 168 deletions(-) diff --git a/src/add-ons/kernel/file_systems/packagefs/Directory.cpp b/src/add-ons/kernel/file_systems/packagefs/Directory.cpp index c073dc06ba..0ac01c5f8a 100644 --- a/src/add-ons/kernel/file_systems/packagefs/Directory.cpp +++ b/src/add-ons/kernel/file_systems/packagefs/Directory.cpp @@ -41,6 +41,20 @@ Directory::Init(Directory* parent, const char* name, uint32 flags) } +mode_t +Directory::Mode() const +{ + return S_IFDIR | S_IRUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH; +} + + +off_t +Directory::FileSize() const +{ + return 0; +} + + status_t Directory::Read(off_t offset, void* buffer, size_t* bufferSize) { diff --git a/src/add-ons/kernel/file_systems/packagefs/Directory.h b/src/add-ons/kernel/file_systems/packagefs/Directory.h index 3dc604cd37..c117d1ec08 100644 --- a/src/add-ons/kernel/file_systems/packagefs/Directory.h +++ b/src/add-ons/kernel/file_systems/packagefs/Directory.h @@ -30,6 +30,9 @@ public: virtual status_t Init(Directory* parent, const char* name, uint32 flags); + virtual mode_t Mode() const; + virtual off_t FileSize() const; + virtual status_t Read(off_t offset, void* buffer, size_t* bufferSize); virtual status_t Read(io_request* request); diff --git a/src/add-ons/kernel/file_systems/packagefs/Node.cpp b/src/add-ons/kernel/file_systems/packagefs/Node.cpp index f452c913a7..ef137c3dea 100644 --- a/src/add-ons/kernel/file_systems/packagefs/Node.cpp +++ b/src/add-ons/kernel/file_systems/packagefs/Node.cpp @@ -10,6 +10,7 @@ #include #include "DebugSupport.h" +#include "EmptyAttributeDirectoryCookie.h" Node::Node(ino_t id) @@ -79,6 +80,40 @@ Node::SetParent(Directory* parent) } +uid_t +Node::UserID() const +{ + return 0; +} + + +gid_t +Node::GroupID() const +{ + return 0; +} + + +status_t +Node::OpenAttributeDirectory(AttributeDirectoryCookie*& _cookie) +{ + AttributeDirectoryCookie* cookie + = new(std::nothrow) EmptyAttributeDirectoryCookie; + if (cookie == NULL) + return B_NO_MEMORY; + + _cookie = cookie; + return B_OK; +} + + +status_t +Node::OpenAttribute(const char* name, int openMode, AttributeCookie*& _cookie) +{ + return B_ENTRY_NOT_FOUND; +} + + status_t Node::IndexAttribute(AttributeIndexer* indexer) { diff --git a/src/add-ons/kernel/file_systems/packagefs/Node.h b/src/add-ons/kernel/file_systems/packagefs/Node.h index d7465af16c..e107f7319e 100644 --- a/src/add-ons/kernel/file_systems/packagefs/Node.h +++ b/src/add-ons/kernel/file_systems/packagefs/Node.h @@ -67,8 +67,8 @@ public: void SetParent(Directory* parent); virtual mode_t Mode() const = 0; - virtual uid_t UserID() const = 0; - virtual gid_t GroupID() const = 0; + virtual uid_t UserID() const; + virtual gid_t GroupID() const; virtual timespec ModifiedTime() const = 0; virtual off_t FileSize() const = 0; @@ -80,9 +80,9 @@ public: size_t* bufferSize) = 0; virtual status_t OpenAttributeDirectory( - AttributeDirectoryCookie*& _cookie) = 0; + AttributeDirectoryCookie*& _cookie); virtual status_t OpenAttribute(const char* name, int openMode, - AttributeCookie*& _cookie) = 0; + AttributeCookie*& _cookie); virtual status_t IndexAttribute(AttributeIndexer* indexer); virtual void* IndexCookieForAttribute(const char* name) const; diff --git a/src/add-ons/kernel/file_systems/packagefs/PackageLinkDirectory.cpp b/src/add-ons/kernel/file_systems/packagefs/PackageLinkDirectory.cpp index 86fab0f19b..baa68818f7 100644 --- a/src/add-ons/kernel/file_systems/packagefs/PackageLinkDirectory.cpp +++ b/src/add-ons/kernel/file_systems/packagefs/PackageLinkDirectory.cpp @@ -12,7 +12,6 @@ #include -#include "EmptyAttributeDirectoryCookie.h" #include "DebugSupport.h" #include "PackageLinksListener.h" #include "Utils.h" @@ -86,63 +85,12 @@ PackageLinkDirectory::Init(Directory* parent, const char* name, uint32 flags) } -mode_t -PackageLinkDirectory::Mode() const -{ - return S_IFDIR | S_IRUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH; -} - - -uid_t -PackageLinkDirectory::UserID() const -{ - return 0; -} - - -gid_t -PackageLinkDirectory::GroupID() const -{ - return 0; -} - - timespec PackageLinkDirectory::ModifiedTime() const { return fModifiedTime; } - -off_t -PackageLinkDirectory::FileSize() const -{ - return 0; -} - - -status_t -PackageLinkDirectory::OpenAttributeDirectory( - AttributeDirectoryCookie*& _cookie) -{ - AttributeDirectoryCookie* cookie - = new(std::nothrow) EmptyAttributeDirectoryCookie; - if (cookie == NULL) - return B_NO_MEMORY; - - _cookie = cookie; - return B_OK; -} - - -status_t -PackageLinkDirectory::OpenAttribute(const char* name, int openMode, - AttributeCookie*& _cookie) -{ - return B_ENTRY_NOT_FOUND; -} - - void PackageLinkDirectory::AddPackage(Package* package, PackageLinksListener* listener) diff --git a/src/add-ons/kernel/file_systems/packagefs/PackageLinkDirectory.h b/src/add-ons/kernel/file_systems/packagefs/PackageLinkDirectory.h index 0aca0837bb..798592c243 100644 --- a/src/add-ons/kernel/file_systems/packagefs/PackageLinkDirectory.h +++ b/src/add-ons/kernel/file_systems/packagefs/PackageLinkDirectory.h @@ -23,16 +23,7 @@ public: virtual status_t Init(Directory* parent, const char* name, uint32 flags); - virtual mode_t Mode() const; - virtual uid_t UserID() const; - virtual gid_t GroupID() const; virtual timespec ModifiedTime() const; - virtual off_t FileSize() const; - - virtual status_t OpenAttributeDirectory( - AttributeDirectoryCookie*& _cookie); - virtual status_t OpenAttribute(const char* name, int openMode, - AttributeCookie*& _cookie); void AddPackage(Package* package, PackageLinksListener* listener); diff --git a/src/add-ons/kernel/file_systems/packagefs/PackageLinkSymlink.cpp b/src/add-ons/kernel/file_systems/packagefs/PackageLinkSymlink.cpp index 877b0824b7..ca3e83e667 100644 --- a/src/add-ons/kernel/file_systems/packagefs/PackageLinkSymlink.cpp +++ b/src/add-ons/kernel/file_systems/packagefs/PackageLinkSymlink.cpp @@ -10,7 +10,6 @@ #include -#include "EmptyAttributeDirectoryCookie.h" #include "DebugSupport.h" #include "NodeListener.h" #include "PackageLinksListener.h" @@ -116,20 +115,6 @@ PackageLinkSymlink::Mode() const } -uid_t -PackageLinkSymlink::UserID() const -{ - return 0; -} - - -gid_t -PackageLinkSymlink::GroupID() const -{ - return 0; -} - - timespec PackageLinkSymlink::ModifiedTime() const { @@ -167,24 +152,3 @@ PackageLinkSymlink::ReadSymlink(void* buffer, size_t* bufferSize) return B_OK; } - - -status_t -PackageLinkSymlink::OpenAttributeDirectory(AttributeDirectoryCookie*& _cookie) -{ - AttributeDirectoryCookie* cookie - = new(std::nothrow) EmptyAttributeDirectoryCookie; - if (cookie == NULL) - return B_NO_MEMORY; - - _cookie = cookie; - return B_OK; -} - - -status_t -PackageLinkSymlink::OpenAttribute(const char* name, int openMode, - AttributeCookie*& _cookie) -{ - return B_ENTRY_NOT_FOUND; -} diff --git a/src/add-ons/kernel/file_systems/packagefs/PackageLinkSymlink.h b/src/add-ons/kernel/file_systems/packagefs/PackageLinkSymlink.h index cfa64a8c4d..cbf66fcec3 100644 --- a/src/add-ons/kernel/file_systems/packagefs/PackageLinkSymlink.h +++ b/src/add-ons/kernel/file_systems/packagefs/PackageLinkSymlink.h @@ -22,8 +22,6 @@ public: PackageLinksListener* listener); virtual mode_t Mode() const; - virtual uid_t UserID() const; - virtual gid_t GroupID() const; virtual timespec ModifiedTime() const; virtual off_t FileSize() const; @@ -33,11 +31,6 @@ public: virtual status_t ReadSymlink(void* buffer, size_t* bufferSize); - virtual status_t OpenAttributeDirectory( - AttributeDirectoryCookie*& _cookie); - virtual status_t OpenAttribute(const char* name, int openMode, - AttributeCookie*& _cookie); - private: struct OldAttributes; diff --git a/src/add-ons/kernel/file_systems/packagefs/PackageLinksDirectory.cpp b/src/add-ons/kernel/file_systems/packagefs/PackageLinksDirectory.cpp index be3a2a875c..6aa810969f 100644 --- a/src/add-ons/kernel/file_systems/packagefs/PackageLinksDirectory.cpp +++ b/src/add-ons/kernel/file_systems/packagefs/PackageLinksDirectory.cpp @@ -8,7 +8,6 @@ #include -#include "EmptyAttributeDirectoryCookie.h" #include "DebugSupport.h" #include "PackageLinkDirectory.h" #include "PackageLinksListener.h" @@ -30,27 +29,6 @@ PackageLinksDirectory::~PackageLinksDirectory() } -mode_t -PackageLinksDirectory::Mode() const -{ - return S_IFDIR | S_IRUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH; -} - - -uid_t -PackageLinksDirectory::UserID() const -{ - return 0; -} - - -gid_t -PackageLinksDirectory::GroupID() const -{ - return 0; -} - - timespec PackageLinksDirectory::ModifiedTime() const { @@ -58,35 +36,6 @@ PackageLinksDirectory::ModifiedTime() const } -off_t -PackageLinksDirectory::FileSize() const -{ - return 0; -} - - -status_t -PackageLinksDirectory::OpenAttributeDirectory( - AttributeDirectoryCookie*& _cookie) -{ - AttributeDirectoryCookie* cookie - = new(std::nothrow) EmptyAttributeDirectoryCookie; - if (cookie == NULL) - return B_NO_MEMORY; - - _cookie = cookie; - return B_OK; -} - - -status_t -PackageLinksDirectory::OpenAttribute(const char* name, int openMode, - AttributeCookie*& _cookie) -{ - return B_ENTRY_NOT_FOUND; -} - - status_t PackageLinksDirectory::AddPackage(Package* package) { diff --git a/src/add-ons/kernel/file_systems/packagefs/PackageLinksDirectory.h b/src/add-ons/kernel/file_systems/packagefs/PackageLinksDirectory.h index 8d509038b8..0777fd5a76 100644 --- a/src/add-ons/kernel/file_systems/packagefs/PackageLinksDirectory.h +++ b/src/add-ons/kernel/file_systems/packagefs/PackageLinksDirectory.h @@ -18,16 +18,7 @@ public: PackageLinksDirectory(); virtual ~PackageLinksDirectory(); - virtual mode_t Mode() const; - virtual uid_t UserID() const; - virtual gid_t GroupID() const; virtual timespec ModifiedTime() const; - virtual off_t FileSize() const; - - virtual status_t OpenAttributeDirectory( - AttributeDirectoryCookie*& _cookie); - virtual status_t OpenAttribute(const char* name, int openMode, - AttributeCookie*& _cookie); void SetListener(PackageLinksListener* listener) { fListener = listener; }