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

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

Parent Directory Parent Directory


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

Revision 34641 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jul 28 18:12:36 2010 UTC (4 years, 5 months ago) by pcanal
File length: 5577 byte(s)
Diff to previous 32644
Add support for writing I/O customization rules that updates data member that
are fixed size array.

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 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: 4424 byte(s)
Diff to previous 25461
Fix the setting a transient member from existing persistent member(s).

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>


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/TSchemaRule.h
File length: 4373 byte(s)
Diff to previous 24990
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 24990 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jul 30 19:02:44 2008 UTC (6 years, 5 months ago) by pcanal
Original Path: branches/dev/datamodelevolution/core/meta/inc/TSchemaRule.h
File length: 4278 byte(s)
Diff to previous 24976
Update to support both typename and varname in the source

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/TSchemaRule.h
File length: 4124 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/TSchemaRule.h
File length: 4090 byte(s)
Diff to previous 24912
Adding some missing functionality to TSchemaRule and propagating the rules from dictionary code to TClass

Revision 24912 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jul 22 21:23:51 2008 UTC (6 years, 6 months ago) by pcanal
Original Path: branches/dev/datamodelevolution/core/meta/inc/TSchemaRule.h
File length: 3571 byte(s)
Diff to previous 24910
Pass buffer by reference

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/TSchemaRule.h
File length: 3570 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/TSchemaRule.h
File length: 3348 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