#include "ROOT/RFile.hxx"
#include <ROOT/StringUtils.hxx>
#include <ROOT/RError.hxx>
#include <Byteswap.h>
#include <TError.h>
#include <TFile.h>
#include <TKey.h>
#include <TROOT.h>
#include <algorithm>
#include <cstring>
Functions | |
static void | CheckExtension (std::string_view path) |
static RNameCycleResult | DecodeNameCycle (std::string_view nameCycleRaw) |
static ENameCycleError | DecodeNumericCycle (const char *str, std::optional< std::int16_t > &out) |
static const char * | ToString (ENameCycleError err) |
static std::string | ValidateAndNormalizePath (std::string &path) |
This function first validates, then normalizes the given path in place. | |
|
static |
|
static |
This function first validates, then normalizes the given path in place.
Returns an empty string if path
is a suitable path to store an object into a RFile, otherwise returns a description of why that is not the case.
A valid object path must:
In addition, when writing an object to RFile, the character ';' is also banned.
Passing an invalid path to Put will cause it to throw an exception, and passing an invalid path to Get will always return nullptr.
If required, path
is modified to make its hierarchy-related meaning consistent. This entails: