Jump to content

SomDataResolve

From EDM2
Revision as of 16:41, 10 October 2017 by Martini (talk | contribs)

This function accesses instance data within an object.

Syntax

SOMObject    obj;
somDToken    dToken;
somToken     rc;

rc = somDataResolve(obj, dToken);

Parameters

obj (SOMObject)
A pointer to the object whose instance data is required.
dToken (somDToken)
A data token for the required instance data. The SOM API specifies that the data token for accessing the instance data introduced by a class is found in the instanceDataToken component of the auxiliary class data structure for that class. The example below illustrates this.


Return Code

rc (somToken)
A somToken (that is, a pointer) that points to the data in obj identified by the dToken. If obj does not contain the requested data identified by dToken, somDataResolve generates a runtime error.


Remarks

The somDataResolve function is used to access instance data within an object. This function is of use primarily to class implementors (rather than class clients) who are not using the SOM C or C++ language bindings.

For C or C++ programmers with access to the C or C++ implementation bindings for a class, instance data can be accessed using the GetData macro (which expands to a usage of somDataResolve).

Example Code

The following C/C++ expression evaluates to the address of the instance data introduced by class "XYZ" within the object "obj". This assumes that obj points to an instance of "XYZ" or a subclass of "XYZ".

#include <som.h>
somDataResolve(obj, XYZCClassData.instanceDataToken);

Related

Data Structures

  • somToken (sombtype.h)
  • SOMObject (somobj.idl)
  • somDToken (somapi.h)