decompiler  1.0.0
Public Member Functions | List of all members
ghidra::CommentDatabase Class Referenceabstract

An interface to a container of comments. More...

#include <comment.hh>

Inheritance diagram for ghidra::CommentDatabase:
ghidra::CommentDatabaseGhidra ghidra::CommentDatabaseInternal

Public Member Functions

 CommentDatabase (void)
 Constructor.
 
virtual ~CommentDatabase (void)
 Destructor.
 
virtual void clear (void)=0
 Clear all comments from this container.
 
virtual void clearType (const Address &fad, uint4 tp)=0
 Clear all comments matching (one of) the indicated types. More...
 
virtual void addComment (uint4 tp, const Address &fad, const Address &ad, const string &txt)=0
 Add a new comment to the container. More...
 
virtual bool addCommentNoDuplicate (uint4 tp, const Address &fad, const Address &ad, const string &txt)=0
 Add a new comment to the container, making sure there is no duplicate. More...
 
virtual void deleteComment (Comment *com)=0
 Remove the given Comment object from the container. More...
 
virtual CommentSet::const_iterator beginComment (const Address &fad) const =0
 Get an iterator to the beginning of comments for a single function. More...
 
virtual CommentSet::const_iterator endComment (const Address &fad) const =0
 Get an iterator to the ending of comments for a single function. More...
 
virtual void encode (Encoder &encoder) const =0
 Encode all comments in the container to a stream. More...
 
virtual void decode (Decoder &decoder)=0
 Restore all comments from a <commentdb> element. More...
 

Detailed Description

An interface to a container of comments.

Comments can be added (and removed) from a database, keying on the function and address the Comment is attached to. The interface can generate a begin and end iterator covering all Comment objects for a single function.

Member Function Documentation

◆ addComment()

virtual void ghidra::CommentDatabase::addComment ( uint4  tp,
const Address fad,
const Address ad,
const string &  txt 
)
pure virtual

Add a new comment to the container.

Parameters
tpis a set of properties to associate with the new comment (may be zero)
fadis the address of the function to which the comment belongs
adis the address to which the comment is attached
txtis the body of the comment

Implemented in ghidra::CommentDatabaseInternal, and ghidra::CommentDatabaseGhidra.

◆ addCommentNoDuplicate()

virtual bool ghidra::CommentDatabase::addCommentNoDuplicate ( uint4  tp,
const Address fad,
const Address ad,
const string &  txt 
)
pure virtual

Add a new comment to the container, making sure there is no duplicate.

If there is already a comment at the same address with the same body, no new comment is added.

Parameters
tpis a set of properties to associate with the new comment (may be zero)
fadis the address of the function to which the comment belongs
adis the address to which the comment is attached
txtis the body of the comment
Returns
true if a new Comment was created, false if there was a duplicate

Implemented in ghidra::CommentDatabaseInternal, and ghidra::CommentDatabaseGhidra.

Referenced by ghidra::Funcdata::warning(), and ghidra::Funcdata::warningHeader().

◆ beginComment()

virtual CommentSet::const_iterator ghidra::CommentDatabase::beginComment ( const Address fad) const
pure virtual

Get an iterator to the beginning of comments for a single function.

Parameters
fadis the address of the function
Returns
the beginning iterator

Implemented in ghidra::CommentDatabaseInternal, and ghidra::CommentDatabaseGhidra.

Referenced by ghidra::CommentSorter::setupFunctionList().

◆ clearType()

virtual void ghidra::CommentDatabase::clearType ( const Address fad,
uint4  tp 
)
pure virtual

Clear all comments matching (one of) the indicated types.

Clearing is restricted to comments belonging to a specific function and matching at least one of the given properties

Parameters
fadis the address of the owning function
tpis a set of one or more properties

Implemented in ghidra::CommentDatabaseInternal, and ghidra::CommentDatabaseGhidra.

◆ decode()

virtual void ghidra::CommentDatabase::decode ( Decoder decoder)
pure virtual

Restore all comments from a <commentdb> element.

Parameters
decoderis the stream decoder

Implemented in ghidra::CommentDatabaseInternal, and ghidra::CommentDatabaseGhidra.

◆ deleteComment()

virtual void ghidra::CommentDatabase::deleteComment ( Comment com)
pure virtual

Remove the given Comment object from the container.

Parameters
comis the given Comment

Implemented in ghidra::CommentDatabaseInternal, and ghidra::CommentDatabaseGhidra.

◆ encode()

virtual void ghidra::CommentDatabase::encode ( Encoder encoder) const
pure virtual

Encode all comments in the container to a stream.

Writes a <commentdb> element, with <comment> children for each Comment object.

Parameters
encoderis the stream encoder

Implemented in ghidra::CommentDatabaseInternal, and ghidra::CommentDatabaseGhidra.

◆ endComment()

virtual CommentSet::const_iterator ghidra::CommentDatabase::endComment ( const Address fad) const
pure virtual

Get an iterator to the ending of comments for a single function.

Parameters
fadis the address of the function
Returns
the ending iterator

Implemented in ghidra::CommentDatabaseInternal, and ghidra::CommentDatabaseGhidra.

Referenced by ghidra::CommentSorter::setupFunctionList().


The documentation for this class was generated from the following file: