edmiRemoteGetInstanceType

EdmiError edmiRemoteGetInstanceType(SdaiServerContext serverContextId,
                                     SdaiInstance      instance, 
                                     SdaiEntity        *entityId, 
                                     SdaiString        *instTypeName,
                                     SdaiInvocationId  *edmiInvocationId);


Return the type of the instance identified by the instanceId given in the argument <instance>. The instance type is returned as an entityID that uniquely identifies the entity definition instance in the remote EDMdatabase that defines the actual entity, i.e. the actual instance type.

Arguments


TypeNameComment
SdaiServerContext

serverContextId

Context identification, from edmiDefineServerContext

SdaiInstance

instance

The numeric instanceId that uniquely identifies the instance in the  EDMdatabase

SdaiEntity

entityId

A variable that will receive the entityId that uniquely identifies the instance type in the remote  EDMdatabase

SdaiString

instTypeName

A variable that will receive the name that has been assigned to the instance type identified by the returned entityId.

SdaiInvocationId

edmiInvocationId

Currently not used.

Return Value


Error rendering macro 'excerpt-include' : User 'null' does not have permission to view the page 'US:_r_EDMInterface'.

 

Options


  

 

Example


 

 EdmiError rstat;
 SdaiServerContext myContext;
 SdaiRepository repositoryId;
 SdaiModel modelId;
 SdaiEntity entityId;
 SdaiString entityName;
 SdaiInstance instId;
 SdaiAttr attrId;
 SdaiPrimitiveType attrType;
 SdaiString stringId = "721212";
 SdaiInteger integerId = 721212;
 SdaiVoid value;
  
 /* In this example, the instance Id, instId
 is an input parameter. The type of instance 
 is not specified, but it is assumed to have 
 an ID attribute of either string or integer 
 type. */ 
  
 /* Create Server Context */
 rstat = edmiDefineServerContext("MyContext",
 "Johnny", "Supervisor", "cf37ftr", 
 "TCP", "9090", "MyServerHost", 
 NULL, NULL, NULL, NULL, NULL, &myContext); 
  
 /* Find the repositoryId and
 the modelId of the instance */ 
 rstat = edmiRemoteGetInstanceModel(myContext,
 instId, &repositoryId, &modelId, NULL); 
  
 /* Get instance type */
 rstat = edmiRemoteGetInstanceType(myContext,
 instId, &entityId, &entityName, NULL); 
  
 /* Get the Id of the ID attribute */
 rstat = edmiRemoteGetAttrDefinition(myContext, entityId,
 "ID", &attrId, NULL); 
 if (rstat == sdaiEATTRUNDEF) {
 printf("\nEntity %s does not have an ID attribute", entityName); 
 goto err; 
 }
  
 /* Find the primitive type of the attribute */
 rstat = edmiRemoteGetAttrPrimitiveType(myContext,
 attrId, &attrType, NULL); 
  
 /* Apply the proper ID format */
 switch(attrType) {
  
 case sdaiINTEGER: value = &integerId; 
 break; 
 case sdaiSTRING: value = &stringId; 
 break; 
 default: printf("\nInvalid ID attribute type"); 
 goto err; 
 }
  
 /* Insert the Id */
 rstat = edmiRemotePutAttrsBN(myContext, instId, 1, NULL,
 "ID", attrType, value); 
 . . . 

 

See also

Filter by label

There are no items with the selected labels at this time.

Â