BDE 4.39.x Production Release
Loading...
Searching...
No Matches

Classes

struct  IsChoice
 
struct  IsChoice< bdlar::ChoiceConstRef >
 
struct  IsChoice< bdlar::ChoiceRef >
 
struct  IsChoice< s_baltst::TestDynamicType< VALUE_TYPE > >
 
struct  IsChoice< s_baltst::TestTaggedValue< TAG_TYPE, VALUE_TYPE > >
 

Enumerations

enum  { k_UNDEFINED_SELECTION_ID = -1 , UNDEFINED_SELECTION_ID = k_UNDEFINED_SELECTION_ID , BDEAT_UNDEFINED_SELECTION_ID = k_UNDEFINED_SELECTION_ID }
 

Functions

template<class TYPE >
int makeSelection (TYPE *object, int selectionId)
 
template<class TYPE >
int makeSelection (TYPE *object, const char *selectionName, int selectionNameLength)
 
template<class TYPE , class MANIPULATOR >
int manipulateSelection (TYPE *object, MANIPULATOR &manipulator)
 
template<class TYPE , class ACCESSOR >
int accessSelection (const TYPE &object, ACCESSOR &accessor)
 
template<class TYPE >
bool hasSelection (const TYPE &object, const char *selectionName, int selectionNameLength)
 
template<class TYPE >
bool hasSelection (const TYPE &object, int selectionId)
 
template<class TYPE >
int selectionId (const TYPE &object)
 
template<class TYPE >
int bdlat_choiceMakeSelection (TYPE *object, int selectionId)
 
template<class TYPE >
int bdlat_choiceMakeSelection (TYPE *object, const char *selectionName, int selectionNameLength)
 
template<class TYPE , class MANIPULATOR >
int bdlat_choiceManipulateSelection (TYPE *object, MANIPULATOR &manipulator)
 
template<class TYPE , class ACCESSOR >
int bdlat_choiceAccessSelection (const TYPE &object, ACCESSOR &accessor)
 
template<class TYPE >
bool bdlat_choiceHasSelection (const TYPE &object, const char *selectionName, int selectionNameLength)
 
template<class TYPE >
bool bdlat_choiceHasSelection (const TYPE &object, int selectionId)
 
template<class TYPE >
int bdlat_choiceSelectionId (const TYPE &object)
 

Detailed Description

This namespace provides functions that expose "choice" behavior for "choice" types. See the component-level documentation for more information.

This namespace declaration adds the default implementations of the "choice" customization-point functions to bdlat_ChoiceFunctions. These default implementations assume the type of the acted-upon object is a basic-choice type. For more information about basic-choice types, see bdlat_typetraits .

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
k_UNDEFINED_SELECTION_ID 
UNDEFINED_SELECTION_ID 
BDEAT_UNDEFINED_SELECTION_ID 

Function Documentation

◆ accessSelection()

template<class TYPE , class ACCESSOR >
int bdlat_ChoiceFunctions::accessSelection ( const TYPE &  object,
ACCESSOR &  accessor 
)

Invoke the specified accessor on the (non-modifiable) selection of the specified object, supplying accessor with the corresponding selection information structure. The supplied accessor must be a callable type that can be called as if it had the following signature:

template <class t_INFO>
int accessor(const SELECTION_TYPE& selection, const t_INFO& info);

Return the value returned from the invocation of accessor.

Precondition
The behavior is undefined unless k_UNDEFINED_SELECTION_ID != selectionId(object).

◆ bdlat_choiceAccessSelection()

template<class TYPE , class ACCESSOR >
int bdlat_ChoiceFunctions::bdlat_choiceAccessSelection ( const TYPE &  object,
ACCESSOR &  accessor 
)

◆ bdlat_choiceHasSelection() [1/2]

template<class TYPE >
bool bdlat_ChoiceFunctions::bdlat_choiceHasSelection ( const TYPE &  object,
const char *  selectionName,
int  selectionNameLength 
)

◆ bdlat_choiceHasSelection() [2/2]

template<class TYPE >
bool bdlat_ChoiceFunctions::bdlat_choiceHasSelection ( const TYPE &  object,
int  selectionId 
)

◆ bdlat_choiceMakeSelection() [1/2]

template<class TYPE >
int bdlat_ChoiceFunctions::bdlat_choiceMakeSelection ( TYPE *  object,
const char *  selectionName,
int  selectionNameLength 
)

◆ bdlat_choiceMakeSelection() [2/2]

template<class TYPE >
int bdlat_ChoiceFunctions::bdlat_choiceMakeSelection ( TYPE *  object,
int  selectionId 
)

◆ bdlat_choiceManipulateSelection()

template<class TYPE , class MANIPULATOR >
int bdlat_ChoiceFunctions::bdlat_choiceManipulateSelection ( TYPE *  object,
MANIPULATOR &  manipulator 
)

◆ bdlat_choiceSelectionId()

template<class TYPE >
int bdlat_ChoiceFunctions::bdlat_choiceSelectionId ( const TYPE &  object)

◆ hasSelection() [1/2]

template<class TYPE >
bool bdlat_ChoiceFunctions::hasSelection ( const TYPE &  object,
const char *  selectionName,
int  selectionNameLength 
)

Return true if the specified object has a selection with the specified selectionName of the specified selectionNameLength, and false otherwise.

◆ hasSelection() [2/2]

template<class TYPE >
bool bdlat_ChoiceFunctions::hasSelection ( const TYPE &  object,
int  selectionId 
)

Return true if the specified object has a selection with the specified selectionId, and false otherwise.

◆ makeSelection() [1/2]

template<class TYPE >
int bdlat_ChoiceFunctions::makeSelection ( TYPE *  object,
const char *  selectionName,
int  selectionNameLength 
)

Set the value of the specified object to be the default for the selection indicated by the specified selectionName of the specified selectionNameLength. Return 0 on success, and non-zero value otherwise (i.e., the selection is not found).

◆ makeSelection() [2/2]

template<class TYPE >
int bdlat_ChoiceFunctions::makeSelection ( TYPE *  object,
int  selectionId 
)

Set the value of the specified object to be the default for the selection indicated by the specified selectionId. Return 0 on success, and non-zero value otherwise (i.e., the selection is not found).

◆ manipulateSelection()

template<class TYPE , class MANIPULATOR >
int bdlat_ChoiceFunctions::manipulateSelection ( TYPE *  object,
MANIPULATOR &  manipulator 
)

Invoke the specified manipulator on the address of the (modifiable) selection of the specified object, supplying manipulator with the corresponding selection information structure. The supplied manipulator must be a callable type that can be called as if it had the following signature:

template <class t_INFO>
int manipulator(SELECTION_TYPE *selection, const t_INFO& info);

Return the value returned from the invocation of manipulator.

Precondition
The behavior is undefined unless k_UNDEFINED_SELECTION_ID != selectionId(*object).

◆ selectionId()

template<class TYPE >
int bdlat_ChoiceFunctions::selectionId ( const TYPE &  object)

Return the id of the current selection if the selection is defined, and k_UNDEFINED_SELECTION_ID otherwise.