1c5e268c6Sopenharmony_ci/*
2c5e268c6Sopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd.
3c5e268c6Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4c5e268c6Sopenharmony_ci * you may not use this file except in compliance with the License.
5c5e268c6Sopenharmony_ci * You may obtain a copy of the License at
6c5e268c6Sopenharmony_ci *
7c5e268c6Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
8c5e268c6Sopenharmony_ci *
9c5e268c6Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10c5e268c6Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11c5e268c6Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12c5e268c6Sopenharmony_ci * See the License for the specific language governing permissions and
13c5e268c6Sopenharmony_ci * limitations under the License.
14c5e268c6Sopenharmony_ci */
15c5e268c6Sopenharmony_ci
16c5e268c6Sopenharmony_ci /**
17c5e268c6Sopenharmony_ci * @addtogroup HdiLpfenceCellbatching
18c5e268c6Sopenharmony_ci * @{
19c5e268c6Sopenharmony_ci *
20c5e268c6Sopenharmony_ci * @brief Provides APIs for recording base station trajectory data for low-power fence services.
21c5e268c6Sopenharmony_ci *
22c5e268c6Sopenharmony_ci * You can use the APIs to cache and flush the base station data received.
23c5e268c6Sopenharmony_ci * The cell batching feature is used to determine the user's activity area based on the base station trajectory data received by the device, so as to further provide service information.
24c5e268c6Sopenharmony_ci *
25c5e268c6Sopenharmony_ci * @since 4.0
26c5e268c6Sopenharmony_ci * @version 1.0
27c5e268c6Sopenharmony_ci */
28c5e268c6Sopenharmony_ci
29c5e268c6Sopenharmony_ci/**
30c5e268c6Sopenharmony_ci * @file ICellbatchingInterface.idl
31c5e268c6Sopenharmony_ci *
32c5e268c6Sopenharmony_ci * @brief Declares the APIs provided by the cell batching module. You can use the APIs to enable or disable the cell batching feature and obtain the base station trajectory data.
33c5e268c6Sopenharmony_ci *
34c5e268c6Sopenharmony_ci * @since 4.0
35c5e268c6Sopenharmony_ci * @version 1.0
36c5e268c6Sopenharmony_ci */
37c5e268c6Sopenharmony_ci
38c5e268c6Sopenharmony_ci/**
39c5e268c6Sopenharmony_ci * @brief Declares the path of the cell batching interface package.
40c5e268c6Sopenharmony_ci *
41c5e268c6Sopenharmony_ci * @since 4.0
42c5e268c6Sopenharmony_ci */
43c5e268c6Sopenharmony_cipackage ohos.hdi.location.lpfence.cellbatching.v1_0;
44c5e268c6Sopenharmony_ci
45c5e268c6Sopenharmony_ci/**
46c5e268c6Sopenharmony_ci * @brief Imports data types of the cell batching module.
47c5e268c6Sopenharmony_ci *
48c5e268c6Sopenharmony_ci * @since 4.0
49c5e268c6Sopenharmony_ci */
50c5e268c6Sopenharmony_ciimport ohos.hdi.location.lpfence.cellbatching.v1_0.CellbatchingTypes;
51c5e268c6Sopenharmony_ci
52c5e268c6Sopenharmony_ci/**
53c5e268c6Sopenharmony_ci * @brief Imports callback definitions of the cell batching module.
54c5e268c6Sopenharmony_ci *
55c5e268c6Sopenharmony_ci * @since 4.0
56c5e268c6Sopenharmony_ci */
57c5e268c6Sopenharmony_ciimport ohos.hdi.location.lpfence.cellbatching.v1_0.ICellbatchingCallback;
58c5e268c6Sopenharmony_ci
59c5e268c6Sopenharmony_ci/**
60c5e268c6Sopenharmony_ci * @brief Defines APIs for basic cell batching operations.
61c5e268c6Sopenharmony_ci *
62c5e268c6Sopenharmony_ci * You can use the APIs to register or unregister a callback, enable or disable the cell batching feature, and obtain the base station trajectory data.
63c5e268c6Sopenharmony_ci */
64c5e268c6Sopenharmony_ciinterface ICellbatchingInterface {
65c5e268c6Sopenharmony_ci    /**
66c5e268c6Sopenharmony_ci     * @brief Registers a callback.
67c5e268c6Sopenharmony_ci     *
68c5e268c6Sopenharmony_ci     * Before enabling the cell batching feature, you need to register a callback to report the base station trajectory data obtained by an app.
69c5e268c6Sopenharmony_ci     *
70c5e268c6Sopenharmony_ci     * @param callbackObj Indicates the callback to register, which needs to be registered only once. For details, see {@link ICellbatchingCallback}.
71c5e268c6Sopenharmony_ci     *
72c5e268c6Sopenharmony_ci     * @return Returns <b>0</b> if the operation is successful.
73c5e268c6Sopenharmony_ci     * @return Returns a negative value if the operation fails.
74c5e268c6Sopenharmony_ci     *
75c5e268c6Sopenharmony_ci     * @since 4.0
76c5e268c6Sopenharmony_ci     * @version 1.0
77c5e268c6Sopenharmony_ci     */
78c5e268c6Sopenharmony_ci    RegisterCellBatchingCallback([in] ICellbatchingCallback callbackObj);
79c5e268c6Sopenharmony_ci
80c5e268c6Sopenharmony_ci    /**
81c5e268c6Sopenharmony_ci     * @brief Unregisters a callback.
82c5e268c6Sopenharmony_ci     *
83c5e268c6Sopenharmony_ci     * When the cell batching feature is no longer required or the registered callback needs to be changed, you need to unregister the callback.
84c5e268c6Sopenharmony_ci     *
85c5e268c6Sopenharmony_ci     * @param callbackObj Indicates the callback to unregister, which needs to be unregistered only once. For details, see {@link ICellbatchingCallback}.
86c5e268c6Sopenharmony_ci     *
87c5e268c6Sopenharmony_ci     * @return Returns <b>0</b> if the operation is successful.
88c5e268c6Sopenharmony_ci     * @return Returns a negative value if the operation fails.
89c5e268c6Sopenharmony_ci     *
90c5e268c6Sopenharmony_ci     * @since 4.0
91c5e268c6Sopenharmony_ci     * @version 1.0
92c5e268c6Sopenharmony_ci     */
93c5e268c6Sopenharmony_ci    UnregisterCellBatchingCallback([in] ICellbatchingCallback callbackObj);
94c5e268c6Sopenharmony_ci
95c5e268c6Sopenharmony_ci    /**
96c5e268c6Sopenharmony_ci     * @brief Enables or disables the cell batching feature.
97c5e268c6Sopenharmony_ci     *
98c5e268c6Sopenharmony_ci     * After the cell batching feature is enabled, the device caches the base station data received. If the data received is the same as the data previously received, the device does not cache the data.
99c5e268c6Sopenharmony_ci     *
100c5e268c6Sopenharmony_ci     * @param req Indicates the parameters used for setting the cell batching feature. For details, see {@link CellbatchingRequest}.
101c5e268c6Sopenharmony_ci     *
102c5e268c6Sopenharmony_ci     * @return Returns <b>0</b> if the operation is successful.
103c5e268c6Sopenharmony_ci     * @return Returns a negative value if the operation fails.
104c5e268c6Sopenharmony_ci     *
105c5e268c6Sopenharmony_ci     * @since 4.0
106c5e268c6Sopenharmony_ci     * @version 1.0
107c5e268c6Sopenharmony_ci     */
108c5e268c6Sopenharmony_ci    CellbatchingSwitch([in] struct CellbatchingRequest req);
109c5e268c6Sopenharmony_ci
110c5e268c6Sopenharmony_ci    /**
111c5e268c6Sopenharmony_ci     * @brief Flushes the base station trajectory data.
112c5e268c6Sopenharmony_ci     *
113c5e268c6Sopenharmony_ci     * The amount of data flushed varies depending on the buffer size of the device and the amount of base station data received by the device. After the data is flushed, the cached base station data will be cleared.
114c5e268c6Sopenharmony_ci     *
115c5e268c6Sopenharmony_ci     * @return Returns <b>0</b> if the operation is successful.
116c5e268c6Sopenharmony_ci     * @return Returns a negative value if the operation fails.
117c5e268c6Sopenharmony_ci     *
118c5e268c6Sopenharmony_ci     * @since 4.0
119c5e268c6Sopenharmony_ci     * @version 1.0
120c5e268c6Sopenharmony_ci     */
121c5e268c6Sopenharmony_ci    FlushCellbatching();
122c5e268c6Sopenharmony_ci}
123c5e268c6Sopenharmony_ci/** @} */
124