MCPcopy Create free account
hub / github.com/apache/nifi-minifi-cpp / getControllerService

Function getControllerService

controller/Controller.h:237–281  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

235}
236
237std::shared_ptr<core::controller::ControllerService> getControllerService(const std::shared_ptr<minifi::Configure> &configuration, const std::string &service_name) {
238
239 std::string prov_repo_class = "provenancerepository";
240 std::string flow_repo_class = "flowfilerepository";
241 std::string nifi_configuration_class_name = "yamlconfiguration";
242 std::string content_repo_class = "filesystemrepository";
243
244 configuration->get(minifi::Configure::nifi_provenance_repository_class_name, prov_repo_class);
245 // Create repos for flow record and provenance
246 std::shared_ptr<core::Repository> prov_repo = core::createRepository(prov_repo_class, true, "provenance");
247 prov_repo->initialize(configuration);
248
249 configuration->get(minifi::Configure::nifi_flow_repository_class_name, flow_repo_class);
250
251 std::shared_ptr<core::Repository> flow_repo = core::createRepository(flow_repo_class, true, "flowfile");
252
253 flow_repo->initialize(configuration);
254
255 configuration->get(minifi::Configure::nifi_content_repository_class_name, content_repo_class);
256
257 std::shared_ptr<core::ContentRepository> content_repo = core::createContentRepository(content_repo_class, true, "content");
258
259 content_repo->initialize(configuration);
260
261 std::string content_repo_path;
262 if (configuration->get(minifi::Configure::nifi_dbcontent_repository_directory_default, content_repo_path)) {
263 std::cout << "setting default dir to " << content_repo_path << std::endl;
264 minifi::setDefaultDirectory(content_repo_path);
265 }
266
267 configuration->get(minifi::Configure::nifi_configuration_class_name, nifi_configuration_class_name);
268
269 std::shared_ptr<minifi::io::StreamFactory> stream_factory = minifi::io::StreamFactory::getInstance(configuration);
270
271 std::unique_ptr<core::FlowConfiguration> flow_configuration = core::createFlowConfiguration(
272 prov_repo, flow_repo, content_repo, configuration, stream_factory, nifi_configuration_class_name);
273
274 std::shared_ptr<minifi::FlowController> controller = std::unique_ptr<minifi::FlowController>(
275 new minifi::FlowController(prov_repo, flow_repo, configuration, std::move(flow_configuration), content_repo));
276 controller->load();
277 auto service = controller->getControllerService(service_name);
278 if (service)
279 service->onEnable();
280 return service;
281}
282
283void printManifest(const std::shared_ptr<minifi::Configure> &configuration) {
284

Callers 3

mainFunction · 0.85

Calls 9

createRepositoryFunction · 0.85
createContentRepositoryFunction · 0.85
setDefaultDirectoryFunction · 0.85
createFlowConfigurationFunction · 0.85
getMethod · 0.45
initializeMethod · 0.45
loadMethod · 0.45
getControllerServiceMethod · 0.45
onEnableMethod · 0.45

Tested by

no test coverage detected