AHandler.h revision 72961230a5890071bcca436eb5630172ce84ec41
102fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff/* 2651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff * Copyright (C) 2010 The Android Open Source Project 302fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff * 402fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff * Licensed under the Apache License, Version 2.0 (the "License"); 502fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff * you may not use this file except in compliance with the License. 602fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff * You may obtain a copy of the License at 702fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff * 802fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff * http://www.apache.org/licenses/LICENSE-2.0 902fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff * 1002fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff * Unless required by applicable law or agreed to in writing, software 1102fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff * distributed under the License is distributed on an "AS IS" BASIS, 1202fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1302fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff * See the License for the specific language governing permissions and 1402fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff * limitations under the License. 1502fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff */ 1602fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff 1702fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff#ifndef A_HANDLER_H_ 1802fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff 1902fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff#define A_HANDLER_H_ 2002fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff 2102fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff#include <media/stagefright/foundation/ALooper.h> 2202fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff#include <utils/RefBase.h> 23489a9d81fd1458940e1ec01ba0cef36843732479Irfan Sheriff 246f7d385d964949e507dcc9c88012372f48d0bce7Irfan Sheriffnamespace android { 256f7d385d964949e507dcc9c88012372f48d0bce7Irfan Sheriff 2602fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriffstruct AMessage; 27651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff 28651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriffstruct AHandler : public RefBase { 29651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff AHandler() 30651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff : mID(0) { 31651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff } 32651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff 33651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff ALooper::handler_id id() const { 34651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff return mID; 35651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff } 36651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff 37651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriffprotected: 38651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff virtual void onMessageReceived(const sp<AMessage> &msg) = 0; 3902fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff 406f7d385d964949e507dcc9c88012372f48d0bce7Irfan Sheriffprivate: 41651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff friend struct ALooperRoster; 4202fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff 43674ca8a1f47c07033645a1016e68a2e82597e2faVinit Deshpande ALooper::handler_id mID; 4402fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff 4502fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff void setID(ALooper::handler_id id) { 466f7d385d964949e507dcc9c88012372f48d0bce7Irfan Sheriff mID = id; 4702fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff } 4802fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff 49651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff DISALLOW_EVIL_CONSTRUCTORS(AHandler); 50651cdfcbac6245f570475991588ddc2d30265e8dIrfan Sheriff}; 5102fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff 5202fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff} // namespace android 5302fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff 5402fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff#endif // A_HANDLER_H_ 5502fb46a297c4f645f2a30b574151401dd0978521Irfan Sheriff