BLPAPI C++
3.24.8
|
#include <blpapi_schema.h>
Public Member Functions | |
SchemaTypeDefinition (blpapi_SchemaTypeDefinition_t *handle) | |
~SchemaTypeDefinition () | |
void | setUserData (void *userData) |
int | datatype () const |
Name | name () const |
const char * | description () const |
int | status () const |
size_t | numElementDefinitions () const |
bool | isComplexType () const |
bool | isSimpleType () const |
bool | isEnumerationType () const |
bool | hasElementDefinition (const Name &name) const |
bool | hasElementDefinition (const char *name) const |
SchemaElementDefinition | getElementDefinition (const Name &name) const |
SchemaElementDefinition | getElementDefinition (const char *nameString) const |
SchemaElementDefinition | getElementDefinition (size_t index) const |
const ConstantList | enumeration () const |
void * | userData () const |
std::ostream & | print (std::ostream &stream, int level=0, int spacesPerLevel=4) const |
This class implements a representation of a "type" that can be used within a schema, including both simple atomic types (integers, dates, strings, etc.) as well as "complex" types defined a sequences of or choice among a collection (named) elements, each of which is in turn described by another type. In addition to accessors for the type's structure, this class also offers access to metadata providing a description and deprecation status for the type. Finally, SchemaTypeDefinition
provides an interface for associating arbitrary user-defined data (specified as a void*
) with a type definition.
Each SchemaElementDefinition
object is associated with a single SchemaTypeDefinition
; one SchemaTypeDefinition
may be used by zero, one, or many SchemaElementDefinition
objects.
SchemaTypeDefinition
objects are read-only, with the exception of a single void*
attribute for storing user data. SchemaTypeDefinition
objects have reference semantics with respect to this user data field: calling c.setUserData(void*)
modifies the user data associated with c
, as well as that associated with all copies of c
. As a result, functions which set or read this attribute are NOT per-object thread-safe. Clients must synchronize such operations across all copies of an object.
Application clients need never create fresh SchemaTypeDefinition
objects directly; applications will typically work with copies of objects returned by other blpapi
components.
|
explicit |
~SchemaTypeDefinition | ( | ) |
Destroy this object.
int datatype | ( | ) | const |
Return the DataType
of this SchemaTypeDefinition
as an integer specified by the blpapi_DataType_t
enumeration defined in blpapi_types.h
.
const char * description | ( | ) | const |
Return a null-terminated string which contains a human readable description of this SchemaTypeDefinition
. The returned pointer remains valid until this SchemaTypeDefinition
is destroyed.
const ConstantList enumeration | ( | ) | const |
Return a ConstantList
containing all possible values of the enumeration defined by this type. The behavior of this function is undefined unless isEnumerationType() == true
.
SchemaElementDefinition getElementDefinition | ( | const Name & | name | ) | const |
Return the definition of the element identified by the specified name
. If hasElementDefinition(name) != true
then an exception is thrown.
SchemaElementDefinition getElementDefinition | ( | const char * | nameString | ) | const |
Return the definition of the element identified by the specified nameString
. If hasElementDefinition(nameString) != true
then an exception is thrown.
SchemaElementDefinition getElementDefinition | ( | size_t | index | ) | const |
Return the definition of the element a the specified index
in the sequence of elements. If index >= numElementDefinitions()
an exception is thrown.
bool hasElementDefinition | ( | const Name & | name | ) | const |
Return true
if this SchemaTypeDefinition
contains an element with the specified name
; otherwise returns false
.
bool hasElementDefinition | ( | const char * | name | ) | const |
Return true
if this SchemaTypeDefinition
contains an element with the specified name
; otherwise returns false
.
bool isComplexType | ( | ) | const |
Return true
if this SchemaTypeDefinition
represents a sequence or choice type.
bool isEnumerationType | ( | ) | const |
Return true
if this SchemaTypeDefinition
represents an enumeration type.
bool isSimpleType | ( | ) | const |
Return true
if this SchemaTypeDefinition
represents neither a sequence nor a choice type.
Name name | ( | ) | const |
Return the name of this SchemaTypeDefinition
.
size_t numElementDefinitions | ( | ) | const |
Return the number of SchemaElementDefinition
objects contained by this SchemaTypeDefinition
. If this SchemaTypeDefinition
is neither a choice nor a sequence this will return 0.
std::ostream & print | ( | std::ostream & | stream, |
int | level = 0 , |
||
int | spacesPerLevel = 4 |
||
) | const |
Format this SchemaTypeDefinition to the specified output stream
at the (absolute value of) the optionally specified indentation level
and return a reference to stream
. If level
is specified, optionally specify spacesPerLevel
, the number of spaces per indentation level for this and all of its nested objects. If level
is negative, suppress indentation of the first line. If spacesPerLevel
is negative, format the entire output on one line, suppressing all but the initial indentation (as governed by level
).
void setUserData | ( | void * | userData | ) |
Set the user data associated with this SchemaTypeDefinition
– and all copies of this SchemaTypeDefinition
– to the specified userData
. Clients are responsible for synchronizing calls to this function, and to userData()
, across all copies of this SchemaTypeDefinition
object.
int status | ( | ) | const |
Return the deprecation status, as a SchemaStatus::Value
, of this SchemaTypeDefinition
.
void * userData | ( | ) | const |
Return the user data associated with this SchemaTypeDefinition
. If no user data has been associated with this SchemaTypeDefinition
then return 0. Clients are responsible for synchronizing calls to this function with calls to setUserData(void*)
made on not only this SchemaTypeDefinition
, but also all copies of this SchemaTypeDefinition
. Note that SchemaTypeDefinition
objects have reference semantics: this function will reflect the last value set on any copy of this SchemaTypeDefinition
.