mc2lib
Public Member Functions | Protected Attributes | List of all members
mc2lib::memconsistency::cats::ArchProxy< ConcreteArch > Class Template Reference

#include <cats.hpp>

Inheritance diagram for mc2lib::memconsistency::cats::ArchProxy< ConcreteArch >:
mc2lib::memconsistency::cats::Architecture

Public Member Functions

 ArchProxy (ConcreteArch *arch)
 
 ~ArchProxy () override
 
void Clear () override
 
std::unique_ptr< CheckerMakeChecker (const Architecture *arch, const ExecWitness *exec) const override
 
std::unique_ptr< CheckerMakeChecker (const ExecWitness *exec) const
 
void Memoize (const ExecWitness &ew)
 
EventRel ppo (const ExecWitness &ew) const override
 
EventRel fences (const ExecWitness &ew) const override
 
EventRel prop (const ExecWitness &ew) const override
 
EventRel hb (const ExecWitness &ew) const override
 
Event::Type EventTypeRead () const override
 
Event::Type EventTypeWrite () const override
 
- Public Member Functions inherited from mc2lib::memconsistency::cats::Architecture
 Architecture ()
 
virtual ~Architecture ()
 
void set_proxy (const Architecture *proxy)
 

Protected Attributes

ConcreteArch * arch_
 
bool memoized_ppo_
 
bool memoized_fences_
 
bool memoized_prop_
 
bool memoized_hb_
 
EventRel ppo_
 
EventRel fences_
 
EventRel prop_
 
EventRel hb_
 
- Protected Attributes inherited from mc2lib::memconsistency::cats::Architecture
const Architectureproxy_
 

Constructor & Destructor Documentation

§ ArchProxy()

template<class ConcreteArch >
mc2lib::memconsistency::cats::ArchProxy< ConcreteArch >::ArchProxy ( ConcreteArch *  arch)
inlineexplicit

§ ~ArchProxy()

template<class ConcreteArch >
mc2lib::memconsistency::cats::ArchProxy< ConcreteArch >::~ArchProxy ( )
inlineoverride

Member Function Documentation

§ Clear()

template<class ConcreteArch >
void mc2lib::memconsistency::cats::ArchProxy< ConcreteArch >::Clear ( )
inlineoverridevirtual

§ EventTypeRead()

template<class ConcreteArch >
Event::Type mc2lib::memconsistency::cats::ArchProxy< ConcreteArch >::EventTypeRead ( ) const
inlineoverridevirtual

Should return the mask of all types that are classed as read.

Implements mc2lib::memconsistency::cats::Architecture.

§ EventTypeWrite()

template<class ConcreteArch >
Event::Type mc2lib::memconsistency::cats::ArchProxy< ConcreteArch >::EventTypeWrite ( ) const
inlineoverridevirtual

Should return the mask of all types that are classed as write.

Implements mc2lib::memconsistency::cats::Architecture.

§ fences()

template<class ConcreteArch >
EventRel mc2lib::memconsistency::cats::ArchProxy< ConcreteArch >::fences ( const ExecWitness ew) const
inlineoverridevirtual

§ hb()

template<class ConcreteArch >
EventRel mc2lib::memconsistency::cats::ArchProxy< ConcreteArch >::hb ( const ExecWitness ew) const
inlineoverridevirtual

§ MakeChecker() [1/2]

template<class ConcreteArch >
std::unique_ptr<Checker> mc2lib::memconsistency::cats::ArchProxy< ConcreteArch >::MakeChecker ( const Architecture arch,
const ExecWitness exec 
) const
inlineoverridevirtual

Creates a checker compatible with this Architecture.

Implements mc2lib::memconsistency::cats::Architecture.

§ MakeChecker() [2/2]

template<class ConcreteArch >
std::unique_ptr<Checker> mc2lib::memconsistency::cats::ArchProxy< ConcreteArch >::MakeChecker ( const ExecWitness exec) const
inline

§ Memoize()

template<class ConcreteArch >
void mc2lib::memconsistency::cats::ArchProxy< ConcreteArch >::Memoize ( const ExecWitness ew)
inline

§ ppo()

template<class ConcreteArch >
EventRel mc2lib::memconsistency::cats::ArchProxy< ConcreteArch >::ppo ( const ExecWitness ew) const
inlineoverridevirtual

§ prop()

template<class ConcreteArch >
EventRel mc2lib::memconsistency::cats::ArchProxy< ConcreteArch >::prop ( const ExecWitness ew) const
inlineoverridevirtual

Member Data Documentation

§ arch_

template<class ConcreteArch >
ConcreteArch* mc2lib::memconsistency::cats::ArchProxy< ConcreteArch >::arch_
protected

§ fences_

template<class ConcreteArch >
EventRel mc2lib::memconsistency::cats::ArchProxy< ConcreteArch >::fences_
protected

§ hb_

template<class ConcreteArch >
EventRel mc2lib::memconsistency::cats::ArchProxy< ConcreteArch >::hb_
protected

§ memoized_fences_

template<class ConcreteArch >
bool mc2lib::memconsistency::cats::ArchProxy< ConcreteArch >::memoized_fences_
protected

§ memoized_hb_

template<class ConcreteArch >
bool mc2lib::memconsistency::cats::ArchProxy< ConcreteArch >::memoized_hb_
protected

§ memoized_ppo_

template<class ConcreteArch >
bool mc2lib::memconsistency::cats::ArchProxy< ConcreteArch >::memoized_ppo_
protected

§ memoized_prop_

template<class ConcreteArch >
bool mc2lib::memconsistency::cats::ArchProxy< ConcreteArch >::memoized_prop_
protected

§ ppo_

template<class ConcreteArch >
EventRel mc2lib::memconsistency::cats::ArchProxy< ConcreteArch >::ppo_
protected

§ prop_

template<class ConcreteArch >
EventRel mc2lib::memconsistency::cats::ArchProxy< ConcreteArch >::prop_
protected

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