<!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-dataslot.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-dataslot.h</h1><div class="fragment"><pre>00001 <font class="comment">/* -*- mode: C; c-file-style: "gnu" -*- */</font> 00002 <font class="comment">/* dbus-dataslot.h storing data on objects</font> 00003 <font class="comment"> *</font> 00004 <font class="comment"> * Copyright (C) 2003 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">#ifndef DBUS_DATASLOT_H</font> 00024 <font class="preprocessor"></font><font class="preprocessor">#define DBUS_DATASLOT_H</font> 00025 <font class="preprocessor"></font> 00026 <font class="preprocessor">#include <dbus/dbus-internals.h></font> 00027 00028 DBUS_BEGIN_DECLS; 00029 00030 <font class="keyword">typedef</font> <font class="keyword">struct </font><a class="code" href="structDBusDataSlotAllocator.html">DBusDataSlotAllocator</a> DBusDataSlotAllocator; 00031 <font class="keyword">typedef</font> <font class="keyword">struct </font><a class="code" href="structDBusDataSlotList.html">DBusDataSlotList</a> DBusDataSlotList; 00032 00034 <font class="keyword">typedef</font> <font class="keyword">struct </font><a class="code" href="structDBusDataSlot.html">DBusDataSlot</a> DBusDataSlot; <a name="l00036"></a><a class="code" href="structDBusDataSlot.html">00036</a> <font class="keyword">struct </font>DBusDataSlot 00037 { <a name="l00038"></a><a class="code" href="structDBusDataSlot.html#m0">00038</a> <font class="keywordtype">void</font> *<a class="code" href="structDBusDataSlot.html#m0">data</a>; <a name="l00039"></a><a class="code" href="structDBusDataSlot.html#m1">00039</a> DBusFreeFunction <a class="code" href="structDBusDataSlot.html#m1">free_data_func</a>; 00040 }; 00041 00042 <font class="keyword">typedef</font> <font class="keyword">struct </font><a class="code" href="structDBusAllocatedSlot.html">DBusAllocatedSlot</a> DBusAllocatedSlot; 00043 <a name="l00046"></a><a class="code" href="structDBusAllocatedSlot.html">00046</a> <font class="keyword">struct </font>DBusAllocatedSlot 00047 { <a name="l00048"></a><a class="code" href="structDBusAllocatedSlot.html#m0">00048</a> dbus_int32_t <a class="code" href="structDBusAllocatedSlot.html#m0">slot_id</a>; <a name="l00049"></a><a class="code" href="structDBusAllocatedSlot.html#m1">00049</a> <font class="keywordtype">int</font> <a class="code" href="structDBusAllocatedSlot.html#m1">refcount</a>; 00050 }; 00051 <a name="l00055"></a><a class="code" href="structDBusDataSlotAllocator.html">00055</a> <font class="keyword">struct </font>DBusDataSlotAllocator 00056 { <a name="l00057"></a><a class="code" href="structDBusDataSlotAllocator.html#m0">00057</a> DBusAllocatedSlot *<a class="code" href="structDBusDataSlotAllocator.html#m0">allocated_slots</a>; <a name="l00058"></a><a class="code" href="structDBusDataSlotAllocator.html#m1">00058</a> <font class="keywordtype">int</font> <a class="code" href="structDBusDataSlotAllocator.html#m1">n_allocated_slots</a>; <a name="l00059"></a><a class="code" href="structDBusDataSlotAllocator.html#m2">00059</a> <font class="keywordtype">int</font> <a class="code" href="structDBusDataSlotAllocator.html#m2">n_used_slots</a>; <a name="l00060"></a><a class="code" href="structDBusDataSlotAllocator.html#m3">00060</a> DBusMutex *<a class="code" href="structDBusDataSlotAllocator.html#m3">lock</a>; 00061 }; 00062 <a name="l00067"></a><a class="code" href="structDBusDataSlotList.html">00067</a> <font class="keyword">struct </font>DBusDataSlotList 00068 { <a name="l00069"></a><a class="code" href="structDBusDataSlotList.html#m0">00069</a> DBusDataSlot *<a class="code" href="structDBusDataSlotList.html#m0">slots</a>; <a name="l00070"></a><a class="code" href="structDBusDataSlotList.html#m1">00070</a> <font class="keywordtype">int</font> <a class="code" href="structDBusDataSlotList.html#m1">n_slots</a>; 00071 }; 00072 00073 dbus_bool_t _dbus_data_slot_allocator_init (DBusDataSlotAllocator *allocator); 00074 dbus_bool_t _dbus_data_slot_allocator_alloc (DBusDataSlotAllocator *allocator, 00075 DBusMutex *mutex, 00076 <font class="keywordtype">int</font> *slot_id_p); 00077 <font class="keywordtype">void</font> _dbus_data_slot_allocator_free (DBusDataSlotAllocator *allocator, 00078 <font class="keywordtype">int</font> *slot_id_p); 00079 <font class="keywordtype">void</font> _dbus_data_slot_list_init (DBusDataSlotList *list); 00080 dbus_bool_t _dbus_data_slot_list_set (DBusDataSlotAllocator *allocator, 00081 DBusDataSlotList *list, 00082 <font class="keywordtype">int</font> slot, 00083 <font class="keywordtype">void</font> *data, 00084 DBusFreeFunction free_data_func, 00085 DBusFreeFunction *old_free_func, 00086 <font class="keywordtype">void</font> **old_data); 00087 <font class="keywordtype">void</font>* _dbus_data_slot_list_get (DBusDataSlotAllocator *allocator, 00088 DBusDataSlotList *list, 00089 <font class="keywordtype">int</font> slot); 00090 <font class="keywordtype">void</font> _dbus_data_slot_list_free (DBusDataSlotList *list); 00091 00092 00093 DBUS_END_DECLS; 00094 00095 <font class="preprocessor">#endif </font><font class="comment">/* DBUS_DATASLOT_H */</font> </pre></div><hr><address align="right"><small>Generated on Wed Jun 9 05:01:25 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>