Log of /trunk/core/meta/inc/TSchemaRule.h
Parent Directory
Revision
32644 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Mar 17 13:58:28 2010 UTC (4 years, 10 months ago) by
pcanal
File length: 5199 byte(s)
Diff to
previous 27938
Add the ability to feed I/O customization rules from a text
file, the following 3 files are checked at start up;
$ROOTSYS/etc/class.rules (or ROOTETCDIR/class.rules)
$HOME/class.rules
./class.rules
Add a short form to the I/O customization rules. The 2 syntaxes are:
Short form:
[type=Read] classname membername [attributes=... ] [version=[...] ] [checksum=[...] ] [oldtype=...] [code={...}]
Long form:
[type=Read] sourceClass=classname [targetclass=newClassname] [ source="type membername; [type2 membername2]" ]
[target="membername3;membername4"] [attributes=... ] [version=...] [checksum=...] [code={...}|functionname]
Add a new element to the rules: attributes
Currently the only 2 attributes supported are 'Owner' and 'NotOwner' which
indicates to whether the data member 'owns' the objects it is pointing to.
Store all the rules defined for all the classes stored in a TFile in the
same list as the StreamerInfo. The rules are stored as a sub list of
TObjString and the list is named 'listOfRules'
TClass: when creating or registering a class we now alway remove the
any part of the class name that is a default template argument of a STL
container. (i.e. the allocator in pair<int,vector<int,allocator> >
which becomes pair<int,vector<int> >)
TList: Improve the performance of RemoveLast by customizing it for TList.
Revision
25461 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Sep 19 08:36:32 2008 UTC (6 years, 4 months ago) by
brun
File length: 4367 byte(s)
Diff to
previous 25450
Fix a fatal compilation error on Solaris: a mismatch between declaration and implementation file for
function TSchemaRule::SetEmbed.
Strange that this error was not detected by other compilers.
Revision
25450 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Sep 18 21:13:42 2008 UTC (6 years, 4 months ago) by
pcanal
File length: 4373 byte(s)
Copied from:
branches/dev/datamodelevolution/core/meta/inc/TSchemaRule.h revision 25449
Diff to
previous 25211
Import the code from the branch dev/datamodelevolution revision 25436
This implements the infrastructure for the new Data Model Evolution Scheme.
This Data Model Evolution is brought to your courtesy of BNL/STAR/ATLAS/Fermi/Cern
Current Capabilities:
Assign values to transient data members
Rename classes
Rename data members
Change the shape of the data structures or convert one class structure to another
Change the meaning of data members
Ability to access the TBuffer directly when needed
Ensure that the objects in collections are handled in the same way as the ones stored separately
Supported in object-wise, member-wise and split modes.
Coming soon:
Make things operational also in bare ROOT mode
Ability to transform data before writing
Support for changing the class type of nested object in a split branch
Support for access to onfile version of nested objects from within the parent rule
LinkDef rule syntax:
Setting a transient member:
#pragma read sourceClass="ACache" targetClass="ACache" source="" version="[1-]" target="zcalc" \
code="{ zcalc = false; }"
Setting a new member from 2 removed members
#pragma read sourceClass="ACache" targetClass="ACache" source="int x; int y; char c" version="[8]" target="z" \
code="{ z = onfile.x*1000 + onfile.y*10; }"
Renaming a class
#pragma read sourceClass="ACache" version="[8]" targetClass="Axis" \
source="int x; int y;" target="z" \
code="{ z = onfile.x*1000 + onfile.y*
#pragma read sourceClass="ACache" version="[9]" targetClass="Axis";
Selection XML syntax
<read sourceClass="ACache" targetClass="ACache" source="" version="[1-]" target="zcalc">
<![CDATA[
{ zcalc = false; }
]]></read>
This form allows you to request diffs between any two revisions of this file.
For each of the two "sides" of the diff,
enter a numeric revision.