ICommonTimeConfig.cpp revision 951bd8d1ad9581a414e171ad8605a9515d0ad667
1951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen/* 2951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen * Copyright (C) 2011 The Android Open Source Project 3951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen * 4951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen * Licensed under the Apache License, Version 2.0 (the "License"); 5951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen * you may not use this file except in compliance with the License. 6951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen * You may obtain a copy of the License at 7951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen * 8951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen * http://www.apache.org/licenses/LICENSE-2.0 9951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen * 10951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen * Unless required by applicable law or agreed to in writing, software 11951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen * distributed under the License is distributed on an "AS IS" BASIS, 12951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen * See the License for the specific language governing permissions and 14951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen * limitations under the License. 15951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen */ 16951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen#include <linux/socket.h> 17951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 18951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen#include <common_time/ICommonTimeConfig.h> 19951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen#include <binder/Parcel.h> 20951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 21951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen#include "utils.h" 22951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 23951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chennamespace android { 24951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 25951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen/***** ICommonTimeConfig *****/ 26951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 27951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chenenum { 28951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen GET_MASTER_ELECTION_PRIORITY = IBinder::FIRST_CALL_TRANSACTION, 29951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen SET_MASTER_ELECTION_PRIORITY, 30951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen GET_MASTER_ELECTION_ENDPOINT, 31951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen SET_MASTER_ELECTION_ENDPOINT, 32951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen GET_MASTER_ELECTION_GROUP_ID, 33951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen SET_MASTER_ELECTION_GROUP_ID, 34951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen GET_INTERFACE_BINDING, 35951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen SET_INTERFACE_BINDING, 36951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen GET_MASTER_ANNOUNCE_INTERVAL, 37951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen SET_MASTER_ANNOUNCE_INTERVAL, 38951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen GET_CLIENT_SYNC_INTERVAL, 39951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen SET_CLIENT_SYNC_INTERVAL, 40951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen GET_PANIC_THRESHOLD, 41951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen SET_PANIC_THRESHOLD, 42951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen GET_AUTO_DISABLE, 43951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen SET_AUTO_DISABLE, 44951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen FORCE_NETWORKLESS_MASTER_MODE, 45951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen}; 46951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 47951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chenconst String16 ICommonTimeConfig::kServiceName("common_time.config"); 48951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 49951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chenclass BpCommonTimeConfig : public BpInterface<ICommonTimeConfig> 50951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen{ 51951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen public: 52951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen BpCommonTimeConfig(const sp<IBinder>& impl) 53951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen : BpInterface<ICommonTimeConfig>(impl) {} 54951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 55951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen virtual status_t getMasterElectionPriority(uint8_t *priority) { 56951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen Parcel data, reply; 57951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen data.writeInterfaceToken(ICommonTimeConfig::getInterfaceDescriptor()); 58951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status_t status = remote()->transact(GET_MASTER_ELECTION_PRIORITY, 59951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen data, 60951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen &reply); 61951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen if (status == OK) { 62951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status = reply.readInt32(); 63951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen if (status == OK) { 64951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen *priority = static_cast<uint8_t>(reply.readInt32()); 65951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 66951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 67951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 68951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen return status; 69951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 70951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 71951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen virtual status_t setMasterElectionPriority(uint8_t priority) { 72951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen Parcel data, reply; 73951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen data.writeInterfaceToken(ICommonTimeConfig::getInterfaceDescriptor()); 74951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen data.writeInt32(static_cast<int32_t>(priority)); 75951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status_t status = remote()->transact(SET_MASTER_ELECTION_PRIORITY, 76951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen data, 77951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen &reply); 78951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen if (status == OK) { 79951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status = reply.readInt32(); 80951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 81951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 82951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen return status; 83951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 84951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 85951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen virtual status_t getMasterElectionEndpoint(struct sockaddr_storage *addr) { 86951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen Parcel data, reply; 87951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen data.writeInterfaceToken(ICommonTimeConfig::getInterfaceDescriptor()); 88951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status_t status = remote()->transact(GET_MASTER_ELECTION_ENDPOINT, 89951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen data, 90951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen &reply); 91951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen if (status == OK) { 92951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status = reply.readInt32(); 93951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen if (status == OK) { 94951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen deserializeSockaddr(&reply, addr); 95951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 96951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 97951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 98951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen return status; 99951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 100951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 101951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen virtual status_t setMasterElectionEndpoint( 102951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen const struct sockaddr_storage *addr) { 103951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen Parcel data, reply; 104951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen data.writeInterfaceToken(ICommonTimeConfig::getInterfaceDescriptor()); 105951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen if (!canSerializeSockaddr(addr)) 106951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen return BAD_VALUE; 107951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen if (NULL == addr) { 108951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen data.writeInt32(0); 109951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } else { 110951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen data.writeInt32(1); 111951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen serializeSockaddr(&data, addr); 112951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 113951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status_t status = remote()->transact(SET_MASTER_ELECTION_ENDPOINT, 114951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen data, 115951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen &reply); 116951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen if (status == OK) { 117951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status = reply.readInt32(); 118951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 119951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 120951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen return status; 121951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 122951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 123951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen virtual status_t getMasterElectionGroupId(uint64_t *id) { 124951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen Parcel data, reply; 125951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen data.writeInterfaceToken(ICommonTimeConfig::getInterfaceDescriptor()); 126951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status_t status = remote()->transact(GET_MASTER_ELECTION_GROUP_ID, 127951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen data, 128951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen &reply); 129951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 130951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen if (status == OK) { 131951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status = reply.readInt32(); 132951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen if (status == OK) { 133951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen *id = static_cast<uint64_t>(reply.readInt64()); 134951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 135951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 136951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 137951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen return status; 138951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 139951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 140951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen virtual status_t setMasterElectionGroupId(uint64_t id) { 141951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen Parcel data, reply; 142951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen data.writeInterfaceToken(ICommonTimeConfig::getInterfaceDescriptor()); 143951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen data.writeInt64(id); 144951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status_t status = remote()->transact(SET_MASTER_ELECTION_GROUP_ID, 145951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen data, 146951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen &reply); 147951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 148951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen if (status == OK) { 149951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status = reply.readInt32(); 150951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 151951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 152951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen return status; 153951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 154951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 155951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen virtual status_t getInterfaceBinding(String16& ifaceName) { 156951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen Parcel data, reply; 157951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen data.writeInterfaceToken(ICommonTimeConfig::getInterfaceDescriptor()); 158951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status_t status = remote()->transact(GET_INTERFACE_BINDING, 159951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen data, 160951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen &reply); 161951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen if (status == OK) { 162951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status = reply.readInt32(); 163951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen if (status == OK) { 164951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen ifaceName = reply.readString16(); 165951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 166951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 167951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 168951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen return status; 169951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 170951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 171951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen virtual status_t setInterfaceBinding(const String16& ifaceName) { 172951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen Parcel data, reply; 173951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen data.writeInterfaceToken(ICommonTimeConfig::getInterfaceDescriptor()); 174951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen data.writeString16(ifaceName); 175951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status_t status = remote()->transact(SET_INTERFACE_BINDING, 176951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen data, 177951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen &reply); 178951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen if (status == OK) { 179951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status = reply.readInt32(); 180951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 181951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 182951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen return status; 183951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 184951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 185951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen virtual status_t getMasterAnnounceInterval(int *interval) { 186951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen Parcel data, reply; 187951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen data.writeInterfaceToken(ICommonTimeConfig::getInterfaceDescriptor()); 188951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status_t status = remote()->transact(GET_MASTER_ANNOUNCE_INTERVAL, 189951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen data, 190951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen &reply); 191951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen if (status == OK) { 192951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status = reply.readInt32(); 193951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen if (status == OK) { 194951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen *interval = reply.readInt32(); 195951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 196951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 197951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 198951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen return status; 199951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 200951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 201951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen virtual status_t setMasterAnnounceInterval(int interval) { 202951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen Parcel data, reply; 203951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen data.writeInterfaceToken(ICommonTimeConfig::getInterfaceDescriptor()); 204951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen data.writeInt32(interval); 205951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status_t status = remote()->transact(SET_MASTER_ANNOUNCE_INTERVAL, 206951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen data, 207951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen &reply); 208951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen if (status == OK) { 209951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status = reply.readInt32(); 210951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 211951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 212951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen return status; 213951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 214951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 215951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen virtual status_t getClientSyncInterval(int *interval) { 216951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen Parcel data, reply; 217951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen data.writeInterfaceToken(ICommonTimeConfig::getInterfaceDescriptor()); 218951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status_t status = remote()->transact(GET_CLIENT_SYNC_INTERVAL, 219951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen data, 220951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen &reply); 221951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen if (status == OK) { 222951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status = reply.readInt32(); 223951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen if (status == OK) { 224951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen *interval = reply.readInt32(); 225951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 226951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 227951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 228951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen return status; 229951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 230951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 231951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen virtual status_t setClientSyncInterval(int interval) { 232951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen Parcel data, reply; 233951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen data.writeInterfaceToken(ICommonTimeConfig::getInterfaceDescriptor()); 234951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen data.writeInt32(interval); 235951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status_t status = remote()->transact(SET_CLIENT_SYNC_INTERVAL, 236951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen data, 237951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen &reply); 238951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen if (status == OK) { 239951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status = reply.readInt32(); 240951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 241951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 242951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen return status; 243951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 244951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 245951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen virtual status_t getPanicThreshold(int *threshold) { 246951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen Parcel data, reply; 247951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen data.writeInterfaceToken(ICommonTimeConfig::getInterfaceDescriptor()); 248951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status_t status = remote()->transact(GET_PANIC_THRESHOLD, 249951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen data, 250951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen &reply); 251951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen if (status == OK) { 252951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status = reply.readInt32(); 253951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen if (status == OK) { 254951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen *threshold = reply.readInt32(); 255951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 256951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 257951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 258951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen return status; 259951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 260951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 261951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen virtual status_t setPanicThreshold(int threshold) { 262951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen Parcel data, reply; 263951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen data.writeInterfaceToken(ICommonTimeConfig::getInterfaceDescriptor()); 264951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen data.writeInt32(threshold); 265951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status_t status = remote()->transact(SET_PANIC_THRESHOLD, 266951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen data, 267951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen &reply); 268951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen if (status == OK) { 269951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status = reply.readInt32(); 270951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 271951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 272951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen return status; 273951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 274951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 275951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen virtual status_t getAutoDisable(bool *autoDisable) { 276951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen Parcel data, reply; 277951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen data.writeInterfaceToken(ICommonTimeConfig::getInterfaceDescriptor()); 278951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status_t status = remote()->transact(GET_AUTO_DISABLE, 279951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen data, 280951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen &reply); 281951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen if (status == OK) { 282951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status = reply.readInt32(); 283951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen if (status == OK) { 284951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen *autoDisable = (0 != reply.readInt32()); 285951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 286951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 287951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 288951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen return status; 289951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 290951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 291951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen virtual status_t setAutoDisable(bool autoDisable) { 292951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen Parcel data, reply; 293951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen data.writeInterfaceToken(ICommonTimeConfig::getInterfaceDescriptor()); 294951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen data.writeInt32(autoDisable ? 1 : 0); 295951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status_t status = remote()->transact(SET_AUTO_DISABLE, 296951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen data, 297951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen &reply); 298951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 299951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen if (status == OK) { 300951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status = reply.readInt32(); 301951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 302951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 303951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen return status; 304951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 305951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 306951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen virtual status_t forceNetworklessMasterMode() { 307951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen Parcel data, reply; 308951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen data.writeInterfaceToken(ICommonTimeConfig::getInterfaceDescriptor()); 309951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status_t status = remote()->transact(FORCE_NETWORKLESS_MASTER_MODE, 310951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen data, 311951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen &reply); 312951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 313951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen if (status == OK) { 314951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status = reply.readInt32(); 315951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 316951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 317951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen return status; 318951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 319951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen}; 320951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 321951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. ChenIMPLEMENT_META_INTERFACE(CommonTimeConfig, "android.os.ICommonTimeConfig"); 322951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 323951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chenstatus_t BnCommonTimeConfig::onTransact(uint32_t code, 324951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen const Parcel& data, 325951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen Parcel* reply, 326951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen uint32_t flags) { 327951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen switch(code) { 328951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen case GET_MASTER_ELECTION_PRIORITY: { 329951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen CHECK_INTERFACE(ICommonTimeConfig, data, reply); 330951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen uint8_t priority; 331951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status_t status = getMasterElectionPriority(&priority); 332951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen reply->writeInt32(status); 333951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen if (status == OK) { 334951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen reply->writeInt32(static_cast<int32_t>(priority)); 335951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 336951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen return OK; 337951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } break; 338951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 339951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen case SET_MASTER_ELECTION_PRIORITY: { 340951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen CHECK_INTERFACE(ICommonTimeConfig, data, reply); 341951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen uint8_t priority = static_cast<uint8_t>(data.readInt32()); 342951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status_t status = setMasterElectionPriority(priority); 343951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen reply->writeInt32(status); 344951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen return OK; 345951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } break; 346951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 347951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen case GET_MASTER_ELECTION_ENDPOINT: { 348951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen CHECK_INTERFACE(ICommonTimeConfig, data, reply); 349951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen struct sockaddr_storage addr; 350951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status_t status = getMasterElectionEndpoint(&addr); 351951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 352951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen if ((status == OK) && !canSerializeSockaddr(&addr)) { 353951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status = UNKNOWN_ERROR; 354951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 355951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 356951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen reply->writeInt32(status); 357951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 358951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen if (status == OK) { 359951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen serializeSockaddr(reply, &addr); 360951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 361951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 362951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen return OK; 363951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } break; 364951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 365951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen case SET_MASTER_ELECTION_ENDPOINT: { 366951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen CHECK_INTERFACE(ICommonTimeConfig, data, reply); 367951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen struct sockaddr_storage addr; 368951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen int hasAddr = data.readInt32(); 369951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 370951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status_t status; 371951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen if (hasAddr) { 372951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen deserializeSockaddr(&data, &addr); 373951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status = setMasterElectionEndpoint(&addr); 374951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } else { 375951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status = setMasterElectionEndpoint(&addr); 376951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 377951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 378951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen reply->writeInt32(status); 379951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen return OK; 380951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } break; 381951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 382951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen case GET_MASTER_ELECTION_GROUP_ID: { 383951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen CHECK_INTERFACE(ICommonTimeConfig, data, reply); 384951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen uint64_t id; 385951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status_t status = getMasterElectionGroupId(&id); 386951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen reply->writeInt32(status); 387951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen if (status == OK) { 388951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen reply->writeInt64(id); 389951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 390951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen return OK; 391951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } break; 392951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 393951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen case SET_MASTER_ELECTION_GROUP_ID: { 394951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen CHECK_INTERFACE(ICommonTimeConfig, data, reply); 395951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen uint64_t id = static_cast<uint64_t>(data.readInt64()); 396951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status_t status = setMasterElectionGroupId(id); 397951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen reply->writeInt32(status); 398951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen return OK; 399951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } break; 400951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 401951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen case GET_INTERFACE_BINDING: { 402951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen CHECK_INTERFACE(ICommonTimeConfig, data, reply); 403951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen String16 ret; 404951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status_t status = getInterfaceBinding(ret); 405951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen reply->writeInt32(status); 406951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen if (status == OK) { 407951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen reply->writeString16(ret); 408951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 409951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen return OK; 410951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } break; 411951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 412951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen case SET_INTERFACE_BINDING: { 413951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen CHECK_INTERFACE(ICommonTimeConfig, data, reply); 414951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen String16 ifaceName; 415951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen ifaceName = data.readString16(); 416951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status_t status = setInterfaceBinding(ifaceName); 417951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen reply->writeInt32(status); 418951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen return OK; 419951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } break; 420951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 421951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen case GET_MASTER_ANNOUNCE_INTERVAL: { 422951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen CHECK_INTERFACE(ICommonTimeConfig, data, reply); 423951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen int interval; 424951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status_t status = getMasterAnnounceInterval(&interval); 425951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen reply->writeInt32(status); 426951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen if (status == OK) { 427951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen reply->writeInt32(interval); 428951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 429951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen return OK; 430951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } break; 431951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 432951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen case SET_MASTER_ANNOUNCE_INTERVAL: { 433951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen CHECK_INTERFACE(ICommonTimeConfig, data, reply); 434951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen int interval = data.readInt32(); 435951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status_t status = setMasterAnnounceInterval(interval); 436951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen reply->writeInt32(status); 437951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen return OK; 438951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } break; 439951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 440951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen case GET_CLIENT_SYNC_INTERVAL: { 441951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen CHECK_INTERFACE(ICommonTimeConfig, data, reply); 442951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen int interval; 443951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status_t status = getClientSyncInterval(&interval); 444951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen reply->writeInt32(status); 445951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen if (status == OK) { 446951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen reply->writeInt32(interval); 447951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 448951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen return OK; 449951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } break; 450951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 451951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen case SET_CLIENT_SYNC_INTERVAL: { 452951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen CHECK_INTERFACE(ICommonTimeConfig, data, reply); 453951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen int interval = data.readInt32(); 454951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status_t status = setClientSyncInterval(interval); 455951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen reply->writeInt32(status); 456951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen return OK; 457951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } break; 458951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 459951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen case GET_PANIC_THRESHOLD: { 460951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen CHECK_INTERFACE(ICommonTimeConfig, data, reply); 461951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen int threshold; 462951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status_t status = getPanicThreshold(&threshold); 463951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen reply->writeInt32(status); 464951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen if (status == OK) { 465951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen reply->writeInt32(threshold); 466951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 467951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen return OK; 468951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } break; 469951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 470951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen case SET_PANIC_THRESHOLD: { 471951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen CHECK_INTERFACE(ICommonTimeConfig, data, reply); 472951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen int threshold = data.readInt32(); 473951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status_t status = setPanicThreshold(threshold); 474951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen reply->writeInt32(status); 475951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen return OK; 476951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } break; 477951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 478951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen case GET_AUTO_DISABLE: { 479951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen CHECK_INTERFACE(ICommonTimeConfig, data, reply); 480951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen bool autoDisable; 481951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status_t status = getAutoDisable(&autoDisable); 482951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen reply->writeInt32(status); 483951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen if (status == OK) { 484951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen reply->writeInt32(autoDisable ? 1 : 0); 485951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 486951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen return OK; 487951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } break; 488951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 489951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen case SET_AUTO_DISABLE: { 490951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen CHECK_INTERFACE(ICommonTimeConfig, data, reply); 491951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen bool autoDisable = (0 != data.readInt32()); 492951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status_t status = setAutoDisable(autoDisable); 493951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen reply->writeInt32(status); 494951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen return OK; 495951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } break; 496951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 497951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen case FORCE_NETWORKLESS_MASTER_MODE: { 498951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen CHECK_INTERFACE(ICommonTimeConfig, data, reply); 499951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen status_t status = forceNetworklessMasterMode(); 500951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen reply->writeInt32(status); 501951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen return OK; 502951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } break; 503951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen } 504951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen return BBinder::onTransact(code, data, reply, flags); 505951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen} 506951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 507951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen}; // namespace android 508951bd8d1ad9581a414e171ad8605a9515d0ad667Mike J. Chen 509