1c36cf2e9Sopenharmony_ci/*
2c36cf2e9Sopenharmony_ci * Copyright (c) 2023-2023 Huawei Device Co., Ltd.
3c36cf2e9Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4c36cf2e9Sopenharmony_ci * you may not use this file except in compliance with the License.
5c36cf2e9Sopenharmony_ci * You may obtain a copy of the License at
6c36cf2e9Sopenharmony_ci *
7c36cf2e9Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
8c36cf2e9Sopenharmony_ci *
9c36cf2e9Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10c36cf2e9Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11c36cf2e9Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12c36cf2e9Sopenharmony_ci * See the License for the specific language governing permissions and
13c36cf2e9Sopenharmony_ci * limitations under the License.
14c36cf2e9Sopenharmony_ci */
15c36cf2e9Sopenharmony_ci
16c36cf2e9Sopenharmony_ciimport type { P2PDiscovery } from './discovery/P2pDiscovery';
17c36cf2e9Sopenharmony_ciimport type { P2PMonitor } from './discovery/P2pMonitor';
18c36cf2e9Sopenharmony_ciimport type { MdnsDiscovery } from './discovery/MdnsDiscovery';
19c36cf2e9Sopenharmony_ciimport { Log } from '@ohos/common';
20c36cf2e9Sopenharmony_ciimport type { Backend } from './ipp/Backend';
21c36cf2e9Sopenharmony_ciimport type { CapabilitiesCache } from './ipp/CapabilitiesCache';
22c36cf2e9Sopenharmony_ciimport type { WifiModel } from './model/WifiModel';
23c36cf2e9Sopenharmony_ciimport type { LocalDiscoverySession } from './LocalDiscoverySession';
24c36cf2e9Sopenharmony_ciimport CheckEmptyUtils from '@ohos/common';
25c36cf2e9Sopenharmony_ci
26c36cf2e9Sopenharmony_ciconst TAG = 'PrintServiceAdapter';
27c36cf2e9Sopenharmony_ci
28c36cf2e9Sopenharmony_ciexport class PrintServiceAdapter {
29c36cf2e9Sopenharmony_ci  private static instance: PrintServiceAdapter;
30c36cf2e9Sopenharmony_ci  private _p2pDiscovery: P2PDiscovery;
31c36cf2e9Sopenharmony_ci  private _mdnsDiscovery: MdnsDiscovery;
32c36cf2e9Sopenharmony_ci  private _p2pMonitor: P2PMonitor;
33c36cf2e9Sopenharmony_ci  private _backend: Backend;
34c36cf2e9Sopenharmony_ci  private _capabilitiesCache: CapabilitiesCache;
35c36cf2e9Sopenharmony_ci  private _wifiModel: WifiModel;
36c36cf2e9Sopenharmony_ci  private _localDiscoverySession: LocalDiscoverySession;
37c36cf2e9Sopenharmony_ci
38c36cf2e9Sopenharmony_ci
39c36cf2e9Sopenharmony_ci  public static getInstance(): PrintServiceAdapter {
40c36cf2e9Sopenharmony_ci    Log.info(TAG, 'getInstance enter');
41c36cf2e9Sopenharmony_ci    if (CheckEmptyUtils.isEmpty(this.instance)) {
42c36cf2e9Sopenharmony_ci      this.instance = new PrintServiceAdapter();
43c36cf2e9Sopenharmony_ci    }
44c36cf2e9Sopenharmony_ci    return this.instance;
45c36cf2e9Sopenharmony_ci  }
46c36cf2e9Sopenharmony_ci
47c36cf2e9Sopenharmony_ci  private constructor() {
48c36cf2e9Sopenharmony_ci
49c36cf2e9Sopenharmony_ci  }
50c36cf2e9Sopenharmony_ci
51c36cf2e9Sopenharmony_ci  get localDiscoverySession(): LocalDiscoverySession {
52c36cf2e9Sopenharmony_ci    return this._localDiscoverySession;
53c36cf2e9Sopenharmony_ci  }
54c36cf2e9Sopenharmony_ci
55c36cf2e9Sopenharmony_ci  set localDiscoverySession(localDiscoverySession: LocalDiscoverySession) {
56c36cf2e9Sopenharmony_ci    this._localDiscoverySession = localDiscoverySession;
57c36cf2e9Sopenharmony_ci  }
58c36cf2e9Sopenharmony_ci
59c36cf2e9Sopenharmony_ci  /**
60c36cf2e9Sopenharmony_ci   * get P2pMonitor
61c36cf2e9Sopenharmony_ci   *
62c36cf2e9Sopenharmony_ci   * @return P2pMonitor P2pMonitor
63c36cf2e9Sopenharmony_ci   */
64c36cf2e9Sopenharmony_ci  get wifiModel(): WifiModel {
65c36cf2e9Sopenharmony_ci    return this._wifiModel;
66c36cf2e9Sopenharmony_ci  }
67c36cf2e9Sopenharmony_ci
68c36cf2e9Sopenharmony_ci  /**
69c36cf2e9Sopenharmony_ci   * set P2pMonitor
70c36cf2e9Sopenharmony_ci   *
71c36cf2e9Sopenharmony_ci   * @param p2pMonitor P2pMonitor
72c36cf2e9Sopenharmony_ci   */
73c36cf2e9Sopenharmony_ci  set wifiModel(wifiModel: WifiModel) {
74c36cf2e9Sopenharmony_ci    this._wifiModel = wifiModel;
75c36cf2e9Sopenharmony_ci  }
76c36cf2e9Sopenharmony_ci
77c36cf2e9Sopenharmony_ci
78c36cf2e9Sopenharmony_ci  /**
79c36cf2e9Sopenharmony_ci   * get CapabilitiesCache
80c36cf2e9Sopenharmony_ci   *
81c36cf2e9Sopenharmony_ci   * @return getCapabilitiesCache getCapabilitiesCache
82c36cf2e9Sopenharmony_ci   */
83c36cf2e9Sopenharmony_ci  get capabilitiesCache(): CapabilitiesCache {
84c36cf2e9Sopenharmony_ci    return this._capabilitiesCache;
85c36cf2e9Sopenharmony_ci  }
86c36cf2e9Sopenharmony_ci
87c36cf2e9Sopenharmony_ci  /**
88c36cf2e9Sopenharmony_ci   * set CapabilitiesCache
89c36cf2e9Sopenharmony_ci   *
90c36cf2e9Sopenharmony_ci   * @param capabilitiesCache CapabilitiesCache
91c36cf2e9Sopenharmony_ci   */
92c36cf2e9Sopenharmony_ci  set capabilitiesCache(capabilitiesCache: CapabilitiesCache) {
93c36cf2e9Sopenharmony_ci    this._capabilitiesCache = capabilitiesCache;
94c36cf2e9Sopenharmony_ci  }
95c36cf2e9Sopenharmony_ci
96c36cf2e9Sopenharmony_ci  /**
97c36cf2e9Sopenharmony_ci  * get P2pDiscovery
98c36cf2e9Sopenharmony_ci  *
99c36cf2e9Sopenharmony_ci  * @return P2pDiscovery P2pDiscovery
100c36cf2e9Sopenharmony_ci  */
101c36cf2e9Sopenharmony_ci  get p2pDiscovery(): P2PDiscovery {
102c36cf2e9Sopenharmony_ci    return this._p2pDiscovery;
103c36cf2e9Sopenharmony_ci  }
104c36cf2e9Sopenharmony_ci
105c36cf2e9Sopenharmony_ci  /**
106c36cf2e9Sopenharmony_ci   * set P2pDiscovery
107c36cf2e9Sopenharmony_ci   *
108c36cf2e9Sopenharmony_ci   * @param p2pDiscovery P2pDiscovery
109c36cf2e9Sopenharmony_ci   */
110c36cf2e9Sopenharmony_ci  set p2pDiscovery(p2pDiscovery: P2PDiscovery) {
111c36cf2e9Sopenharmony_ci    this._p2pDiscovery = p2pDiscovery;
112c36cf2e9Sopenharmony_ci  }
113c36cf2e9Sopenharmony_ci
114c36cf2e9Sopenharmony_ci  /**
115c36cf2e9Sopenharmony_ci   * get Backend
116c36cf2e9Sopenharmony_ci   *
117c36cf2e9Sopenharmony_ci   * @return Backend Backend
118c36cf2e9Sopenharmony_ci   */
119c36cf2e9Sopenharmony_ci  get backend(): Backend {
120c36cf2e9Sopenharmony_ci    return this._backend;
121c36cf2e9Sopenharmony_ci  }
122c36cf2e9Sopenharmony_ci
123c36cf2e9Sopenharmony_ci  /**
124c36cf2e9Sopenharmony_ci   * set Backend
125c36cf2e9Sopenharmony_ci   *
126c36cf2e9Sopenharmony_ci   * @param backend Backend
127c36cf2e9Sopenharmony_ci   */
128c36cf2e9Sopenharmony_ci  set backend(backend: Backend) {
129c36cf2e9Sopenharmony_ci    this._backend = backend;
130c36cf2e9Sopenharmony_ci  }
131c36cf2e9Sopenharmony_ci
132c36cf2e9Sopenharmony_ci  /**
133c36cf2e9Sopenharmony_ci   * get MdnsDiscovery
134c36cf2e9Sopenharmony_ci   *
135c36cf2e9Sopenharmony_ci   * @return MdnsDiscovery
136c36cf2e9Sopenharmony_ci   */
137c36cf2e9Sopenharmony_ci  get mdnsDiscovery(): MdnsDiscovery {
138c36cf2e9Sopenharmony_ci    return this._mdnsDiscovery;
139c36cf2e9Sopenharmony_ci  }
140c36cf2e9Sopenharmony_ci
141c36cf2e9Sopenharmony_ci  /**
142c36cf2e9Sopenharmony_ci   * set MdnsDiscovery
143c36cf2e9Sopenharmony_ci   *
144c36cf2e9Sopenharmony_ci   * @param MdnsDiscovery
145c36cf2e9Sopenharmony_ci   */
146c36cf2e9Sopenharmony_ci  set mdnsDiscovery(mdnsDiscovery: MdnsDiscovery) {
147c36cf2e9Sopenharmony_ci    this._mdnsDiscovery = mdnsDiscovery;
148c36cf2e9Sopenharmony_ci  }
149c36cf2e9Sopenharmony_ci
150c36cf2e9Sopenharmony_ci
151c36cf2e9Sopenharmony_ci  /**
152c36cf2e9Sopenharmony_ci   * get MdnsDiscovery
153c36cf2e9Sopenharmony_ci   *
154c36cf2e9Sopenharmony_ci   * @return MdnsDiscovery
155c36cf2e9Sopenharmony_ci   */
156c36cf2e9Sopenharmony_ci  get p2pMonitor(): P2PMonitor {
157c36cf2e9Sopenharmony_ci    return this._p2pMonitor;
158c36cf2e9Sopenharmony_ci  }
159c36cf2e9Sopenharmony_ci
160c36cf2e9Sopenharmony_ci  /**
161c36cf2e9Sopenharmony_ci   * set MdnsDiscovery
162c36cf2e9Sopenharmony_ci   *
163c36cf2e9Sopenharmony_ci   * @param MdnsDiscovery
164c36cf2e9Sopenharmony_ci   */
165c36cf2e9Sopenharmony_ci  set p2pMonitor(p2pMonitor: P2PMonitor) {
166c36cf2e9Sopenharmony_ci    this._p2pMonitor = p2pMonitor;
167c36cf2e9Sopenharmony_ci  }
168c36cf2e9Sopenharmony_ci}