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_PLATFORM_PLATFORM_WWAN_H_
18#define CHRE_PLATFORM_PLATFORM_WWAN_H_
19
20#include "chre/target_platform/platform_wwan_base.h"
21
22namespace chre {
23
24class PlatformWwan : public PlatformWwanBase {
25 public:
26  /**
27   * Performs platform-specific deinitialization of the PlatformWwan instance.
28   */
29  ~PlatformWwan();
30
31  /**
32   * Initializes the platform-specific WWAN implementation. This is potentially
33   * called at a later stage of initialization than the constructor, so platform
34   * implementations are encouraged to put any blocking initialization here.
35   */
36  void init();
37
38  /**
39   * Returns the set of WWAN capabilities that the platform has exposed. This
40   * may return CHRE_WWAN_CAPABILITIES_NONE if WWAN is not supported.
41   *
42   * @return the WWAN capabilities exposed by this platform.
43   */
44  uint32_t getCapabilities();
45
46  /**
47   * Requests information about the current cell tower and neighbors. Refer to
48   * the {@link chrePalWwanApi} struct of the CHRE API which includes further
49   * documentation. The semantics of this implementation must be the same as
50   * those provided by the CHRE PAL.
51   *
52   * @return true if the request was accepted.
53   */
54  bool requestCellInfo();
55
56  /**
57   * Releases a previously published cell info result. Refer to the
58   * {@link chrePalWwanApi} struct of the CHRE API for further documentation.
59   *
60   * @param result a pointer to a result to be released.
61   */
62  void releaseCellInfoResult(chreWwanCellInfoResult *result);
63};
64
65}  // namespace chre
66
67#endif  // CHRE_PLATFORM_PLATFORM_WWAN_H_
68