[root] / trunk / core / meta / inc / TSchemaRuleSet.h Repository:
ViewVC logotype

Log of /trunk/core/meta/inc/TSchemaRuleSet.h

Parent Directory Parent Directory


Links to HEAD: (view) (download) (as text) (annotate)
Sticky Revision:

Revision 38140 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Feb 18 10:52:47 2011 UTC (3 years, 11 months ago) by pcanal
File length: 3200 byte(s)
Diff to previous 32644
Improve error message in case a schema evolution rule can not be loaded when the library is loaded

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: 3159 byte(s)
Diff to previous 29272
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 29272 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jun 30 19:24:06 2009 UTC (5 years, 6 months ago) by pcanal
File length: 2884 byte(s)
Diff to previous 27944
Since we can not distinguish (in the TStreamerInfo) the case where
the class layout was versioned to 1 or was un-versioned, we update the
rule matching mechanism so that a rule assigned to version '1' will 
apply both to any unversioned class layout and to a class layout which 
version number was set to '1'.

This resolves the issue described at http://root.cern.ch/phpBB2/viewtopic.php?t=8749

Revision 27944 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Mar 26 14:33:51 2009 UTC (5 years, 10 months ago) by pcanal
File length: 2781 byte(s)
Diff to previous 27938
add missing ClassDef

Revision 27938 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Mar 26 09:53:23 2009 UTC (5 years, 10 months ago) by pcanal
File length: 2749 byte(s)
Diff to previous 25450
Fix the setting a transient member from existing persistent member(s).

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: 2591 byte(s)
Copied from: branches/dev/datamodelevolution/core/meta/inc/TSchemaRuleSet.h revision 25449
Diff to previous 25410
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>


Revision 25410 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Sep 15 22:18:25 2008 UTC (6 years, 4 months ago) by pcanal
Original Path: branches/dev/datamodelevolution/core/meta/inc/TSchemaRuleSet.h
File length: 2591 byte(s)
Diff to previous 25384
Do not create a TSchemaRuleSet unless we need one.  Don't set TSchemaRuleSet::fCheckSum until needed

Revision 25384 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 10 20:45:33 2008 UTC (6 years, 4 months ago) by pcanal
Original Path: branches/dev/datamodelevolution/core/meta/inc/TSchemaRuleSet.h
File length: 2568 byte(s)
Diff to previous 25211
Import change -r25266:25379 from the trunk

Revision 25211 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Aug 22 14:57:02 2008 UTC (6 years, 5 months ago) by ljanyst
Original Path: branches/dev/datamodelevolution/core/meta/inc/TSchemaRuleSet.h
File length: 2485 byte(s)
Diff to previous 24976
Part of the code for using foreign streamer info to read the class, works in non-split mode for objects, collections of objects and collections of pointers

Revision 24976 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jul 29 19:38:54 2008 UTC (6 years, 5 months ago) by pcanal
Original Path: branches/dev/datamodelevolution/core/meta/inc/TSchemaRuleSet.h
File length: 2033 byte(s)
Diff to previous 24918
pass along the rules that points to 'new members'; this implements setting transient members

Revision 24918 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jul 23 13:08:14 2008 UTC (6 years, 6 months ago) by ljanyst
Original Path: branches/dev/datamodelevolution/core/meta/inc/TSchemaRuleSet.h
File length: 2012 byte(s)
Diff to previous 24910
Adding some missing functionality to TSchemaRule and propagating the rules from dictionary code to TClass

Revision 24910 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jul 22 17:01:31 2008 UTC (6 years, 6 months ago) by ljanyst
Original Path: branches/dev/datamodelevolution/core/meta/inc/TSchemaRuleSet.h
File length: 2101 byte(s)
Diff to previous 24903
Code for adding/removing rules from the rule set and rule(set) consistency checking added

Revision 24903 - (view) (download) (as text) (annotate) - [select for diffs]
Added Mon Jul 21 19:53:01 2008 UTC (6 years, 6 months ago) by pcanal
Original Path: branches/dev/datamodelevolution/core/meta/inc/TSchemaRuleSet.h
File length: 2013 byte(s)
From lukasz: partial SchemeRule/RuleSet implementation

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.

  Diffs between and
  Type of Diff should be a

Sort log by:

Subversion Admin
ViewVC Help
Powered by ViewVC 1.0.9