1282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski/*
2282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * Copyright (C) 2009 The Android Open Source Project
3282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski *
4282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * Licensed under the Apache License, Version 2.0 (the "License");
5282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * you may not use this file except in compliance with the License.
6282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * You may obtain a copy of the License at
7282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski *
8282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski *      http://www.apache.org/licenses/LICENSE-2.0
9282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski *
10282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * Unless required by applicable law or agreed to in writing, software
11282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * distributed under the License is distributed on an "AS IS" BASIS,
12282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * See the License for the specific language governing permissions and
14282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * limitations under the License.
15282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski */
16282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
17282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskipackage android.os;
18282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
19282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiimport java.util.Map;
20282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
21282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskipublic final class ServiceManager {
22282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
23282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    /**
24282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski     * Returns a reference to a service with the given name.
25282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski     *
26282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski     * @param name the name of the service to get
27282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski     * @return a reference to the service, or <code>null</code> if the service doesn't exist
28282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski     */
29282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    public static IBinder getService(String name) {
30282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski        return null;
31282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    }
32282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
33282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    /**
34282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski     * Place a new @a service called @a name into the service
35282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski     * manager.
36282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski     *
37282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski     * @param name the name of the new service
38282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski     * @param service the service object
39282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski     */
40282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    public static void addService(String name, IBinder service) {
41282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski        // pass
42282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    }
43282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
44282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    /**
45282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski     * Retrieve an existing service called @a name from the
46282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski     * service manager.  Non-blocking.
47282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski     */
48282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    public static IBinder checkService(String name) {
49282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski        return null;
50282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    }
51282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
52282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    /**
53282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski     * Return a list of all currently running services.
549ccebbfc370b24bfc4bba1ed65f254b2ed9d4e07Umair Khan     * @return an array of all currently running services, or <code>null</code> in
559ccebbfc370b24bfc4bba1ed65f254b2ed9d4e07Umair Khan     * case of an exception
56282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski     */
579ccebbfc370b24bfc4bba1ed65f254b2ed9d4e07Umair Khan    public static String[] listServices() {
58282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski        // actual implementation returns null sometimes, so it's ok
59282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski        // to return null instead of an empty list.
60282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski        return null;
61282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    }
62282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
63282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    /**
64282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski     * This is only intended to be called when the process is first being brought
65282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski     * up and bound by the activity manager. There is only one thread in the process
66282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski     * at that time, so no locking is done.
67282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski     *
68282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski     * @param cache the cache of service references
69282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski     * @hide
70282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski     */
71282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    public static void initServiceCache(Map<String, IBinder> cache) {
72282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski        // pass
73282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    }
74282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski}
75