GAMS  1.2.2
GroupFixedList.h
Go to the documentation of this file.
1 
54 #ifndef _GAMS_GROUPS_GROUP_FIXED_LIST_H_
55 #define _GAMS_GROUPS_GROUP_FIXED_LIST_H_
56 
57 #include <vector>
58 #include <string>
59 #include <map>
60 
61 #include "madara/knowledge/containers/StringVector.h"
62 
63 #include "GroupBase.h"
64 #include "GroupFactory.h"
65 
66 namespace gams
67 {
68  namespace groups
69  {
74  {
75  public:
83  GroupFixedList (const std::string & prefix = "",
84  madara::knowledge::KnowledgeBase * knowledge = 0);
85 
89  virtual ~GroupFixedList ();
90 
95  virtual void add_members (const AgentVector & members);
96 
100  virtual void clear_members (void);
101 
106  virtual void get_members (AgentVector & members) const;
107 
114  virtual bool is_member (const std::string & id) const;
115 
124  virtual void write (const std::string & prefix = "",
125  madara::knowledge::KnowledgeBase * knowledge = 0) const;
126 
132  virtual void set_prefix (const std::string & prefix,
133  madara::knowledge::KnowledgeBase * knowledge = 0);
134 
139  virtual size_t size (void);
140 
144  virtual void sync (void);
145 
146  protected:
147 
151  madara::knowledge::containers::StringVector members_;
152 
157  };
158 
163  {
164  public:
165 
170 
174  virtual ~GroupFixedListFactory ();
175 
182  virtual GroupBase * create (
183  const std::string & prefix,
184  madara::knowledge::KnowledgeBase * knowledge);
185  };
186  }
187 }
188 
189 #endif // _GAMS_GROUPS_GROUP_FIXED_LIST_H_
A fixed list of agent members.
Copyright (c) 2016 Carnegie Mellon University.
std::vector< std::string > AgentVector
A vector of agent names.
Definition: GroupBase.h:71
AgentVector fast_members_
member list for fast access
madara::knowledge::containers::StringVector members_
The source member list in the knowledge base.
Factory for creating GroupFixedList groups.
Copyright (c) 2016 Carnegie Mellon University.
Contains all GAMS-related tools, classes and code.
Base class for a group of agents.
Definition: GroupBase.h:90
Base class for a group factory.
Definition: GroupFactory.h:71
#define GAMS_EXPORT
Definition: GamsExport.h:20