Commit 4a15ebc6 authored by Mukund Sivaraman's avatar Mukund Sivaraman
Browse files

[2432] Add more API documentation

parent 8f149bd0
...@@ -58,11 +58,26 @@ public: ...@@ -58,11 +58,26 @@ public:
protected: protected:
class Iter; // forward declaration class Iter; // forward declaration
/// \brief Wraps Iter with a reference count.
typedef boost::shared_ptr<Iter> IterPtr; typedef boost::shared_ptr<Iter> IterPtr;
/// \brief A helper iterator interface for \c RRsetCollectionBase.
///
/// This is a protected iterator class that is a helper interface
/// used by the public iterator. Derived classes of
/// \c RRsetCollectionBase are supposed to implement this class and
/// the \c getBeginning() and \c getEnd() methods, so that the
/// public interator interface can be provided. This is a forward
/// iterator only.
class Iter { class Iter {
public: public:
/// \brief Returns the \c AbstractRRset currently pointed to by
/// the iterator.
virtual const isc::dns::AbstractRRset& getValue() = 0; virtual const isc::dns::AbstractRRset& getValue() = 0;
/// \brief Returns an \c IterPtr wrapping an Iter pointing to
/// the next \c AbstractRRset in sequence in the collection.
virtual IterPtr getNext() = 0; virtual IterPtr getNext() = 0;
/// \brief Check if another iterator is equal to this one. /// \brief Check if another iterator is equal to this one.
...@@ -77,10 +92,19 @@ protected: ...@@ -77,10 +92,19 @@ protected:
virtual bool equals(Iter& other) = 0; virtual bool equals(Iter& other) = 0;
}; };
/// \brief Returns an \c IterPtr wrapping an Iter pointing to the
/// beginning of the collection.
virtual IterPtr getBeginning() = 0; virtual IterPtr getBeginning() = 0;
/// \brief Returns an \c IterPtr wrapping an Iter pointing past the
/// end of the collection.
virtual IterPtr getEnd() = 0; virtual IterPtr getEnd() = 0;
public: public:
/// \brief A forward \c std::iterator for \c RRsetCollectionBase.
///
/// It behaves like a \c std::iterator forward iterator, so please
/// see its documentation for usage.
class iterator : std::iterator<std::forward_iterator_tag, class iterator : std::iterator<std::forward_iterator_tag,
const isc::dns::AbstractRRset> const isc::dns::AbstractRRset>
{ {
...@@ -116,10 +140,14 @@ public: ...@@ -116,10 +140,14 @@ public:
IterPtr iter_; IterPtr iter_;
}; };
/// \brief Returns an iterator pointing to the beginning of the
/// collection.
iterator begin() { iterator begin() {
return iterator(getBeginning()); return iterator(getBeginning());
} }
/// \brief Returns an iterator pointing past the end of the
/// collection.
iterator end() { iterator end() {
return iterator(getEnd()); return iterator(getEnd());
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment