forked from floraachy/ImageKnife
60 lines
1.7 KiB
Plaintext
60 lines
1.7 KiB
Plaintext
/*
|
|
* Copyright (C) 2024 Huawei Device Co., Ltd.
|
|
* Licensed under the Apache License, Version 2.0 (the 'License');
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an 'AS IS' BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
import { statfs } from '@kit.CoreFileKit'
|
|
import { rcp } from '@kit.RemoteCommunicationKit'
|
|
|
|
export class CommonDataSource <T> implements IDataSource {
|
|
private dataArray: T[] = []
|
|
private listeners: DataChangeListener[] = []
|
|
|
|
constructor(element: []) {
|
|
this.dataArray = element
|
|
}
|
|
|
|
public getData(index: number) {
|
|
return this.dataArray[index]
|
|
}
|
|
|
|
public totalCount(): number {
|
|
return this.dataArray.length
|
|
}
|
|
|
|
public addData(index: number, data: T[]): void {
|
|
this.dataArray = this.dataArray.concat(data)
|
|
this.notifyDataAdd(index)
|
|
}
|
|
|
|
unregisterDataChangeListener(listener: DataChangeListener): void {
|
|
const pos = this.listeners.indexOf(listener);
|
|
if (pos >= 0) {
|
|
this.listeners.splice(pos, 1);
|
|
}
|
|
}
|
|
|
|
registerDataChangeListener(listener: DataChangeListener): void {
|
|
if (this.listeners.indexOf(listener) < 0) {
|
|
this.listeners.push(listener)
|
|
}
|
|
}
|
|
|
|
notifyDataAdd(index: number): void {
|
|
this.listeners.forEach((listener: DataChangeListener) => {
|
|
listener.onDataAdd(index)
|
|
})
|
|
}
|
|
}
|
|
export class GetSession {
|
|
static session:rcp.Session = rcp.createSession()
|
|
} |