ROSE  0.11.50.0
Public Types | Public Member Functions | Protected Member Functions | List of all members
Rose::BinaryAnalysis::ModelChecker::Tag Class Referenceabstract

Description

Information tagged to a path node.

Tags can be attached to path nodes to mark interesting things about a certain location within a path. Each node can have zero or more tags associated with it, and the same tag can be attached to more than one node. Tags have some information which is common to all (or most) types of tags, but users may create their own subclasses for special things.

Definition at line 22 of file Tag.h.

#include <Tag.h>

Inheritance diagram for Rose::BinaryAnalysis::ModelChecker::Tag:
Inheritance graph
[legend]
Collaboration diagram for Rose::BinaryAnalysis::ModelChecker::Tag:
Collaboration graph
[legend]

Public Types

using Ptr = TagPtr
 

Public Member Functions

size_t nodeStep () const
 Property: Node step. More...
 
virtual std::string name () const =0
 Property: Generic name of tag. More...
 
virtual std::string printableName () const =0
 String to identify this tag. More...
 
virtual void print (std::ostream &, const std::string &prefix) const =0
 Print multi-line information about the tag. More...
 
virtual void toYaml (std::ostream &, const std::string &prefix) const =0
 Print multi-line information about the tag in YAML format. More...
 

Protected Member Functions

 Tag (size_t nodeStep)
 

Member Function Documentation

size_t Rose::BinaryAnalysis::ModelChecker::Tag::nodeStep ( ) const

Property: Node step.

This is the index of the step within this node to which this tag applies. The index is specified when the tag is created.

Thread safety: This property accessor is thread safe.

virtual std::string Rose::BinaryAnalysis::ModelChecker::Tag::name ( ) const
pure virtual

Property: Generic name of tag.

For instance, the name of a null pointer dereference tag might be the words "null pointer dereference" (see NullDerefTag for the actual value).

Thread safety: The implementation must be thread safe.

Implemented in Rose::BinaryAnalysis::ModelChecker::NameTag, Rose::BinaryAnalysis::ModelChecker::OobTag, and Rose::BinaryAnalysis::ModelChecker::NullDerefTag.

virtual std::string Rose::BinaryAnalysis::ModelChecker::Tag::printableName ( ) const
pure virtual

String to identify this tag.

Returns a single line string (no line feed) that is suitable for printing on a terminal (no special characters). This is used mostly in diagnostic messages.

Thread safety: The implementation must be thread safe.

Implemented in Rose::BinaryAnalysis::ModelChecker::NameTag, Rose::BinaryAnalysis::ModelChecker::OobTag, and Rose::BinaryAnalysis::ModelChecker::NullDerefTag.

virtual void Rose::BinaryAnalysis::ModelChecker::Tag::print ( std::ostream &  ,
const std::string &  prefix 
) const
pure virtual

Print multi-line information about the tag.

First line should be the full name of the tag. Next lines are indented by at least two spaces and contain additional information about the tag. All lines start with the prefix.

Thread safety: The implementation must be thread safe for gathering the information but need not concern itself with ensuring that no other threads are sending output to the same stream.

Implemented in Rose::BinaryAnalysis::ModelChecker::NameTag, Rose::BinaryAnalysis::ModelChecker::ErrorTag, Rose::BinaryAnalysis::ModelChecker::OobTag, and Rose::BinaryAnalysis::ModelChecker::NullDerefTag.

virtual void Rose::BinaryAnalysis::ModelChecker::Tag::toYaml ( std::ostream &  ,
const std::string &  prefix 
) const
pure virtual

Print multi-line information about the tag in YAML format.

The first line starts with the prefix, and the following lines start with that number of spaces.

Thread safety: The implementation must be thread safe for gathering the information but need not concern itself with ensuring that no other threads are sending output to the same stream.

Implemented in Rose::BinaryAnalysis::ModelChecker::NameTag, Rose::BinaryAnalysis::ModelChecker::ErrorTag, Rose::BinaryAnalysis::ModelChecker::OobTag, and Rose::BinaryAnalysis::ModelChecker::NullDerefTag.


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