#include <blpapi_name.h>
Public Member Functions | |
| Name () | |
| Name (blpapi_Name_t *handle) | |
| Name (const Name &original) | |
| Name (const char *nameString) | |
| ~Name () | |
| Name & | operator= (const Name &rhs) |
| const char * | string () const |
| size_t | length () const |
| size_t | hash () const |
| blpapi_Name_t * | impl () const |
Static Public Member Functions | |
| static Name | findName (const char *nameString) |
| static bool | hasName (const char *nameString) |
Name represents a string in a form which is efficient for hashing and comparison, thus providing efficient lookup when used as a key in either ordered or hash-based containers.
Name objects are used to identify and access the classes which define a schema - SchemaTypeDefinition, SchemaElementDefinition, Constant, and ConstantList. They are also used to access the values in Element objects and Message objects.
The Name class is an efficient substitute for a string when used as a key, providing constant-time hashing and comparision. Two Name objects constructed from strings for which strcmp() would return 0 will always compare equal.
The ordering of Name objects (as defined by operator<(Name,Name)) is consistent during a particular instance of a single application. However, the ordering is not lexical and is not necessarily consistent with the ordering of the same Name objects in any other process.
Where possible, Name objects should be initialized once and then reused. Creating a Name object from a const char* involves a search in a container requiring multiple string comparison operations.
Note: Each Name instance refers to an entry in a global static table. Name instances for identical strings will refer to the same data. There is no provision for removing entries from the static table so Name objects should be used only when the set of input strings is bounded.
For example, creating a Name for every possible field name and type in a data model is reasonable (in fact, the API will do this whenever it receives schema information). Converting sequence numbers from incoming messages to strings and creating a Name from each one of those strings, however, will cause the static table to grow in an unbounded manner, and is tantamount to a memory leak.
| blpapi::Name::Name | ( | ) |
| blpapi::Name::Name | ( | blpapi_Name_t * | handle | ) |
| blpapi::Name::Name | ( | const Name & | original | ) |
Create a Name object having the same value as the specified original.
| blpapi::Name::Name | ( | const char * | nameString | ) | [explicit] |
Construct a Name from the specified nameString. The behavior is undefined unless nameString is a null-terminated string. Note that any null-terminated string can be specified, including an empty string. Note also that constructing a Name from a const char * is a relatively expensive operation. If a Name will be used repeatedly it is preferable to create it once and re-use (or copy) the object.
| blpapi::Name::~Name | ( | ) |
Destroy this object.
| static Name blpapi::Name::findName | ( | const char * | nameString | ) | [static] |
| static bool blpapi::Name::hasName | ( | const char * | nameString | ) | [static] |
Return true if a Name has been created which matches the specified nameString; otherwise return false. The behavior is undefined if nameString does not point to a null-terminated string.
Assign to this object the value of the specified rhs, and return a reference to this modifiable object.
| const char* blpapi::Name::string | ( | ) | const |
Return a pointer to the null-terminated string value of this Name. The pointer returned will be valid at least until main() exits.
| size_t blpapi::Name::length | ( | ) | const |
Return the length of the string value of this Name, (excluding a terminating null). Note that name.length() is logically equivalent to strlen(name.string()), however the former is potentially more efficient.
| size_t blpapi::Name::hash | ( | ) | const |
Return an integral value such that for two Name objects a and b, if a == b then a.hash() == b.hash(), and if a != b then it is unlikely that a.hash() == b.hash().
| blpapi_Name_t* blpapi::Name::impl | ( | ) | const |
1.7.1