gnss_request_manager.h revision 6c2d8af39ae6a8ab8969b457b7dc0761542f72cf
1/* 2 * Copyright (C) 2017 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17#ifndef CHRE_CORE_GNSS_REQUEST_MANAGER_H_ 18#define CHRE_CORE_GNSS_REQUEST_MANAGER_H_ 19 20#include <cstdint> 21 22#include "chre/platform/platform_gnss.h" 23#include "chre/util/non_copyable.h" 24 25namespace chre { 26 27/** 28 * The GnssRequestManager handles requests from nanoapps for GNSS data. This 29 * includes multiplexing multiple requests into one for the platform to handle. 30 * 31 * This class is effectively a singleton as there can only be one instance of 32 * the PlatformGnss instance. 33 */ 34class GnssRequestManager : public NonCopyable { 35 public: 36 /** 37 * @return the GNSS capabilities exposed by this platform. 38 */ 39 uint32_t getCapabilities(); 40 41 private: 42 //! The instance of the platform GNSS interface. 43 PlatformGnss mPlatformGnss; 44}; 45 46} // namespace chre 47 48#endif // CHRE_CORE_GNSS_REQUEST_MANAGER_H_ 49