git-svn-id: svn://db.shs.com.ru/libs@398 a8b55f48-bf90-11e4-a774-851b48703e85
This commit is contained in:
@@ -114,6 +114,11 @@ int Interface::count(bool recursive) const {
|
||||
}
|
||||
|
||||
|
||||
bool Interface::exists(PIDeque<int> path) const {
|
||||
return s->exists(path);
|
||||
}
|
||||
|
||||
|
||||
void Interface::setFileName(const PIString & _file) {
|
||||
file_ = _file;
|
||||
}
|
||||
|
||||
@@ -33,6 +33,7 @@ public:
|
||||
const PIString file() const {return file_;}
|
||||
int fileSize() const {return file_size;}
|
||||
CDType::cdT cdType() const {return type;}
|
||||
bool exists(PIDeque<int> path) const;
|
||||
|
||||
void setFileName(const PIString & _file);
|
||||
bool configure(const PIString & config);
|
||||
|
||||
@@ -328,6 +328,16 @@ const CDSection CDSection::section(int v) const {
|
||||
}
|
||||
|
||||
|
||||
bool CDSection::exists(PIDeque<int> path) const {
|
||||
if (path.isEmpty()) return false;
|
||||
if (path.size_s() == 1) return cd.contains(path[0]);
|
||||
int si = path[0];
|
||||
if (!s.contains(si)) return false;
|
||||
path.remove(0, 1);
|
||||
return s[si].exists(path);
|
||||
}
|
||||
|
||||
|
||||
int CDSection::count(bool recursive) const {
|
||||
int ret = cd.size_s();
|
||||
if (recursive) {
|
||||
|
||||
@@ -111,6 +111,7 @@ public:
|
||||
const CDSection section(int v) const;
|
||||
|
||||
bool isEmpty() const {return cd.isEmpty() && s.isEmpty();}
|
||||
bool exists(PIDeque<int> path) const;
|
||||
int count(bool recursive = true) const;
|
||||
int sectionsCount() const;
|
||||
PIVector<int> indexes() const {return cd.keys();}
|
||||
|
||||
Reference in New Issue
Block a user