mCRL2
Loading...
Searching...
No Matches
atermpp::detail::aterm_container Class Referencefinal

Provides safe storage of unprotected_aterm instances in a container by marking them during garbage collection. More...

#include <aterm_container.h>

Inheritance diagram for atermpp::detail::aterm_container:
mcrl2::utilities::noncopyable

Public Member Functions

 aterm_container (std::function< void(term_mark_stack &)> mark_func, std::function< std::size_t()> size_func)
 
 ~aterm_container ()
 
void mark (term_mark_stack &todo) const
 Ensure that all the terms in the containers.
 
std::size_t size () const
 

Private Attributes

std::function< void(term_mark_stack &)> mark_func
 
std::function< std::size_t()> size_func
 

Additional Inherited Members

- Private Member Functions inherited from mcrl2::utilities::noncopyable
 noncopyable ()=default
 
 noncopyable (const noncopyable &)=delete
 
noncopyableoperator= (const noncopyable &)=delete
 

Detailed Description

Provides safe storage of unprotected_aterm instances in a container by marking them during garbage collection.

Can not be inherited since it is being registered during construction and the vptr is being updated by inherited classes otherwise.

Definition at line 42 of file aterm_container.h.

Constructor & Destructor Documentation

◆ aterm_container()

atermpp::detail::aterm_container::aterm_container ( std::function< void(term_mark_stack &)>  mark_func,
std::function< std::size_t()>  size_func 
)
inline

Definition at line 48 of file aterm_implementation.h.

◆ ~aterm_container()

atermpp::detail::aterm_container::~aterm_container ( )
inline

Definition at line 56 of file aterm_implementation.h.

Member Function Documentation

◆ mark()

void atermpp::detail::aterm_container::mark ( term_mark_stack todo) const
inline

Ensure that all the terms in the containers.

Definition at line 49 of file aterm_container.h.

◆ size()

std::size_t atermpp::detail::aterm_container::size ( ) const
inline

Definition at line 54 of file aterm_container.h.

Member Data Documentation

◆ mark_func

std::function<void(term_mark_stack&)> atermpp::detail::aterm_container::mark_func
private

Definition at line 60 of file aterm_container.h.

◆ size_func

std::function<std::size_t()> atermpp::detail::aterm_container::size_func
private

Definition at line 61 of file aterm_container.h.


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