]> SALOME platform Git repositories - modules/gde.git/blob - projects/GDE_API_CPP/api/src/Profile.hpp
Salome HOME
ProfilesService
[modules/gde.git] / projects / GDE_API_CPP / api / src / Profile.hpp
1 #ifndef GDE_PROFILE_HPP
2 #define GDE_PROFILE_HPP
3
4 #include "ProfileAttribute.hpp"
5
6 #include <string>
7 #include <vector>
8
9 namespace gde {
10
11   class Profile {
12     friend class ProfilesService;
13     friend class GDESession;
14
15   public:
16     Profile(const std::string& name, const std::vector<ProfileAttribute>& attributes=std::vector<ProfileAttribute>())
17       : _id(0), _name(name), _attributes(attributes)
18     {}
19     ~Profile() {}
20
21     inline int getId() const { return _id; }
22     inline void setId(int id) { this->_id = id; }
23
24     inline std::string getName() const { return _name; }
25     inline void setName(const std::string& name) { this->_name = name; }
26
27     inline const std::vector<ProfileAttribute>& getAttributes() const { return _attributes; }
28     inline void setAttributes(const std::vector<ProfileAttribute>& attributes) { this->_attributes = attributes; }
29
30   private:
31     Profile(int id, const std::string& name, const std::vector<ProfileAttribute>& attributes)
32       : _id(id), _name(name), _attributes(attributes)
33     {}
34     //Profile(const Profile&); // non copyable
35     //Profile& operator=(const Profile&); // non copyable
36
37   private:
38     int _id;
39     std::string _name;
40     std::vector<ProfileAttribute> _attributes;
41   };
42
43 };
44
45 #endif