blob: a2ff2927d6c147168cab9bd911308cf11fe50c40 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
/* Copyright (C) 2013 BMW Group
* Author: Manfred Bathelt (manfred.bathelt@bmw.de)
* Author: Juergen Gehring (juergen.gehring@bmw.de)
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "DBusServicePublisher.h"
namespace CommonAPI {
namespace DBus {
std::shared_ptr<DBusServicePublisher> DBusServicePublisher::getInstance() {
static std::shared_ptr<DBusServicePublisher> instance;
if(!instance) {
instance = std::make_shared<DBusServicePublisher>();
}
return instance;
}
bool DBusServicePublisher::registerService(const std::string& serviceAddress, std::shared_ptr<DBusStubAdapter> adapter) {
return registeredServices_.insert( {serviceAddress, adapter} ).second;
}
bool DBusServicePublisher::unregisterService(const std::string& serviceAddress) {
auto foundStubAdapter = registeredServices_.find(serviceAddress);
if(foundStubAdapter != registeredServices_.end()) {
std::shared_ptr<DBusStubAdapter> stubAdapter = foundStubAdapter->second;
stubAdapter->deinit();
return registeredServices_.erase(serviceAddress);
}
return false;
}
} // namespace DBus
} // namespace CommonAPI
|