lasso
FBGeomAssocPairSide Class Reference

#include <FBGeomAssocPairSide.hpp>

Inheritance diagram for FBGeomAssocPairSide:
AssocPairSide

List of all members.

Public Member Functions

 FBGeomAssocPairSide (iRel_Instance relation, iBase_Instance instance, int id)
virtual ~FBGeomAssocPairSide ()
virtual iBase_Instance instance () const
virtual iRel_IfaceType type () const
virtual int create_relation_side ()
virtual int destroy_relation_side ()
virtual int get_all_entities (int dimension, iBase_EntityHandle **entities, int *entities_alloc, int *entities_size)
virtual int get_all_sets (iBase_EntitySetHandle **sets, int *sets_alloc, int *sets_size)
virtual int get_entities (int dimension, iBase_EntitySetHandle set_handle, iBase_EntityHandle **entities, int *entities_alloc, int *entities_size)
virtual int get_ents_dims (iBase_EntityHandle *entities, int entities_size, int **ent_types, int *ent_types_alloc, int *ent_types_size)
virtual int get_related_ents (iBase_EntityHandle **entities, int *entities_alloc, int *entities_size)
virtual int get_related_sets (iBase_EntitySetHandle **sets, int *sets_alloc, int *sets_size)
virtual int get_relation_side (iBase_EntityHandle *entities, int num_entities, void *values)
virtual int get_relation_side (iBase_EntitySetHandle *sets, int num_sets, void *values)
virtual int set_relation_side (iBase_EntityHandle *entities, int num_entities, const void *values)
virtual int set_relation_side (iBase_EntitySetHandle *sets, int num_sets, const void *values)
virtual int rmv_relation_side (iBase_EntityHandle *entities, int num_entities)
virtual int rmv_relation_side (iBase_EntitySetHandle *sets, int num_sets)
virtual int get_iterator (iBase_EntitySetHandle set, iBase_EntityIterator *iter)
virtual int get_gids (iBase_EntityHandle *entities, int num_entities, int *values)
virtual int get_gids (iBase_EntitySetHandle *sets, int num_sets, int *values)
virtual int get_dims (iBase_EntityHandle *entities, int num_entities, int *values)
virtual int get_dims (iBase_EntitySetHandle *sets, int num_sets, int *values)

Private Attributes

iRel_Instance relation
FBiGeom_Instance instance_
int id
iBase_TagHandle relation_tag
iBase_TagHandle gid_tag

Detailed Description

Definition at line 7 of file FBGeomAssocPairSide.hpp.


Constructor & Destructor Documentation

FBGeomAssocPairSide::FBGeomAssocPairSide ( iRel_Instance  relation,
iBase_Instance  instance,
int  id 
)

Definition at line 25 of file FBGeomAssocPairSide.cpp.

                                                                          :
  relation(relation),
  instance_(reinterpret_cast<FBiGeom_Instance>(instance)),
  id(id)
{
  int result;

  create_relation_side();

  FBiGeom_getTagHandle(instance_, GLOBAL_ID_TAG_NAME, &gid_tag, &result,
                       strlen(GLOBAL_ID_TAG_NAME));
  if (result == iBase_TAG_NOT_FOUND) {
    FBiGeom_createTag(instance_, GLOBAL_ID_TAG_NAME, 1, iBase_INTEGER,
                      &gid_tag, &result, strlen(GLOBAL_ID_TAG_NAME));
  }
}

Member Function Documentation

Implements AssocPairSide.

Definition at line 58 of file FBGeomAssocPairSide.cpp.

{
  int result;
  std::stringstream ss;
  ss << RELATION_TAG_NAME << id;
  std::string rel_tag_name(ss.str());

  FBiGeom_getTagHandle(instance_, rel_tag_name.c_str(), &relation_tag, &result,
                       rel_tag_name.size());
  if (result == iBase_TAG_NOT_FOUND) {
    FBiGeom_createTag(instance_, rel_tag_name.c_str(), 1, iBase_ENTITY_HANDLE,
                      &relation_tag, &result, rel_tag_name.size());
  }

  PROCESS_ERROR;
  RETURNR(iBase_SUCCESS);
}

Implements AssocPairSide.

Definition at line 76 of file FBGeomAssocPairSide.cpp.

{
  if (relation_tag) {
    int result;

    FBiGeom_destroyTag(instance_, relation_tag, true, &result);
    relation_tag = NULL;

    PROCESS_ERROR;
  }
  RETURNR(iBase_SUCCESS);
}
int FBGeomAssocPairSide::get_all_entities ( int  dimension,
iBase_EntityHandle **  entities,
int *  entities_alloc,
int *  entities_size 
) [virtual]

Implements AssocPairSide.

Definition at line 89 of file FBGeomAssocPairSide.cpp.

{
  int this_type = (dimension == -1 ? iBase_ALL_TYPES : dimension);
  int result;

  FBiGeom_getEntities(instance_, 0, this_type, entities, entities_alloc,
                      entities_size, &result);
  PROCESS_ERROR;
  RETURNR(iBase_SUCCESS);
}
int FBGeomAssocPairSide::get_all_sets ( iBase_EntitySetHandle **  sets,
int *  sets_alloc,
int *  sets_size 
) [virtual]

Implements AssocPairSide.

Definition at line 103 of file FBGeomAssocPairSide.cpp.

{
  int result;

  FBiGeom_getEntSets(instance_, 0, 0, sets, sets_alloc, sets_size, &result);
  PROCESS_ERROR;
  RETURNR(iBase_SUCCESS);
}
int FBGeomAssocPairSide::get_dims ( iBase_EntityHandle *  entities,
int  num_entities,
int *  values 
) [virtual]

Implements AssocPairSide.

Definition at line 277 of file FBGeomAssocPairSide.cpp.

{
  RETURNR(iBase_FAILURE);
}
int FBGeomAssocPairSide::get_dims ( iBase_EntitySetHandle *  sets,
int  num_sets,
int *  values 
) [virtual]

Implements AssocPairSide.

Definition at line 283 of file FBGeomAssocPairSide.cpp.

{
  RETURNR(iBase_FAILURE);
}
int FBGeomAssocPairSide::get_entities ( int  dimension,
iBase_EntitySetHandle  set_handle,
iBase_EntityHandle **  entities,
int *  entities_alloc,
int *  entities_size 
) [virtual]

Implements AssocPairSide.

Definition at line 113 of file FBGeomAssocPairSide.cpp.

{
  int this_type = (dimension == -1 ? iBase_ALL_TYPES : dimension);
  int result;

  FBiGeom_getEntities(instance_, set_handle, this_type, entities,
                      entities_alloc, entities_size, &result);
  PROCESS_ERROR;
  RETURNR(iBase_SUCCESS);
}
int FBGeomAssocPairSide::get_ents_dims ( iBase_EntityHandle *  entities,
int  entities_size,
int **  ent_types,
int *  ent_types_alloc,
int *  ent_types_size 
) [virtual]

Implements AssocPairSide.

Definition at line 128 of file FBGeomAssocPairSide.cpp.

{
  int result;

  FBiGeom_getArrType(instance_, entities, entities_size, ent_types,
                     ent_types_alloc, ent_types_size, &result);
  PROCESS_ERROR;
  RETURNR(iBase_SUCCESS);
}
int FBGeomAssocPairSide::get_gids ( iBase_EntityHandle *  entities,
int  num_entities,
int *  values 
) [virtual]

Implements AssocPairSide.

Definition at line 245 of file FBGeomAssocPairSide.cpp.

{
  int values_alloc = num_entities * sizeof(int);
  int values_size;
  int result;

  FBiGeom_getArrData(instance_, entities, num_entities, gid_tag,
                     reinterpret_cast<void**>(&values), &values_alloc,
                     &values_size, &result);
  PROCESS_ERROR;
  RETURNR(iBase_SUCCESS);
}
int FBGeomAssocPairSide::get_gids ( iBase_EntitySetHandle *  sets,
int  num_sets,
int *  values 
) [virtual]

Implements AssocPairSide.

Definition at line 259 of file FBGeomAssocPairSide.cpp.

{
  char *data = reinterpret_cast<char*>(values);
  int values_alloc = sizeof(int);
  int values_size;
  int result;

  for (int i = 0; i < num_sets; i++) {
    FBiGeom_getEntSetData(instance_, sets[i], gid_tag,
                          reinterpret_cast<void**>(&data),
                          &values_alloc, &values_size, &result);
    data += values_size;
    PROCESS_ERROR;
  }
  RETURNR(iBase_SUCCESS);
}
int FBGeomAssocPairSide::get_iterator ( iBase_EntitySetHandle  set,
iBase_EntityIterator *  iter 
) [virtual]

Implements AssocPairSide.

Definition at line 237 of file FBGeomAssocPairSide.cpp.

{
  int result;
  FBiGeom_initEntIter(instance_, set, iBase_ALL_TYPES, iter, &result);
  RETURNR(iBase_SUCCESS);
}
int FBGeomAssocPairSide::get_related_ents ( iBase_EntityHandle **  entities,
int *  entities_alloc,
int *  entities_size 
) [virtual]

Implements AssocPairSide.

Definition at line 142 of file FBGeomAssocPairSide.cpp.

{
  RETURNR(iBase_FAILURE);
}
int FBGeomAssocPairSide::get_related_sets ( iBase_EntitySetHandle **  sets,
int *  sets_alloc,
int *  sets_size 
) [virtual]

Implements AssocPairSide.

Definition at line 149 of file FBGeomAssocPairSide.cpp.

{
  RETURNR(iBase_FAILURE);
}
int FBGeomAssocPairSide::get_relation_side ( iBase_EntityHandle *  entities,
int  num_entities,
void *  values 
) [virtual]

Implements AssocPairSide.

Definition at line 155 of file FBGeomAssocPairSide.cpp.

{
  int values_alloc = num_entities * sizeof(iBase_EntityHandle);
  int values_size;
  int result;

  FBiGeom_getArrData(instance_, entities, num_entities, relation_tag,
                     &values, &values_alloc, &values_size, &result);
  PROCESS_ERROR;
  RETURNR(iBase_SUCCESS);
}
int FBGeomAssocPairSide::get_relation_side ( iBase_EntitySetHandle *  sets,
int  num_sets,
void *  values 
) [virtual]

Implements AssocPairSide.

Definition at line 168 of file FBGeomAssocPairSide.cpp.

{
  char *data = static_cast<char*>(values);
  int values_alloc = sizeof(iBase_EntityHandle);
  int values_size;
  int result;

  for (int i = 0; i < num_sets; i++) {
    FBiGeom_getEntSetData(instance_, sets[i], relation_tag,
                          reinterpret_cast<void**>(&data),
                          &values_alloc, &values_size, &result);
    data += values_size;
    PROCESS_ERROR;
  }
  RETURNR(iBase_SUCCESS);
}
iBase_Instance FBGeomAssocPairSide::instance ( ) const [virtual]

Implements AssocPairSide.

Definition at line 48 of file FBGeomAssocPairSide.cpp.

{
  return instance_;
}
int FBGeomAssocPairSide::rmv_relation_side ( iBase_EntityHandle *  entities,
int  num_entities 
) [virtual]

Implements AssocPairSide.

Definition at line 214 of file FBGeomAssocPairSide.cpp.

{
  int result;

  FBiGeom_rmvArrTag(instance_, entities, num_entities, relation_tag, &result);
  PROCESS_ERROR;
  RETURNR(iBase_SUCCESS);
}
int FBGeomAssocPairSide::rmv_relation_side ( iBase_EntitySetHandle *  sets,
int  num_sets 
) [virtual]

Implements AssocPairSide.

Definition at line 224 of file FBGeomAssocPairSide.cpp.

{
  int result;

  for (int i = 0; i < num_sets; i++) {
    FBiGeom_rmvEntSetTag(instance_, sets[i], relation_tag, &result);
    PROCESS_ERROR;
  }

  RETURNR(iBase_SUCCESS);
}
int FBGeomAssocPairSide::set_relation_side ( iBase_EntityHandle *  entities,
int  num_entities,
const void *  values 
) [virtual]

Implements AssocPairSide.

Definition at line 186 of file FBGeomAssocPairSide.cpp.

{
  int result;

  FBiGeom_setArrData(instance_, entities, num_entities, relation_tag,
                     static_cast<const char*>(values),
                     num_entities*sizeof(iBase_EntityHandle), &result);
  PROCESS_ERROR;
  RETURNR(iBase_SUCCESS);
}
int FBGeomAssocPairSide::set_relation_side ( iBase_EntitySetHandle *  sets,
int  num_sets,
const void *  values 
) [virtual]

Implements AssocPairSide.

Definition at line 198 of file FBGeomAssocPairSide.cpp.

{
  const char *data = static_cast<const char*>(values);
  int size = sizeof(iBase_EntityHandle);
  int result;

  for (int i = 0; i < num_sets; i++) {
    FBiGeom_setEntSetData(instance_, sets[i], relation_tag, data, size,
                          &result);
    data += size;
    PROCESS_ERROR;
  }
  RETURNR(iBase_SUCCESS);
}

Implements AssocPairSide.

Definition at line 53 of file FBGeomAssocPairSide.cpp.

{
  return iRel_FBIGEOM_IFACE;
}

Member Data Documentation

iBase_TagHandle FBGeomAssocPairSide::gid_tag [private]

Definition at line 67 of file FBGeomAssocPairSide.hpp.

int FBGeomAssocPairSide::id [private]

Definition at line 64 of file FBGeomAssocPairSide.hpp.

FBiGeom_Instance FBGeomAssocPairSide::instance_ [private]

Definition at line 63 of file FBGeomAssocPairSide.hpp.

iBase_TagHandle FBGeomAssocPairSide::relation_tag [private]

Definition at line 66 of file FBGeomAssocPairSide.hpp.


The documentation for this class was generated from the following files:
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines