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

#include <ossimAuxFileHandler.h>

Public Member Functions

 ossimAuxDictionary (const char *auxDictStr)
 
 ~ossimAuxDictionary ()
 
ossimAuxTypefindType (const char *name)
 
void addType (ossimAuxType *type)
 

Static Public Member Functions

static int getItemSize (char chType)
 

Public Attributes

int nTypes
 
int nTypesMax
 
ossimAuxType ** m_auxTypes
 

Detailed Description

Definition at line 178 of file ossimAuxFileHandler.h.

Constructor & Destructor Documentation

◆ ossimAuxDictionary()

ossimAuxDictionary::ossimAuxDictionary ( const char *  auxDictStr)

Definition at line 1020 of file ossimAuxFileHandler.cpp.

References ossimAuxType::initialize().

1021 {
1022  int i;
1023  nTypes = 0;
1024  nTypesMax = 0;
1025  m_auxTypes = NULL;
1026 
1027  //Read all the types.
1028  while( auxDictStr != NULL && *auxDictStr != '.' )
1029  {
1030  ossimAuxType* newType = new ossimAuxType();
1031  auxDictStr = newType->initialize( auxDictStr );
1032 
1033  if( auxDictStr != NULL )
1034  {
1035  addType( newType );
1036  }
1037  else
1038  {
1039  delete newType;
1040  }
1041  }
1042 
1043  for( i = 0; defDefn[i] != NULL; i += 2 )
1044  {
1045  if( findType( defDefn[i] ) == NULL )
1046  {
1047  ossimAuxType *newType = new ossimAuxType();
1048 
1049  newType->initialize( defDefn[i+1] );
1050  addType( newType );
1051  }
1052  }
1053 
1054  //Complete the definitions.
1055  for( i = 0; i < nTypes; i++ )
1056  {
1057  m_auxTypes[i]->completeDefn( this );
1058  }
1059 }
void addType(ossimAuxType *type)
const char * initialize(const char *typeInput)
ossimAuxType * findType(const char *name)
ossimAuxType ** m_auxTypes
void completeDefn(ossimAuxDictionary *auxDict)

◆ ~ossimAuxDictionary()

ossimAuxDictionary::~ossimAuxDictionary ( )

Definition at line 1061 of file ossimAuxFileHandler.cpp.

1062 {
1063  for(int i = 0; i < nTypes; i++ )
1064  {
1065  delete m_auxTypes[i];
1066  m_auxTypes[i] = 0;
1067  }
1068 }
ossimAuxType ** m_auxTypes

Member Function Documentation

◆ addType()

void ossimAuxDictionary::addType ( ossimAuxType type)

Definition at line 1070 of file ossimAuxFileHandler.cpp.

1072 {
1073  if( nTypes == nTypesMax )
1074  {
1075  nTypesMax = nTypes * 2 + 10;
1076  m_auxTypes = (ossimAuxType **) realloc( m_auxTypes,
1077  sizeof(void*) * nTypesMax );
1078  }
1079 
1080  m_auxTypes[nTypes++] = type;
1081 }
ossimAuxType ** m_auxTypes

◆ findType()

ossimAuxType * ossimAuxDictionary::findType ( const char *  name)

Definition at line 1083 of file ossimAuxFileHandler.cpp.

Referenced by ossimAuxField::completeDefn().

1085 {
1086  int i;
1087 
1088  for( i = 0; i < nTypes; i++ )
1089  {
1090  if( strcmp(name, m_auxTypes[i]->auxTypeName) == 0 )
1091  {
1092  return( m_auxTypes[i] );
1093  }
1094  }
1095 
1096  return NULL;
1097 }
ossimAuxType ** m_auxTypes

◆ getItemSize()

int ossimAuxDictionary::getItemSize ( char  chType)
static

Definition at line 1099 of file ossimAuxFileHandler.cpp.

Referenced by ossimAuxField::completeDefn(), and ossimAuxField::getInstBytes().

1101 {
1102  switch( chType )
1103  {
1104  case '1':
1105  case '2':
1106  case '4':
1107  case 'c':
1108  case 'C':
1109  return 1;
1110 
1111  case 'e':
1112  case 's':
1113  case 'S':
1114  return 2;
1115 
1116  case 't':
1117  case 'l':
1118  case 'L':
1119  case 'f':
1120  return 4;
1121 
1122  case 'd':
1123  case 'm':
1124  return 8;
1125 
1126  case 'M':
1127  return 16;
1128 
1129  case 'b':
1130  return -1;
1131 
1132  case 'o':
1133  case 'x':
1134  return 0;
1135  }
1136 
1137  return 0;
1138 }

Member Data Documentation

◆ m_auxTypes

ossimAuxType** ossimAuxDictionary::m_auxTypes

Definition at line 183 of file ossimAuxFileHandler.h.

◆ nTypes

int ossimAuxDictionary::nTypes

Definition at line 181 of file ossimAuxFileHandler.h.

◆ nTypesMax

int ossimAuxDictionary::nTypesMax

Definition at line 182 of file ossimAuxFileHandler.h.


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