[clam-devel] More changes on DynamicType

David García Garzón david.garcia at upf.edu
Sun Jun 26 09:29:06 PDT 2011


Besides the changes asked by Xavi (RemoveAttribute(i) and AddAttribute(i)) i 
did some further simplifications on DynamicTypes code. The direct impact of 
that is that less template code is generated when defining a DynamicType.

AddAll and RemoveAll are implemented in the base class instead being expanded 
as chained methods at the concrete class. This should require just a 
recompilation.

The code in MandatoryInit has been split between the base DT constructor and a 
new macro generated static function called TypeDescriptorsTable(). Such table 
should be propagated among non-copy constructors until reaching DynamicType 
constructors.

This requires changes to all non-copy constructors defined in dynamic types 
which are not generated by macros. Two typical cases:
- Non-copy constructors of intermediate classes which should just propagate 
it. (See ProcessingData, ProcessingConfig...)
- Custom non-copy constructors defined in the concrete classes that should call 
TypeDescriptorTable
- Copy constructors do not require any modification as the table is taken from 
the prototype in DynamicType copy constructor.

http://www.clam-project.org/wiki/Version_Migration_Guide#1.4_to_svn


-- 
David García Garzón
(Work) david dot garcia at upf anotherdot edu
http://www.dtic.upf.edu/~dgarcia



More information about the clam-devel mailing list