NAP
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
EntityObjectGraphItem Class Reference

#include <entityobjectgraphitem.h>

Public Types

enum  EType : uint8_t { Object, File }
 
using Type = rtti::Object *
 
using ClonedResourceMap = std::unordered_map< rtti::Object *, std::vector< rtti::Object * > >
 
using ObjectsByTypeMap = std::unordered_map< rtti::TypeInfo, std::vector< rtti::Object * > >
 

Public Member Functions

const std::string getID () const
 
uint8_t getType () const
 
bool getPointees (std::vector< EntityObjectGraphItem > &pointees, utility::ErrorState &errorState) const
 

Static Public Member Functions

static const EntityObjectGraphItem create (rtti::Object *object, const ObjectsByTypeMap &objectsByType, const ClonedResourceMap &clonedResourceMap)
 

Public Attributes

EType mType
 
std::string mFilename
 
rtti::ObjectmObject = nullptr
 
const ObjectsByTypeMapmObjectsByType = nullptr
 
const ClonedResourceMapmClonedResourceMap = nullptr
 

Description

Item class for ObjectGraph usage. Wraps both an RTTIObject and a File object (by filename). Uses RTTI traversal to scan pointers to other objects and pointers to files.

Collaboration diagram for EntityObjectGraphItem:
[legend]

Member Typedef Documentation

◆ ClonedResourceMap

using ClonedResourceMap = std::unordered_map<rtti::Object*, std::vector<rtti::Object*> >

◆ ObjectsByTypeMap

using ObjectsByTypeMap = std::unordered_map<rtti::TypeInfo, std::vector<rtti::Object*> >

◆ Type

using Type = rtti::Object*

Member Enumeration Documentation

◆ EType

enum EType : uint8_t
strong
Enumerator
Object 
File 

Member Function Documentation

◆ create()

static const EntityObjectGraphItem create ( rtti::Object object,
const ObjectsByTypeMap objectsByType,
const ClonedResourceMap clonedResourceMap 
)
static

Creates a graph item.

Parameters
objectObject to wrap in the item that is created.
objectsByTypeused to track and group objects by type.
clonedResourceMapused to track cloned resources.

◆ getID()

const std::string getID ( ) const
Returns
ID of the item. For objects, the ID is the object ID, for files, it is the filename.

◆ getPointees()

bool getPointees ( std::vector< EntityObjectGraphItem > &  pointees,
utility::ErrorState errorState 
) const

Performs rtti traversal of pointers to both files and objects.

Parameters
pointeesOutput parameter, contains all objects and files this object points to.
errorStateIf false is returned, contains information about the error.
Returns
true is succeeded, false otherwise.

◆ getType()

uint8_t getType ( ) const
Returns
EType of the type (file or object).

Member Data Documentation

◆ mClonedResourceMap

const ClonedResourceMap* mClonedResourceMap = nullptr

◆ mFilename

std::string mFilename

◆ mObject

rtti::Object* mObject = nullptr

◆ mObjectsByType

const ObjectsByTypeMap* mObjectsByType = nullptr

◆ mType

EType mType