17922fa29f3a18386b6eb4cb19e8c582d9f751345Mathias Agopian/*
27922fa29f3a18386b6eb4cb19e8c582d9f751345Mathias Agopian * Copyright (C) 2005 The Android Open Source Project
37922fa29f3a18386b6eb4cb19e8c582d9f751345Mathias Agopian *
47922fa29f3a18386b6eb4cb19e8c582d9f751345Mathias Agopian * Licensed under the Apache License, Version 2.0 (the "License");
57922fa29f3a18386b6eb4cb19e8c582d9f751345Mathias Agopian * you may not use this file except in compliance with the License.
67922fa29f3a18386b6eb4cb19e8c582d9f751345Mathias Agopian * You may obtain a copy of the License at
77922fa29f3a18386b6eb4cb19e8c582d9f751345Mathias Agopian *
87922fa29f3a18386b6eb4cb19e8c582d9f751345Mathias Agopian *      http://www.apache.org/licenses/LICENSE-2.0
97922fa29f3a18386b6eb4cb19e8c582d9f751345Mathias Agopian *
107922fa29f3a18386b6eb4cb19e8c582d9f751345Mathias Agopian * Unless required by applicable law or agreed to in writing, software
117922fa29f3a18386b6eb4cb19e8c582d9f751345Mathias Agopian * distributed under the License is distributed on an "AS IS" BASIS,
127922fa29f3a18386b6eb4cb19e8c582d9f751345Mathias Agopian * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
137922fa29f3a18386b6eb4cb19e8c582d9f751345Mathias Agopian * See the License for the specific language governing permissions and
147922fa29f3a18386b6eb4cb19e8c582d9f751345Mathias Agopian * limitations under the License.
157922fa29f3a18386b6eb4cb19e8c582d9f751345Mathias Agopian */
167922fa29f3a18386b6eb4cb19e8c582d9f751345Mathias Agopian
17c4dd210df92f8d58adae5e27631be4d92cba0c43Steven Moreland#define LOG_TAG "hw-IInterface"
1838b9c529abc917dbd0b0f826ef24813cfe8a96e1Marco Nelissen#include <utils/Log.h>
194080edcfb5810a4a1817c03740f5f1bb19815ae1Martijn Coenen#include <hwbinder/IInterface.h>
207922fa29f3a18386b6eb4cb19e8c582d9f751345Mathias Agopian
217922fa29f3a18386b6eb4cb19e8c582d9f751345Mathias Agopiannamespace android {
22f75a23d54cc9e5f7b6b976e65b6ec346178f306dMartijn Coenennamespace hardware {
237922fa29f3a18386b6eb4cb19e8c582d9f751345Mathias Agopian
247922fa29f3a18386b6eb4cb19e8c582d9f751345Mathias Agopian// ---------------------------------------------------------------------------
257922fa29f3a18386b6eb4cb19e8c582d9f751345Mathias Agopian
26a6286c36406f6bb21b53d92dc165c603365b358bMathias AgopianIInterface::IInterface()
27a6286c36406f6bb21b53d92dc165c603365b358bMathias Agopian    : RefBase() {
28a6286c36406f6bb21b53d92dc165c603365b358bMathias Agopian}
29a6286c36406f6bb21b53d92dc165c603365b358bMathias Agopian
30a6286c36406f6bb21b53d92dc165c603365b358bMathias AgopianIInterface::~IInterface() {
31a6286c36406f6bb21b53d92dc165c603365b358bMathias Agopian}
32a6286c36406f6bb21b53d92dc165c603365b358bMathias Agopian
33461a6724be4bfe9ff484e64f6052abc9953e8fc8Marco Nelissen// static
34461a6724be4bfe9ff484e64f6052abc9953e8fc8Marco Nelissensp<IBinder> IInterface::asBinder(const IInterface* iface)
357922fa29f3a18386b6eb4cb19e8c582d9f751345Mathias Agopian{
36461a6724be4bfe9ff484e64f6052abc9953e8fc8Marco Nelissen    if (iface == NULL) return NULL;
37461a6724be4bfe9ff484e64f6052abc9953e8fc8Marco Nelissen    return const_cast<IInterface*>(iface)->onAsBinder();
387922fa29f3a18386b6eb4cb19e8c582d9f751345Mathias Agopian}
397922fa29f3a18386b6eb4cb19e8c582d9f751345Mathias Agopian
40461a6724be4bfe9ff484e64f6052abc9953e8fc8Marco Nelissen// static
41461a6724be4bfe9ff484e64f6052abc9953e8fc8Marco Nelissensp<IBinder> IInterface::asBinder(const sp<IInterface>& iface)
427922fa29f3a18386b6eb4cb19e8c582d9f751345Mathias Agopian{
43461a6724be4bfe9ff484e64f6052abc9953e8fc8Marco Nelissen    if (iface == NULL) return NULL;
44461a6724be4bfe9ff484e64f6052abc9953e8fc8Marco Nelissen    return iface->onAsBinder();
457922fa29f3a18386b6eb4cb19e8c582d9f751345Mathias Agopian}
467922fa29f3a18386b6eb4cb19e8c582d9f751345Mathias Agopian
4738b9c529abc917dbd0b0f826ef24813cfe8a96e1Marco Nelissen
487922fa29f3a18386b6eb4cb19e8c582d9f751345Mathias Agopian// ---------------------------------------------------------------------------
497922fa29f3a18386b6eb4cb19e8c582d9f751345Mathias Agopian
50f75a23d54cc9e5f7b6b976e65b6ec346178f306dMartijn Coenen}; // namespace hardware
517922fa29f3a18386b6eb4cb19e8c582d9f751345Mathias Agopian}; // namespace android
52