00001 /* 00002 Copyright (C) 2006 Adam Charrett 00003 00004 This program is free software; you can redistribute it and/or 00005 modify it under the terms of the GNU General Public License 00006 as published by the Free Software Foundation; either version 2 00007 of the License, or (at your option) any later version. 00008 00009 This program is distributed in the hope that it will be useful, 00010 but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 GNU General Public License for more details. 00013 00014 You should have received a copy of the GNU General Public License 00015 along with this program; if not, write to the Free Software 00016 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA 00017 00018 messageq.h 00019 00020 Thread safe message queue. 00021 00022 */ 00023 00024 #ifndef _DVBSTREAMER_MESSAGEQ_H 00025 #define _DVBSTREAMER_MESSAGEQ_H 00026 00027 #include "types.h" 00028 00037 typedef struct MessageQ_s *MessageQ_t; 00038 00043 MessageQ_t MessageQCreate(); 00044 00049 void MessageQDestroy(MessageQ_t msgQ); 00050 00060 void MessageQSend(MessageQ_t msgQ, void *msg); 00061 00067 int MessageQAvailable(MessageQ_t msgQ); 00068 00076 void *MessageQReceive(MessageQ_t msgQ); 00077 00083 void MessageQSetQuit(MessageQ_t msgQ); 00084 00090 void MessageQResetQuit(MessageQ_t msgQ); 00091 00097 bool MessageQIsQuitSet(MessageQ_t msgQ); 00098 00100 #endif 00101