1 /* 2 * Copyright (C) 2011 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 #ifndef __PIPE_EVENT_H__ 18 #define __PIPE_EVENT_H__ 19 20 #include <media/stagefright/foundation/ABase.h> 21 22 namespace android { 23 24 class PipeEvent { 25 public: 26 PipeEvent(); 27 ~PipeEvent(); 28 initCheck()29 bool initCheck() const { 30 return ((pipe_[0] >= 0) && (pipe_[1] >= 0)); 31 } 32 getWakeupHandle()33 int getWakeupHandle() const { return pipe_[0]; } 34 35 // block until the event fires; returns true if the event fired and false if 36 // the wait timed out. Timeout is expressed in milliseconds; negative 37 // values mean wait forever. 38 bool wait(int timeout = -1); 39 40 void clearPendingEvents(); 41 void setEvent(); 42 43 private: 44 int pipe_[2]; 45 46 DISALLOW_EVIL_CONSTRUCTORS(PipeEvent); 47 }; 48 49 } // namespace android 50 51 #endif // __PIPE_EVENT_H__ 52