|
| | BSLMF_NESTED_TRAIT_DECLARATION (TestSequence, bslma::UsesBslmaAllocator) |
| |
| | TestSequence () |
| |
| | TestSequence (bslma::Allocator *basicAllocator) |
| |
| | TestSequence (const Attribute0Type attribute0, bslma::Allocator *basicAllocator=0) |
| |
| | TestSequence (const Attribute0Type attribute0, const Attribute1Type attribute1, bslma::Allocator *basicAllocator=0) |
| |
| | TestSequence (const Attribute0Type attribute0, const Attribute1Type attribute1, const Attribute2Type attribute2, bslma::Allocator *basicAllocator=0) |
| |
| | TestSequence (const TestSequence &original, bslma::Allocator *basicAllocator=0) |
| |
| TestSequence & | operator= (const TestSequence &original) |
| |
| template<class MANIPULATOR > |
| int | manipulateAttribute (MANIPULATOR &manipulator, const char *attributeName, int attributeNameLength) |
| |
| template<class MANIPULATOR > |
| int | manipulateAttribute (MANIPULATOR &manipulator, int attributeId) |
| |
| template<class MANIPULATOR > |
| int | manipulateAttributes (MANIPULATOR &manipulator) |
| |
| void | reset () |
| |
| template<class ACCESSOR > |
| int | accessAttribute (ACCESSOR &accessor, const char *attributeName, int attributeNameLength) const |
| |
| template<class ACCESSOR > |
| int | accessAttribute (ACCESSOR &accessor, int attributeId) const |
| |
| template<class ACCESSOR > |
| int | accessAttributes (ACCESSOR &accessor) const |
| |
| const char * | className () const |
| |
| bool | hasAttribute (const char *attributeName, int attributeNameLength) const |
| |
| bool | hasAttribute (int attributeId) const |
| |
| const Attribute0Type | attribute0 () const |
| |
| const Attribute1Type | attribute1 () const |
| |
| const Attribute2Type | attribute2 () const |
| |
template<class TYPED_ATTRIBUTE_0 = TypedTestAttribute<TestNilValue, TestAttribute<0> >, class TYPED_ATTRIBUTE_1 = TypedTestAttribute<TestNilValue, TestAttribute<0> >, class TYPED_ATTRIBUTE_2 = TypedTestAttribute<TestNilValue, TestAttribute<0> >>
class s_baltst::TestSequence< TYPED_ATTRIBUTE_0, TYPED_ATTRIBUTE_1, TYPED_ATTRIBUTE_2 >
This in-core value-semantic class provides a basic implementation of the concept defined by the bdlat Sequence type category. The template parameters TYPED_ATTRIBUTE_0, TYPED_ATTRIBUTE_1, and TYPED_ATTRIBUTE_2 must all satisfy the following requirements:
- The type must have two member type definitions,
Type and Attribute.
Type must meet the requirements of an in-core value-semantic type.
Type must meet the requirements of exactly one of the bdlat value categories.
Attribute must be a specialization of the TestAttribute type. Further, each TestAttribute member type definition of a template argument must return values for TestAttribute::id() and TestAttribute::name() that are different from all others within this TestSequence specialization.
Additionally, the Type of any template argument may be TestNilValue if all Type member type definitions of subsequent template arguments are also TestNilValue.
The Type and Attribute member type definitions of the template arguments define the type and bdlat_AttributeInfo of the attributes of the bdlat Selection implementation provided by this class. A template argument having a TestNilValue Type indicates that the corresponding attribute does not exist.
See s_baltst_testsequence
template<class TYPED_ATTRIBUTE_0 = TypedTestAttribute<TestNilValue, TestAttribute<0> >, class TYPED_ATTRIBUTE_1 = TypedTestAttribute<TestNilValue, TestAttribute<0> >, class TYPED_ATTRIBUTE_2 = TypedTestAttribute<TestNilValue, TestAttribute<0> >>
template<class ACCESSOR >
| int s_baltst::TestSequence< TYPED_ATTRIBUTE_0, TYPED_ATTRIBUTE_1, TYPED_ATTRIBUTE_2 >::accessAttribute |
( |
ACCESSOR & |
accessor, |
|
|
const char * |
attributeName, |
|
|
int |
attributeNameLength |
|
) |
| const |
|
inline |
Invoke the specified accessor on the (non-modifiable) attribute of this object indicated by the specified attributeName and attributeNameLength, supplying accessor with the corresponding attribute information structure. Return a non-zero value if the attribute is not found, and the value returned from the invocation of accessor otherwise.
template<class TYPED_ATTRIBUTE_0 = TypedTestAttribute<TestNilValue, TestAttribute<0> >, class TYPED_ATTRIBUTE_1 = TypedTestAttribute<TestNilValue, TestAttribute<0> >, class TYPED_ATTRIBUTE_2 = TypedTestAttribute<TestNilValue, TestAttribute<0> >>
template<class ACCESSOR >
| int s_baltst::TestSequence< TYPED_ATTRIBUTE_0, TYPED_ATTRIBUTE_1, TYPED_ATTRIBUTE_2 >::accessAttribute |
( |
ACCESSOR & |
accessor, |
|
|
int |
attributeId |
|
) |
| const |
|
inline |
Invoke the specified accessor on the attribute of this object with the given attributeId, supplying accessor with the corresponding attribute information structure. Return non-zero if the attribute is not found, and the value returned from the invocation of accessor otherwise.
template<class TYPED_ATTRIBUTE_0 = TypedTestAttribute<TestNilValue, TestAttribute<0> >, class TYPED_ATTRIBUTE_1 = TypedTestAttribute<TestNilValue, TestAttribute<0> >, class TYPED_ATTRIBUTE_2 = TypedTestAttribute<TestNilValue, TestAttribute<0> >>
template<class ACCESSOR >
| int s_baltst::TestSequence< TYPED_ATTRIBUTE_0, TYPED_ATTRIBUTE_1, TYPED_ATTRIBUTE_2 >::accessAttributes |
( |
ACCESSOR & |
accessor | ) |
const |
|
inline |
Invoke the specified accessor sequentially on each attribute of this object, supplying accessor with the corresponding attribute information structure until such invocation returns a non-zero value. Return the value from the last invocation of accessor.
template<class TYPED_ATTRIBUTE_0 = TypedTestAttribute<TestNilValue, TestAttribute<0> >, class TYPED_ATTRIBUTE_1 = TypedTestAttribute<TestNilValue, TestAttribute<0> >, class TYPED_ATTRIBUTE_2 = TypedTestAttribute<TestNilValue, TestAttribute<0> >>
| bool s_baltst::TestSequence< TYPED_ATTRIBUTE_0, TYPED_ATTRIBUTE_1, TYPED_ATTRIBUTE_2 >::hasAttribute |
( |
const char * |
attributeName, |
|
|
int |
attributeNameLength |
|
) |
| const |
|
inline |
Return true if this object has an attribute with the specified attributeName of the specified attributeNameLength, and false otherwise.
template<class TYPED_ATTRIBUTE_0 = TypedTestAttribute<TestNilValue, TestAttribute<0> >, class TYPED_ATTRIBUTE_1 = TypedTestAttribute<TestNilValue, TestAttribute<0> >, class TYPED_ATTRIBUTE_2 = TypedTestAttribute<TestNilValue, TestAttribute<0> >>
| bool s_baltst::TestSequence< TYPED_ATTRIBUTE_0, TYPED_ATTRIBUTE_1, TYPED_ATTRIBUTE_2 >::hasAttribute |
( |
int |
attributeId | ) |
const |
|
inline |
Return true if this object has an attribute with the specified attributeId, and false otherwise.
template<class TYPED_ATTRIBUTE_0 = TypedTestAttribute<TestNilValue, TestAttribute<0> >, class TYPED_ATTRIBUTE_1 = TypedTestAttribute<TestNilValue, TestAttribute<0> >, class TYPED_ATTRIBUTE_2 = TypedTestAttribute<TestNilValue, TestAttribute<0> >>
template<class MANIPULATOR >
| int s_baltst::TestSequence< TYPED_ATTRIBUTE_0, TYPED_ATTRIBUTE_1, TYPED_ATTRIBUTE_2 >::manipulateAttribute |
( |
MANIPULATOR & |
manipulator, |
|
|
const char * |
attributeName, |
|
|
int |
attributeNameLength |
|
) |
| |
|
inline |
Invoke the specified manipulator on the address of the (modifiable) attribute indicated by the specified attributeName and attributeNameLength of this object, supplying manipulator with the corresponding attribute information structure. Return a non-zero value if the attribute is not found, and the value returned from the invocation of manipulator otherwise.
template<class TYPED_ATTRIBUTE_0 = TypedTestAttribute<TestNilValue, TestAttribute<0> >, class TYPED_ATTRIBUTE_1 = TypedTestAttribute<TestNilValue, TestAttribute<0> >, class TYPED_ATTRIBUTE_2 = TypedTestAttribute<TestNilValue, TestAttribute<0> >>
template<class MANIPULATOR >
| int s_baltst::TestSequence< TYPED_ATTRIBUTE_0, TYPED_ATTRIBUTE_1, TYPED_ATTRIBUTE_2 >::manipulateAttribute |
( |
MANIPULATOR & |
manipulator, |
|
|
int |
attributeId |
|
) |
| |
|
inline |
Invoke the specified manipulator on the address of the (modifiable) attribute indicated by the specified attributeId of this object, supplying manipulator with the corresponding attribute information structure. Return a non-zero value if the attribute is not found, and the value returned from the invocation of manipulator otherwise.
template<class TYPED_ATTRIBUTE_0 = TypedTestAttribute<TestNilValue, TestAttribute<0> >, class TYPED_ATTRIBUTE_1 = TypedTestAttribute<TestNilValue, TestAttribute<0> >, class TYPED_ATTRIBUTE_2 = TypedTestAttribute<TestNilValue, TestAttribute<0> >>
template<class MANIPULATOR >
| int s_baltst::TestSequence< TYPED_ATTRIBUTE_0, TYPED_ATTRIBUTE_1, TYPED_ATTRIBUTE_2 >::manipulateAttributes |
( |
MANIPULATOR & |
manipulator | ) |
|
|
inline |
Invoke the specified manipulator sequentially on the address of each (modifiable) attribute of this object, supplying manipulator with the corresponding attribute information structure until such invocation returns a non-zero value. Return the value from the last invocation of manipulator.