diff options
Diffstat (limited to 'libresourceqt/src/resource-set.cpp')
-rw-r--r-- | libresourceqt/src/resource-set.cpp | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/libresourceqt/src/resource-set.cpp b/libresourceqt/src/resource-set.cpp new file mode 100644 index 0000000..c7862ef --- /dev/null +++ b/libresourceqt/src/resource-set.cpp @@ -0,0 +1,111 @@ +#include "resource-set.h" +using namespace ResourcePolicy; + + +ResourceSet::ResourceSet(const QString &applicationClass, QObject * parent) + : QObject(parent), applicationClass(applicationClass) +{ + identifier = (quint32)this; + memset(resourceSet, 0, sizeof(QPointer<Resource>)*NumberOfTypes); +} + +ResourceSet::~ResourceSet() +{ + for(int i=0;i<NumberOfTypes;i++) { + delete resourceSet[i]; + } +} + +void ResourceSet::addResource(const Resource *resource) +{ + resourceSet[resource->type()] = resource->clone(); +} + +void ResourceSet::addResources(const QList<Resource *>resources) +{ + for(int i=0; i < resources.size(); i++) { + addResource(resources.at(i)); + } +} + +void ResourceSet::delResource(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<ResourceType> &types) const +{ + bool containsAll=true; + int i=0; + do { + containsAll = contains(types.at(i)); + i++; + } while((i < NumberOfTypes) && containsAll); + return containsAll; +} + +quint32 ResourceSet::id() const +{ + return identifier; +} + +QList<Resource *> ResourceSet::resources() +{ + QList<Resource *> 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::connectToManager(bool reconnectOnDisconnect) +{ + return false; +} + +void ResourceSet::disconnectFromManager() +{ +} + +bool ResourceSet::isConnectedToManager() +{ + return false; +} + +bool ResourceSet::acquire() +{ + return false; +} + +bool ResourceSet::release() +{ + return false; +} + +bool ResourceSet::update() +{ + return false; +} + |