16c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen/* * Copyright (C) 2012 The Android Open Source Project 26c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen * 36c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen * Licensed under the Apache License, Version 2.0 (the "License"); 46c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen * you may not use this file except in compliance with the License. 56c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen * You may obtain a copy of the License at 66c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen * 76c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen * http://www.apache.org/licenses/LICENSE-2.0 86c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen * 96c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen * Unless required by applicable law or agreed to in writing, software 106c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen * distributed under the License is distributed on an "AS IS" BASIS, 116c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 126c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen * See the License for the specific language governing permissions and 136c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen * limitations under the License. 146c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen */ 156c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen 166c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen#ifndef ANDROID_COMMON_TIME_CONFIG_SERVICE_H 176c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen#define ANDROID_COMMON_TIME_CONFIG_SERVICE_H 186c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen 19778c859bfdcce2fa6658c09e65656afc34d3b4e0Elliott Hughes#include <sys/socket.h> 20778c859bfdcce2fa6658c09e65656afc34d3b4e0Elliott Hughes#include <common_time/ICommonTimeConfig.h> 21778c859bfdcce2fa6658c09e65656afc34d3b4e0Elliott Hughes 226c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chennamespace android { 236c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen 246c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chenclass String16; 256c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chenclass CommonTimeServer; 266c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen 276c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chenclass CommonTimeConfigService : public BnCommonTimeConfig { 286c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen public: 296c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen static sp<CommonTimeConfigService> instantiate(CommonTimeServer& timeServer); 306c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen 316c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen virtual status_t dump(int fd, const Vector<String16>& args); 326c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen 336c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen virtual status_t getMasterElectionPriority(uint8_t *priority); 346c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen virtual status_t setMasterElectionPriority(uint8_t priority); 356c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen virtual status_t getMasterElectionEndpoint(struct sockaddr_storage *addr); 366c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen virtual status_t setMasterElectionEndpoint(const struct sockaddr_storage *addr); 376c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen virtual status_t getMasterElectionGroupId(uint64_t *id); 386c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen virtual status_t setMasterElectionGroupId(uint64_t id); 396c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen virtual status_t getInterfaceBinding(String16& ifaceName); 406c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen virtual status_t setInterfaceBinding(const String16& ifaceName); 416c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen virtual status_t getMasterAnnounceInterval(int *interval); 426c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen virtual status_t setMasterAnnounceInterval(int interval); 436c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen virtual status_t getClientSyncInterval(int *interval); 446c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen virtual status_t setClientSyncInterval(int interval); 456c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen virtual status_t getPanicThreshold(int *threshold); 466c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen virtual status_t setPanicThreshold(int threshold); 476c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen virtual status_t getAutoDisable(bool *autoDisable); 486c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen virtual status_t setAutoDisable(bool autoDisable); 496c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen virtual status_t forceNetworklessMasterMode(); 506c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen 516c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen private: 526c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen CommonTimeConfigService(CommonTimeServer& timeServer) 536c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen : mTimeServer(timeServer) { } 546c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen CommonTimeServer& mTimeServer; 556c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen 566c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen}; 576c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen 586c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen}; // namespace android 596c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen 606c929510474caa14dc9d56826b2c65552861d6b3Mike J. Chen#endif // ANDROID_COMMON_TIME_CONFIG_SERVICE_H 61