|
@@ -119,10 +119,22 @@ public:
|
|
/// \return An \c RdataPtr object pointing to the created \c Rdata object.
|
|
/// \return An \c RdataPtr object pointing to the created \c Rdata object.
|
|
virtual RdataPtr create(const rdata::Rdata& source) const = 0;
|
|
virtual RdataPtr create(const rdata::Rdata& source) const = 0;
|
|
|
|
|
|
- /// \brief Create RDATA from MasterLexer
|
|
|
|
- virtual RdataPtr create(MasterLexer& lexer, const Name*,
|
|
|
|
- MasterLoader::Options,
|
|
|
|
- MasterLoaderCallbacks&) const;
|
|
|
|
|
|
+ /// \brief Create RDATA using MasterLexer.
|
|
|
|
+ ///
|
|
|
|
+ /// This version of the method defines the entry point of factory
|
|
|
|
+ /// of a specific RR type and class for \c RRParamRegistry::createRdata()
|
|
|
|
+ /// that uses \c MasterLexer. See its description for the expected
|
|
|
|
+ /// behavior and meaning of the parameters.
|
|
|
|
+ ///
|
|
|
|
+ /// \note Right now this is not defined as a pure virtual method and
|
|
|
|
+ /// provides the default implementation. This is an intermediate
|
|
|
|
+ /// workaround until we implement the underlying constructor for all
|
|
|
|
+ /// supported \c Rdata classes; once it's completed the workaround
|
|
|
|
+ /// default implementation should be removed and this method should become
|
|
|
|
+ /// pure virtual.
|
|
|
|
+ virtual RdataPtr create(MasterLexer& lexer, const Name* origin,
|
|
|
|
+ MasterLoader::Options options,
|
|
|
|
+ MasterLoaderCallbacks& callbacks) const;
|
|
//@}
|
|
//@}
|
|
};
|
|
};
|
|
|
|
|
|
@@ -504,9 +516,20 @@ public:
|
|
rdata::RdataPtr createRdata(const RRType& rrtype, const RRClass& rrclass,
|
|
rdata::RdataPtr createRdata(const RRType& rrtype, const RRClass& rrclass,
|
|
const rdata::Rdata& source);
|
|
const rdata::Rdata& source);
|
|
|
|
|
|
- /// \brief Create RDATA from MasterLexer
|
|
|
|
|
|
+ /// \brief Create RDATA using MasterLexer
|
|
|
|
+ ///
|
|
|
|
+ /// This method is expected to be used as the underlying implementation
|
|
|
|
+ /// of the same signature of \c rdata::createRdata(). One main
|
|
|
|
+ /// difference is that this method is only responsible for constructing
|
|
|
|
+ /// the Rdata; it doesn't update the lexer to reach the end of line or
|
|
|
|
+ /// file or doesn't care about whether there's an extra (garbage) token
|
|
|
|
+ /// after the textual RDATA representation. Another difference is that
|
|
|
|
+ /// this method can throw on error and never returns a NULL pointer.
|
|
|
|
+ ///
|
|
|
|
+ /// For other details and parameters, see the description of
|
|
|
|
+ /// \c rdata::createRdata().
|
|
rdata::RdataPtr createRdata(const RRType& rrtype, const RRClass& rrclass,
|
|
rdata::RdataPtr createRdata(const RRType& rrtype, const RRClass& rrclass,
|
|
- MasterLexer& lexer, const Name* name,
|
|
|
|
|
|
+ MasterLexer& lexer, const Name* origin,
|
|
MasterLoader::Options options,
|
|
MasterLoader::Options options,
|
|
MasterLoaderCallbacks& callbacks);
|
|
MasterLoaderCallbacks& callbacks);
|
|
//@}
|
|
//@}
|