nany
Classes | Public Attributes | Friends | List of all members
ny::ClassdefTable Struct Referencefinal

Public Member Functions

Constructor & Destructor
 ClassdefTable ()
 Default constructor.
 
 ClassdefTable (const ClassdefTable &)=delete
 Copy constructor.
 
 ClassdefTable (ClassdefTable &&)=default
 Move constructor.
 
 ~ClassdefTable ()=default
 Destructor.
 
Classdef
bool hasClassdef (const CLID &) const
 Get if a clid is available.
 
Classdefclassdef (const CLID &)
 Retrieve or create a classdef from its ID.
 
const Classdefclassdef (const CLID &) const
 Retrieve a classdef from its ID (or from the current layer)
 
const Classdefrawclassdef (const CLID &) const
 Retrieve a classdef from its ID without using the current layer.
 
Classdefrawclassdef (const CLID &)
 
const ClassdefclassdefFollowClassMember (const CLID &) const
 Retrieve the real classdef from its ID (or from the current layer) even if a class member.
 
FuncdefaddClassdefInterface (const CLID &, const AnyString &name)
 Get or create an interface from its name for a given CLID. More...
 
FuncdefaddClassdefInterface (const Classdef &, const AnyString &name)
 Get or create an interface from its name for a given classdef.
 
FuncdefaddClassdefInterfaceSelf (const CLID &, const AnyString &name)
 Get or create an interface from its name for a given CLID. More...
 
FuncdefaddClassdefInterfaceSelf (const Classdef &, const AnyString &name)
 Get or create an interface from its name for a given classdef.
 
FuncdefaddClassdefInterfaceSelf (const CLID &)
 Get or create an interface from its name for a given CLID. More...
 
FuncdefaddClassdefInterfaceSelf (const Classdef &)
 Get or create an interface from its name for a given classdef.
 
bool makeHardlink (const CLID &source, const CLID &target)
 Make a target class ID share the same definition than a source class ID. More...
 
void bulkCreate (std::vector< CLID > &out, uint32_t atomid, uint32_t count)
 Bulk create several class id.
 
void bulkAppend (uint32_t atomid, uint32_t offset, uint32_t count)
 Bulk append class id.
 
void registerAtom (Atom &atom)
 Register an Atom (created from blueprints)
 
Utilities
AnyString keyword (const Atom &) const
 Get the keyword associated to an atom (class, func, var, cref, namespace...) More...
 
AtomfindClassdefAtom (const Classdef &) const
 Find the atom of a classdef, via its extends if necessary.
 
AtomfindRawClassdefAtom (const Classdef &) const
 Find the atom of a classdef, via its extends if necessary.
 
Substitutes
bool hasSubstitute (CLID) const
 Get if the current layer has a substitute for a given CLID.
 
Classdefsubstitute (uint32_t) const
 Get the substiture for the current atomid in the current layer.
 
ClassdefaddSubstitute (nytype_t kind, Atom *atom, const Qualifiers &) const
 Append a new substitute.
 
uint32_t substituteAtomID () const
 Get the atom id of the current layer.
 
void substituteResize (uint32_t count)
 Resize the substitutes for the current layer.
 
void mergeSubstitutes ()
 Make substitutes permanent.
 
Operators
ClassdefTableoperator= (const ClassdefTable &)=delete
 No assignment operator.
 

Public Attributes

StringRefs stringrefs
 String dictionary.
 
AtomMap atoms
 Atom map.
 

Friends

struct ClassdefTableView
 

Member Function Documentation

§ addClassdefInterface()

Funcdef & ny::ClassdefTable::addClassdefInterface ( const CLID clid,
const AnyString &  name 
)

Get or create an interface from its name for a given CLID.

See also
classdef()

§ addClassdefInterfaceSelf() [1/2]

Funcdef & ny::ClassdefTable::addClassdefInterfaceSelf ( const CLID clid,
const AnyString &  name 
)

Get or create an interface from its name for a given CLID.

See also
classdef()

§ addClassdefInterfaceSelf() [2/2]

Funcdef & ny::ClassdefTable::addClassdefInterfaceSelf ( const CLID clid)
inline

Get or create an interface from its name for a given CLID.

See also
classdef()

§ keyword()

AnyString ny::ClassdefTable::keyword ( const Atom atom) const

Get the keyword associated to an atom (class, func, var, cref, namespace...)

See also
ny::Atom::keyword()

§ makeHardlink()

bool ny::ClassdefTable::makeHardlink ( const CLID source,
const CLID target 
)

Make a target class ID share the same definition than a source class ID.

Returns
True if the operation succeeded, false if source was not found

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