ATLAS Offline Software
Loading...
Searching...
No Matches
GlobalSim::BitFieldAccessor< Field > Class Template Reference

#include <BitSpec.h>

Inheritance diagram for GlobalSim::BitFieldAccessor< Field >:
Collaboration diagram for GlobalSim::BitFieldAccessor< Field >:

Public Member Functions

 BitFieldAccessor (const Field &field, const SG::AuxElement &obj)
BitFieldAccessor & operator() ()
auto value (bool truncate=false) const
BitFieldAccessor & operator= (const Field::value_type &value)
BitFieldAccessor & operator= (const Field::bits_type &bits)
template<typename T>
requires (std::is_integral_v<T> && !std::is_same_v<std::remove_cvref_t<T>, bool> && !std::is_integral_v<typename Field::value_type>)
BitFieldAccessor & operator= (T code)
auto bits () const
constexpr auto spec () const
template<std::size_t N>
auto extract (const std::bitset< N > &packed) const
template<std::size_t N>
auto decodeFrom (const std::bitset< N > &packed) const

Private Attributes

const Field & m_field
const SG::AuxElement & m_obj

Detailed Description

template<typename Field>
class GlobalSim::BitFieldAccessor< Field >

Definition at line 400 of file BitSpec.h.

Constructor & Destructor Documentation

◆ BitFieldAccessor()

template<typename Field>
GlobalSim::BitFieldAccessor< Field >::BitFieldAccessor ( const Field & field,
const SG::AuxElement & obj )
inline

Definition at line 402 of file BitSpec.h.

403 }
const SG::AuxElement & m_obj
Definition BitSpec.h:473

Member Function Documentation

◆ bits()

template<typename Field>
auto GlobalSim::BitFieldAccessor< Field >::bits ( ) const
inline

Definition at line 443 of file BitSpec.h.

443 {
444 return m_field.bits(m_obj);
445 }

◆ decodeFrom()

template<typename Field>
template<std::size_t N>
auto GlobalSim::BitFieldAccessor< Field >::decodeFrom ( const std::bitset< N > & packed) const
inline

Definition at line 467 of file BitSpec.h.

467 {
468 return m_field.decodeFrom(packed);
469 }

◆ extract()

template<typename Field>
template<std::size_t N>
auto GlobalSim::BitFieldAccessor< Field >::extract ( const std::bitset< N > & packed) const
inline

Definition at line 458 of file BitSpec.h.

458 {
459 return m_field.extract(packed);
460 }

◆ operator()()

template<typename Field>
BitFieldAccessor & GlobalSim::BitFieldAccessor< Field >::operator() ( )
inline

Definition at line 406 of file BitSpec.h.

406 {
407 return *this;
408 }

◆ operator=() [1/3]

template<typename Field>
BitFieldAccessor & GlobalSim::BitFieldAccessor< Field >::operator= ( const Field::bits_type & bits)
inline

Definition at line 425 of file BitSpec.h.

425 {
426 // Decode bits and set the value in m_obj
427 // ...
428 return operator=(m_field.decode(bits));
429 }
BitFieldAccessor & operator=(const Field::value_type &value)
Definition BitSpec.h:420

◆ operator=() [2/3]

template<typename Field>
BitFieldAccessor & GlobalSim::BitFieldAccessor< Field >::operator= ( const Field::value_type & value)
inline

Definition at line 420 of file BitSpec.h.

420 {
421 m_field.store(const_cast<SG::AuxElement &>(m_obj),value);
422 return *this;
423 }
auto value(bool truncate=false) const
Definition BitSpec.h:414

◆ operator=() [3/3]

template<typename Field>
template<typename T>
requires (std::is_integral_v<T> && !std::is_same_v<std::remove_cvref_t<T>, bool> && !std::is_integral_v<typename Field::value_type>)
BitFieldAccessor & GlobalSim::BitFieldAccessor< Field >::operator= ( T code)
inline

Definition at line 434 of file BitSpec.h.

435 {
436 return operator=(m_field.decode(code));
437 }

◆ spec()

template<typename Field>
auto GlobalSim::BitFieldAccessor< Field >::spec ( ) const
inlineconstexpr

Definition at line 450 of file BitSpec.h.

450{ return m_field; }

◆ value()

template<typename Field>
auto GlobalSim::BitFieldAccessor< Field >::value ( bool truncate = false) const
inline

Definition at line 414 of file BitSpec.h.

414 {
415 if(truncate) return m_field.value(m_obj,true);
416 return m_field.value(m_obj);
417 }

Member Data Documentation

◆ m_field

template<typename Field>
const Field& GlobalSim::BitFieldAccessor< Field >::m_field
private

Definition at line 472 of file BitSpec.h.

◆ m_obj

template<typename Field>
const SG::AuxElement& GlobalSim::BitFieldAccessor< Field >::m_obj
private

Definition at line 473 of file BitSpec.h.


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