#include using namespace ResourcePolicy; ResourceSet::ResourceSet(const QString &applicationClass, QObject * parent) : QObject(parent), resourceClass(applicationClass), autoRelease(false), alwaysReply(false) { identifier = (quint32)this; memset(resourceSet, 0, sizeof(QPointer)*NumberOfTypes); } ResourceSet::~ResourceSet() { for (int i = 0;i < NumberOfTypes;i++) { delete resourceSet[i]; } } bool ResourceSet::finalize() { return false; } void ResourceSet::addResource(const Resource *resource) { if ((resource->type() == AudioPlaybackType) || (resource->type() == AudioRecorderType)) { qDebug("audioResource..."); } resourceSet[resource->type()] = resource->clone(); } void ResourceSet::addResources(const QListresources) { for (int i = 0; i < resources.size(); i++) { addResource(resources.at(i)); } } void ResourceSet::deleteResource(ResourceType type) { if (contains(type)) { delete resourceSet[type]; resourceSet[type] = NULL; } } bool ResourceSet::contains(ResourceType type) const { if ((type < NumberOfTypes) && (resourceSet[type] != NULL)) return true; else return false; } bool ResourceSet::contains(const QList &types) const { bool containsAll = true; int i = 0; do { containsAll = contains(types.at(i)); i++; } while ((i < types.size()) && containsAll); return containsAll; } quint32 ResourceSet::id() const { return identifier; } QList ResourceSet::resources() const { QList listOfResources; for (int i = 0; i < NumberOfTypes; i++) { if (resourceSet[i] != NULL) { Resource *clone = resourceSet[i]->clone(); listOfResources.append(clone); } } return listOfResources; } Resource * ResourceSet::resource(ResourceType type) const { if (contains(type)) return resourceSet[type]->clone(); else return NULL; } bool ResourceSet::acquire() { return false; } bool ResourceSet::release() { return false; } bool ResourceSet::update() { return false; } QString ResourceSet::applicationClass() { return this->resourceClass; } void ResourceSet::setAutoRelease() { autoRelease = true; } void ResourceSet::setAlwaysReply() { alwaysReply = true; }