From bc4d70ba0580cfa39257e4fda0475758179fdeab Mon Sep 17 00:00:00 2001 From: =?utf8?q?Ale=C5=A1=20K=C5=99enek?= Date: Tue, 16 Oct 2007 16:55:56 +0000 Subject: [PATCH] merge 31 --- org.glite.lb.common/interface/Event.h.T | 19 ++++++++++++++---- org.glite.lb.common/interface/context.h | 2 -- org.glite.lb.common/interface/events.h.T | 33 +++++++++++++++++++++++-------- org.glite.lb.common/interface/jobstat.h.T | 26 ++++++++++++++++++++++++ 4 files changed, 66 insertions(+), 14 deletions(-) diff --git a/org.glite.lb.common/interface/Event.h.T b/org.glite.lb.common/interface/Event.h.T index cde00b6..da1e635 100644 --- a/org.glite.lb.common/interface/Event.h.T +++ b/org.glite.lb.common/interface/Event.h.T @@ -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 *flesh; }; diff --git a/org.glite.lb.common/interface/context.h b/org.glite.lb.common/interface/context.h index c68ba37..7f29593 100644 --- a/org.glite.lb.common/interface/context.h +++ b/org.glite.lb.common/interface/context.h @@ -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; /** diff --git a/org.glite.lb.common/interface/events.h.T b/org.glite.lb.common/interface/events.h.T index 90e68b0..4d8a289 100644 --- a/org.glite.lb.common/interface/events.h.T +++ b/org.glite.lb.common/interface/events.h.T @@ -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; /** diff --git a/org.glite.lb.common/interface/jobstat.h.T b/org.glite.lb.common/interface/jobstat.h.T index fdffa05..704a4e0 100644 --- a/org.glite.lb.common/interface/jobstat.h.T +++ b/org.glite.lb.common/interface/jobstat.h.T @@ -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++; + } } @@@} -- 1.8.2.3