[root] / trunk / core / meta / src / TSchemaRuleSet.cxx Repository:
ViewVC logotype

Log of /trunk/core/meta/src/TSchemaRuleSet.cxx

Parent Directory Parent Directory


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

Revision 49050 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Mar 31 17:57:43 2013 UTC (21 months, 3 weeks ago) by pcanal
File length: 20042 byte(s)
Diff to previous 49044
Import revision 49009 from the v5-34-00 patch branch:
Implement the implicit rule for matching pair (based on being able to convert their content

Revision 49044 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Mar 31 17:55:32 2013 UTC (21 months, 3 weeks ago) by pcanal
File length: 17571 byte(s)
Diff to previous 49019
Import revision 49003 from the v5-34-00 patch branch:
Allow the implicit conversion from any type of numerical STL collection to any other type of numerical STL collection (e.g. vector<int> to list<float>)

Revision 49019 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Mar 31 17:18:33 2013 UTC (21 months, 3 weeks ago) by pcanal
File length: 17833 byte(s)
Diff to previous 44507
Import revision 48931 from the v5-34-00 patch branch:
Add the concept of implicit rules to (centrally) support automatic translation of
STL collection from numeric type to other numeric type or for when the contained
class has some rules.  Currently enabled only when the target is an std::vector.

Implement the transformation from STL container of numeric to any other numeric
type (both in TGenCollectionStreamer and TStreamerInfo[Actions]).

Migrate more of the conversions to TStreamerInfoActions.

Fix the Conversion of a Double32 or Float16 inside a collection of object to another
type (the previous implemetation was not supporting the customization of the factor
nor the number of bits).

Add TBuffer::ReadFastArrayWithNbits and WithFactor for use in the StreamerInfo Actions.

TStreamerInfoActions:

Introduce WithFactorMarker and NoFactorMarker to allow for less code duplicaton when
supporting Float16_t and Double32_t.
Replace the collection-memberwise action from loop over simple operation to using
ReadFastArray (to be compatible with TBufferXML).

Revision 44507 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jun 4 12:30:41 2012 UTC (2 years, 7 months ago) by axel
File length: 15398 byte(s)
Diff to previous 43519
Remove
  using namespace std;
from Riostream.h, which has huge consequences for all of ROOT.
Riostream.h is now a simple wrapper for fstream, iostream, iomanip for backward compatibility; Riosfwd.h simply wraps iosfwd.

Because of templates and their inline functions, Riostream.h needed to be included in headers, too (e.g. TParameter.h), which violated the assumption that Riostream.h is not exposing its using namespace std to headers.
ROOT now requires R__ANSISTREAM, R__SSTREAM, which does not change the set of supported compilers.

Without "using namespace std", several identifiers are now prefixed by std::; e.g. roofit/* source files now have a using namespace std to keep their coding style.
TFile::MakeProject() now generates "using namespace std" to convert the CINT-style class names into C++ ones.

Revision 43519 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Mar 28 01:25:44 2012 UTC (2 years, 9 months ago) by pcanal
File length: 15393 byte(s)
Diff to previous 41524
Fix for coding convention: RS4 (Descriptions of a function or class method shall be in the first comment block after the first)

Revision 41524 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Oct 21 00:23:07 2011 UTC (3 years, 3 months ago) by pcanal
File length: 15189 byte(s)
Diff to previous 38140
Be more explicit when a rule is conflicted with an existing rule

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: 14940 byte(s)
Diff to previous 37531
Improve error message in case a schema evolution rule can not be loaded when the library is loaded

Revision 37531 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Dec 10 20:38:06 2010 UTC (4 years, 1 month ago) by pcanal
File length: 14651 byte(s)
Diff to previous 35212
Fix several memory leaks (TSchemaRuleSet, TClass, TFolder, stress, TStreamerInfo, TFile, TFree)

Introduce a new preprocessor symbol (R__COMPLETE_MEM_TERMINATION) that allows for
better tracking of memory leak.   When ROOT is compiled with this symbols is defined,
globally held objects will be deleted at the time of the process termination.

With this symbol defined, some tests (root.exe -b -l -q ; test/stress ;) run under
'valgrind --leak-check=yes' with no memory leak reports (but still a few still
reacheable blocks).   However, this does not yet support (i.e. segfault at termination) 
the case where TFunctions are created on the 'CINT' stack (and thus fails roottest) and
some uses of CINT functions for fitting ...  and probably also fails on Windows.

Revision 35212 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 8 16:06:49 2010 UTC (4 years, 4 months ago) by pcanal
File length: 14652 byte(s)
Diff to previous 35064
fix coverity report

Revision 35064 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Aug 29 18:40:59 2010 UTC (4 years, 4 months ago) by pcanal
File length: 14627 byte(s)
Diff to previous 32644
Fix coverity report

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: 14607 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: 11132 byte(s)
Diff to previous 27938
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 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: 10079 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: 9246 byte(s)
Copied from: branches/dev/datamodelevolution/core/meta/src/TSchemaRuleSet.cxx 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/src/TSchemaRuleSet.cxx
File length: 9246 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/src/TSchemaRuleSet.cxx
File length: 8761 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/src/TSchemaRuleSet.cxx
File length: 8302 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/src/TSchemaRuleSet.cxx
File length: 6703 byte(s)
Diff to previous 24922
pass along the rules that points to 'new members'; this implements setting transient members

Revision 24922 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jul 23 15:00:38 2008 UTC (6 years, 6 months ago) by ljanyst
Original Path: branches/dev/datamodelevolution/core/meta/src/TSchemaRuleSet.cxx
File length: 6682 byte(s)
Diff to previous 24918
Renaming ProcessSchemaInfo to CreateRuleSet

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/src/TSchemaRuleSet.cxx
File length: 6627 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/src/TSchemaRuleSet.cxx
File length: 7037 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/src/TSchemaRuleSet.cxx
File length: 5704 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