I have just started digging into the Java ClassAd code. From my
preliminary diging, it seems like the bind(RecExpr ad1, RecExpr ad2) does
the actual binding between the two ClassAds whereby "self" in ad1 referes
to itself and "other" refers to ad2 and vice versa.
Yes, I believe you are right.
However the Condor manual mentions the scope identifiers to be "MY" and
"TARGET" instead of "self" and "other".
Does this mean there is a difference in the C++ and Java implementation or
is there some logic that I completely missed ?
No, but you missed another difference: The version of ClassAds used in
Condor is not the same version in either the C++ or the Java libraries.
Here's a rough time line:
* Condor was created. ClassAds didn't exist, but the list of attributes you
could have were in a C struct in the code.
* ClassAds were created. They were a huge improvement over the C struct,
but the language was a bit sloppy.
* Rajesh Raman created "new ClassAds" which are much nicer and much more
powerful, and got a Ph.D. out of it. This implementation is what you get in
the C++ and Java distributions.
Condor has not yet adopted new ClassAds for technical reasons. It's one of
my goals to switch Condor to new ClassAds, but it won't happen for a couple
of months, probably.
We don't distribute the old ClassAd library, because it is so much less
nice than the new ClassAd library. Besides, every minute we spend
supporting it is a minute less that we spend getting the new ClassAds into
Condor.
-alain
Condor Classads Info:
http://www.cs.wisc.edu/condor/classad/
|