Retrieving Data In Breezy



next up previous
Next: Breezy Discussion Up: Breezy Architecture Previous: The Breezy Access

Retrieving Data In Breezy

One way of using type information is in requesting data. For structures, these type descriptions can be used to specify a particular field of interest. Note that nested structures can be accessed this way also. A small example will help explain. Let's assume Breezy gives the client application the following type information:

    class valAttributes {
          char *color;
          float threeDPosition[3];
    }
    class simpleElem {
          int i;
          class valAttributes *attr;
          float vals[100][100];
    }
Assume the client further finds that there is a variable myDistArray that is a distributed two-dimensional array of simpleElem elements (by retrieving program state information using Breezy). Breezy would represent such a structure as follows:
    DistributedArray (simpleElem)
                     myDistArray[20][20];
We can now retrieve all of the elements in the variable myDistArray or a particular element (by specifying the indices in the distributed array of the particular element). We can also retrieve a specific field of the element(s) by specifying its name.
    retrieveData "myDistArray", "vals"
The above call would retrieve the data pointed to by the vals field of the myDistArray variable. This specificity is recursive, so we could further grab the threeDPosition field of the attr field, which is a class itself.
    retrieveData "myDistArray", "attr",
                 "threeDPosition"
This returns the values in the float array pointed to by the threeDPosition field in the valAttributes class. All of these requests could be repeated for a particular element by specifying the index of the element. For example to retrieve element indexed by (4,5):
    retrieveDataFromElem "myDistArray",
                         "vals", 4,  5



Bernd W. Mohr
Thu Aug 3 15:30:30 PDT 1995