Diff for /rpl/src/rplexternals.h between versions 1.44 and 1.45

version 1.44, 2013/03/27 09:14:51 version 1.45, 2013/03/27 15:47:36
Line 70 Line 70
 #define replaceElementIntoDaisyChain(daisyChain, element) \  #define replaceElementIntoDaisyChain(daisyChain, element) \
     do { typeof(daisyChain) __daisyChain = daisyChain; \      do { typeof(daisyChain) __daisyChain = daisyChain; \
     if (__daisyChain == NULL) executionError("Nullified daisy chain"); \      if (__daisyChain == NULL) executionError("Nullified daisy chain"); \
       freeObject((*__daisyChain).donnee); \
     (*__daisyChain).donnee = element; } while(0)      (*__daisyChain).donnee = element; } while(0)
   
 #define nextElementOfDaisyChain(daisyChain) \  #define nextElementOfDaisyChain(daisyChain) \
Line 104 Line 105
 #define logical int  #define logical int
 #define string char *  #define string char *
 #define integer int  #define integer int
   #define object struct_objet *
   
 #define declareStructure typedef struct {  #define declareStructure typedef struct {
 #define declareUnion typedef union {  #define declareUnion typedef union {
 #define as(name) } name;  #define as(name) } name;
   
   #define __RPL__     struct_rpl_arguments rpl_arguments
   
 #define target(a) (*a)  #define target(a) (*a)
 #define address(a) (&a)  #define address(a) (&a)
   
Line 186 Line 190
   
 /*  /*
 --------------------------------------------------------------------------------  --------------------------------------------------------------------------------
     Destruction d'un objet
   --------------------------------------------------------------------------------
   */
   
   #define freeObject(object) \
       { \
           if (object == NULL) \
               systemError("Nullified object"); \
           liberation(object); \
           object = NULL; \
       } while(0)
   
   /*
   --------------------------------------------------------------------------------
     Copie d'un objet
   --------------------------------------------------------------------------------
   */
   
   #define dupObject(object) \
       { if (copie_objet(object, 'P') != object) \
           systemError("Memory allocation error"); } while(0)
   
   /*
   --------------------------------------------------------------------------------
     Déclaration des fonctions internes
   --------------------------------------------------------------------------------
   */
   
   #define declareInternalFunction(name, ...) \
       __internal_##name(struct_rpl_arguments *rpl_arguments, __VA_ARGS__) {
   
   #define endInternalFunction }
   
   #define useInternalFunction(name, ...) \
       __internal_##name(struct_rpl_arguments *rpl_arguments, __VA_ARGS__)
   
   #define callInternalFunction(name, ...) \
       __internal_##name(rpl_arguments, __VA_ARGS__)
   
   /*
   --------------------------------------------------------------------------------
   Déclaration des fonctions externes    Déclaration des fonctions externes
 --------------------------------------------------------------------------------  --------------------------------------------------------------------------------
 */  */
   
 #define declareExternalFunction(name) \  #define declareExternalFunction(name) \
     void __external_##name(struct_rpl_arguments *rpl_arguments) { \      void __external_##name(struct_rpl_arguments *rpl_arguments) { \
     char __function_name[] = "__external_"#name;      char __function_name[] = "__external_"#name; \
       __static_rpl_arguments = (*rpl_arguments);
   
 #define useExternalFunction(function) \  #define useExternalFunction(function) \
     void __external_##function(struct_rpl_arguments *rpl_arguments)      void __external_##function(struct_rpl_arguments *rpl_arguments)
Line 203 Line 249
 #define __onClosing void __runOnClosing(struct_rpl_arguments *rpl_arguments)  #define __onClosing void __runOnClosing(struct_rpl_arguments *rpl_arguments)
 #define declareSubroutine(when) __##when { \  #define declareSubroutine(when) __##when { \
     char __function_name[] = #when; \      char __function_name[] = #when; \
       __static_rpl_arguments = (*rpl_arguments); \
     HEADER \      HEADER \
         declareHelpString(""); \          declareHelpString(""); \
         numberOfArguments(0); \          numberOfArguments(0); \
Line 373 Line 420
     (*rpl_arguments).type_erreur = 'E'; \      (*rpl_arguments).type_erreur = 'E'; \
     (*rpl_arguments).message_erreur = (unsigned char *) message; } while(0)      (*rpl_arguments).message_erreur = (unsigned char *) message; } while(0)
   
   #define onSystemError(...) { \
       if ((*rpl_arguments).erreur != 0) \
       { \
           __VA_ARGS__; \
           blockSignals; \
               kill(getpid(), SIGTERM); \
           unblockSignals; \
       } } while(0)
   
 #define onError(...) \  #define onError(...) \
     do { if (((*rpl_arguments).type_erreur == 'E') && \      do { if (((*rpl_arguments).type_erreur == 'E') && \
             ((*rpl_arguments).erreur != 0)) { __VA_ARGS__; \              ((*rpl_arguments).erreur != 0)) { __VA_ARGS__; \
Line 1015 Line 1071
         } \          } \
     } } while(0)      } } while(0)
   
   
 /*  
 --------------------------------------------------------------------------------  
   Destruction d'un objet  
 --------------------------------------------------------------------------------  
 */  
   
 #define freeObject(object) \  
     { \  
         if (object == NULL) \  
             systemError("Nullified object"); \  
         liberation(object); \  
         object = NULL; \  
     } while(0)  
   
 /*  
 --------------------------------------------------------------------------------  
   Copie d'un objet  
 --------------------------------------------------------------------------------  
 */  
   
 #define dupObject(object) \  
     { if (copie_objet(object, 'P') != object) \  
         systemError("Memory allocation error"); } while(0)  
   
 /*  /*
 --------------------------------------------------------------------------------  --------------------------------------------------------------------------------
   Allocation mémoire    Allocation mémoire
Line 1079 Line 1110
   
 #endif  #endif
   
   static struct_rpl_arguments __static_rpl_arguments;
   #define __RPL__ struct_rpl_arguments *rpl_arguments; \
       rpl_arguments = &__static_rpl_arguments;
   
 // vim: ts=4  // vim: ts=4

Removed from v.1.44  
changed lines
  Added in v.1.45


CVSweb interface <joel.bertrand@systella.fr>