8#ifndef INCLUDED_BALL_THRESHOLDAGGREGATE
9#define INCLUDED_BALL_THRESHOLDAGGREGATE
86#include <balscm_version.h>
88#include <bsl_cstring.h>
89#include <bsl_iosfwd.h>
104 unsigned char d_recordLevel;
105 unsigned char d_passLevel;
106 unsigned char d_triggerLevel;
107 unsigned char d_triggerAllLevel;
220 bsl::ostream&
print(bsl::ostream& stream,
222 int spacesPerLevel = 4)
const;
280 return d_recordLevel;
292 return d_triggerLevel;
298 return d_triggerAllLevel;
308 enum { k_BITS_PER_CHAR = 8 };
327, d_triggerAllLevel(0)
336: d_recordLevel(static_cast<unsigned char>(recordLevel))
337, d_passLevel(static_cast<unsigned char>(passLevel))
338, d_triggerLevel(static_cast<unsigned char>(triggerLevel))
339, d_triggerAllLevel(static_cast<unsigned char>(triggerAllLevel))
345: d_recordLevel(original.d_recordLevel)
346, d_passLevel(original.d_passLevel)
347, d_triggerLevel(original.d_triggerLevel)
348, d_triggerAllLevel(original.d_triggerAllLevel)
356 d_recordLevel =
static_cast<unsigned char>(
recordLevel);
362 d_passLevel =
static_cast<unsigned char>(
passLevel);
368 d_triggerLevel =
static_cast<unsigned char>(
triggerLevel);
385 unsigned char x[4] = {
386 static_cast<unsigned char>(thresholds.
recordLevel()),
387 static_cast<unsigned char>(thresholds.
passLevel()),
392 memcpy(&packed, x,
sizeof(x));
400 memcpy(x, &packed,
sizeof(x));
409 const ThresholdAggregate& rhs)
411 return lhs.d_recordLevel == rhs.d_recordLevel
412 && lhs.d_passLevel == rhs.d_passLevel
413 && lhs.d_triggerLevel == rhs.d_triggerLevel
414 && lhs.d_triggerAllLevel == rhs.d_triggerAllLevel;
419 const ThresholdAggregate& rhs)
426 const ThresholdAggregate& aggregate)
428 return aggregate.print(stream, 0, -1);
Definition ball_thresholdaggregate.h:233
static ThresholdAggregate unpack(unsigned packed)
Definition ball_thresholdaggregate.h:397
static unsigned pack(ThresholdAggregate thresholds)
Definition ball_thresholdaggregate.h:383
Definition ball_thresholdaggregate.h:101
int triggerLevel() const
Return the trigger level of this threshold aggregate.
Definition ball_thresholdaggregate.h:290
int recordLevel() const
Return the record level of this threshold aggregate.
Definition ball_thresholdaggregate.h:278
~ThresholdAggregate()=default
Destroy this object.
void setRecordLevel(int recordLevel)
Definition ball_thresholdaggregate.h:354
void setTriggerAllLevel(int triggerAllLevel)
Definition ball_thresholdaggregate.h:372
int passLevel() const
Return the pass level of this threshold aggregate.
Definition ball_thresholdaggregate.h:284
void setTriggerLevel(int triggerLevel)
Definition ball_thresholdaggregate.h:366
friend bool operator==(const ThresholdAggregate &, const ThresholdAggregate &)
void setPassLevel(int passLevel)
Definition ball_thresholdaggregate.h:360
static int hash(const ThresholdAggregate &aggregate, int size)
ThresholdAggregate & operator=(const ThresholdAggregate &rhs)
bsl::ostream & print(bsl::ostream &stream, int level=0, int spacesPerLevel=4) const
static int maxLevel(int recordLevel, int passLevel, int triggerLevel, int triggerAllLevel)
ThresholdAggregate()
Create a threshold aggregate whose threshold levels are all 0.
Definition ball_thresholdaggregate.h:323
int setLevels(int recordLevel, int passLevel, int triggerLevel, int triggerAllLevel)
static bool areValidThresholdLevels(int recordLevel, int passLevel, int triggerLevel, int triggerAllLevel)
Definition ball_thresholdaggregate.h:303
int triggerAllLevel() const
Return the trigger-all level of this threshold aggregate.
Definition ball_thresholdaggregate.h:296
#define BSLS_IDENT(str)
BSLS_IDENT() - insert string into .comment binary segment (if supported)
Definition bsls_ident.h:238
Definition ball_administration.h:214
bsl::ostream & operator<<(bsl::ostream &output, const Attribute &attribute)
bool operator!=(const Attribute &lhs, const Attribute &rhs)
bool operator==(const Attribute &lhs, const Attribute &rhs)
ALLOCATOR const STRING_VIEW_LIKE_TYPE & rhs
Definition bslstl_string.h:3918
ALLOCATOR & lhs
Definition bslstl_string.h:3917