10485dae0Sopenharmony_ci/*
20485dae0Sopenharmony_ci * Copyright (C) 2021 Huawei Device Co., Ltd.
30485dae0Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
40485dae0Sopenharmony_ci * you may not use this file except in compliance with the License.
50485dae0Sopenharmony_ci * You may obtain a copy of the License at
60485dae0Sopenharmony_ci *
70485dae0Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
80485dae0Sopenharmony_ci *
90485dae0Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
100485dae0Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
110485dae0Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
120485dae0Sopenharmony_ci * See the License for the specific language governing permissions and
130485dae0Sopenharmony_ci * limitations under the License.
140485dae0Sopenharmony_ci */
150485dae0Sopenharmony_ci
160485dae0Sopenharmony_ci#ifndef SAMPLE_PLUGIN_2_H
170485dae0Sopenharmony_ci#define SAMPLE_PLUGIN_2_H
180485dae0Sopenharmony_ci
190485dae0Sopenharmony_ci#include <cstring>
200485dae0Sopenharmony_ci
210485dae0Sopenharmony_ci#include "plugin/i_plugin.h"
220485dae0Sopenharmony_ci
230485dae0Sopenharmony_cinamespace OHOS {
240485dae0Sopenharmony_cinamespace AI {
250485dae0Sopenharmony_ciclass SamplePlugin2 : public IPlugin {
260485dae0Sopenharmony_cipublic:
270485dae0Sopenharmony_ci    SamplePlugin2();
280485dae0Sopenharmony_ci
290485dae0Sopenharmony_ci    ~SamplePlugin2() override;
300485dae0Sopenharmony_ci
310485dae0Sopenharmony_ci    const long long GetVersion() const override;
320485dae0Sopenharmony_ci
330485dae0Sopenharmony_ci    const char *GetName() const override;
340485dae0Sopenharmony_ci
350485dae0Sopenharmony_ci    const char *GetInferMode() const override;
360485dae0Sopenharmony_ci
370485dae0Sopenharmony_ci    int SyncProcess(IRequest *request, IResponse *&response) override;
380485dae0Sopenharmony_ci
390485dae0Sopenharmony_ci    int AsyncProcess(IRequest *request, IPluginCallback *callback) override;
400485dae0Sopenharmony_ci
410485dae0Sopenharmony_ci    int Prepare(long long transactionId, const DataInfo &inputInfo, DataInfo &outputInfo) override;
420485dae0Sopenharmony_ci
430485dae0Sopenharmony_ci    int Release(bool isFullUnload, long long transactionId, const DataInfo &inputInfo) override;
440485dae0Sopenharmony_ci
450485dae0Sopenharmony_ci    int SetOption(int optionType, const DataInfo &inputInfo) override;
460485dae0Sopenharmony_ci
470485dae0Sopenharmony_ci    int GetOption(int optionType, const DataInfo &inputInfo, DataInfo &outputInfo) override;
480485dae0Sopenharmony_ci
490485dae0Sopenharmony_ciprivate:
500485dae0Sopenharmony_ci    DataInfo optionData_ {};
510485dae0Sopenharmony_ci};
520485dae0Sopenharmony_ci}
530485dae0Sopenharmony_ci}
540485dae0Sopenharmony_ci
550485dae0Sopenharmony_ci#endif // SAMPLE_PLUGIN_2_H
56