#ifndef GROUP_H_EDAFB5DC #define GROUP_H_EDAFB5DC #include #include #include #include #include #include "role.h" namespace verbly { namespace generator { class frame; class database; class group { public: // Constructor group(); explicit group(const group& parent); // Mutators void addRole(role r); void addFrame(frame f); // Accessors int getId() const { return id_; } const std::set& getRoles() const { return roleNames_; } bool hasRole(std::string name) const; const role& getRole(std::string name) const; const std::list& getFrames() const { return frames_; } private: static int nextId_; const int id_; std::map roles_; std::list frames_; // Caches std::set roleNames_; }; // Serializer database& operator<<(database& db, const group& arg); }; }; #endif /* end of include guard: GROUP_H_EDAFB5DC */