BDE 4.14.0 Production release
Loading...
Searching...
No Matches
bdlb::BitStringImpUtil Struct Reference

#include <bdlb_bitstringimputil.h>

Public Types

enum  { k_BITS_PER_UINT64 = 64 }
 

Static Public Member Functions

static void andEqBits (bsl::uint64_t *dstValue, int dstIndex, bsl::uint64_t srcValue, int numBits)
 
static void andEqWord (bsl::uint64_t *dstValue, bsl::uint64_t srcValue)
 
static void minusEqBits (bsl::uint64_t *dstValue, int dstIndex, bsl::uint64_t srcValue, int numBits)
 
static void minusEqWord (bsl::uint64_t *dstValue, bsl::uint64_t srcValue)
 
static void orEqBits (bsl::uint64_t *dstValue, int dstIndex, bsl::uint64_t srcValue, int numBits)
 
static void orEqWord (bsl::uint64_t *dstValue, bsl::uint64_t srcValue)
 
static void setEqBits (bsl::uint64_t *dstValue, int dstIndex, bsl::uint64_t srcValue, int numBits)
 
static void setEqWord (bsl::uint64_t *dstValue, bsl::uint64_t srcValue)
 
static void xorEqBits (bsl::uint64_t *dstValue, int dstIndex, bsl::uint64_t srcValue, int numBits)
 
static void xorEqWord (bsl::uint64_t *dstValue, bsl::uint64_t srcValue)
 
static int find1AtMaxIndexRaw (bsl::uint64_t value)
 
static int find1AtMinIndexRaw (bsl::uint64_t value)
 

Detailed Description

This struct provides a namespace for static functions to be used solely in the implementation of BitStringUtil. The "Manipulators" are intended to be provided as arguments to templates in bdlb_bitstringutil , whereas the "Accessors" are to be called directly within that component.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
k_BITS_PER_UINT64 

Member Function Documentation

◆ andEqBits()

void bdlb::BitStringImpUtil::andEqBits ( bsl::uint64_t *  dstValue,
int  dstIndex,
bsl::uint64_t  srcValue,
int  numBits 
)
inlinestatic

Bitwise AND the specified least-significant numBits in the specified srcValue to those in the specified dstValue starting at the specified dstIndex. The behavior is undefined unless 0 <= dstIndex, 0 <= numBits, and dstIndex + numBits <= k_BITS_PER_UINT64.

◆ andEqWord()

void bdlb::BitStringImpUtil::andEqWord ( bsl::uint64_t *  dstValue,
bsl::uint64_t  srcValue 
)
inlinestatic

Assign to the specified *dstValue the value of *dstValue bitwise AND-ed with the specified srcValue.

◆ find1AtMaxIndexRaw()

int bdlb::BitStringImpUtil::find1AtMaxIndexRaw ( bsl::uint64_t  value)
inlinestatic

Return the index of the highest-order set bit in the specified non-zero value. The behavior is undefined unless 0 != value. Note that this method is "raw" due to the requirement that at least one bit in value must be set.

◆ find1AtMinIndexRaw()

int bdlb::BitStringImpUtil::find1AtMinIndexRaw ( bsl::uint64_t  value)
inlinestatic

Return the index of the lowest-order set bit in the specified non-zero value. The behavior is undefined unless 0 != value. Note that this method is "raw" due to the requirement that at least one bit in value must be set.

◆ minusEqBits()

void bdlb::BitStringImpUtil::minusEqBits ( bsl::uint64_t *  dstValue,
int  dstIndex,
bsl::uint64_t  srcValue,
int  numBits 
)
inlinestatic

Bitwise MINUS the specified least-significant numBits in the specified srcValue from those in the specified dstValue starting at the specified dstIndex. The behavior is undefined unless 0 <= dstIndex, 0 <= numBits, and dstIndex + numBits <= k_BITS_PER_UINT64. Note that the bitwise difference, a - b, is defined in C++ code as a & ~b.

◆ minusEqWord()

void bdlb::BitStringImpUtil::minusEqWord ( bsl::uint64_t *  dstValue,
bsl::uint64_t  srcValue 
)
inlinestatic

Assign to the specified *dstValue the value of *dstValue bitwise AND-ed with the complement of the specified srcValue.

◆ orEqBits()

void bdlb::BitStringImpUtil::orEqBits ( bsl::uint64_t *  dstValue,
int  dstIndex,
bsl::uint64_t  srcValue,
int  numBits 
)
inlinestatic

Bitwise OR the specified least-significant numBits in the specified srcValue to those in the specified dstValue starting at the specified dstIndex. The behavior is undefined unless 0 <= dstIndex, 0 <= numBits, and dstIndex + numBits <= k_BITS_PER_UINT64.

◆ orEqWord()

void bdlb::BitStringImpUtil::orEqWord ( bsl::uint64_t *  dstValue,
bsl::uint64_t  srcValue 
)
inlinestatic

Assign to the specified *dstValue the value of *dstValue bitwise OR-ed with the specified srcValue.

◆ setEqBits()

void bdlb::BitStringImpUtil::setEqBits ( bsl::uint64_t *  dstValue,
int  dstIndex,
bsl::uint64_t  srcValue,
int  numBits 
)
inlinestatic

Replace the specified numBits in the specified dstValue starting at the specified dstIndex with the least-significant numBits of the specified srcValue. The behavior is undefined unless 0 <= dstIndex, 0 <= numBits, and dstIndex + numBits <= k_BITS_PER_UINT64.

◆ setEqWord()

void bdlb::BitStringImpUtil::setEqWord ( bsl::uint64_t *  dstValue,
bsl::uint64_t  srcValue 
)
inlinestatic

Assign to the specified *dstValue the value of the specified srcValue.

◆ xorEqBits()

void bdlb::BitStringImpUtil::xorEqBits ( bsl::uint64_t *  dstValue,
int  dstIndex,
bsl::uint64_t  srcValue,
int  numBits 
)
inlinestatic

Bitwise XOR the specified least-significant numBits in the specified srcValue to those in the specified dstValue starting at the specified dstIndex. The behavior is undefined unless 0 <= dstIndex, 0 <= numBits, and dstIndex + numBits <= k_BITS_PER_UINT64.

◆ xorEqWord()

void bdlb::BitStringImpUtil::xorEqWord ( bsl::uint64_t *  dstValue,
bsl::uint64_t  srcValue 
)
inlinestatic

Assign to the specified *dstValue the value of *dstValue bitwise XOR-ed with the specified srcValue.


The documentation for this struct was generated from the following file: