merge 31
authorAleš Křenek <ljocha@ics.muni.cz>
Tue, 16 Oct 2007 16:55:56 +0000 (16:55 +0000)
committerAleš Křenek <ljocha@ics.muni.cz>
Tue, 16 Oct 2007 16:55:56 +0000 (16:55 +0000)
org.glite.lb.common/interface/Event.h.T
org.glite.lb.common/interface/context.h
org.glite.lb.common/interface/events.h.T
org.glite.lb.common/interface/jobstat.h.T

index cde00b6..da1e635 100644 (file)
@@ -48,10 +48,10 @@ public:
        for my $e ($event->getTypesOrdered) {
                my $u = uc $e;
                my $c = getTypeComment $event $e;
-               gen "\t\t$u,\t/**< $c */\n";
+               gen "\t\t$u = EDG_WLL_EVENT_$u,\t/**< $c */\n";
        }
 @@@}
-               TYPE_MAX /**< Limit for checking type validity. */
+               TYPE_MAX = EDG_WLL_EVENT__LAST /**< Limit for checking type validity. */
        };
 
        /** Event attribute symbolic identifier. 
@@ -62,6 +62,14 @@ public:
         */
        enum Attr {
 @@@{
+
+       require "../src/EventAttrNames.pl";
+       my %EventAttrNums;
+       my $evno = 0;
+       for (@main::EventAttrNames) {
+               $EventAttrNums{$_} = $evno++;
+       }
+
        for (sort {$a cmp $b} getAllFields $event) {
                my $u = $_;
 # $u =~ s/([a-z])([A-Z])/$1_$2/g;
@@ -76,7 +84,9 @@ public:
                }
                $c .= "\t */\n";
 
-               gen "$c\t\t$u,\n";
+               gen defined($EventAttrNums{$u}) ?
+                       "$c\t\t$u = $EventAttrNums{$u},\n" :
+                       "#error \"$u not defined in EventAttrNames\"\n";
        }
 @@@}
                ATTR_MAX /**< Limit for checking attribute code
@@ -111,7 +121,7 @@ public:
 };
                                for (@{$ff->{codes}}) {
                                        gen qq{
-!              $ut$_->{name},  /**< $_->{comment} */
+!              $ut$_->{name} = EDG_WLL_$ut$_->{name},  /**< $_->{comment} */
 };
                                }
                                gen qq{
@@ -268,6 +278,7 @@ public:
        static const std::string getEventName(Type type);
 
 private:
+       std::string     my_name;
        static void     destroyFlesh(void *);
        CountRef<Event> *flesh;
 };
index c68ba37..7f29593 100644 (file)
@@ -183,7 +183,6 @@ typedef enum _edg_wll_ErrorCode {
         EDG_WLL_ERROR_JOBID_FORMAT, /**< Malformed jobid */
        EDG_WLL_ERROR_DB_CALL, /**< Failure of underlying database engine.
                See errDesc returned by edg_wll_ErrorCode(). */
-       EDG_WLL_ERROR_URL_FORMAT, /**< Malformed URL */
        EDG_WLL_ERROR_MD5_CLASH, /**< MD5 hash same for different strings. Very unlikely :-). */
        EDG_WLL_ERROR_GSS, /**< Generic GSSAPI error. See errDesc returned by edg_wll_Error(). */
        EDG_WLL_ERROR_DNS, /**< DNS resolver error. See errDesc returned by edg_wll_Error(). */
@@ -193,7 +192,6 @@ typedef enum _edg_wll_ErrorCode {
        EDG_WLL_IL_SYS,         /**< Interlogger internal error. */
        EDG_WLL_IL_EVENTS_WAITING, /**< Interlogger still has events pending delivery. */
        EDG_WLL_ERROR_COMPARE_EVENTS, /**< Two compared events differ. */
-       EDG_WLL_ERROR_SQL_PARSE, /**< Error in SQL parsing. */
 } edg_wll_ErrorCode;
 
 /**
index 90e68b0..4d8a289 100644 (file)
@@ -19,6 +19,8 @@
 #include "glite/lb/context.h"
 #include "glite/lb/notifid.h"
 
+#include "glite/lb/padstruct.h"
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -44,11 +46,22 @@ typedef enum _edg_wll_EventCode {
 /** invalid code, e.g. uninitialized variable */
         EDG_WLL_EVENT_UNDEF = 0,
 @@@{
+my $flesh = 'gLite';   #XXX
+my $fleshno = 0;
+my $eventno = $fleshno;
 for my $e (sort { $event->{order}->{$a} <=> $event->{order}->{$b} }
                $event->getTypes) {
        my $u = uc $e;
        my $c = getTypeComment $event $e;
-       gen "\tEDG_WLL_EVENT_$u,\t/**< $c */\n";
+
+       if ($flesh ne $event->{flesh}->{$e}) {
+               $flesh = $event->{flesh}->{$e};
+               gen "/* new flesh $flesh */\n";
+               $fleshno += 100;
+               $eventno = $fleshno;
+       }
+       $eventno++;
+       gen "\tEDG_WLL_EVENT_$u = $eventno,\t/**< $c */\n";
 }
 @@@}
         EDG_WLL_EVENT__LAST,   /**< last currently supported event code */
@@ -78,9 +91,10 @@ extern char *edg_wll_EventToString(edg_wll_EventCode event);
  * Predefined ULM key types
  */
 typedef enum _edg_wll_KeyNameCode {
-       UNDEFINED,              /**< undefined */
-       EDG_WLL_EVNT,           /**< event type */
+       UNDEFINED = 0,          /**< undefined */
+       EDG_WLL_EVNT = 1,               /**< event type */
 @@@{
+my $keyno = 2;
 selectType $event '_common_';
 for ($event->getFieldsOrdered) {
        my $f = selectField $event $_;
@@ -88,10 +102,11 @@ for ($event->getFieldsOrdered) {
        my $fnu = uc $fn;
        my $c = $f->{comment};
        if (hasAlias $f 'ULM') {
-               gen "\tULM\_$fnu,\t\t/**< $c */\n";
+               gen "\tULM\_$fnu = $keyno,\t\t/**< $c */\n";
        } else {
-               gen "\tEDG_WLL\_COMMON\_$fnu,\t\t/**< $c */\n";
+               gen "\tEDG_WLL\_COMMON\_$fnu = $keyno,\t\t/**< $c */\n";
        }
+       $keyno++;
 }
 for my $t (sort { $event->{order}->{$a} <=> $event->{order}->{$b} }
                $event->getTypes) {
@@ -101,7 +116,8 @@ for my $t (sort { $event->{order}->{$a} <=> $event->{order}->{$b} }
                my $f = selectField $event $_;
                my $fnu = uc $f->{name};
                my $c = $f->{comment};
-               gen "\tEDG_WLL\_$tu\_$fnu,\t/**< $c */\n";
+               gen "\tEDG_WLL\_$tu\_$fnu = $keyno,\t/**< $c */\n";
+               $keyno++;
        }
 }
 @@@}
@@ -301,7 +317,7 @@ _EDG_WLL_EVENT_COMMON
  * \union edg_wll_Event
  * \brief All event types union
  */
-typedef union _edg_wll_Event {
+glite_lb_padded_union(_edg_wll_Event,30,
         edg_wll_EventCode           type; /* it is probably never used */
         edg_wll_AnyEvent            any;
 @@@{
@@ -314,7 +330,8 @@ for my $t (sort { $event->{order}->{$a} <=> $event->{order}->{$b} }
        gen $indent."edg_wll_${t}Event\t${tl};\n";
 }
 @@@}
-} edg_wll_Event;
+)
+typedef union _edg_wll_Event edg_wll_Event;
 
 
 /**
index fdffa05..704a4e0 100644 (file)
@@ -92,9 +92,30 @@ typedef struct _edg_wll_TagValue {
  * Description of the job status.
  * Returned by the edg_wll_JobStatus() function
  */
+
+@@@{
+       my      $padno = 0;
+       my      $padstruct = 'edg_wll_JobStatCode state;';      # XXX
+
+       for my $n (getAllFieldsOrdered $status) {
+               selectField $status $n;
+               my $f = getField $status;
+               my $type = getType $f;
+               my $name = getName $f;
+
+               $padstruct .= "$type $name; ";
+               if ($f->{pad}) {
+                       gen "struct _pad_JobStatus_${padno}_dont_use { $padstruct };\n";
+                       $padno++;
+                       $padstruct = '';
+               }
+       }
+@@@}
+
 typedef struct _edg_wll_JobStat {
        edg_wll_JobStatCode     state;          /**< status code */
 @@@{
+       $padno = 0;
        for my $n (getAllFieldsOrdered $status) {
                selectField $status $n;
                my $f = getField $status;
@@ -106,6 +127,11 @@ typedef struct _edg_wll_JobStat {
                gen qq{
 !      $type   $name;  /**< $comment */
 };
+               if ($f->{pad}) {
+                       my $pad = $f->{pad};
+                       gen "\n char    _pad_${padno}[sizeof(void *) * $pad - sizeof(struct _pad_JobStatus_${padno}_dont_use)];\n\n";
+                       $padno++;
+               }
        }
 @@@}