1cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak/* 2cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * Copyright (c) 2016 The Android Open Source Project 3cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * 4cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * Licensed under the Apache License, Version 2.0 (the "License"); 5cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * you may not use this file except in compliance with the License. 6cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * You may obtain a copy of the License at 7cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * 8cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * http://www.apache.org/licenses/LICENSE-2.0 9cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * 10cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * Unless required by applicable law or agreed to in writing, software 11cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * distributed under the License is distributed on an "AS IS" BASIS, 12cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * See the License for the specific language governing permissions and 14cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * limitations under the License. 15cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak */ 16cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak 17cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiakpackage com.android.ims.internal.uce.uceservice; 18cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak 19cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiakimport com.android.ims.internal.uce.uceservice.IUceListener; 20cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiakimport com.android.ims.internal.uce.presence.IPresenceService; 21cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiakimport com.android.ims.internal.uce.options.IOptionsListener; 22cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiakimport com.android.ims.internal.uce.presence.IPresenceListener; 23cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiakimport com.android.ims.internal.uce.options.IOptionsService; 24cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiakimport com.android.ims.internal.uce.common.UceLong; 25cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiakimport com.android.ims.internal.uce.common.StatusCode; 26cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak 27cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak/** IUceService 28cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * UCE service interface class. 29cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * {@hide} */ 30cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiakinterface IUceService 31cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak{ 32cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak 33cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak /** 34cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * Starts the Uce service. 35cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @param uceListener IUceListener object 36cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @return boolean true if the service stop start is processed successfully, FALSE otherwise. 37cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * 38cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * Service status is returned in setStatus callback in IUceListener. 39cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @hide 40cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak */ 41cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak boolean startService(IUceListener uceListener); 42cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak 43cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak /** 44cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * Stops the UCE service. 45cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @return boolean true if the service stop request is processed successfully, FALSE otherwise. 46cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @hide 47cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak */ 48cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak boolean stopService(); 49cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak 50cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak 51cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak 52cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak /** 53cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * Requests the UCE service start status. 54cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @return boolean true if service started else false. 55cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @hide 56cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak */ 57cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak boolean isServiceStarted(); 58cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak 59cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak /** 60cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * Creates a options service for Capability Discovery. 61cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @param optionsListener IOptionsListener object. 62cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @param optionsServiceListenerHdl wrapper for client's listener handle to be stored. 63cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * 64cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * The service will fill UceLong.mUceLong with presenceListenerHandle allocated and 65cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * used to validate callbacks received in IPresenceListener are indeed from the 66cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * service the client created. 67cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * 68cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @return optionsServiceHandle 69cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @hide 70cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak */ 71cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak int createOptionsService(IOptionsListener optionsListener, 72cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak inout UceLong optionsServiceListenerHdl); 73cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak 74cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak /** 75cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * Destroys a Options service. 76cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @param optionsServiceHandle this is received in serviceCreated() callback 77cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * in IOptionsListener 78cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @hide 79cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak */ 80cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak void destroyOptionsService(int optionsServiceHandle); 81cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak 82cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak /** 83cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * Creates a presence service. 84cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @param presenceServiceListener IPresenceListener object 85cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @param presenceServiceListenerHdl wrapper for client's listener handle to be stored. 86cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * 87cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * The service will fill UceLong.mUceLong with presenceListenerHandle allocated and 88cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * used to validate callbacks received in IPresenceListener are indeed from the 89cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * service the client created. 90cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * 91cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @return presenceServiceHdl 92cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @hide 93cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak */ 94cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak int createPresenceService(IPresenceListener presenceServiceListener, 95cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak inout UceLong presenceServiceListenerHdl); 96cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak 97cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak /** 98cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * Destroys a presence service. 99cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @param presenceServiceHdl handle returned during createPresenceService() 100cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @hide 101cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak */ 102cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak void destroyPresenceService(int presenceServiceHdl); 103cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak 104cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak 105cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak 106cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak /** 107cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * Query the UCE Service for information to know whether the is registered. 108cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @return boolean, true if Registered to for network events else false. 109cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @hide 110cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak */ 111cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak boolean getServiceStatus(); 112cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak 113cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak /** 114cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * Query the UCE Service for presence Service. 115cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @return IPresenceService object. 116cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @hide 117cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak */ 118cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak IPresenceService getPresenceService(); 119cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak 120cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak /** 121cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * Query the UCE Service for options service object. 122cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @return IOptionsService object. 123cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @hide 124cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak */ 125cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak IOptionsService getOptionsService(); 126cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak 127cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak} 128