public interface IGraphModel
Thetype exposes the following members.
Tells about the number of threads to use for the equalsAny and equalsAnyStructurally functions The normal non-parallel isomorphy comparison functions are used if this value is below 2
The model of the edges.
Enumerates all enum attribute types declared for this model.
The external types known to this model, it contains always and at least the object type, the bottom type of the external attribute types hierarchy.
If true you may query the graph with GetGraphElement for a graph element of a given unique id
If true you may query the graph elements with GetUniqueId for their unique id
Enumerates the descriptions of all attribute and incidence count indices declared in this model.
Tells whether AttributeTypeObjectCopierComparer.IsEqual functions are available, for object and external types.
Tells whether AttributeTypeObjectCopierComparer.IsLower functions are available, for object and external types.
An MD5 hash sum of the model.
The name of this model.
The model of the nodes.
Enumerates all packages declared in this model.
Enumerates all ValidateInfo objects describing constraints on the graph structure.
Called during debugging on user request, the implementation must return a named graph representation for the attribute. For attribute type object or a user defined type, which is treated as object. The attribute type may be null. The return graph must be of the same model as the graph handed in. The named graph is meant for display in the debugger, to visualize the internal structure of some attribute type. This way you can graphically inspect your own data types which are opaque to GrGen with its debugger.
Called by the graph (generic implementation) to create and bind its index set (generated code). Always called by an empty graph just constructed.
Called during debugging or emit writing, the implementation must return a string representation for the attribute. For attribute type object or a user defined type, which is treated as object. The attribute type may be null. The string is meant for consumption by humans, it does not need to be parseable.
Called when the grs importer or the shell hits a line starting with "external". The content of that line is handed in. This is typically used while replaying changes containing a method call of an external type -- after such a line was recorded, by the method called, by writing to the recorder. This is meant to replay fine-grain changes of graph attributes of external type, in contrast to full assignments handled by Parse and Serialize.
Called on an index set that was created and bound, when the graph was copy constructed from an original graph, to fill in the already available cloned content from the original graph.
Calls the AttributeTypeObjectCopierComparer.IsEqual function for object type arguments, when an attribute of object or external type is compared for equality in the interpreted sequences; you may dispatch from there to the type exact comparisons, which are called directly from the compiled sequences.
Calls the AttributeTypeObjectCopierComparer.IsLower function for object type arguments, when an attribute of object or external type is compared for ordering in the interpreted sequences; you may dispatch from there to the type exact comparisons, which are called directly from the compiled sequences.
Called during .grs import, at exactly the position in the text reader where the attribute begins. For attribute type object or a user defined type, which is treated as object. The implementation must parse from there on the attribute type requested. It must not parse beyond the serialized representation of the attribute, i.e. Peek() must return the first character not belonging to the attribute type any more. Returns the parsed object.
Called during .grs export, the implementation must return a string representation for the attribute. For attribute type object or a user defined type, which is treated as object. The serialized string must be parseable by Parse.