clingo
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
Public Types | Public Member Functions | Public Attributes | List of all members
Gringo::AbstractDomain< Element > Struct Template Referenceabstract

#include <domain.hh>

Inheritance diagram for Gringo::AbstractDomain< Element >:
Inheritance graph
Collaboration diagram for Gringo::AbstractDomain< Element >:
Collaboration graph

Public Types

using element_map = std::unordered_map< Value, Element >
 
using element_type = typename element_map::value_type
 
using bind_index_type = BindIndex< element_type >
 
using full_index_type = FullIndex< element_type >
 
using exports_type = typename bind_index_type::exports_type
 
using element_vec = typename exports_type::element_vec
 
using bind_index_set = std::unordered_set< bind_index_type, call_hash< bind_index_type >>
 
using full_index_set = std::unordered_set< full_index_type, call_hash< full_index_type >>
 

Public Member Functions

 AbstractDomain ()
 
 AbstractDomain (AbstractDomain const &)=delete
 
 AbstractDomain (AbstractDomain &&)=delete
 
void init ()
 
virtual element_typereserve (Value x)
 
bind_index_typeadd (SValVec &&bound, UTerm &&repr)
 
full_index_typeadd (UTerm &&repr, unsigned imported)
 
element_typelookup (Term const &repr, RECNAF naf)
 
element_typelookup (Term const &repr, BinderType type)
 
bool check (Term const &repr, unsigned &imported)
 
void clear ()
 
virtual void mark ()=0
 
virtual void unmark ()=0
 
virtual void setEnqueued (bool x)
 
virtual bool isEnqueued () const
 
virtual bool expire ()
 
virtual void doClear ()
 
virtual ~AbstractDomain ()
 
- Public Member Functions inherited from Gringo::Domain
virtual ~Domain ()
 

Public Attributes

bind_index_set indices
 
full_index_set fullIndices
 
element_map domain
 
exports_type exports
 
bool enqueued = false
 

Member Typedef Documentation

template<class Element>
using Gringo::AbstractDomain< Element >::bind_index_set = std::unordered_set<bind_index_type, call_hash<bind_index_type>>
template<class Element>
using Gringo::AbstractDomain< Element >::bind_index_type = BindIndex<element_type>
template<class Element>
using Gringo::AbstractDomain< Element >::element_map = std::unordered_map<Value, Element>
template<class Element>
using Gringo::AbstractDomain< Element >::element_type = typename element_map::value_type
template<class Element>
using Gringo::AbstractDomain< Element >::element_vec = typename exports_type::element_vec
template<class Element>
using Gringo::AbstractDomain< Element >::exports_type = typename bind_index_type::exports_type
template<class Element>
using Gringo::AbstractDomain< Element >::full_index_set = std::unordered_set<full_index_type, call_hash<full_index_type>>
template<class Element>
using Gringo::AbstractDomain< Element >::full_index_type = FullIndex<element_type>

Constructor & Destructor Documentation

template<class Element >
Gringo::AbstractDomain< Element >::AbstractDomain ( )
template<class Element>
Gringo::AbstractDomain< Element >::AbstractDomain ( AbstractDomain< Element > const &  )
delete
template<class Element>
Gringo::AbstractDomain< Element >::AbstractDomain ( AbstractDomain< Element > &&  )
delete
template<class Element >
Gringo::AbstractDomain< Element >::~AbstractDomain ( )
virtual

Member Function Documentation

template<class Element >
AbstractDomain< Element >::bind_index_type & Gringo::AbstractDomain< Element >::add ( SValVec &&  bound,
UTerm &&  repr 
)
template<class Element >
AbstractDomain< Element >::full_index_type & Gringo::AbstractDomain< Element >::add ( UTerm &&  repr,
unsigned  imported 
)
template<class Element >
bool Gringo::AbstractDomain< Element >::check ( Term const &  repr,
unsigned &  imported 
)

Here is the call graph for this function:

template<class Element >
void Gringo::AbstractDomain< Element >::clear ( )
template<class Element>
virtual void Gringo::AbstractDomain< Element >::doClear ( )
inlinevirtual

Reimplemented in Gringo::PredicateDomain.

template<class Element>
virtual bool Gringo::AbstractDomain< Element >::expire ( )
inlinevirtual

Implements Gringo::Domain.

template<class Element >
void Gringo::AbstractDomain< Element >::init ( )
template<class Element>
virtual bool Gringo::AbstractDomain< Element >::isEnqueued ( ) const
inlinevirtual

Implements Gringo::Domain.

template<class Element >
AbstractDomain< Element >::element_type * Gringo::AbstractDomain< Element >::lookup ( Term const &  repr,
RECNAF  naf 
)

Here is the call graph for this function:

template<class Element >
AbstractDomain< Element >::element_type * Gringo::AbstractDomain< Element >::lookup ( Term const &  repr,
BinderType  type 
)

Here is the call graph for this function:

template<class Element>
virtual void Gringo::AbstractDomain< Element >::mark ( )
pure virtual
template<class Element >
AbstractDomain< Element >::element_type & Gringo::AbstractDomain< Element >::reserve ( Value  x)
virtual
template<class Element>
virtual void Gringo::AbstractDomain< Element >::setEnqueued ( bool  x)
inlinevirtual

Implements Gringo::Domain.

template<class Element>
virtual void Gringo::AbstractDomain< Element >::unmark ( )
pure virtual

Member Data Documentation

template<class Element>
element_map Gringo::AbstractDomain< Element >::domain
template<class Element>
bool Gringo::AbstractDomain< Element >::enqueued = false
template<class Element>
exports_type Gringo::AbstractDomain< Element >::exports
template<class Element>
full_index_set Gringo::AbstractDomain< Element >::fullIndices
template<class Element>
bind_index_set Gringo::AbstractDomain< Element >::indices

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