GAMS  1.2.2
GroupTransient.h
Go to the documentation of this file.
1 
56 #ifndef _GAMS_GROUPS_GROUP_TRANSIENT_H_
57 #define _GAMS_GROUPS_GROUP_TRANSIENT_H_
58 
59 #include <vector>
60 #include <string>
61 #include <map>
62 
63 #include "madara/knowledge/containers/Map.h"
64 
65 #include "GroupBase.h"
66 #include "GroupFactory.h"
67 
68 namespace gams
69 {
70  namespace groups
71  {
76  {
77  public:
85  GroupTransient (const std::string & prefix = "",
86  madara::knowledge::KnowledgeBase * knowledge = 0);
87 
91  virtual ~GroupTransient ();
92 
97  virtual void add_members (const AgentVector & members);
98 
102  virtual void clear_members (void);
103 
108  virtual void get_members (AgentVector & members) const;
109 
116  virtual bool is_member (const std::string & id) const;
117 
126  virtual void write (const std::string & prefix = "",
127  madara::knowledge::KnowledgeBase * knowledge = 0) const;
128 
134  virtual void set_prefix (const std::string & prefix,
135  madara::knowledge::KnowledgeBase * knowledge = 0);
136 
141  virtual size_t size (void);
142 
146  virtual void sync (void);
147 
148  protected:
149 
153  madara::knowledge::containers::Map members_;
154 
159  };
160 
165  {
166  public:
167 
172 
176  virtual ~GroupTransientFactory ();
177 
184  virtual GroupBase * create (
185  const std::string & prefix,
186  madara::knowledge::KnowledgeBase * knowledge);
187  };
188  }
189 }
190 
191 #endif // _GAMS_GROUPS_GROUP_TRANSIENT_H_
Copyright (c) 2016 Carnegie Mellon University.
std::vector< std::string > AgentVector
A vector of agent names.
Definition: GroupBase.h:71
std::map< std::string, madara::knowledge::KnowledgeRecord::Integer > AgentMap
A map of agent names.
Definition: GroupBase.h:75
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
AgentMap fast_members_
member list for fast access
madara::knowledge::containers::Map members_
The source member list in the knowledge base.
Base class for a group factory.
Definition: GroupFactory.h:71
Factory for creating GroupTransient groups.
#define GAMS_EXPORT
Definition: GamsExport.h:20
A fixed list of agent members.