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.
This commit is contained in:
parent
84f50b1ce9
commit
8fb0681018
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
#include <string.h>
|
||||
|
||||
#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)
|
||||
{
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
|
||||
#include <AutoDeleter.h>
|
||||
|
||||
#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)
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
|
||||
#include <NodeMonitor.h>
|
||||
|
||||
#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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
|
||||
#include <AutoDeleter.h>
|
||||
|
||||
#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)
|
||||
{
|
||||
|
|
|
@ -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; }
|
||||
|
|
Loading…
Reference in New Issue