About ] Mission ] Services ] Funding ] Opportunities ] Open Tools ] Crosbie's Stuff ]

Cyberspace Engineers

Engineering Cyberspace!

Interaction

 

Interaction (client, not player) with a universe requires expressing an interest in it, and calling methods of particular objects. When calling a method the client may need to pass a variety of data types. The IUniverse interface allows accessing classes, methods, objects, interests, etc. and being able to create series and primitive values as necessary in supplying method arguments.

IUnknown/IUniverse/IValue

The interface of this node's universe is obtained via IUnknown::QueryInterface(IUniverse).

GetNode(INode**)			// The Node to which this universe belongs
EnumClasses(IEnumClass**)		// Lists classes in the universe
NewInterest(IInterest**,IClass*)	// Create a new interest in objects of a particular class
NewSeries(ISeries**,ISeriesData*)	// Creates a new series from the data that is to make it up
New[primitive value](IValue**,I[Value]Data*)	// Creates a a variety of primitive value types in this universe

IUnknown/IClass/IValue

GetUniverse(IUniverse**)		// The universe to which this class belongs
EnumMethods(IEnumMethod**,IClass*)	// Lists methods in a class

IUnknown/IMethod/IValue

GetClass(IClass**)                                    // The class of which this method is a member

IUnknown/IObject/IValue

Read(IValue**,IMethod*)        // Call a method with no argument, reading the return value
Write(IMethod*,IValue*)    // Call a method with the supplied argument, ignoring any return value
Call(IValue**,IMethod*,IValue*)    // Call a method with the supplied argument, reading the return value

IUnknown/IInterest/IValue

GetClass(IClass**)                                    // The class to which this interest belongs
GetCriterion(IValue**,IMethod*)	// Get the current criterion of this interest corresponding to the specific method
SetCriterion(IMethod*,IValue*)	// Set the current criterion of this interest corresponding to the specific method
Various methods for iterating through the objects that match this interest

IUnknown/ISeries/IValue

Various methods for reading the values in a series

IValue:IUnknown

Various methods for obtaining information about the value and translating it into the client's preferred representation

IUnknown/ISeriesData/IValue

Various methods for reading data.