17a9a4b8fSopenharmony_ci/*
27a9a4b8fSopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd.
37a9a4b8fSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
47a9a4b8fSopenharmony_ci * you may not use this file except in compliance with the License.
57a9a4b8fSopenharmony_ci * You may obtain a copy of the License at
67a9a4b8fSopenharmony_ci *
77a9a4b8fSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
87a9a4b8fSopenharmony_ci *
97a9a4b8fSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
107a9a4b8fSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
117a9a4b8fSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
127a9a4b8fSopenharmony_ci * See the License for the specific language governing permissions and
137a9a4b8fSopenharmony_ci * limitations under the License.
147a9a4b8fSopenharmony_ci */
157a9a4b8fSopenharmony_ci
167a9a4b8fSopenharmony_ci#ifndef FOUNDATION_RESOURCESCHEDULE_WORKSCHEDULER_EVENT_PUBLISHER_H
177a9a4b8fSopenharmony_ci#define FOUNDATION_RESOURCESCHEDULE_WORKSCHEDULER_EVENT_PUBLISHER_H
187a9a4b8fSopenharmony_ci
197a9a4b8fSopenharmony_ci#include <string>
207a9a4b8fSopenharmony_ci#include <vector>
217a9a4b8fSopenharmony_ci
227a9a4b8fSopenharmony_cinamespace OHOS {
237a9a4b8fSopenharmony_cinamespace WorkScheduler {
247a9a4b8fSopenharmony_ciclass EventPublisher {
257a9a4b8fSopenharmony_cipublic:
267a9a4b8fSopenharmony_ci    explicit EventPublisher() = default;
277a9a4b8fSopenharmony_ci    ~EventPublisher() = default;
287a9a4b8fSopenharmony_ci    /**
297a9a4b8fSopenharmony_ci     * @brief Publish event.
307a9a4b8fSopenharmony_ci     *
317a9a4b8fSopenharmony_ci     * @param result The dump result.
327a9a4b8fSopenharmony_ci     * @param eventType The event type.
337a9a4b8fSopenharmony_ci     * @param eventValue The event value.
347a9a4b8fSopenharmony_ci     */
357a9a4b8fSopenharmony_ci    void PublishEvent(std::string &result, const std::string &eventType, const std::string &eventValue);
367a9a4b8fSopenharmony_ci    /**
377a9a4b8fSopenharmony_ci     * @brief Publish network event.
387a9a4b8fSopenharmony_ci     *
397a9a4b8fSopenharmony_ci     * @param result The dump result.
407a9a4b8fSopenharmony_ci     * @param eventValue The event value.
417a9a4b8fSopenharmony_ci     */
427a9a4b8fSopenharmony_ci    void PublishNetworkEvent(std::string &result, const std::string &eventValue);
437a9a4b8fSopenharmony_ci    /**
447a9a4b8fSopenharmony_ci     * @brief Publish charging event.
457a9a4b8fSopenharmony_ci     *
467a9a4b8fSopenharmony_ci     * @param result The dump result.
477a9a4b8fSopenharmony_ci     * @param eventValue The event value.
487a9a4b8fSopenharmony_ci     */
497a9a4b8fSopenharmony_ci    void PublishChargingEvent(std::string &result, const std::string &eventValue);
507a9a4b8fSopenharmony_ci    /**
517a9a4b8fSopenharmony_ci     * @brief Publish storage event.
527a9a4b8fSopenharmony_ci     *
537a9a4b8fSopenharmony_ci     * @param result The dump result.
547a9a4b8fSopenharmony_ci     * @param eventValue The event value.
557a9a4b8fSopenharmony_ci     */
567a9a4b8fSopenharmony_ci    void PublishStorageEvent(std::string &result, const std::string &eventValue);
577a9a4b8fSopenharmony_ci    /**
587a9a4b8fSopenharmony_ci     * @brief Publish battery status event.
597a9a4b8fSopenharmony_ci     *
607a9a4b8fSopenharmony_ci     * @param result The dump result.
617a9a4b8fSopenharmony_ci     * @param eventValue The event value.
627a9a4b8fSopenharmony_ci     */
637a9a4b8fSopenharmony_ci    void PublishBatteryStatusEvent(std::string &result, const std::string &eventValue);
647a9a4b8fSopenharmony_ci    /**
657a9a4b8fSopenharmony_ci     * @brief Dump event info.
667a9a4b8fSopenharmony_ci     *
677a9a4b8fSopenharmony_ci     * @param result The dump result.
687a9a4b8fSopenharmony_ci     * @param eventType The event type.
697a9a4b8fSopenharmony_ci     * @param eventValue The event value.
707a9a4b8fSopenharmony_ci     */
717a9a4b8fSopenharmony_ci    void Dump(std::string &result, const std::string &eventType, const std::string &eventValue);
727a9a4b8fSopenharmony_ci};
737a9a4b8fSopenharmony_ci} // namespace WorkScheduler
747a9a4b8fSopenharmony_ci} // namespace OHOS
757a9a4b8fSopenharmony_ci#endif // FOUNDATION_RESOURCESCHEDULE_WORKSCHEDULER_EVENT_PUBLISHER_H