diff options
Diffstat (limited to 'enhanced-position-service/franca/src/EnhancedPositionService.cpp')
-rwxr-xr-x | enhanced-position-service/franca/src/EnhancedPositionService.cpp | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/enhanced-position-service/franca/src/EnhancedPositionService.cpp b/enhanced-position-service/franca/src/EnhancedPositionService.cpp new file mode 100755 index 0000000..774ca5b --- /dev/null +++ b/enhanced-position-service/franca/src/EnhancedPositionService.cpp @@ -0,0 +1,56 @@ +/* Copyright (C) 2014 Mentor Graphics + * Author: Marco Residori(marco_residori@mentor.com) + * 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 <CommonAPI/CommonAPI.h> +#include "EnhancedPositionStubImpl.h" +#include "PositionFeedbackStubImpl.h" +#include "ConfigurationStubImpl.h" +#include "log.h" + +DLT_DECLARE_CONTEXT(gCtx); + +using namespace std; + +int main() { + + DLT_REGISTER_APP("ENHS","ENHANCED-POSITION-SERVICE"); + DLT_REGISTER_CONTEXT(gCtx,"ENHS","Global Context"); + + std::shared_ptr<CommonAPI::Runtime> runtime = CommonAPI::Runtime::load(); + std::shared_ptr<CommonAPI::Factory> factory = runtime->createFactory(); + std::shared_ptr<CommonAPI::ServicePublisher> servicePublisher = runtime->getServicePublisher(); + + const std::string& serviceEnhancedPositionAddress = "local:org.genivi.positioning.EnhancedPosition:org.genivi.positioning.EnhancedPosition"; + std::shared_ptr<EnhancedPositionStubImpl> myServiceEnhancedPosition = std::make_shared<EnhancedPositionStubImpl>(); + servicePublisher->registerService(myServiceEnhancedPosition, serviceEnhancedPositionAddress, factory); + myServiceEnhancedPosition->run(); + + const std::string& servicePositionFeedbackAddress = "local:org.genivi.positioning.PositionFeedback:org.genivi.positioning.PositionFeedback"; + std::shared_ptr<PositionFeedbackStubImpl> myServicePositionFeedback = std::make_shared<PositionFeedbackStubImpl>(); + servicePublisher->registerService(myServicePositionFeedback, servicePositionFeedbackAddress, factory); + myServicePositionFeedback->run(); + + const std::string& serviceConfigurationAddress = "local:org.genivi.positioning.Configuration:org.genivi.positioning.Configuration"; + std::shared_ptr<ConfigurationStubImpl> myServiceConfiguration = std::make_shared<ConfigurationStubImpl>(); + servicePublisher->registerService(myServiceConfiguration, serviceConfigurationAddress, factory); + myServiceConfiguration->run(); + + while (true) { + LOG_INFO_MSG(gCtx,"Waiting for calls... (Abort with CTRL+C)"); + std::this_thread::sleep_for(std::chrono::seconds(60)); + } + + myServiceEnhancedPosition->shutdown(); + myServicePositionFeedback->shutdown(); + myServiceConfiguration->shutdown(); + + return 0; +} + + + + + |