OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
RTTItypeid Class Reference

#include <ossimRtti.h>

Inheritance diagram for RTTItypeid:
RTTIdyntypeid

Public Member Functions

 RTTItypeid (const RTTITypeinfo *p)
 
 RTTItypeid ()
 
int operator== (RTTItypeid) const
 
int operator!= (RTTItypeid) const
 
const RTTITypeinfoget_info () const
 
int can_cast (RTTItypeid) const
 
const char * getname () const
 
int num_subclasses () const
 
RTTItypeid subclass (int) const
 
int num_baseclasses () const
 
RTTItypeid baseclass (int) const
 
void * create (RTTItypeid) const
 
int can_create () const
 
RTTItypeid find_baseclass (const char *name) const
 

Static Public Member Functions

static RTTItypeid null_type ()
 

Protected Attributes

const RTTITypeinfotheId
 

Detailed Description

Definition at line 125 of file ossimRtti.h.

Constructor & Destructor Documentation

◆ RTTItypeid() [1/2]

RTTItypeid::RTTItypeid ( const RTTITypeinfo p)
inline

Definition at line 129 of file ossimRtti.h.

129 : theId(p) {}
const RTTITypeinfo * theId
Definition: ossimRtti.h:150

◆ RTTItypeid() [2/2]

RTTItypeid::RTTItypeid ( )
inline

Definition at line 245 of file ossimRtti.h.

245  : theId(null_type().theId)
246 {
247 }
const RTTITypeinfo * theId
Definition: ossimRtti.h:150
static RTTItypeid null_type()
Definition: ossimRtti.h:240

Member Function Documentation

◆ baseclass()

RTTItypeid RTTItypeid::baseclass ( int  i) const
inline

Definition at line 287 of file ossimRtti.h.

References RTTITypeinfo::b, and theId.

288 {
289  return theId->b[i];
290 }
const RTTITypeinfo * theId
Definition: ossimRtti.h:150
const RTTITypeinfo ** b
Definition: ossimRtti.h:191

◆ can_cast()

int RTTItypeid::can_cast ( RTTItypeid  i) const
inline

Definition at line 259 of file ossimRtti.h.

References RTTITypeinfo::can_cast(), and theId.

Referenced by ossimObject::canCastTo(), and ossimViewController::findFirstViewOfType().

260 {
261  return theId->can_cast(i.theId);
262 }
const RTTITypeinfo * theId
Definition: ossimRtti.h:150
int can_cast(const RTTITypeinfo *) const
Definition: ossimRtti.h:225

◆ can_create()

int RTTItypeid::can_create ( ) const
inline

Definition at line 297 of file ossimRtti.h.

References RTTITypeinfo::can_create(), and theId.

298 {
299  return theId->can_create();
300 }
const RTTITypeinfo * theId
Definition: ossimRtti.h:150
int can_create() const
Definition: ossimRtti.h:230

◆ create()

void * RTTItypeid::create ( RTTItypeid  t) const
inline

Definition at line 292 of file ossimRtti.h.

References RTTITypeinfo::create(), getname(), and theId.

293 {
294  return theId->create(theId,t.getname());
295 }
void * create(const RTTITypeinfo *, const char *) const
Definition: ossimRtti.cpp:96
const RTTITypeinfo * theId
Definition: ossimRtti.h:150
const char * getname() const
Definition: ossimRtti.h:265

◆ find_baseclass()

RTTItypeid RTTItypeid::find_baseclass ( const char *  name) const

Definition at line 112 of file ossimRtti.cpp.

References find_baseclass(), getname(), and null_type().

Referenced by find_baseclass().

113 {
114  if(strcmp(name, getname())==0)
115  {
116  return *this;
117  }
118  else if(num_baseclasses() == 0)
119  {
120  if(strcmp(name, getname()) == 0)
121  {
122  return *this;
123  }
124  return null_type();
125  }
126  else
127  {
128  int index = 0;
129 
130  while(index < num_baseclasses())
131  {
132  RTTItypeid typeId = baseclass(index);
133  if(typeId == *this)
134  {
135  return *this;//null_type();
136  }
137  if(strcmp(name, typeId.getname()) == 0)
138  {
139  return *this;
140  }
141  ++index;
142  }
143  index = 0;
144  while(index < num_baseclasses())
145  {
146  RTTItypeid typeId = baseclass(index);
147  if(typeId.find_baseclass(name) == typeId.null_type())
148  {
149  ++index;
150  }
151  else
152  {
153  return typeId;
154  }
155  }
156  }
157  return null_type();
158 }
int num_baseclasses() const
Definition: ossimRtti.h:280
RTTItypeid baseclass(int) const
Definition: ossimRtti.h:287
const char * getname() const
Definition: ossimRtti.h:265
RTTItypeid find_baseclass(const char *name) const
Definition: ossimRtti.cpp:112
static RTTItypeid null_type()
Definition: ossimRtti.h:240

◆ get_info()

const RTTITypeinfo* RTTItypeid::get_info ( ) const
inline

Definition at line 133 of file ossimRtti.h.

133 { return theId; }
const RTTITypeinfo * theId
Definition: ossimRtti.h:150

◆ getname()

const char * RTTItypeid::getname ( ) const
inline

Definition at line 265 of file ossimRtti.h.

References RTTITypeinfo::getname(), and theId.

Referenced by create(), and find_baseclass().

266 {
267  return theId->getname();
268 }
const RTTITypeinfo * theId
Definition: ossimRtti.h:150
const char * getname() const
Definition: ossimRtti.cpp:67

◆ null_type()

RTTItypeid RTTItypeid::null_type ( )
inlinestatic

Definition at line 240 of file ossimRtti.h.

References RTTITypeinfo::null_type.

Referenced by ossimObject::canCastTo(), and find_baseclass().

241 {
242  return &(RTTITypeinfo::null_type);
243 }
static const RTTITypeinfo null_type
Definition: ossimRtti.h:195

◆ num_baseclasses()

int RTTItypeid::num_baseclasses ( ) const
inline

Definition at line 280 of file ossimRtti.h.

References RTTITypeinfo::b, and theId.

281 {
282  int i;
283  for(i=0;theId->b[i];i++){}
284  return i;
285 }
const RTTITypeinfo * theId
Definition: ossimRtti.h:150
const RTTITypeinfo ** b
Definition: ossimRtti.h:191

◆ num_subclasses()

int RTTItypeid::num_subclasses ( ) const
inline

Definition at line 270 of file ossimRtti.h.

References RTTITypeinfo::num_subclasses(), and theId.

271 {
272  return theId->num_subclasses();
273 }
const RTTITypeinfo * theId
Definition: ossimRtti.h:150
int num_subclasses() const
Definition: ossimRtti.h:209

◆ operator!=()

int RTTItypeid::operator!= ( RTTItypeid  i) const
inline

Definition at line 254 of file ossimRtti.h.

References RTTITypeinfo::same(), and theId.

255 {
256  return !(theId->same(i.theId));
257 }
int same(const RTTITypeinfo *) const
Definition: ossimRtti.h:219
const RTTITypeinfo * theId
Definition: ossimRtti.h:150

◆ operator==()

int RTTItypeid::operator== ( RTTItypeid  i) const
inline

Definition at line 249 of file ossimRtti.h.

References RTTITypeinfo::same(), and theId.

250 {
251  return theId->same(i.theId);
252 }
int same(const RTTITypeinfo *) const
Definition: ossimRtti.h:219
const RTTITypeinfo * theId
Definition: ossimRtti.h:150

◆ subclass()

RTTItypeid RTTItypeid::subclass ( int  i) const
inline

Definition at line 275 of file ossimRtti.h.

References RTTITypeinfo::subclass(), and theId.

276 {
277  return theId->subclass(i);
278 }
const RTTITypeinfo * theId
Definition: ossimRtti.h:150
const RTTITypeinfo * subclass(int=0) const
Definition: ossimRtti.h:214

Member Data Documentation

◆ theId

const RTTITypeinfo* RTTItypeid::theId
protected

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