<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>dbus-threads.h Source File</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.2.15 --> <center> <a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="modules.html">Modules</a> <a class="qindex" href="annotated.html">Data Structures</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Data Fields</a> <a class="qindex" href="pages.html">Related Pages</a> </center> <hr><h1>dbus-threads.h</h1><div class="fragment"><pre>00001 <font class="comment">/* -*- mode: C; c-file-style: "gnu" -*- */</font> 00002 <font class="comment">/* dbus-threads.h D-BUS threads handling</font> 00003 <font class="comment"> *</font> 00004 <font class="comment"> * Copyright (C) 2002 Red Hat Inc.</font> 00005 <font class="comment"> *</font> 00006 <font class="comment"> * Licensed under the Academic Free License version 2.0</font> 00007 <font class="comment"> * </font> 00008 <font class="comment"> * This program is free software; you can redistribute it and/or modify</font> 00009 <font class="comment"> * it under the terms of the GNU General Public License as published by</font> 00010 <font class="comment"> * the Free Software Foundation; either version 2 of the License, or</font> 00011 <font class="comment"> * (at your option) any later version.</font> 00012 <font class="comment"> *</font> 00013 <font class="comment"> * This program is distributed in the hope that it will be useful,</font> 00014 <font class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</font> 00015 <font class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</font> 00016 <font class="comment"> * GNU General Public License for more details.</font> 00017 <font class="comment"> * </font> 00018 <font class="comment"> * You should have received a copy of the GNU General Public License</font> 00019 <font class="comment"> * along with this program; if not, write to the Free Software</font> 00020 <font class="comment"> * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</font> 00021 <font class="comment"> *</font> 00022 <font class="comment"> */</font> 00023 <font class="preprocessor">#if !defined (DBUS_INSIDE_DBUS_H) && !defined (DBUS_COMPILATION)</font> 00024 <font class="preprocessor"></font><font class="preprocessor">#error "Only <dbus/dbus.h> can be included directly, this file may disappear or change contents."</font> 00025 <font class="preprocessor"></font><font class="preprocessor">#endif</font> 00026 <font class="preprocessor"></font> 00027 <font class="preprocessor">#ifndef DBUS_THREADS_H</font> 00028 <font class="preprocessor"></font><font class="preprocessor">#define DBUS_THREADS_H</font> 00029 <font class="preprocessor"></font> 00030 <font class="preprocessor">#include <dbus/dbus-macros.h></font> 00031 <font class="preprocessor">#include <dbus/dbus-types.h></font> 00032 00033 DBUS_BEGIN_DECLS; 00034 00035 <font class="keyword">typedef</font> <font class="keyword">struct </font>DBusMutex DBusMutex; 00036 <font class="keyword">typedef</font> <font class="keyword">struct </font>DBusCondVar DBusCondVar; 00037 00038 <font class="keyword">typedef</font> DBusMutex* (* DBusMutexNewFunction) (void); 00039 <font class="keyword">typedef</font> void (* DBusMutexFreeFunction) (DBusMutex *mutex); 00040 <font class="keyword">typedef</font> dbus_bool_t (* DBusMutexLockFunction) (DBusMutex *mutex); 00041 <font class="keyword">typedef</font> dbus_bool_t (* DBusMutexUnlockFunction) (DBusMutex *mutex); 00042 00043 <font class="keyword">typedef</font> DBusCondVar* (* DBusCondVarNewFunction) (void); 00044 <font class="keyword">typedef</font> void (* DBusCondVarFreeFunction) (DBusCondVar *cond); 00045 <font class="keyword">typedef</font> void (* DBusCondVarWaitFunction) (DBusCondVar *cond, 00046 DBusMutex *mutex); 00047 <font class="keyword">typedef</font> dbus_bool_t (* DBusCondVarWaitTimeoutFunction) (DBusCondVar *cond, 00048 DBusMutex *mutex, 00049 <font class="keywordtype">int</font> timeout_milliseconds); 00050 <font class="keyword">typedef</font> void (* DBusCondVarWakeOneFunction) (DBusCondVar *cond); 00051 <font class="keyword">typedef</font> void (* DBusCondVarWakeAllFunction) (DBusCondVar *cond); 00052 00053 <font class="keyword">typedef</font> <font class="keyword">enum</font> 00054 { 00055 DBUS_THREAD_FUNCTIONS_MUTEX_NEW_MASK = 1 << 0, 00056 DBUS_THREAD_FUNCTIONS_MUTEX_FREE_MASK = 1 << 1, 00057 DBUS_THREAD_FUNCTIONS_MUTEX_LOCK_MASK = 1 << 2, 00058 DBUS_THREAD_FUNCTIONS_MUTEX_UNLOCK_MASK = 1 << 3, 00059 DBUS_THREAD_FUNCTIONS_CONDVAR_NEW_MASK = 1 << 4, 00060 DBUS_THREAD_FUNCTIONS_CONDVAR_FREE_MASK = 1 << 5, 00061 DBUS_THREAD_FUNCTIONS_CONDVAR_WAIT_MASK = 1 << 6, 00062 DBUS_THREAD_FUNCTIONS_CONDVAR_WAIT_TIMEOUT_MASK = 1 << 7, 00063 DBUS_THREAD_FUNCTIONS_CONDVAR_WAKE_ONE_MASK = 1 << 8, 00064 DBUS_THREAD_FUNCTIONS_CONDVAR_WAKE_ALL_MASK = 1 << 9, 00065 00066 DBUS_THREAD_FUNCTIONS_ALL_MASK = (1 << 10) - 1 00067 } DBusThreadFunctionsMask; 00068 <a name="l00073"></a><a class="code" href="structDBusThreadFunctions.html">00073</a> <font class="keyword">typedef</font> <font class="keyword">struct</font> 00074 <font class="keyword"></font>{ <a name="l00075"></a><a class="code" href="structDBusThreadFunctions.html#m0">00075</a> <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> mask; <a name="l00077"></a><a class="code" href="structDBusThreadFunctions.html#m1">00077</a> DBusMutexNewFunction mutex_new; <a name="l00078"></a><a class="code" href="structDBusThreadFunctions.html#m2">00078</a> DBusMutexFreeFunction mutex_free; <a name="l00079"></a><a class="code" href="structDBusThreadFunctions.html#m3">00079</a> DBusMutexLockFunction mutex_lock; <a name="l00080"></a><a class="code" href="structDBusThreadFunctions.html#m4">00080</a> DBusMutexUnlockFunction mutex_unlock; <a name="l00082"></a><a class="code" href="structDBusThreadFunctions.html#m5">00082</a> DBusCondVarNewFunction condvar_new; <a name="l00083"></a><a class="code" href="structDBusThreadFunctions.html#m6">00083</a> DBusCondVarFreeFunction condvar_free; <a name="l00084"></a><a class="code" href="structDBusThreadFunctions.html#m7">00084</a> DBusCondVarWaitFunction condvar_wait; <a name="l00085"></a><a class="code" href="structDBusThreadFunctions.html#m8">00085</a> DBusCondVarWaitTimeoutFunction condvar_wait_timeout; <a name="l00086"></a><a class="code" href="structDBusThreadFunctions.html#m9">00086</a> DBusCondVarWakeOneFunction condvar_wake_one; <a name="l00087"></a><a class="code" href="structDBusThreadFunctions.html#m10">00087</a> DBusCondVarWakeAllFunction condvar_wake_all; 00089 void (* padding1) (void); 00090 void (* padding2) (void); 00091 void (* padding3) (void); 00092 void (* padding4) (void); 00093 void (* padding5) (void); 00094 void (* padding6) (void); 00095 void (* padding7) (void); 00096 void (* padding8) (void); 00098 } <a class="code" href="structDBusThreadFunctions.html">DBusThreadFunctions</a>; 00099 00100 00101 DBusMutex* dbus_mutex_new (<font class="keywordtype">void</font>); 00102 <font class="keywordtype">void</font> dbus_mutex_free (DBusMutex *mutex); 00103 dbus_bool_t dbus_mutex_lock (DBusMutex *mutex); 00104 dbus_bool_t dbus_mutex_unlock (DBusMutex *mutex); 00105 00106 DBusCondVar* dbus_condvar_new (<font class="keywordtype">void</font>); 00107 <font class="keywordtype">void</font> dbus_condvar_free (DBusCondVar *cond); 00108 <font class="keywordtype">void</font> dbus_condvar_wait (DBusCondVar *cond, 00109 DBusMutex *mutex); 00110 dbus_bool_t dbus_condvar_wait_timeout (DBusCondVar *cond, 00111 DBusMutex *mutex, 00112 <font class="keywordtype">int</font> timeout_milliseconds); 00113 <font class="keywordtype">void</font> dbus_condvar_wake_one (DBusCondVar *cond); 00114 <font class="keywordtype">void</font> dbus_condvar_wake_all (DBusCondVar *cond); 00115 00116 dbus_bool_t dbus_threads_init (<font class="keyword">const</font> <a class="code" href="structDBusThreadFunctions.html">DBusThreadFunctions</a> *functions); 00117 00118 00119 00120 DBUS_END_DECLS; 00121 00122 <font class="preprocessor">#endif </font><font class="comment">/* DBUS_THREADS_H */</font> </pre></div><hr><address align="right"><small>Generated on Wed Jun 9 05:01:27 2004 for D-BUS by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border=0 width=110 height=53></a>1.2.15 </small></address> </body> </html>