8#ifndef INCLUDED_S_BALTST_TIMINGREQUEST
9#define INCLUDED_S_BALTST_TIMINGREQUEST
43#include <bslalg_typetraits.h>
63#include <bsl_iosfwd.h>
64#include <bsl_limits.h>
68namespace bslma {
class Allocator; }
70namespace s_baltst {
class TimingRequest; }
148#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
149 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
173#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
174 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
198#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
199 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
208#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
209 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
218#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
219 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
231 template <
typename t_MANIPULATOR>
266 bsl::ostream&
print(bsl::ostream& stream,
268 int spacesPerLevel = 4)
const;
278 template <
typename t_ACCESSOR>
326 return lhs.isEqualTo(rhs);
334 return !(lhs == rhs);
342 return rhs.print(stream, 0, -1);
365bool TimingRequest::isEqualTo(
const TimingRequest& rhs)
const
369 switch (
rhs.selectionId()) {
370 case Class::SELECTION_ID_SQRT:
371 return this->
sqrt() == rhs.sqrt();
372 case Class::SELECTION_ID_BASIC:
373 return this->
basic() == rhs.basic();
374 case Class::SELECTION_ID_BIG:
375 return this->
big() == rhs.big();
389: d_selectionId(SELECTION_ID_UNDEFINED)
390, d_allocator_p(
bslma::Default::allocator(basicAllocator))
401template <
typename t_MANIPULATOR>
404 switch (d_selectionId) {
445 return d_selectionId;
448template <
typename t_ACCESSOR>
451 switch (d_selectionId) {
Definition bslma_allocator.h:545
Definition s_baltst_basicrecord.h:78
Definition s_baltst_bigrecord.h:80
Definition s_baltst_sqrt.h:70
Definition s_baltst_timingrequest.h:80
TimingRequest & operator=(const TimingRequest &rhs)
Assign to this object the value of the specified rhs object.
friend bool operator==(const TimingRequest &lhs, const TimingRequest &rhs)
Definition s_baltst_timingrequest.h:324
int makeSelection(const char *name, int nameLength)
bool isUndefinedValue() const
Definition s_baltst_timingrequest.h:507
bsls::ObjectBuffer< s_baltst::Sqrt > d_sqrt
Definition s_baltst_timingrequest.h:84
static const char CLASS_NAME[]
Definition s_baltst_timingrequest.h:116
static const bdlat_SelectionInfo SELECTION_INFO_ARRAY[]
Definition s_baltst_timingrequest.h:118
s_baltst::Sqrt & makeSqrt(const s_baltst::Sqrt &value)
const char * selectionName() const
Return the symbolic name of the current selection of this object.
s_baltst::BasicRecord & basic()
Definition s_baltst_timingrequest.h:428
s_baltst::Sqrt & makeSqrt()
bool isSqrtValue() const
Definition s_baltst_timingrequest.h:489
int accessSelection(t_ACCESSOR &accessor) const
Definition s_baltst_timingrequest.h:449
int selectionId() const
Definition s_baltst_timingrequest.h:443
static const bdlat_SelectionInfo * lookupSelectionInfo(const char *name, int nameLength)
bsls::ObjectBuffer< s_baltst::BasicRecord > d_basic
Definition s_baltst_timingrequest.h:85
bsls::ObjectBuffer< s_baltst::BigRecord > d_big
Definition s_baltst_timingrequest.h:86
s_baltst::BasicRecord & makeBasic(const s_baltst::BasicRecord &value)
int manipulateSelection(t_MANIPULATOR &manipulator)
Definition s_baltst_timingrequest.h:402
s_baltst::BigRecord & makeBig(const s_baltst::BigRecord &value)
TimingRequest(const TimingRequest &original, bslma::Allocator *basicAllocator=0)
TimingRequest(bslma::Allocator *basicAllocator=0)
Definition s_baltst_timingrequest.h:388
s_baltst::BasicRecord & makeBasic()
friend bool operator!=(const TimingRequest &lhs, const TimingRequest &rhs)
Definition s_baltst_timingrequest.h:332
s_baltst::BigRecord & makeBig()
@ SELECTION_ID_UNDEFINED
Definition s_baltst_timingrequest.h:99
@ SELECTION_ID_BASIC
Definition s_baltst_timingrequest.h:101
@ SELECTION_ID_SQRT
Definition s_baltst_timingrequest.h:100
@ SELECTION_ID_BIG
Definition s_baltst_timingrequest.h:102
friend bsl::ostream & operator<<(bsl::ostream &stream, const TimingRequest &rhs)
Definition s_baltst_timingrequest.h:339
bool isBasicValue() const
Definition s_baltst_timingrequest.h:495
static const bdlat_SelectionInfo * lookupSelectionInfo(int id)
s_baltst::Sqrt & sqrt()
Definition s_baltst_timingrequest.h:421
@ SELECTION_INDEX_BASIC
Definition s_baltst_timingrequest.h:111
@ SELECTION_INDEX_SQRT
Definition s_baltst_timingrequest.h:110
@ SELECTION_INDEX_BIG
Definition s_baltst_timingrequest.h:112
bool isBigValue() const
Definition s_baltst_timingrequest.h:501
s_baltst::BigRecord & big()
Definition s_baltst_timingrequest.h:435
@ NUM_SELECTIONS
Definition s_baltst_timingrequest.h:106
int makeSelection(int selectionId)
~TimingRequest()
Destroy this object.
Definition s_baltst_timingrequest.h:395
bsl::ostream & print(bsl::ostream &stream, int level=0, int spacesPerLevel=4) const
#define BDLAT_DECL_CHOICE_WITH_ALLOCATOR_BITWISEMOVEABLE_TRAITS(ClassName)
Definition bdlat_typetraits.h:268
#define BSLS_ASSERT(X)
Definition bsls_assert.h:1976
#define BSLS_IDENT_RCSID(tag, str)
BSLS_IDENT_RCSID() - insert ident str (specific to platform/compiler)
Definition bsls_ident.h:244
#define BSLS_IDENT_PRAGMA_ONCE
BSLS_IDENT_PRAGMA_ONCE - macro to avoid multiple inclusion
Definition bsls_ident.h:263
ALLOCATOR const STRING_VIEW_LIKE_TYPE & rhs
Definition bslstl_string.h:3918
Definition baljsn_encoder_testtypes.h:76
Definition s_baltst_address.h:66
Definition bdlat_selectioninfo.h:138
TYPE & object()
Definition bsls_objectbuffer.h:352