10fbfc30aSopenharmony_ci/**
20fbfc30aSopenharmony_ci * @file Describe the file
30fbfc30aSopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd.
40fbfc30aSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
50fbfc30aSopenharmony_ci * you may not use this file except in compliance with the License.
60fbfc30aSopenharmony_ci * You may obtain a copy of the License at
70fbfc30aSopenharmony_ci *
80fbfc30aSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
90fbfc30aSopenharmony_ci *
100fbfc30aSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
110fbfc30aSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
120fbfc30aSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
130fbfc30aSopenharmony_ci * See the License for the specific language governing permissions and
140fbfc30aSopenharmony_ci * limitations under the License.
150fbfc30aSopenharmony_ci */
160fbfc30aSopenharmony_ci
170fbfc30aSopenharmony_ciimport { CommonEventConstants } from '../CommonEventConstants';
180fbfc30aSopenharmony_ciimport { sendBroadcast } from '@ohos/common/src/main/ets/broadcast/BroadcastHelper';
190fbfc30aSopenharmony_ci
200fbfc30aSopenharmony_ciexport const OPERATION_INSERT: string = 'insert';
210fbfc30aSopenharmony_ci
220fbfc30aSopenharmony_ciexport const OPERATION_UPDATE: string = 'update';
230fbfc30aSopenharmony_ci
240fbfc30aSopenharmony_ciexport const OPERATION_DELETE: string = 'delete';
250fbfc30aSopenharmony_ci
260fbfc30aSopenharmony_ciexport const OPERATION_UNKNOWN: string = 'unknown';
270fbfc30aSopenharmony_ci
280fbfc30aSopenharmony_ciconst BROAD_CAST_DELAY: number = 100;
290fbfc30aSopenharmony_ci
300fbfc30aSopenharmony_ci/**
310fbfc30aSopenharmony_ci * 发送数据库变化广播通知
320fbfc30aSopenharmony_ci *
330fbfc30aSopenharmony_ci * @param tableName 变化的表
340fbfc30aSopenharmony_ci * @param operation 操作:插入、更新、删除、未知
350fbfc30aSopenharmony_ci */
360fbfc30aSopenharmony_ciinterface ParametersI {
370fbfc30aSopenharmony_ci  table: string;
380fbfc30aSopenharmony_ci  operation: string;
390fbfc30aSopenharmony_ci}
400fbfc30aSopenharmony_ci
410fbfc30aSopenharmony_ciinterface DataI {
420fbfc30aSopenharmony_ci  parameters: ParametersI;
430fbfc30aSopenharmony_ci}
440fbfc30aSopenharmony_ci
450fbfc30aSopenharmony_ciexport function notifyProviderChange(tableName: string, operation: string) {
460fbfc30aSopenharmony_ci  const data: DataI = {
470fbfc30aSopenharmony_ci    parameters: {
480fbfc30aSopenharmony_ci      table: tableName,
490fbfc30aSopenharmony_ci      operation: operation,
500fbfc30aSopenharmony_ci    }
510fbfc30aSopenharmony_ci  };
520fbfc30aSopenharmony_ci  setTimeout(() => {
530fbfc30aSopenharmony_ci    sendBroadcast(CommonEventConstants.DATA_CHANGED, data);
540fbfc30aSopenharmony_ci  }, BROAD_CAST_DELAY);
550fbfc30aSopenharmony_ci}