company logo

Open property handle

The difference between opening and constructing a property handle is not relevant. Opening a property handle, however, can be performed any number of times.

You may open a property handle several times. Always when opening a property handle, the currently opened handle will be closed. Since open returns an error when failing, one may immediately check the success of the open function, in which case the function returns false (no error).

A valid property handle can be opened, only, when the parent handle (ObjectSpace or Property) is valid. Otherwise, the function throws an exception. When one of the open() functions fails (e.g. because of a misspelled property name), an exception is thrown.

void OpenHandleHierarchy ( Objectspace &os ) {

  Property     person;

  Property     children;

  Property     grandChildren;

  Value        name;

  Value        firstName;

  

  person.open(os,"Person::Persons",Read);

  children.open(person,"children");

  grandChildren.open(children,"children");

  name.open(grandChildren,"name");  

  firstName.open(grandChildren,"first_name");  

  while ( person.next(true) )

    while ( children.next(true) )

      while ( grandChildren.next(true) )

        printf("Grand child: %s %s",name.toString(),firstName.toString());

}