decompiler
1.0.0
|
An in-memory implementation of the CommentDatabase API. More...
#include <comment.hh>
Public Member Functions | |
CommentDatabaseInternal (void) | |
Constructor. | |
virtual void | clear (void) |
Clear all comments from this container. | |
virtual void | clearType (const Address &fad, uint4 tp) |
Clear all comments matching (one of) the indicated types. More... | |
virtual void | addComment (uint4 tp, const Address &fad, const Address &ad, const string &txt) |
Add a new comment to the container. More... | |
virtual bool | addCommentNoDuplicate (uint4 tp, const Address &fad, const Address &ad, const string &txt) |
Add a new comment to the container, making sure there is no duplicate. More... | |
virtual void | deleteComment (Comment *com) |
Remove the given Comment object from the container. More... | |
virtual CommentSet::const_iterator | beginComment (const Address &fad) const |
Get an iterator to the beginning of comments for a single function. More... | |
virtual CommentSet::const_iterator | endComment (const Address &fad) const |
Get an iterator to the ending of comments for a single function. More... | |
virtual void | saveXml (ostream &s) const |
Save all comments in the container to an XML stream. More... | |
virtual void | restoreXml (const Element *el, const AddrSpaceManager *manage) |
Restore all comments from XML. More... | |
Public Member Functions inherited from CommentDatabase | |
CommentDatabase (void) | |
Constructor. | |
virtual | ~CommentDatabase (void) |
Destructor. | |
Private Attributes | |
CommentSet | commentset |
The sorted set of Comment objects. | |
An in-memory implementation of the CommentDatabase API.
All Comment objects are held in memory in a sorted container. This can be used as stand-alone database of comments, or it can act as a cache for some other container.
|
virtual |
Add a new comment to the container.
tp | is a set of properties to associate with the new comment (may be zero) |
fad | is the address of the function to which the comment belongs |
ad | is the address to which the comment is attached |
txt | is the body of the comment |
Implements CommentDatabase.
References commentset, and Comment::uniq.
Referenced by CommentDatabaseGhidra::addComment(), and restoreXml().
|
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.
tp | is a set of properties to associate with the new comment (may be zero) |
fad | is the address of the function to which the comment belongs |
ad | is the address to which the comment is attached |
txt | is the body of the comment |
Implements CommentDatabase.
References commentset, and Comment::uniq.
Referenced by CommentDatabaseGhidra::addCommentNoDuplicate().
|
virtual |
Get an iterator to the beginning of comments for a single function.
fad | is the address of the function |
Implements CommentDatabase.
References commentset, and Address::m_minimal.
Referenced by CommentDatabaseGhidra::beginComment(), and CommentDatabaseGhidra::fillCache().
|
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
fad | is the address of the owning function |
tp | is a set of one or more properties |
Implements CommentDatabase.
References commentset, Address::m_maximal, and Address::m_minimal.
Referenced by CommentDatabaseGhidra::clearType().
|
virtual |
Remove the given Comment object from the container.
com | is the given Comment |
Implements CommentDatabase.
References commentset.
|
virtual |
Get an iterator to the ending of comments for a single function.
fad | is the address of the function |
Implements CommentDatabase.
References commentset, and Address::m_maximal.
Referenced by CommentDatabaseGhidra::endComment(), and CommentDatabaseGhidra::fillCache().
|
virtual |
Restore all comments from XML.
el | is the root <commentdb> element |
manage | is a manager for resolving address space references |
Implements CommentDatabase.
References addComment(), Comment::getAddr(), Element::getChildren(), Comment::getFuncAddr(), Comment::getText(), Comment::getType(), and Comment::restoreXml().
Referenced by CommentDatabaseGhidra::fillCache().
|
virtual |
Save all comments in the container to an XML stream.
Writes a <commentdb> tag, with <comment> sub-tags for each Comment object.
s | is the output stream |
Implements CommentDatabase.
References commentset.