summaryrefslogtreecommitdiff
path: root/include/resource-set.h
blob: b62e5cde80bca5f62152ac6b3570400e80f03eee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#ifndef RESOURCE_SET_H
#define RESOURCE_SET_H

#include "resource.h"
#include <QString>
#include <QObject>
#include <QSet>

namespace ResourcePolicy
{
   class ResourceSet: public QObject
   {
      Q_OBJECT
      Q_DISABLE_COPY( ResourceSet )
  public:
      ResourceSet(const QString &applicationClass);
      ~ResourceSet();

      void addResource(const Resource &resource);
      void addResources(const QSet<Resource> &resources);
      void setResources(const QSet<Resource> &resources);
      QSet<Resource> resources();

      bool contains(const Resource &resource) const;
      bool contains(const QSet<Resource> &resources) const;

      quint32 id() const;
  signals:
      void resourcesBecameAvailable(QSet<Resource> resources);
      void resourcesAcquired(QSet<Resource> grantedResources);
      void resourcesDenied();
      void lostResources();

  private:
      quint32 identifier;
      const QString applicationClass;
      QSet<Resource> resourceSet;
   };
}

#endif