Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 13 Next »

Introduction

A schema variant is an object used by schema that can hold a single piece of data that can be reassigned with a new value (And possibly type).

The supported types are:

TypeDescriptionFunction to set
boolA standard C++ boolean type with true and false valuesSchemaVariantSetBool
doubleA double precision floating pointSchemaVariantSetNumber
LPCWSTRA Unicode stringSchemaVariantSetString
void *Any arbitrary dataSchemaVariantSetPointer

 

Creating/Destroying

To create a schema variant you call SchemaVariantCreate followed by a call to set some data into it with the appropriate function. Until you have set data into the newly created schema variant the type of the schema variant will be SystemType::Undefined. Calling schema variant functions on undefined schema variants may fail.

When you are finished with a schema variant call SchemaVariantDelete to free the schema variant.

 

Example

 

Setting/Changing

You can set/change the value and type of a schema variant with the following calls

FunctionDescriptionResulting type
SchemaVariantSetBoolSets the schema variant to a boolean valueSystemType::Boolean
SchemaVariantSetNumberSets the schema variant to a double valueSystemType::ANumber
SchemaVariantSetStringSets the schema variant to a string valueSystemType::AString
SchemaVariantSetPointerSets the schema variant to a pointerThe user defined type
SchemaVariantSetSets a schema variant from another schema variantSame as source schema variant

 

Example

Classes

Sometimes the schema framework may need to call functions for a schema variant in order to perform operations like casts. This may require the schema framework to know what class the schema variant belongs to. If you will need to perform class based operations on your schema variants then you should set a schema class for the schema variant by calling SchemaVariantSetSchema

 

Coercion

Coercion of schema variants is the act of forcing a schema variant to another type.

 

 

Table of Contents

  • No labels