Static-forever assignment of Event::Attr enum values
authorAleš Křenek <ljocha@ics.muni.cz>
Mon, 30 Jul 2007 17:42:05 +0000 (17:42 +0000)
committerAleš Křenek <ljocha@ics.muni.cz>
Mon, 30 Jul 2007 17:42:05 +0000 (17:42 +0000)
org.glite.lb.client-interface/interface/Event.h.T
org.glite.lb.client-interface/src/EventAttrNames.pl [new file with mode: 0644]

index f60dfdc..4639868 100644 (file)
@@ -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,7 @@ public:
                }
                $c .= "\t */\n";
 
-               gen "$c\t\t$u,\n";
+               gen "$c\t\t$u = $EventAttrNums{$u},\n";
        }
 @@@}
                ATTR_MAX /**< Limit for checking attribute code
diff --git a/org.glite.lb.client-interface/src/EventAttrNames.pl b/org.glite.lb.client-interface/src/EventAttrNames.pl
new file mode 100644 (file)
index 0000000..1fc8620
--- /dev/null
@@ -0,0 +1,83 @@
+# The order of strings in this array determines assigned numeric value in the Event::Attr enum.
+# It must not be changed unless API major number is incremented
+
+@main::EventAttrNames = qw/
+       ARRIVED
+       CHILD
+       CHILD_EVENT
+       CLASSAD
+       DESCR
+       DEST_HOST
+       DEST_ID
+       DEST_INSTANCE
+       DEST_JOBID
+       DEST_PORT
+       DESTINATION
+       DONE_CODE
+       ERROR_DESC
+       EXIT_CODE
+       EXIT_STATUS
+       FROM
+       FROM_HOST
+       FROM_INSTANCE
+       HELPER_NAME
+       HELPER_PARAMS
+       HISTOGRAM
+       HOST
+       JDL
+       JOB
+       JOBID
+       JOB_EXIT_STATUS
+       JOB_PID
+       JOBSTAT
+       JOBTYPE
+       LEVEL
+       LOCAL_JOBID
+       NAME
+       NODE
+       NOTIFID
+       NS
+       NSUBJOBS
+       OPERATION
+       OWNER
+       PARENT
+       PERMISSION
+       PERMISSION_TYPE
+       PID
+       PREEMPTING
+       PRIORITY
+       QUANTITY
+       QUEUE
+       REASON
+       RESOURCE
+       RESULT
+       RETVAL
+       SCHEDULER
+       SEED
+       SEQCODE
+       SHADOW_EXIT_STATUS
+       SHADOW_HOST
+       SHADOW_PID
+       SHADOW_PORT
+       SHADOW_STATUS
+       SOURCE
+       SRC_INSTANCE
+       SRC_ROLE
+       STARTER_EXIT_STATUS
+       STARTER_PID
+       STATE
+       STATUS_CODE
+       SVC_HOST
+       SVC_NAME
+       SVC_PORT
+       TAG
+       TIMESTAMP
+       UNIT
+       UNIVERSE
+       USAGE
+       USER
+       USER_ID
+       USER_ID_TYPE
+       VALUE
+       WN_SEQ
+/;