128dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park/* 228dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park * Copyright (C) 2015 The Android Open Source Project 328dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park * 428dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park * Licensed under the Apache License, Version 2.0 (the "License"); 528dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park * you may not use this file except in compliance with the License. 628dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park * You may obtain a copy of the License at 728dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park * 828dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park * http://www.apache.org/licenses/LICENSE-2.0 928dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park * 1028dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park * Unless required by applicable law or agreed to in writing, software 1128dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park * distributed under the License is distributed on an "AS IS" BASIS, 1228dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1328dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park * See the License for the specific language governing permissions and 1428dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park * limitations under the License. 1528dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park */ 1628dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park 1728dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park#ifndef ANDROID_VEHICLE_HAL_MOCK_H 1828dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park#define ANDROID_VEHICLE_HAL_MOCK_H 1928dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park 2028dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park#include <IVehicleNetworkHalMock.h> 2128dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park 2228dd47033198a502b18b0363b98ad030ea1789ccKeun-young Parkextern "C" { 2328dd47033198a502b18b0363b98ad030ea1789ccKeun-young Parkvehicle_prop_config_t const * getTestProperties(); 2428dd47033198a502b18b0363b98ad030ea1789ccKeun-young Parkint getNumTestProperties(); 2528dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park}; 2628dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park 2728dd47033198a502b18b0363b98ad030ea1789ccKeun-young Parknamespace android { 2828dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park 2928dd47033198a502b18b0363b98ad030ea1789ccKeun-young Parkclass VehicleHalMock : public BnVehicleNetworkHalMock { 3028dd47033198a502b18b0363b98ad030ea1789ccKeun-young Parkpublic: 3128dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park VehicleHalMock() { 3228dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park mProperties = new VehiclePropertiesHolder(false /* deleteConfigsInDestructor */); 3328dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park vehicle_prop_config_t const * properties = getTestProperties(); 3428dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park for (int i = 0; i < getNumTestProperties(); i++) { 3528dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park mProperties->getList().push_back(properties + i); 3628dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park } 3728dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park }; 3828dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park 39aaeffaff85979583b1826db759b5cdb6184559d5Keun-young Park virtual ~VehicleHalMock() {}; 40aaeffaff85979583b1826db759b5cdb6184559d5Keun-young Park 4128dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park virtual sp<VehiclePropertiesHolder> onListProperties() { 4228dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park return mProperties; 4328dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park }; 4428dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park 45558e9b1c1ed5a21445b4a937f67843e2bf89f0a5Keun-young Park virtual status_t onPropertySet(const vehicle_prop_value_t& /*value*/) { 4628dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park return NO_ERROR; 4728dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park }; 4828dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park 49558e9b1c1ed5a21445b4a937f67843e2bf89f0a5Keun-young Park virtual status_t onPropertyGet(vehicle_prop_value_t* /*value*/) { 5028dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park return NO_ERROR; 5128dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park }; 5228dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park 53558e9b1c1ed5a21445b4a937f67843e2bf89f0a5Keun-young Park virtual status_t onPropertySubscribe(int32_t /*property*/, float /*sampleRate*/, 54558e9b1c1ed5a21445b4a937f67843e2bf89f0a5Keun-young Park int32_t /*zones*/) { 5528dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park return NO_ERROR; 5628dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park }; 5728dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park 58558e9b1c1ed5a21445b4a937f67843e2bf89f0a5Keun-young Park virtual void onPropertyUnsubscribe(int32_t /*property*/) { 5928dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park }; 6028dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park 6128dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park bool isTheSameProperties(sp<VehiclePropertiesHolder>& list) { 6228dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park if (mProperties->getList().size() != list->getList().size()) { 6328dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park return false; 6428dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park } 6528dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park auto l = mProperties->getList().begin(); 6628dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park auto r = list->getList().begin(); 6728dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park while (l != mProperties->getList().end() && r != list->getList().end()) { 6828dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park if (!VehiclePropertiesUtil::isTheSame(**l, **r)) { 6928dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park return false; 7028dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park } 7128dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park l++; 7228dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park r++; 7328dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park } 7428dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park return true; 7528dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park } 7628dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park 7728dd47033198a502b18b0363b98ad030ea1789ccKeun-young Parkprivate: 7828dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park sp<VehiclePropertiesHolder> mProperties; 7928dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park 8028dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park}; 8128dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park 8228dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park}; // namespace android 8328dd47033198a502b18b0363b98ad030ea1789ccKeun-young Park#endif /* ANDROID_VEHICLE_HAL_MOCK_H */ 84