Main Page   Modules   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

mediumpluginlist.h

Go to the documentation of this file.
00001 /***************************************************************************
00002   $RCSfile: mediumpluginlist.h,v $
00003   -------------------
00004   cvs         : $Id: mediumpluginlist.h,v 1.4 2003/05/11 16:56:09 aquamaniac Exp $
00005   begin       : Thu Apr 24 2003
00006   copyright   : (C) 2003 by Martin Preuss
00007   email       : martin@libchipcard.de
00008 
00009  ***************************************************************************
00010  *                                                                         *
00011  *   This library is free software; you can redistribute it and/or         *
00012  *   modify it under the terms of the GNU Lesser General Public            *
00013  *   License as published by the Free Software Foundation; either          *
00014  *   version 2.1 of the License, or (at your option) any later version.    *
00015  *                                                                         *
00016  *   This library is distributed in the hope that it will be useful,       *
00017  *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
00018  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU     *
00019  *   Lesser General Public License for more details.                       *
00020  *                                                                         *
00021  *   You should have received a copy of the GNU Lesser General Public      *
00022  *   License along with this library; if not, write to the Free Software   *
00023  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston,                 *
00024  *   MA  02111-1307  USA                                                   *
00025  *                                                                         *
00026  ***************************************************************************/
00027 
00028 
00029 #ifndef MEDIUMPLUGINLIST_H
00030 #define MEDIUMPLUGINLIST_H
00031 
00035 #ifdef __cplusplus
00036 namespace HBCI {
00037   class MediumPluginList;
00038 };
00039 typedef HBCI::MediumPluginList HBCI_MediumPluginList;
00040 #else /* __cplusplus */
00041 typedef struct HBCI_MediumPluginList HBCI_MediumPluginList;
00042 #endif /* __cplusplus */
00043 
00044 #include <openhbci/mediumplugin.h>
00045 
00046 #ifdef __cplusplus
00047 #include <list>
00048 using namespace std;
00049 
00050 namespace HBCI {
00051 
00052 class MediumPluginFile;
00053 class API;
00054 
00061 class MediumPluginList {
00062   friend class API;
00063 private:
00064   list <Pointer<MediumPluginFile> > _files;
00065   list <Pointer<MediumPlugin> > _plugins;
00066 
00067 
00071   Error addPluginFile(const API *api,
00072                       Pointer<MediumPluginFile> pf);
00073 
00077   bool addPlugin(const API *api,
00078                  Pointer<MediumPlugin> p);
00079 
00080 public:
00081   MediumPluginList();
00082   ~MediumPluginList();
00083 
00085   const std::list<Pointer<MediumPlugin> > &plugins() const;
00086 };
00087 
00088 }; /* namespace HBCI */
00089 
00090 
00091 extern "C" {
00092 #endif /* __cplusplus */
00093     
00098   extern void HBCI_MediumPluginList_delete(HBCI_MediumPluginList *l);
00099   extern unsigned int 
00100   HBCI_MediumPluginList_size(const HBCI_MediumPluginList *l);
00102   typedef void *(*HBCI_MediumPluginList_cb) (const HBCI_MediumPlugin* value, 
00103                                              void *user_data);
00115   extern void *HBCI_MediumPluginList_foreach(const HBCI_MediumPluginList *l,
00116                                              HBCI_MediumPluginList_cb func,
00117                                              void *user_data);
00120 #ifdef __cplusplus
00121 }
00122 #endif /* __cplusplus */
00123 
00124 
00125 #endif
00126 
00127 

Generated on Mon Jun 23 13:41:07 2003 for openhbci by doxygen1.2.17