MGroup.h
1 /*****************************************************************************
2  **
3  ** Header file for Muster API Group object
4  **
5  ** Name : MGroup.h
6  ** Author : Leonardo Bernardini
7 ** Version : Alpha 9.0 Wed May 17th 2017
8  **
9  ** Copyright 2000-2017, Virtual Vertex
10  ** All Rights Reserved.
11  **
12  ** This file contains UNPUBLISHED PROPRIETARY SOURCE CODE.
13  ** The contents of this file may not be disclosed to third parties, copied
14  ** or duplicated in any form, in whole or in part, without the prior written
15  ** permission of the author.
16  **
17  *****************************************************************************/
18 #ifndef MGROUP_H
19 #define MGROUP_H
20 
21 #ifdef WIN32
22 // Windows definitions
23 #ifdef MCLIENTLIB_EXPORTS
24 #define MCLIENTLIB_API __declspec(dllexport)
25 #else
26 #define MCLIENTLIB_API __declspec(dllimport)
27 #endif
28 #else
29 
30 #ifndef MCLIENTLIB_EXPORTS
31 #ifdef LINUX
32 #define MCLIENTLIB_API
33 #else
34 #define MCLIENTLIB_API
35 #endif
36 #else
37 #define MCLIENTLIB_API
38 #endif
39 #endif
40 
41 
42 // Disable STL Export warning, member is private, we don't need direct access from the DLL client
43 #if defined(_WIN32)
44 #pragma warning(disable: 4251)
45 #endif // _WIN32
46 
47 #include <string>
48 #include <list>
49 #include <vector>
50 
51 namespace MClientLib {
52 
63  class MCLIENTLIB_API MGroup {
64  private:
65 
66  long id;
67  std::string groupName;
68  unsigned long long allowedRights;
69  unsigned long long allowedMailNotifications;
70  unsigned long long allowedNotificatorNotifications;
71  unsigned long long allowedMobileNotifications;
72  int allowedTemplatesState;
73  int forbiddenTemplatesState;
74  int allowedPoolsState;
75  int forbiddenPoolsState;
76  int maximumInstancesState;
77  int maximumPriorityState;
78  int enableHomeFolderState;
79  int constrainToHomeFolderState;
80  int repositoriesState;
81  int limitedPoolsSkipOnIdleState;
82  int limitedInstancesSkipOnIdleState;
83  std::string allowedPools;
84  std::string forbiddenPools;
85  std::string allowedTemplates;
86  std::string forbiddenTemplates;
87  int maximumInstances;
88  int maximumPriority;
89  std::string repositories;
90  bool isLdap;
91 
92  public:
93 
101  kPropertyEnabled
102  };
103 
104  MGroup();
105  virtual ~MGroup();
106 
107  virtual void setId(long _id);
108  virtual void setGroupName(const std::string& _groupName);
109  virtual void setAllowedRights(unsigned long long _rightsMask);
110  virtual void setAllowedMailNotifications(unsigned long long _notificationsMask);
111  virtual void setAllowedMobileNotifications(unsigned long long _notificationsMask);
112  virtual void setAllowedNotificatorNotifications(unsigned long long _notificationsMask);
113  virtual void setAllowedTemplatesState(int _allowedTemplatesState);
114  virtual void setForbiddenTemplatesState(int _forbiddenTemplatesState);
115  virtual void setAllowedPoolsState(int _allowedPoolsState);
116  virtual void setForbiddenPoolsState(int _forbiddenPoolsState);
117  virtual void setMaximumInstancesState(int _maximumInstancesState);
118  virtual void setMaximumPriorityState(int _maximumPriorityState);
119  virtual void setEnableHomeFolderState(int _enableHomeFolderState);
120  virtual void setConstrainToHomeFolderState(int _constrainToHomeFolderState);
121  virtual void setRepositoriesState(int _repositoriesState);
122  virtual void setLimitedPoolsSkipOnIdleState(int _limitedPoolsSkipOnIdleState);
123  virtual void setLimitedInstancesSkipOnIdleState(int _limitedInstancesSkipOnIdleState);
124  virtual void setAllowedPools(std::string _allowedPools);
125  virtual void setForbiddenPools(std::string _forbiddenPools);
126  virtual void setAllowedTemplates(std::string _allowedTemplates);
127  virtual void setForbiddenTemplates(std::string _forbiddenTemplates);
128  virtual void setMaximumInstances(int _maximumInstances);
129  virtual void setMaximumPriority(int _maximumPriority);
130  virtual void setRepositories(std::string _repositories);
131  virtual void setIsLdap(bool _isLdap);
132 
133  virtual long getId();
134  virtual std::string getGroupName();
135  virtual unsigned long long getAllowedRights();
136  virtual unsigned long long getAllowedMailNotifications();
137  virtual unsigned long long getAllowedNotificatorNotifications();
138  virtual unsigned long long getAllowedMobileNotifications();
139  virtual int getAllowedTemplatesState();
140  virtual int getForbiddenTemplatesState();
141  virtual int getAllowedPoolsState();
142  virtual int getForbiddenPoolsState();
143  virtual int getMaximumInstancesState();
144  virtual int getMaximumPriorityState();
145  virtual int getEnableHomeFolderState();
146  virtual int getConstrainToHomeFolderState();
147  virtual int getRepositoriesState();
148  virtual int getLimitedPoolsSkipOnIdleState();
149  virtual int getLimitedInstancesSkipOnIdleState();
150  virtual std::string getAllowedPools();
151  virtual std::string getForbiddenPools();
152  virtual std::string getAllowedTemplates();
153  virtual std::string getForbiddenTemplates();
154  virtual int getMaximumInstances();
155  virtual int getMaximumPriority();
156  virtual std::string getRepositories();
157  virtual bool getIsLdap();
158 
160  virtual bool Unmarshall(const std::vector<std::string>& items);
161  virtual std::string Marshall();
162  void castedRelease();
164  };
165 
167 }
168 
169 #endif
Class holding a user group.
Definition: MGroup.h:63
kPropertyOverride
Enumeration of a property override status.
Definition: MGroup.h:99