10fbfc30aSopenharmony_ci/* 20fbfc30aSopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd. 30fbfc30aSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 40fbfc30aSopenharmony_ci * you may not use this file except in compliance with the License. 50fbfc30aSopenharmony_ci * You may obtain a copy of the License at 60fbfc30aSopenharmony_ci * 70fbfc30aSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 80fbfc30aSopenharmony_ci * 90fbfc30aSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 100fbfc30aSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 110fbfc30aSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 120fbfc30aSopenharmony_ci * See the License for the specific language governing permissions and 130fbfc30aSopenharmony_ci * limitations under the License. 140fbfc30aSopenharmony_ci */ 150fbfc30aSopenharmony_ci 160fbfc30aSopenharmony_ci#ifndef NATIVE_CALENDAR_MANAGER_H 170fbfc30aSopenharmony_ci#define NATIVE_CALENDAR_MANAGER_H 180fbfc30aSopenharmony_ci 190fbfc30aSopenharmony_ci#include <map> 200fbfc30aSopenharmony_ci#include "singleton.h" 210fbfc30aSopenharmony_ci#include "calendar_define.h" 220fbfc30aSopenharmony_ci#include "native_calendar.h" 230fbfc30aSopenharmony_ci#include "uri.h" 240fbfc30aSopenharmony_ciusing Uri = OHOS::Uri; 250fbfc30aSopenharmony_cinamespace OHOS::CalendarApi::Native { 260fbfc30aSopenharmony_ciclass CalendarManager { 270fbfc30aSopenharmony_cipublic: 280fbfc30aSopenharmony_ci static CalendarManager &GetInstance(); 290fbfc30aSopenharmony_ci CalendarManager(); 300fbfc30aSopenharmony_ci ~CalendarManager() {}; 310fbfc30aSopenharmony_ci static bool IsDefaultAccount(const CalendarAccount& account); 320fbfc30aSopenharmony_ci std::shared_ptr<Calendar> CreateCalendar(const CalendarAccount& account); 330fbfc30aSopenharmony_ci std::shared_ptr<Calendar> GetCalendar(const std::optional<CalendarAccount>& account = std::nullopt); 340fbfc30aSopenharmony_ci std::vector<std::shared_ptr<Calendar>> GetAllCalendars(); 350fbfc30aSopenharmony_ci bool DeleteCalendar(const Calendar& calendar); 360fbfc30aSopenharmony_ci int DeleteAllCalendars(); 370fbfc30aSopenharmony_ciprivate: 380fbfc30aSopenharmony_ci std::unique_ptr<Uri> m_calendarUri; 390fbfc30aSopenharmony_ci}; 400fbfc30aSopenharmony_ci} 410fbfc30aSopenharmony_ci 420fbfc30aSopenharmony_ci#endif