![]() |
ATLAS Offline Software
|
Variant of TStreamerInfo to handle conversions.
More...
#include <TConvertingStreamerInfo.h>
Public Member Functions | |
| TConvertingStreamerInfo () | |
| Constructor. | |
| virtual void | BuildOld () |
| Compare with class definition to handle schema evolution. | |
Static Public Member Functions | |
| static void | Initialize () |
| Set up conversions. | |
Private Member Functions | |
| bool | errhand (int level, Bool_t abort, const char *location, const char *msg) |
| Error message interceptor. | |
| bool | parse (const std::string &msg) |
| Error message parser. | |
| bool | patch (const std::string &field, const std::string &from, const std::string &to) |
| TConvertingStreamerInfo & | operator= (const TConvertingStreamerInfo &)=delete |
| TConvertingStreamerInfo (const TConvertingStreamerInfo &)=delete | |
Static Private Member Functions | |
| static void * | new_TConvertingStreamerInfo (void *p) |
| new() method for this object. | |
Variant of TStreamerInfo to handle conversions.
Definition at line 34 of file TConvertingStreamerInfo.h.
| TConvertingStreamerInfo::TConvertingStreamerInfo | ( | ) |
|
privatedelete |
|
virtual |
Compare with class definition to handle schema evolution.
This is a standard TStreamerInfo method. We override this to intercept warning messages that it produces. If we see a warning related to one of the conversions that we handle, we patch up the TStreamerElement and swallow the warning.
Definition at line 93 of file TConvertingStreamerInfo.cxx.
|
private |
Error message interceptor.
| level | Error message level. |
| abort | Abort flag. |
| location | Function that raised the error. |
| msg | Error message. |
We interpose this in front of the default error handler while BuildOld is running. If we see a message corresponding to a conversion that we handle, we fix up the TStreamerElement and swallow the message.
Definition at line 194 of file TConvertingStreamerInfo.cxx.
|
static |
Set up conversions.
Definition at line 39 of file TConvertingStreamerInfo.cxx.
|
staticprivate |
new() method for this object.
| p | Address for placement new, or nullptr. |
This is installed as the New method in TStreamerInfo's TClass. Thus, when we read from a file a TBranchElement, we actually make an instance of this class.
| p | Address for placement new, or 0. |
This is installed as the New method in TStreamerInfo's TClass. Thus, when we read from a file a TStreamerInfo, we actually make an instance of this class.
Definition at line 77 of file TConvertingStreamerInfo.cxx.
|
privatedelete |
|
private |
Error message parser.
| msg | The error message. |
If this is an error message corresponding to a conversion that we handle, we fix up the TStreamerElement and return true. Otherwise, return false.
Definition at line 150 of file TConvertingStreamerInfo.cxx.
|
private |
| Streamer | patcher. |
| field | Name of the field to patch. |
| from | Original (persistent) type. |
| to | Target (transient) type. |
This is called after an error message for a type mismatch has been successfully parsed. Fix up the TStreamerElement and return true if this is a conversion we handle; return false otherwise.
Definition at line 115 of file TConvertingStreamerInfo.cxx.