db/upnp/Directory: move checkobjok() to class UPnPDirObject

This commit is contained in:
Max Kellermann 2014-11-08 10:55:59 +01:00
parent 5e73007b1d
commit e67afc35b8
2 changed files with 9 additions and 11 deletions

View File

@ -197,16 +197,6 @@ protected:
}
}
bool checkobjok() {
if (m_tobj.id.empty() || m_tobj.parent_id.empty() ||
m_tobj.name.empty() ||
(m_tobj.type == UPnPDirObject::Type::ITEM &&
m_tobj.item_class == UPnPDirObject::ItemClass::UNKNOWN))
return false;
return true;
}
virtual void EndElement(const XML_Char *name)
{
if (tag_type != TAG_NUM_OF_ITEM_TYPES) {
@ -223,7 +213,7 @@ protected:
}
if ((!strcmp(name, "container") || !strcmp(name, "item")) &&
checkobjok()) {
m_tobj.Check()) {
tag.Commit(m_tobj.tag);
m_dir.objects.emplace_back(std::move(m_tobj));
}

View File

@ -21,6 +21,7 @@
#define MPD_UPNP_OBJECT_HXX
#include "tag/Tag.hxx"
#include "Compiler.h"
#include <string>
@ -87,6 +88,13 @@ public:
item_class = ItemClass::UNKNOWN;
tag.Clear();
}
gcc_pure
bool Check() const {
return !id.empty() && !parent_id.empty() && !name.empty() &&
(type != UPnPDirObject::Type::ITEM ||
item_class != UPnPDirObject::ItemClass::UNKNOWN);
}
};
#endif /* _UPNPDIRCONTENT_H_X_INCLUDED_ */