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:
@@ -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
|
status_t
|
||||||
Directory::Read(off_t offset, void* buffer, size_t* bufferSize)
|
Directory::Read(off_t offset, void* buffer, size_t* bufferSize)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -30,6 +30,9 @@ public:
|
|||||||
virtual status_t Init(Directory* parent, const char* name,
|
virtual status_t Init(Directory* parent, const char* name,
|
||||||
uint32 flags);
|
uint32 flags);
|
||||||
|
|
||||||
|
virtual mode_t Mode() const;
|
||||||
|
virtual off_t FileSize() const;
|
||||||
|
|
||||||
virtual status_t Read(off_t offset, void* buffer,
|
virtual status_t Read(off_t offset, void* buffer,
|
||||||
size_t* bufferSize);
|
size_t* bufferSize);
|
||||||
virtual status_t Read(io_request* request);
|
virtual status_t Read(io_request* request);
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include "DebugSupport.h"
|
#include "DebugSupport.h"
|
||||||
|
#include "EmptyAttributeDirectoryCookie.h"
|
||||||
|
|
||||||
|
|
||||||
Node::Node(ino_t id)
|
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
|
status_t
|
||||||
Node::IndexAttribute(AttributeIndexer* indexer)
|
Node::IndexAttribute(AttributeIndexer* indexer)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -67,8 +67,8 @@ public:
|
|||||||
void SetParent(Directory* parent);
|
void SetParent(Directory* parent);
|
||||||
|
|
||||||
virtual mode_t Mode() const = 0;
|
virtual mode_t Mode() const = 0;
|
||||||
virtual uid_t UserID() const = 0;
|
virtual uid_t UserID() const;
|
||||||
virtual gid_t GroupID() const = 0;
|
virtual gid_t GroupID() const;
|
||||||
virtual timespec ModifiedTime() const = 0;
|
virtual timespec ModifiedTime() const = 0;
|
||||||
virtual off_t FileSize() const = 0;
|
virtual off_t FileSize() const = 0;
|
||||||
|
|
||||||
@@ -80,9 +80,9 @@ public:
|
|||||||
size_t* bufferSize) = 0;
|
size_t* bufferSize) = 0;
|
||||||
|
|
||||||
virtual status_t OpenAttributeDirectory(
|
virtual status_t OpenAttributeDirectory(
|
||||||
AttributeDirectoryCookie*& _cookie) = 0;
|
AttributeDirectoryCookie*& _cookie);
|
||||||
virtual status_t OpenAttribute(const char* name, int openMode,
|
virtual status_t OpenAttribute(const char* name, int openMode,
|
||||||
AttributeCookie*& _cookie) = 0;
|
AttributeCookie*& _cookie);
|
||||||
|
|
||||||
virtual status_t IndexAttribute(AttributeIndexer* indexer);
|
virtual status_t IndexAttribute(AttributeIndexer* indexer);
|
||||||
virtual void* IndexCookieForAttribute(const char* name) const;
|
virtual void* IndexCookieForAttribute(const char* name) const;
|
||||||
|
|||||||
@@ -12,7 +12,6 @@
|
|||||||
|
|
||||||
#include <AutoDeleter.h>
|
#include <AutoDeleter.h>
|
||||||
|
|
||||||
#include "EmptyAttributeDirectoryCookie.h"
|
|
||||||
#include "DebugSupport.h"
|
#include "DebugSupport.h"
|
||||||
#include "PackageLinksListener.h"
|
#include "PackageLinksListener.h"
|
||||||
#include "Utils.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
|
timespec
|
||||||
PackageLinkDirectory::ModifiedTime() const
|
PackageLinkDirectory::ModifiedTime() const
|
||||||
{
|
{
|
||||||
return fModifiedTime;
|
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
|
void
|
||||||
PackageLinkDirectory::AddPackage(Package* package,
|
PackageLinkDirectory::AddPackage(Package* package,
|
||||||
PackageLinksListener* listener)
|
PackageLinksListener* listener)
|
||||||
|
|||||||
@@ -23,16 +23,7 @@ public:
|
|||||||
virtual status_t Init(Directory* parent, const char* name,
|
virtual status_t Init(Directory* parent, const char* name,
|
||||||
uint32 flags);
|
uint32 flags);
|
||||||
|
|
||||||
virtual mode_t Mode() const;
|
|
||||||
virtual uid_t UserID() const;
|
|
||||||
virtual gid_t GroupID() const;
|
|
||||||
virtual timespec ModifiedTime() 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,
|
void AddPackage(Package* package,
|
||||||
PackageLinksListener* listener);
|
PackageLinksListener* listener);
|
||||||
|
|||||||
@@ -10,7 +10,6 @@
|
|||||||
|
|
||||||
#include <NodeMonitor.h>
|
#include <NodeMonitor.h>
|
||||||
|
|
||||||
#include "EmptyAttributeDirectoryCookie.h"
|
|
||||||
#include "DebugSupport.h"
|
#include "DebugSupport.h"
|
||||||
#include "NodeListener.h"
|
#include "NodeListener.h"
|
||||||
#include "PackageLinksListener.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
|
timespec
|
||||||
PackageLinkSymlink::ModifiedTime() const
|
PackageLinkSymlink::ModifiedTime() const
|
||||||
{
|
{
|
||||||
@@ -167,24 +152,3 @@ PackageLinkSymlink::ReadSymlink(void* buffer, size_t* bufferSize)
|
|||||||
|
|
||||||
return B_OK;
|
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);
|
PackageLinksListener* listener);
|
||||||
|
|
||||||
virtual mode_t Mode() const;
|
virtual mode_t Mode() const;
|
||||||
virtual uid_t UserID() const;
|
|
||||||
virtual gid_t GroupID() const;
|
|
||||||
virtual timespec ModifiedTime() const;
|
virtual timespec ModifiedTime() const;
|
||||||
virtual off_t FileSize() const;
|
virtual off_t FileSize() const;
|
||||||
|
|
||||||
@@ -33,11 +31,6 @@ public:
|
|||||||
|
|
||||||
virtual status_t ReadSymlink(void* buffer, size_t* bufferSize);
|
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:
|
private:
|
||||||
struct OldAttributes;
|
struct OldAttributes;
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,6 @@
|
|||||||
|
|
||||||
#include <AutoDeleter.h>
|
#include <AutoDeleter.h>
|
||||||
|
|
||||||
#include "EmptyAttributeDirectoryCookie.h"
|
|
||||||
#include "DebugSupport.h"
|
#include "DebugSupport.h"
|
||||||
#include "PackageLinkDirectory.h"
|
#include "PackageLinkDirectory.h"
|
||||||
#include "PackageLinksListener.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
|
timespec
|
||||||
PackageLinksDirectory::ModifiedTime() const
|
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
|
status_t
|
||||||
PackageLinksDirectory::AddPackage(Package* package)
|
PackageLinksDirectory::AddPackage(Package* package)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -18,16 +18,7 @@ public:
|
|||||||
PackageLinksDirectory();
|
PackageLinksDirectory();
|
||||||
virtual ~PackageLinksDirectory();
|
virtual ~PackageLinksDirectory();
|
||||||
|
|
||||||
virtual mode_t Mode() const;
|
|
||||||
virtual uid_t UserID() const;
|
|
||||||
virtual gid_t GroupID() const;
|
|
||||||
virtual timespec ModifiedTime() 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)
|
void SetListener(PackageLinksListener* listener)
|
||||||
{ fListener = listener; }
|
{ fListener = listener; }
|
||||||
|
|||||||
Reference in New Issue
Block a user