PersistentAgentInstancesSegment.h
Go to the documentation of this file.
1/*
2* This file is part of ArmarX.
3*
4* ArmarX is free software; you can redistribute it and/or modify
5* it under the terms of the GNU General Public License version 2 as
6* published by the Free Software Foundation.
7*
8* ArmarX is distributed in the hope that it will be useful, but
9* WITHOUT ANY WARRANTY; without even the implied warranty of
10* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11* GNU General Public License for more details.
12*
13* You should have received a copy of the GNU General Public License
14* along with this program. If not, see <http://www.gnu.org/licenses/>.
15*
16* @package MemoryX::MemoryTypes
17* @author Thomas von der Heyde (tvh242 at hotmail dot com)
18* @date 2014
19* @copyright http://www.gnu.org/licenses/gpl-2.0.txt
20* GNU General Public License
21*/
22
23#pragma once
24
26
28#include <MemoryX/interface/core/EntityBase.h>
29#include <MemoryX/interface/memorytypes/MemoryEntities.h>
30#include <MemoryX/interface/memorytypes/MemorySegments.h>
31
32namespace memoryx
33{
35 virtual public PersistentEntitySegment,
36 virtual public PersistentAgentInstancesSegmentBase
37 {
38 public:
39 PersistentAgentInstancesSegment(CollectionInterfacePrx entityCollection,
41 bool useMongoIds = true) :
42 PersistentEntitySegment(entityCollection, ic, useMongoIds),
43 PersistentAgentInstancesSegmentBase()
44 {
45 }
46
47 AgentInstanceBasePtr
48 getAgentInstanceById(const std::string& id, const ::Ice::Current& = Ice::emptyCurrent) const
49 {
50 AgentInstanceBasePtr res = AgentInstanceBasePtr::dynamicCast(getEntityById(id));
51
52 if (!res)
53 {
54 ARMARX_WARNING_S << "Entity with id " << id << " is not of type AgentInstance!"
55 << std::endl;
56 }
57
58 return res;
59 };
60
61 AgentInstanceBasePtr
62 getAgentInstanceByName(const std::string& name,
63 const ::Ice::Current& = Ice::emptyCurrent) const
64 {
65 AgentInstanceBasePtr res = AgentInstanceBasePtr::dynamicCast(getEntityByName(name));
66
67 if (!res)
68 {
69 ARMARX_WARNING_S << "Entity with name " << name << " is not of type AgentEntity!"
70 << std::endl;
71 }
72
73 return res;
74 };
75 };
76
78
79} // namespace memoryx
#define ARMARXCOMPONENT_IMPORT_EXPORT
PersistentAgentInstancesSegment(CollectionInterfacePrx entityCollection, Ice::CommunicatorPtr ic, bool useMongoIds=true)
AgentInstanceBasePtr getAgentInstanceByName(const std::string &name, const ::Ice::Current &=Ice::emptyCurrent) const
AgentInstanceBasePtr getAgentInstanceById(const std::string &id, const ::Ice::Current &=Ice::emptyCurrent) const
PersistentEntitySegment(CollectionInterfacePrx entityCollection, Ice::CommunicatorPtr ic, bool useMongoIds=true)
EntityBasePtr getEntityById(const ::std::string &entityId, const ::Ice::Current &=Ice::emptyCurrent) const override
EntityBasePtr getEntityByName(const ::std::string &name, const ::Ice::Current &=Ice::emptyCurrent) const override
#define ARMARX_WARNING_S
The logging level for unexpected behaviour, but not a serious problem.
Definition Logging.h:213
::IceInternal::Handle<::Ice::Communicator > CommunicatorPtr
Definition IceManager.h:49
VirtualRobot headers.
IceInternal::Handle< PersistentAgentInstancesSegment > PersistentAgentInstancesSegmentPtr