/* * Copyright (c) 2021 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. */ #ifndef FRAMEWORKS_WMSERVICE_INCLUDE_WINDOW_MANAGER_SERVICE_CLIENT_IMPL_H #define FRAMEWORKS_WMSERVICE_INCLUDE_WINDOW_MANAGER_SERVICE_CLIENT_IMPL_H #include #include #include #include #include #include namespace OHOS { class WindowManagerServiceClientImpl : public WindowManagerServiceClient { public: static sptr GetInstance(); virtual GSError Init() override; virtual sptr GetService() const override; private: WindowManagerServiceClientImpl() = default; virtual ~WindowManagerServiceClientImpl() override; static inline sptr instance = nullptr; GSError Deinit(); void StartDispatchThread(); void StopDispatchThread(); void DispatchThreadMain(); void InterruptDispatchThread(); int32_t interruptFd = -1; std::unique_ptr startOnceFlag = nullptr; sptr> startPromise = nullptr; struct wms *wms = nullptr; struct wl_display *display = nullptr; struct wl_registry *registry = nullptr; sptr wmservice; std::unique_ptr dispatchThread; }; } // namespace OHOS #endif // FRAMEWORKS_WMSERVICE_INCLUDE_WINDOW_MANAGER_SERVICE_CLIENT_IMPL_H