YARP
Yet Another Robot Platform
 
Loading...
Searching...
No Matches
resource.cpp
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
7
8using namespace yarp::manager;
9
10
16{
17 modOwner = nullptr;
18 bAvailable = true;
19 bDisabled = false;
20 if (szTypeName) {
21 strTypeName = szTypeName;
22 }
23}
24
26
27
28
34{
35}
36
37
38MultiResource::MultiResource(const char* szName) : GenericResource("MultipleResource")
39{
40 setName(szName);
41}
42
43
45{
46 MultiResource::swap(resource);
47}
48
49
51{
52 GenericResource::operator=(rhs);
53 MultiResource::swap(rhs);
54 return *this;
55}
56
57
59{
60 auto* newres = (GenericResource*) res.clone();
61 resources.push_back(newres);
62 return true;
63}
64
66{
67 // MultiResource is used as intermediate concept for
68 // disjunctive resource dependencies and it never
69 // can be a provider.
70 return false;
71}
72
73
75{
76 auto* resource = new MultiResource(*this);
77 return resource;
78}
79
80void MultiResource::swap(const MultiResource &res)
81{
82 clear();
83 // deep copy
84 for (int i = 0; i < res.resourceCount(); i++) {
86 }
87}
88
90{
91 for(auto& resource : resources)
92 {
93 delete resource;
94 resource = nullptr;
95 }
96 resources.clear();
97}
98
99
GenericResource(const char *szTypeName)
Class GenericResource.
Definition resource.cpp:15
void setName(const char *szName)
Definition resource.h:27
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
virtual Node * clone()=0