#pragma once #include "types.hpp" #include "DataView.hpp" #include "Permission.hpp" #include #include #include namespace odhtdb { class User; class GroupNameTooLongException : public std::runtime_error { public: GroupNameTooLongException(const std::string &groupName) : std::runtime_error(std::string("The group name ") + groupName + " is longer than 255 bytes") { } }; const int GROUP_ID_LENGTH = 16; class Group { friend class User; public: Group(const std::string &name, uint8_t id[GROUP_ID_LENGTH], const Permission &permission); ~Group(); const std::string& getName() const; DataView getId() const; const Permission& getPermission() const; const std::vector& getUsers() const; private: void addUser(const User *user); private: std::string name; uint8_t id[GROUP_ID_LENGTH]; Permission permission; std::vector users; }; }