gwensignal.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  $RCSfile$
00003  -------------------
00004  cvs         : $Id: stringlist_p.h 786 2005-07-09 13:38:17Z aquamaniac $
00005  begin       : Thu Apr 03 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 #ifndef GWENHYWFAR_SIGNAL_H
00029 #define GWENHYWFAR_SIGNAL_H
00030 
00031 #include <gwenhywfar/gwenhywfarapi.h>
00032 #include <gwenhywfar/types.h>
00033 #include <gwenhywfar/list2.h>
00034 
00035 
00036 #ifdef __cplusplus
00037 extern "C" {
00038 #endif
00039 
00064 
00065 typedef struct GWEN_SIGNALOBJECT GWEN_SIGNALOBJECT;
00066 
00067 typedef struct GWEN_SIGNAL GWEN_SIGNAL;
00068 
00069 typedef struct GWEN_SLOT GWEN_SLOT;
00070 
00071 
00076 typedef int (*GWEN_SLOT_FUNCTION)(GWEN_SLOT *slot,
00077                                   void *userData,
00078                                   void *pArg1,
00079                                   void *pArg2,
00080                                   int iArg3,
00081                                   int iArg4);
00082 
00083 
00088 GWENHYWFAR_API
00089 GWEN_SIGNALOBJECT *GWEN_SignalObject_new();
00090 
00091 GWENHYWFAR_API
00092 void GWEN_SignalObject_free(GWEN_SIGNALOBJECT *so);
00093 
00094 GWENHYWFAR_API
00095 GWEN_SIGNAL *GWEN_SignalObject_FindSignal(const GWEN_SIGNALOBJECT *so,
00096                                           const char *name,
00097                                           const char *typeOfArg1,
00098                                           const char *typeOfArg2);
00099 
00100 GWENHYWFAR_API
00101 GWEN_SLOT *GWEN_SignalObject_FindSlot(const GWEN_SIGNALOBJECT *so,
00102                                       const char *name,
00103                                       const char *typeOfArg1,
00104                                       const char *typeOfArg2);
00105 
00111 GWENHYWFAR_API
00112 void GWEN_SignalObject_RemoveForDerivedType(GWEN_SIGNALOBJECT *so,
00113                                             const char *derivedType);
00114 
00115 
00122 
00123 GWENHYWFAR_API
00124 GWEN_SIGNAL *GWEN_Signal_new(GWEN_SIGNALOBJECT *so,
00125                              const char *derivedType,
00126                              const char *name,
00127                              const char *typeOfArg1,
00128                              const char *typeOfArg2);
00129 
00130 GWENHYWFAR_API
00131 void GWEN_Signal_free(GWEN_SIGNAL *sig);
00132 
00133 
00134 GWENHYWFAR_API
00135 GWEN_SIGNALOBJECT *GWEN_Signal_GetSignalObject(const GWEN_SIGNAL *sig);
00136 
00137 
00138 GWENHYWFAR_API
00139 int GWEN_Signal_Connect(GWEN_SIGNAL *sig, GWEN_SLOT *slot);
00140 
00141 GWENHYWFAR_API
00142 int GWEN_Signal_Disconnect(GWEN_SIGNAL *sig, GWEN_SLOT *slot);
00143 
00151 GWENHYWFAR_API
00152 int GWEN_Signal_Emit(GWEN_SIGNAL *sig,
00153                      void *pArg1, void *pArg2, int iArg3, int iArg4);
00163 
00164 GWENHYWFAR_API
00165 GWEN_SLOT *GWEN_Slot_new(GWEN_SIGNALOBJECT *so,
00166                          const char *derivedType,
00167                          const char *name,
00168                          const char *typeOfArg1,
00169                          const char *typeOfArg2,
00170                          GWEN_SLOT_FUNCTION fn,
00171                          void *userData);
00172 
00173 GWENHYWFAR_API
00174 void GWEN_Slot_free(GWEN_SLOT *slot);
00175 
00176 GWENHYWFAR_API
00177 GWEN_SIGNALOBJECT *GWEN_Slot_GetSignalObject(const GWEN_SLOT *slot);
00178 
00179  /* defgroup */
00181 
00182  /* defgroup */
00184 
00185 
00186 
00187 #ifdef __cplusplus
00188 } /* extern C */
00189 #endif
00190 
00191 
00192 #endif
00193 

Generated on Sat Jan 2 09:32:35 2010 for gwenhywfar by  doxygen 1.6.1