summaryrefslogtreecommitdiff
path: root/src/freetextsearch-service-wamp/FreeTextSearchStubImpl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/freetextsearch-service-wamp/FreeTextSearchStubImpl.cpp')
-rw-r--r--src/freetextsearch-service-wamp/FreeTextSearchStubImpl.cpp241
1 files changed, 241 insertions, 0 deletions
diff --git a/src/freetextsearch-service-wamp/FreeTextSearchStubImpl.cpp b/src/freetextsearch-service-wamp/FreeTextSearchStubImpl.cpp
new file mode 100644
index 0000000..ef5b302
--- /dev/null
+++ b/src/freetextsearch-service-wamp/FreeTextSearchStubImpl.cpp
@@ -0,0 +1,241 @@
+/**
+ * @licence app begin@
+ * SPDX-License-Identifier: MPL-2.0
+ *
+ * \copyright Copyright (C) 2015, 2016 TomTom International B.V.
+ * \copyright Copyright (C) 2016, PCA Peugeot Citroen
+ * \author Peter Goedegebure (Peter.Goedegebure@tomtom.com)
+ * \author Philippe Colliot <philippe.colliot@mpsa.com>
+ * \author Morteza Damavandpeyma <Morteza.Damavandpeyma@tomtom.com>
+ * This Source Code Form is subject to the terms of the
+ * Mozilla Public License (MPL), 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/.
+ *
+ * For further information see http://www.genivi.org/.
+ *
+ * List of changes:
+ * <date>, <name>, <description of change>
+ *
+ * @licence end@
+ */
+#include "FreeTextSearchStubImpl.hpp"
+
+using namespace v4::org::genivi::navigation;
+using namespace v1::org::genivi::navigation::freetextsearchservice;
+using namespace v4::org::genivi;
+
+NavigationTypes::Handle nextHandle = 1;
+
+void FreeTextSearchStubImpl::getVersion(
+ const std::shared_ptr<CommonAPI::ClientId> _client,
+ getVersionReply_t _reply)
+{
+ std::cout << "getVersion called." << std::endl;
+
+ CommonTypes::Version* version = new CommonTypes::Version(0, 1, 0, "today");
+ _reply(*version);
+}
+
+void FreeTextSearchStubImpl::ftsRequest(
+ const std::shared_ptr<CommonAPI::ClientId> _client,
+ FreeTextSearch::FtsString _inputString,
+ NavigationTypes::Coordinate2D _searchLocation,
+ FreeTextSearch::ShapeList _searchShapes, FreeTextSearch::PageSize _pageSize,
+ FreeTextSearch::SearchOptions _searchOptions,
+ FreeTextSearch::FtsString _searchConditions,
+ FreeTextSearch::FuzzyLevel _fuzzyLevel, ftsRequestReply_t _reply)
+{
+ std::cout << "ftsRequest called." << std::endl;
+ iSearchIsInProgress = true;
+
+ // Create new session handle.
+ iSessionHandle++;
+
+ // Start from first page
+ iPageId = 0;
+
+ _reply(FreeTextSearch::ftsRequestError::OK, iSessionHandle, iPageId);
+
+ // Note: inputString is ignored, use fixed results.
+ // Note: searchLocation is ignored, use fixed results.
+ // TODO: introduce a value for 'not specified' for searchLocation (Coordinate2D).
+ // Note: searchShapes is ignored, use fixed results.
+ // Note: pageSize is ignored, use fixed size of 2. First page: 2 addresses (moreAvailable), 1 POI (no moreAvailable).
+ // Note: searchOptions is ignored, use fixed results.
+ // Note: searchConditions is ignored, use fixed results,
+ // Note: fuzzyLevel is ignored, used fixed results.
+
+ FreeTextSearch::Addresses addresses;
+ FreeTextSearch::Address* addressPtr;
+ FreeTextSearch::FtsStringList* places;
+ FreeTextSearch::FtsStringList* postalCodes;
+ FreeTextSearch::StreetDetails* streetDetailsPtr;
+
+ addressPtr = new FreeTextSearch::Address();
+ NavigationTypes::LocationHandle locationHandle1 = 1234;
+ addressPtr->setLocationHandle(locationHandle1);
+ addressPtr->setCountryCode("NLD");
+ addressPtr->setStateCode("");
+ places = new FreeTextSearch::FtsStringList();
+ places->push_back("Eindhoven");
+ addressPtr->setPlaces(*places);
+ postalCodes = new FreeTextSearch::FtsStringList();
+ postalCodes->push_back("5657 EB");
+ addressPtr->setPostalCodes(*postalCodes);
+ streetDetailsPtr = new FreeTextSearch::StreetDetails();
+ streetDetailsPtr->setStreetName("Luchthavenweg");
+ streetDetailsPtr->setHouseNumber("48");
+ streetDetailsPtr->setHouseNumberFromInput("");
+ FreeTextSearch::AddressDetails addressDetails(*streetDetailsPtr);
+ addressPtr->setAddressDetails(addressDetails);
+ addressPtr->setMapCode("L2D.3Z");
+ NavigationTypes::Coordinate2D* coordinate1 = new NavigationTypes::Coordinate2D(51.455664, 5.396336);
+ addressPtr->setCoordinate(*coordinate1);
+ addressPtr->setDistance(4566);
+ addressPtr->setScore(1000);
+ addressPtr->setFuzzyMatch(false);
+ addresses.push_back(*addressPtr);
+
+ addressPtr = new FreeTextSearch::Address();
+ NavigationTypes::LocationHandle locationHandle2 = 9876;
+ addressPtr->setLocationHandle(locationHandle2);
+ addressPtr->setCountryCode("NLD");
+ addressPtr->setStateCode("");
+ places = new FreeTextSearch::FtsStringList();
+ places->push_back("'s Hertogenbosch");
+ addressPtr->setPlaces(*places);
+ postalCodes = new FreeTextSearch::FtsStringList();
+ postalCodes->push_back("<postal code>");
+ addressPtr->setPostalCodes(*postalCodes);
+ streetDetailsPtr = new FreeTextSearch::StreetDetails();
+ streetDetailsPtr->setStreetName("<street>");
+ streetDetailsPtr->setHouseNumber("<housenumber>");
+ streetDetailsPtr->setHouseNumberFromInput("");
+ FreeTextSearch::AddressDetails addressDetails2(*streetDetailsPtr);
+ addressPtr->setAddressDetails(addressDetails2);
+ addressPtr->setMapCode("<map code>");
+ NavigationTypes::Coordinate2D* coordinate2 = new NavigationTypes::Coordinate2D(52.434356, 17.555336);
+ addressPtr->setCoordinate(*coordinate2);
+ addressPtr->setDistance(196534);
+ addressPtr->setScore(578);
+ addressPtr->setFuzzyMatch(true);
+ addresses.push_back(*addressPtr);
+
+ fireFtsResultAddressesSelective(iSessionHandle, iPageId, addresses, true);
+
+ FreeTextSearch::POIs pois;
+ FreeTextSearch::POI* poiPtr;
+ poiPtr = new FreeTextSearch::POI();
+ NavigationTypes::LocationHandle locationHandle3 = 102934;
+ poiPtr->setLocationHandle(locationHandle3);
+ FreeTextSearch::POICategoryCode poiCategoryCode = 754;
+ poiPtr->setCategoryCode(poiCategoryCode);
+ FreeTextSearch::FtsStringList* brandNames;
+ brandNames = new FreeTextSearch::FtsStringList();
+ brandNames->push_back("TomTom");
+ brandNames->push_back("Bandit");
+ poiPtr->setBrandNames(*brandNames);
+ poiPtr->setPoiName("TomTom Eindhoven");
+ poiPtr->setAddress("Luchthavenweg 48, 5657 EB Eindhoven");
+ places = new FreeTextSearch::FtsStringList();
+ places->push_back("Eindhoven");
+ poiPtr->setPlace(*places);
+ postalCodes = new FreeTextSearch::FtsStringList();
+ postalCodes->push_back("5657 EB");
+ poiPtr->setPostalCode(*postalCodes);
+ poiPtr->setMapCode("L2D.3Z");
+ poiPtr->setCountryCode("NLD");
+ poiPtr->setStateCode("");
+ poiPtr->setTelephone("+31 40 84 44899");
+ poiPtr->setCoordinate(*coordinate1);
+ poiPtr->setDistance(1000);
+ poiPtr->setScore(1);
+ poiPtr->setFuzzyMatch(false);
+ poiPtr->setHasParents(false);
+ poiPtr->setHasChildren(false);
+ poiPtr->setDetourDistance(100);
+ poiPtr->setDetourTime(200);
+
+ pois.push_back(*poiPtr);
+ fireFtsResultPoisSelective(iSessionHandle, iPageId, pois, false);
+
+ FreeTextSearch::POICategories poiCategories;
+ fireFtsResultPoiSuggestionsSelective(iSessionHandle, iPageId, poiCategories);
+
+ fireFtsDoneSelective(iSessionHandle, iPageId, FreeTextSearch::FtsStatus::OK);
+ iSearchIsInProgress = false;
+}
+
+void FreeTextSearchStubImpl::ftsNextPage(
+ const std::shared_ptr<CommonAPI::ClientId> _client,
+ NavigationTypes::Handle _sessionHandle,
+ FreeTextSearch::SearchOptions _searchOptions, ftsNextPageReply_t _reply)
+{
+ std::cout << "ftsNextPage called." << std::endl;
+ if (iSearchIsInProgress)
+ {
+ std::cout << "There is a search in progress" << std::endl;
+ _reply(FreeTextSearch::ftsNextPageError::Literal::AlreadyInProgress, -1);
+ return;
+ }
+
+ iSearchIsInProgress = true;
+ // Note: searchOptions are ignored; always 1 address returned.
+
+ // Get the next page.
+ iPageId++;
+ _reply(FreeTextSearch::ftsNextPageError::Literal::OK, iPageId);
+
+ FreeTextSearch::Addresses addresses;
+ FreeTextSearch::Address* addressPtr;
+ addressPtr = new FreeTextSearch::Address();
+ NavigationTypes::LocationHandle locationHandle = 74658;
+ addressPtr->setLocationHandle(locationHandle);
+ addressPtr->setCountryCode("NLD");
+ addressPtr->setStateCode("");
+ FreeTextSearch::FtsStringList* places;
+ places = new FreeTextSearch::FtsStringList();
+ places->push_back("Amsterdam");
+ addressPtr->setPlaces(*places);
+ FreeTextSearch::FtsStringList* postalCodes;
+ postalCodes = new FreeTextSearch::FtsStringList();
+ postalCodes->push_back("<postal code>");
+ addressPtr->setPostalCodes(*postalCodes);
+ addressPtr->setMapCode("<map code>");
+ FreeTextSearch::StreetDetails* streetDetailsPtr;
+ streetDetailsPtr = new FreeTextSearch::StreetDetails();
+ streetDetailsPtr->setStreetName("<a street in Amsterdam>");
+ streetDetailsPtr->setHouseNumber("<housenumber>");
+ streetDetailsPtr->setHouseNumberFromInput("");
+ FreeTextSearch::AddressDetails addressDetails(*streetDetailsPtr);
+ addressPtr->setAddressDetails(addressDetails);
+ NavigationTypes::Coordinate2D* coordinate = new NavigationTypes::Coordinate2D(50.123456, 9.838374);
+ addressPtr->setCoordinate(*coordinate);
+ addressPtr->setDistance(3009);
+ addressPtr->setScore(33);
+ addressPtr->setFuzzyMatch(false);
+ addresses.push_back(*addressPtr);
+ fireFtsResultAddressesSelective(iSessionHandle, iPageId, addresses, false);
+
+ fireFtsDoneSelective(iSessionHandle, iPageId, FreeTextSearch::FtsStatus::OK);
+ iSearchIsInProgress = false;
+}
+
+void FreeTextSearchStubImpl::ftsCancel(
+ const std::shared_ptr<CommonAPI::ClientId> _client,
+ NavigationTypes::Handle _sessionHandle, ftsCancelReply_t _reply)
+{
+ std::cout << "ftsCancel called." << std::endl;
+ _reply(FreeTextSearch::ftsCancelError::Literal::OK);
+}
+
+void FreeTextSearchStubImpl::deleteLocationHandles(
+ const std::shared_ptr<CommonAPI::ClientId> _client,
+ FreeTextSearch::LocationHandleList _locationHandleList,
+ deleteLocationHandlesReply_t _reply)
+{
+ std::cout << "deleteLocationHandles called." << std::endl;
+ _reply();
+}
+