blob: 9560e0141cff15ed0e811e98750f10dc6dc89f27 [file] [log] [blame]
/*
* Copyright (c) 2019 The Linux Foundation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials provided
* with the distribution.
* * Neither the name of The Linux Foundation. nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package vendor.qti.hardware.servicetracker@1.0;
/**
*Interface that collects all the updated information related to
*Client and Service and share the needed information with
*other components.
*/
interface IServicetracker {
/**
*Collect the information related to service that is just started
*@param serviceData contains details of the service,@param clientData
*contains the details of client which has started the service
*/
oneway startService(ServiceData serviceData);
/**
*Collect and update the information for the service which is just bound to
*@param clientData
*/
oneway bindService(ServiceData serviceData, ClientData clientData);
/**
*Update the bind information of sevice,client pair specified
*by @param serviceData and @param clientData
*/
oneway unbindService(ServiceData serviceData, ClientData clientData);
/**
*Update the service information when service specified by
*@param serviceData has been destroyed
*/
oneway destroyService(ServiceData serviceData);
/**
*Update the service and client information when process
*specified by @param pid got killed
*/
oneway killProcess(int32_t pid);
/**
*Return all the details related to Client specified by @param
*clientName
*/
getclientInfo(string clientName) generates (Status status, ClientRecord client);
/**
*Return all the details related to Service specified by @param
*serviceName
*/
getserviceInfo(string serviceName) generates (Status status, ServiceRecord service);
/**
*Return list of clients associated with the service specified by
*@param serviceName
*/
getServiceConnections(string serviceName) generates (Status status, vec<ServiceConnection> conn);
/**
*Return the list of services associated with the client
*specified by @param clientName
*/
getClientConnections(string clientName) generates (Status status, vec<ClientConnection> conn);
/**
*Return the pid of the process specified by @param processName
*/
getPid(string processName) generates (Status status, int32_t pid);
/**
*Return the pid of the services listed in @param serviceList
*/
getPids(vec<string> serviceList) generates (Status status, vec<int32_t> pidList);
/**
*Return whether a service specified by @param serviceName is
*B-Service or not
*/
isServiceB(string serviceName) generates (Status status, bool serviceB);
/**
*generate the list of b services running in system
*/
getServiceBCount() generates (Status status, vec<ServiceRecord> bServiceList, int32_t count);
};