Apache Celix  latest
Apache Celix is a framework for C, C++14 and C++17 to develop dynamic modular software applications using component and in-process service-oriented programming.
DependencyManagerInfo.h
Go to the documentation of this file.
1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one
3  * or more contributor license agreements. See the NOTICE file
4  * distributed with this work for additional information
5  * regarding copyright ownership. The ASF licenses this file
6  * to you under the Apache License, Version 2.0 (the
7  * "License"); you may not use this file except in compliance
8  * with the License. You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing,
13  * software distributed under the License is distributed on an
14  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15  * KIND, either express or implied. See the License for the
16  * specific language governing permissions and limitations
17  * under the License.
18  */
19 
20 #pragma once
21 
22 #include <string>
23 #include <vector>
24 #include <unordered_map>
25 
26 namespace celix { namespace dm {
27 
31  struct InterfaceInfo {
35  std::string serviceName{};
36 
40  std::unordered_map<std::string, std::string> properties{};
41  };
42 
50  std::string serviceName{};
51 
55  std::string filter{};
56 
60  std::string versionRange{};
61 
65  bool isAvailable{};
66 
70  bool isRequired{};
71 
75  std::size_t nrOfTrackedServices{0};
76  };
77 
81  struct ComponentInfo {
85  std::string uuid{};
86 
90  std::string name{};
91 
95  bool isActive{};
96 
100  std::string state{};
101 
105  std::size_t nrOfTimesStarted{0};
106 
110  std::size_t nrOfTimesResumed{0};
111 
115  std::vector<InterfaceInfo> interfacesInfo{};
116 
120  std::vector<ServiceDependencyInfo> dependenciesInfo{};
121  };
122 
130  long bndId{};
131 
135  std::string bndSymbolicName{};
136 
140  std::vector<ComponentInfo> components{};
141  };
142 }}
celix::dm::InterfaceInfo::properties
std::unordered_map< std::string, std::string > properties
Definition: DependencyManagerInfo.h:40
celix::dm::ServiceDependencyInfo::versionRange
std::string versionRange
Definition: DependencyManagerInfo.h:60
celix::dm::ComponentInfo::nrOfTimesStarted
std::size_t nrOfTimesStarted
Definition: DependencyManagerInfo.h:105
celix::dm::ComponentInfo::nrOfTimesResumed
std::size_t nrOfTimesResumed
Definition: DependencyManagerInfo.h:110
celix::dm::ServiceDependencyInfo
Definition: DependencyManagerInfo.h:46
celix::dm::ServiceDependencyInfo::isRequired
bool isRequired
Definition: DependencyManagerInfo.h:70
celix
Definition: Bundle.h:28
celix::dm::ServiceDependencyInfo::filter
std::string filter
Definition: DependencyManagerInfo.h:55
celix::dm::ServiceDependencyInfo::serviceName
std::string serviceName
Definition: DependencyManagerInfo.h:50
celix::dm::ComponentInfo::state
std::string state
Definition: DependencyManagerInfo.h:100
celix::dm::ComponentInfo
Definition: DependencyManagerInfo.h:81
celix::dm::DependencyManagerInfo::components
std::vector< ComponentInfo > components
Definition: DependencyManagerInfo.h:140
celix::dm::DependencyManagerInfo::bndSymbolicName
std::string bndSymbolicName
Definition: DependencyManagerInfo.h:135
celix::dm::ComponentInfo::isActive
bool isActive
Definition: DependencyManagerInfo.h:95
celix::dm::ComponentInfo::name
std::string name
Definition: DependencyManagerInfo.h:90
celix::dm::ComponentInfo::dependenciesInfo
std::vector< ServiceDependencyInfo > dependenciesInfo
Definition: DependencyManagerInfo.h:120
celix::dm::ComponentInfo::uuid
std::string uuid
Definition: DependencyManagerInfo.h:85
celix::dm::InterfaceInfo
Definition: DependencyManagerInfo.h:31
celix::dm::InterfaceInfo::serviceName
std::string serviceName
Definition: DependencyManagerInfo.h:35
celix::dm::ComponentInfo::interfacesInfo
std::vector< InterfaceInfo > interfacesInfo
Definition: DependencyManagerInfo.h:115
celix::dm::ServiceDependencyInfo::isAvailable
bool isAvailable
Definition: DependencyManagerInfo.h:65
celix::dm::ServiceDependencyInfo::nrOfTrackedServices
std::size_t nrOfTrackedServices
Definition: DependencyManagerInfo.h:75
celix::dm::DependencyManagerInfo
Definition: DependencyManagerInfo.h:126
celix::dm::DependencyManagerInfo::bndId
long bndId
Definition: DependencyManagerInfo.h:130