YARP
Yet Another Robot Platform
 
Loading...
Searching...
No Matches
resource.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2006-2021 Istituto Italiano di Tecnologia (IIT)
3 * SPDX-License-Identifier: BSD-3-Clause
4 */
5
6#ifndef YARP_MANAGER_RESOURCE
7#define YARP_MANAGER_RESOURCE
8
10#include <yarp/manager/node.h>
12#include <yarp/conf/api.h>
13
14namespace yarp::manager {
15
16class GenericResource : public Node
17{
18public:
19 GenericResource(const char* szTypeName);
20 ~GenericResource() override;
21
22 void setAvailability(bool flag) { bAvailable = flag; }
23 bool getAvailability() { return bAvailable; }
24 void setDisable(bool flag) { bDisabled = flag; }
25 bool getDisable() { return bDisabled; }
26
27 void setName(const char* szName) { if(szName) { strName = szName; } }
28 const char* getName() { return strName.c_str(); }
29 void setDescription(const char* szDesc) { if(szDesc) { strDescription = szDesc; } }
30 const char* getDescription() { return strDescription.c_str(); }
31 const char* getTypeName() { return strTypeName.c_str(); }
32
33 void setOwner(Node* owner) { modOwner = owner; }
34 Node* owner() { return modOwner; }
35 void setXmlFile(const char* szFilename) { if(szFilename) { strXmlFile = szFilename; } }
36 const char* getXmlFile() { return strXmlFile.c_str(); }
37
38 //virtual Node* clone();
39 virtual bool satisfy(GenericResource* resource) = 0;
40
41 bool operator==(const GenericResource& res) const {
42 return (strName == res.strName);
43 }
44
45protected:
46
47private:
48 bool bAvailable;
49 bool bDisabled;
50 std::string strName;
51 std::string strTypeName;
52 std::string strDescription;
53 Node* modOwner;
54 std::string strXmlFile;
55
56};
57
58typedef std::vector<GenericResource*> ResourcePContainer;
59typedef std::vector<GenericResource*>::iterator ResourcePIterator;
60
61
62
67{
68public:
70 MultiResource(const char* szName);
71 MultiResource(const MultiResource& rhs);
73 ~MultiResource() override;
74 Node* clone() override;
75 bool satisfy(GenericResource* resource) override;
76
77 int resourceCount() const { return resources.size(); }
78 GenericResource& getResourceAt(int index) const { return *(resources[index]); }
80 void clear();
81
82protected:
83
84private:
85 ResourcePContainer resources;
86 void swap(const MultiResource &res);
87};
88
89} // namespace yarp::manager
90
91
92#endif // __YARP_MANAGER_RESOURCE__
void setAvailability(bool flag)
Definition resource.h:22
bool operator==(const GenericResource &res) const
Definition resource.h:41
void setName(const char *szName)
Definition resource.h:27
void setXmlFile(const char *szFilename)
Definition resource.h:35
void setDescription(const char *szDesc)
Definition resource.h:29
const char * getDescription()
Definition resource.h:30
virtual bool satisfy(GenericResource *resource)=0
void setDisable(bool flag)
Definition resource.h:24
void setOwner(Node *owner)
Definition resource.h:33
Class MultiResource.
Definition resource.h:67
MultiResource()
Class MultiResource.
Definition resource.cpp:33
bool satisfy(GenericResource *resource) override
Definition resource.cpp:65
MultiResource & operator=(const MultiResource &rhs)
Definition resource.cpp:50
bool addResource(GenericResource &res)
Definition resource.cpp:58
GenericResource & getResourceAt(int index) const
Definition resource.h:78
Node * clone() override
Definition resource.cpp:74
a Node of a Graph
Definition node.h:64
std::vector< GenericResource * >::iterator ResourcePIterator
Definition resource.h:59
std::vector< GenericResource * > ResourcePContainer
Definition resource.h:58