/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- * camel-private.h: Private info for class implementers. * * Authors: Michael Zucchi * * Copyright 1999, 2000 Ximian, Inc. (www.ximian.com) * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * USA */ #ifndef CAMEL_PRIVATE_H #define CAMEL_PRIVATE_H 1 #ifdef __cplusplus extern "C" { #pragma } #endif /* __cplusplus }*/ /* need a way to configure and save this data, if this header is to be installed. For now, dont install it */ #include "config.h" #ifdef ENABLE_THREADS #include #include #endif struct _CamelFolderPrivate { #ifdef ENABLE_THREADS EMutex *lock; EMutex *change_lock; #endif /* must require the 'change_lock' to access this */ int frozen; struct _CamelFolderChangeInfo *changed_frozen; /* queues changed events */ }; #ifdef ENABLE_THREADS #define CAMEL_FOLDER_LOCK(f, l) (e_mutex_lock(((CamelFolder *)f)->priv->l)) #define CAMEL_FOLDER_UNLOCK(f, l) (e_mutex_unlock(((CamelFolder *)f)->priv->l)) #else #define CAMEL_FOLDER_LOCK(f, l) #define CAMEL_FOLDER_UNLOCK(f, l) #endif struct _CamelStorePrivate { #ifdef ENABLE_THREADS GMutex *folder_lock; /* for locking folder operations */ GMutex *cache_lock; /* for locking access to the cache */ #endif }; #ifdef ENABLE_THREADS #define CAMEL_STORE_LOCK(f, l) (g_mutex_lock(((CamelStore *)f)->priv->l)) #define CAMEL_STORE_UNLOCK(f, l) (g_mutex_unlock(((CamelStore *)f)->priv->l)) #else #define CAMEL_STORE_LOCK(f, l) #define CAMEL_STORE_UNLOCK(f, l) #endif struct _CamelTransportPrivate { #ifdef ENABLE_THREADS GMutex *send_lock; /* for locking send operations */ #endif }; #ifdef ENABLE_THREADS #define CAMEL_TRANSPORT_LOCK(f, l) (g_mutex_lock(((CamelTransport *)f)->priv->l)) #define CAMEL_TRANSPORT_UNLOCK(f, l) (g_mutex_unlock(((CamelTransport *)f)->priv->l)) #else #define CAMEL_TRANSPORT_LOCK(f, l) #define CAMEL_TRANSPORT_UNLOCK(f, l) #endif struct _CamelServicePrivate { #ifdef ENABLE_THREADS EMutex *connect_lock; /* for locking connection operations */ #endif }; #ifdef ENABLE_THREADS #define CAMEL_SERVICE_LOCK(f, l) (e_mutex_lock(((CamelService *)f)->priv->l)) #define CAMEL_SERVICE_UNLOCK(f, l) (e_mutex_unlock(((CamelService *)f)->priv->l)) #else #define CAMEL_SERVICE_LOCK(f, l) #define CAMEL_SERVICE_UNLOCK(f, l) #endif struct _CamelSessionPrivate { #ifdef ENABLE_THREADS GMutex *lock; /* for locking everything basically */ #endif }; #ifdef ENABLE_THREADS #define CAMEL_SESSION_LOCK(f, l) (g_mutex_lock(((CamelSession *)f)->priv->l)) #define CAMEL_SESSION_UNLOCK(f, l) (g_mutex_unlock(((CamelSession *)f)->priv->l)) #else #define CAMEL_SESSION_LOCK(f, l) #define CAMEL_SESSION_UNLOCK(f, l) #endif struct _CamelRemoteStorePrivate { #ifdef ENABLE_THREADS EMutex *stream_lock; /* for locking stream operations */ #endif }; #ifdef ENABLE_THREADS #define CAMEL_REMOTE_STORE_LOCK(f, l) (e_mutex_lock(((CamelRemoteStore *)f)->priv->l)) #define CAMEL_REMOTE_STORE_UNLOCK(f, l) (e_mutex_unlock(((CamelRemoteStore *)f)->priv->l)) #else #define CAMEL_REMOTE_STORE_LOCK(f, l) #define CAMEL_REMOTE_STORE_UNLOCK(f, l) #endif /* most of this stuff really is private, but the lock can be used by subordinate classes */ struct _CamelFolderSummaryPrivate { GHashTable *filter_charset; /* CamelMimeFilterCharset's indexed by source charset */ struct _CamelMimeFilterIndex *filter_index; struct _CamelMimeFilterBasic *filter_64; struct _CamelMimeFilterBasic *filter_qp; struct _CamelMimeFilterSave *filter_save; struct _CamelMimeFilterHTML *filter_html; struct ibex *index; #ifdef ENABLE_THREADS GMutex *summary_lock; /* for the summary hashtable/array */ GMutex *io_lock; /* load/save lock, for access to saved_count, etc */ GMutex *filter_lock; /* for accessing any of the filtering/indexing stuff, since we share them */ GMutex *alloc_lock; /* for setting up and using allocators */ GMutex *ref_lock; /* for reffing/unreffing messageinfo's ALWAYS obtain before summary_lock */ #endif }; #ifdef ENABLE_THREADS #define CAMEL_SUMMARY_LOCK(f, l) (g_mutex_lock(((CamelFolderSummary *)f)->priv->l)) #define CAMEL_SUMMARY_UNLOCK(f, l) (g_mutex_unlock(((CamelFolderSummary *)f)->priv->l)) #else #define CAMEL_SUMMARY_LOCK(f, l) #define CAMEL_SUMMARY_UNLOCK(f, l) #endif struct _CamelVeeStorePrivate { }; #ifdef ENABLE_THREADS #define CAMEL_VEE_STORE_LOCK(f, l) (e_mutex_lock(((CamelVeeStore *)f)->priv->l)) #define CAMEL_VEE_STORE_UNLOCK(f, l) (e_mutex_unlock(((CamelVeeStore *)f)->priv->l)) #else #define CAMEL_VEE_STORE_LOCK(f, l) #define CAMEL_VEE_STORE_UNLOCK(f, l) #endif struct _CamelVeeFolderPrivate { GList *folders; /* lock using subfolder_lock before changing/accessing */ #ifdef ENABLE_THREADS GMutex *summary_lock; /* for locking vfolder summary */ GMutex *subfolder_lock; /* for locking the subfolder list */ #endif }; #ifdef ENABLE_THREADS #define CAMEL_VEE_FOLDER_LOCK(f, l) (g_mutex_lock(((CamelVeeFolder *)f)->priv->l)) #define CAMEL_VEE_FOLDER_UNLOCK(f, l) (g_mutex_unlock(((CamelVeeFolder *)f)->priv->l)) #else #define CAMEL_VEE_FOLDER_LOCK(f, l) #define CAMEL_VEE_FOLDER_UNLOCK(f, l) #endif #ifdef __cplusplus } #endif /* __cplusplus */ #endif /* CAMEL_H */ nian?h=gstreamer0.10-removal&id=9ad1322d6187e816f1a3f57f367ce1f5b3ae4cf4'>diffstats
Commit message (Expand)AuthorAgeFilesLines
* Present KDE SC 4.4.5 for FreeBSD.makc2010-06-301-3/+3
* - Update KOffice (and its l10n packs) to 2.2.0 releasefluffy2010-06-194-26/+66
* Present KDE SC 4.4.4 for FreeBSD.makc2010-06-021-3/+3
* Bounce PORTREVISION for gettext-related ports. Have fun, ya'll.ade2010-05-312-2/+2
* - Update KOffice to 2.1.2 releasefluffy2010-05-116-64/+6
* - The FreeBSD KDE team is pleased to announce KDE SC 4.4.3 for FreeBSDfluffy2010-05-114-219/+430
* - update to 1.4.1dinoex2010-03-285-4/+5
* Presenting KDE 4.3.5 for FreeBSD. The official release notes for thismiwi2010-02-073-4/+43
* - update to jpeg-8dinoex2010-02-055-2/+5
* The KDE FreeBSD team is proud to announce the release of KOffice2 suite for F...fluffy2009-12-227-76/+243
* The FreeBSD KDE is please to announce the release of KDE 4.3.4,miwi2009-12-022-16/+78
* The KDE FreeBSD team is proud to announce the release of KDE 4.3.3miwi2009-11-272-5/+27
* The FreeBSD KDE is please to announce the release of KDE 4.3.1,tabthorpe2009-09-022-4/+4
* - Switch SourceForge ports to the new File Release System: categories startin...amdmi32009-08-221-2/+1
* clean upmakc2009-08-081-3/+0
* The KDE FreeBSD team is proud to announce the release of KDE 4.3.0miwi2009-08-054-27/+137
* - bump all port that indirectly depends on libjpeg and have not yet been bump...dinoex2009-07-315-0/+5
* The KDE FreeBSD team is pleased to announce KDE 4.2.4, the last bugfixmiwi2009-06-032-4/+8
* Update KDE ports to 4.2.3makc2009-05-102-3/+4
* The KDE FreeBSD team is proud to announce the release of KDE 4.2.2miwi2009-04-022-15/+25
* Update KDE to 4.2.1.makc2009-03-092-3/+31
* - Add all manpages for kde4-l10n*miwi2009-02-091-0/+57
* The KDE FreeBSD team is proud to announce the release of KDE 4.2.0miwi2009-02-093-92/+289
* kde@freebsd team is pleased to announce KDE 4.1.4, the last bugfix release in...makc2009-01-143-10/+502
* The KDE FreeBSD team is proud to announce the release of KDE 4.1.1miwi2008-09-032-8/+185
* The KDE FreeBSD team is proud to announce the releasemiwi2008-08-291-3/+3
* The KDE FreeBSD team is proud to announce the releasemiwi2008-08-182-7/+61
* The KDE FreeBSD team is proud to announce the release of KDE 4.1.0miwi2008-08-105-294/+747
* - unbreak after update to webalizer 2.20-01dinoex2008-08-063-34/+0
* Mark BROKEN: does not patch after the upgrade of www/webalizererwin2008-08-051-0/+2
* - Update maintainer's email addresspav2008-07-241-1/+1
* Bump portrevision due to upgrade of devel/gettext.edwin2008-06-061-0/+1
* - Remove unneeded dependency from gtk12/gtk20 [1]miwi2008-04-203-9/+10
* Update to KDE 3.5.8lofi2007-10-304-8/+8
* Update to KDE 3.5.7 / KOffice 1.6.3lofi2007-07-0412-41/+20
* Upgrade to 1.4.0-0.thierry2007-06-132-4/+4
* - Welcome X.org 7.2 \o/.flz2007-05-206-0/+6
* 2007-04-06 sysutils/tct: this port is obsolete, please use sysutils/sleuthkit...miwi2007-04-116-86/+0
* Update to KDE 3.5.6 / KOffice 1.6.2lofi2007-03-1413-21/+32
* Really normalize Aspell dictionaries ports PKGVERSION...thierry2007-02-151-1/+1
* Upgrade to 1.3.1-0.thierry2007-02-132-4/+4
* Schedule these broken ports for removal on 2007-04-10 if they are stillkris2007-02-111-0/+2
* - Switch dependencies to modern XFree86/Xorg portspav2007-02-031-1/+1
* Normalize Aspell dictionaries PKGNAMEs.thierry2007-01-141-0/+1
* BROKEN: Leaves behind config file on deinstallkris2007-01-111-0/+2
* Update to KDE 3.5.5 / KOffice 1.6.1lofi2006-12-2011-18/+21
* KDE 3.5.4 / KOffice 1.5.2lofi2006-09-1310-30/+24
* All dictionaries can be installed separately:thierry2006-07-154-7/+18
* Update to KDE 3.5.3lofi2006-06-064-16/+16
* Update to KOffice 1.5.1lofi2006-05-276-12/+12
* Update to KOffice 1.5.0lofi2006-04-299-78/+51
* Update to KDE 3.5.2lofi2006-03-314-122/+16
* Update to KDE 3.5.1.lofi2006-02-014-6/+14
* SHA256ifyedwin2006-01-245-0/+5
* Removed not needed distinfo and add empty MASTERSITES and DISTFILES for fix p...anray2006-01-172-3/+2
* Distfile moved to FILESDIR.anray2006-01-172-5/+108
* Update to KDE 3.5.0lofi2006-01-094-110/+68
* KOI8-U coding system for all emacsen.anray2005-12-165-0/+46
* Update to KDE 3.4.3 / KOffice 1.4.2lofi2005-11-052-4/+4
* Remove expired portskris2005-11-0519-3074/+0
* Do the same trick with uk-pine.language as done with ru-pine.languageedwin2005-11-043-8/+41
* Remove all the secondary port of editors/ooodict-allmaho2005-11-012-21/+0
* Fix index build by moving openoffice.org-1.1 ports.maho2005-08-291-1/+1
* Update to KDE 3.4.2 / KOffice 1.4.1lofi2005-08-0110-115/+37
* This port is scheduled for deletion on 2005-09-22 if it is still brokenkris2005-07-232-0/+4
* Update to KDE 3.4.1lofi2005-06-267-17/+6
* - Unbreak and general updatepav2005-06-061-1/+2
* Update to KDE 3.4lofi2005-03-217-66/+233
* BROKEN: Removes config file at deinstall-timekris2005-02-281-0/+2
* BROKEN: Incomplete pkg-plistkris2005-02-191-0/+2
* Add i18nized doc subdirs to kdehier and adjust i18n port plists accordingly.lofi2004-12-235-5/+3
* Tweak IGNORE string to give a better-worded error message.kris2004-12-193-3/+3
* Fix kde3-i18n ports.lofi2004-12-162-4/+4
* Update to KDE 3.3.2lofi2004-12-149-17/+119
* BROKEN on 5.x: Does not compilekris2004-11-191-0/+4
* Update to KDE 3.3.1lofi2004-11-087-12/+32
* Update to KDE 3.3lofi2004-08-3112-15/+17
* Reset maintainer:kris2004-08-161-1/+1
* Pet portlint.lofi2004-07-116-3/+9
* Update to version 3.2.3lofi2004-06-10