Added optional DataSource::GetName() to get a name for the data source.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30410 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -7,6 +7,8 @@
|
|||||||
|
|
||||||
#include <new>
|
#include <new>
|
||||||
|
|
||||||
|
#include <String.h>
|
||||||
|
|
||||||
|
|
||||||
// #pragma mark - DataSource
|
// #pragma mark - DataSource
|
||||||
|
|
||||||
@@ -21,6 +23,13 @@ DataSource::~DataSource()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
status_t
|
||||||
|
DataSource::GetName(BString& name)
|
||||||
|
{
|
||||||
|
return B_UNSUPPORTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// #pragma mark - FileDataSource
|
// #pragma mark - FileDataSource
|
||||||
|
|
||||||
|
|
||||||
@@ -53,6 +62,17 @@ PathDataSource::Init(const char* path)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
status_t
|
||||||
|
PathDataSource::GetName(BString& name)
|
||||||
|
{
|
||||||
|
if (fPath.Path() == NULL)
|
||||||
|
return B_NO_INIT;
|
||||||
|
|
||||||
|
name = fPath.Path();
|
||||||
|
return B_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
status_t
|
status_t
|
||||||
PathDataSource::OpenFile(BFile& file)
|
PathDataSource::OpenFile(BFile& file)
|
||||||
{
|
{
|
||||||
@@ -77,6 +97,24 @@ EntryRefDataSource::Init(const entry_ref* ref)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
status_t
|
||||||
|
EntryRefDataSource::GetName(BString& name)
|
||||||
|
{
|
||||||
|
BEntry entry;
|
||||||
|
status_t error = entry.SetTo(&fRef);
|
||||||
|
if (error != B_OK)
|
||||||
|
return error;
|
||||||
|
|
||||||
|
BPath path;
|
||||||
|
error = entry.GetPath(&path);
|
||||||
|
if (error != B_OK)
|
||||||
|
return error;
|
||||||
|
|
||||||
|
name = path.Path();
|
||||||
|
return B_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
status_t
|
status_t
|
||||||
EntryRefDataSource::OpenFile(BFile& file)
|
EntryRefDataSource::OpenFile(BFile& file)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -10,12 +10,17 @@
|
|||||||
#include <Path.h>
|
#include <Path.h>
|
||||||
|
|
||||||
|
|
||||||
|
struct BString;
|
||||||
|
|
||||||
|
|
||||||
class DataSource {
|
class DataSource {
|
||||||
public:
|
public:
|
||||||
DataSource();
|
DataSource();
|
||||||
virtual ~DataSource();
|
virtual ~DataSource();
|
||||||
|
|
||||||
virtual status_t CreateDataIO(BDataIO** _io) = 0;
|
virtual status_t CreateDataIO(BDataIO** _io) = 0;
|
||||||
|
|
||||||
|
virtual status_t GetName(BString& name);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -32,6 +37,8 @@ class PathDataSource : public FileDataSource {
|
|||||||
public:
|
public:
|
||||||
status_t Init(const char* path);
|
status_t Init(const char* path);
|
||||||
|
|
||||||
|
virtual status_t GetName(BString& name);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual status_t OpenFile(BFile& file);
|
virtual status_t OpenFile(BFile& file);
|
||||||
|
|
||||||
@@ -44,6 +51,8 @@ class EntryRefDataSource : public FileDataSource {
|
|||||||
public:
|
public:
|
||||||
status_t Init(const entry_ref* ref);
|
status_t Init(const entry_ref* ref);
|
||||||
|
|
||||||
|
virtual status_t GetName(BString& name);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual status_t OpenFile(BFile& file);
|
virtual status_t OpenFile(BFile& file);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user