OpenClonk
StdMeshInstance::SerializableValueProvider::IDBase Struct Reference

#include <StdMesh.h>

Inheritance diagram for StdMeshInstance::SerializableValueProvider::IDBase:
[legend]
Collaboration diagram for StdMeshInstance::SerializableValueProvider::IDBase:
[legend]

Public Types

typedef SerializableValueProvider *(* NewFunc) ()
 

Public Attributes

const char * name
 
const std::type_info & type
 
NewFunc newfunc
 

Protected Member Functions

 IDBase (const char *name, const std::type_info &type, NewFunc newfunc)
 
virtual ~IDBase ()
 

Detailed Description

Definition at line 425 of file StdMesh.h.

Member Typedef Documentation

◆ NewFunc

typedef SerializableValueProvider*(* StdMeshInstance::SerializableValueProvider::IDBase::NewFunc) ()

Definition at line 427 of file StdMesh.h.

Constructor & Destructor Documentation

◆ IDBase()

StdMeshInstance::SerializableValueProvider::IDBase::IDBase ( const char *  name,
const std::type_info &  type,
NewFunc  newfunc 
)
inlineprotected

Definition at line 429 of file StdMesh.h.

429  :
431  {
432  if(!IDs) IDs = new std::vector<IDBase*>;
433  IDs->push_back(this);
434  }

◆ ~IDBase()

virtual StdMeshInstance::SerializableValueProvider::IDBase::~IDBase ( )
inlineprotectedvirtual

Definition at line 436 of file StdMesh.h.

437  {
438  assert(IDs);
439  IDs->erase(std::find(IDs->begin(), IDs->end(), this));
440  if (!IDs->size()) { delete IDs; IDs = nullptr; }
441  }

Member Data Documentation

◆ name

const char* StdMeshInstance::SerializableValueProvider::IDBase::name

Definition at line 444 of file StdMesh.h.

Referenced by StdMeshInstance::SerializableValueProvider::Lookup().

◆ newfunc

NewFunc StdMeshInstance::SerializableValueProvider::IDBase::newfunc

Definition at line 446 of file StdMesh.h.

Referenced by CompileNewFuncCtx().

◆ type

const std::type_info& StdMeshInstance::SerializableValueProvider::IDBase::type

Definition at line 445 of file StdMesh.h.

Referenced by StdMeshInstance::SerializableValueProvider::Lookup().


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