ChimeraTK-DeviceAccess
03.18.00
|
Namespaces | |
detail | |
Classes | |
struct | AccessorInstanceDescriptor |
Helper class to have a complete descriton to create an Accessor. More... | |
class | AsyncAccessorManager |
The AsyncAccessorManager has three main functionalities: More... | |
class | AsyncNDRegisterAccessor |
The AsyncNDRegisterAccessor implements a data transport queue with typed data as continuation of the void queue in TransferElement. More... | |
struct | AsyncVariable |
Typeless base class. More... | |
struct | AsyncVariableImpl |
AsyncVariableImpl contains a weak pointer to an AsyncNDRegisterAccessor<UserType> and a send buffer NDRegisterAccessor<UserType>::Buffer. More... | |
class | Domain |
The Domain is the thread-safe entry point for each distribution tree. More... | |
class | DomainImpl |
class | DomainsContainer |
The DomainsContainer has a container with Domains and is performing actions on all of them. More... | |
class | DummyMuxedInterruptDistributor |
class | GenericAsyncVariable |
class | GenericMuxedInterruptDistributor |
struct | JsonDescriptorKeysV1 |
class | MuxedInterruptDistributor |
Interface base class for interrupt controller handlers. More... | |
class | MuxedInterruptDistributorFactory |
struct | PolledAsyncVariable |
Implementation of the PolledAsyncVariable for the concrete UserType. More... | |
class | SourceTypedAsyncAccessorManager |
class | SubDomain |
Send backend-specific asynchronous data to different distributors: More... | |
class | TriggeredPollDistributor |
The TriggeredPollDistributor has std::nullptr_t source data type and is polling the data for the AsyncVariables via synchronous accessors in TransferGroup. More... | |
class | VariableDistributor |
class | VoidAsyncVariable |
Typedefs | |
using | JdkV1 = JsonDescriptorKeysV1 |
Enumerations | |
enum | GmidOptionCode { ISR = 0, IER, MER, MIE, GIE, ICR, IAR, IPR, SIE, CIE, IMaskR, IModeR, IVR, ILR, IVAR, IVEAR, OPTION_CODE_COUNT, INVALID_OPTION_CODE } |
Functions | |
DECLARE_TEMPLATE_FOR_CHIMERATK_USER_TYPES (AsyncNDRegisterAccessor) | |
INSTANTIATE_TEMPLATE_FOR_CHIMERATK_USER_TYPES (AsyncNDRegisterAccessor) | |
boost::bimap< std::string, GmidOptionCode > | makeBimap (std::initializer_list< typename boost::bimap< std::string, GmidOptionCode >::value_type > list) |
This is an initializer for a boost::bimap so that it can be produced using nice syntax. More... | |
uint32_t | iToMask (const uint32_t ithInterrupt) |
Return a 32 bit mask with the ithInterrupt bit from the left set to 1 and all others 0. More... | |
GmidOptionCode | getOptionRegisterEnum (const std::string &opt) |
If the string is not a recognized option code, returns GmidOptionCode::INVALID_OPTION_CODE It is not the job of this function to do any control logic on these code, just convert the strings It uses ChimeraTK::async::GmidOptionCodeMap Example: "ISR" -> GmidOptionCode::ISR Example: "useless" -> GmidOptionCode::INVALID_OPTION_CODE. More... | |
std::string | getOptionRegisterStr (GmidOptionCode optCode) |
Given the Register option code enum, returns the corresponding string. More... | |
std::string | explainOptCode (GmidOptionCode optCode) |
This returns strings explaining the option code acronyms for use in error messages. More... | |
std::string | strSetToStr (const std::set< std::string > &strSet, char delimiter=',') |
The default delimiter is ',' TODO move this to some string helper library. More... | |
std::string | intVecToStr (const std::vector< size_t > &intVec, char delimiter=',') |
Return a string describing the intVec of the form "1,2,3" The default delimiter is ',' TODO move this to some string helper library. More... | |
std::string | controllerIDToStr (const std::vector< size_t > &controllerID) |
Return a string describing the controllerID of the form "[1,2,3]". More... | |
std::pair< std::bitset< OPTION_CODE_COUNT >, std::string > | parseAndValidateJsonDescriptionStrV0 (const std::vector< size_t > &controllerID, const std::string &descriptionJsonStr) |
This extracts and validates data from the json snippet 'descriptorJsonStr' that matches the version 1 format Expect 'descriptionJsonStr' of the form {"path":"APP.INTCB", "options":{"ICR", "IPR", "MER"...}, "version":1} controllerID is used for error reporting only. More... | |
void | steriliseOptionRegisterSettings (std::bitset< OPTION_CODE_COUNT > const &optionRegisterSettings, std::vector< size_t > const &controllerID) |
Ensures permissible combinations of option registers by throwing ChimeraTK::logic_error if there are any problems. More... | |
template boost::shared_ptr< AsyncAccessorManager > | MuxedInterruptDistributor::getAccessorManager< VariableDistributor< std::nullptr_t > > (std::vector< size_t > const &qualififedSubDomainId) |
using ChimeraTK::async::JdkV1 = typedef JsonDescriptorKeysV1 |
Definition at line 24 of file GenericMuxedInterruptDistributor.cc.
Enumerator | |
---|---|
ISR | |
IER | |
MER | |
MIE | |
GIE | |
ICR | |
IAR | |
IPR | |
SIE | |
CIE | |
IMaskR | |
IModeR | |
IVR | |
ILR | |
IVAR | |
IVEAR | |
OPTION_CODE_COUNT | |
INVALID_OPTION_CODE |
Definition at line 12 of file GenericMuxedInterruptDistributor.h.
std::string ChimeraTK::async::controllerIDToStr | ( | const std::vector< size_t > & | controllerID | ) |
Return a string describing the controllerID of the form "[1,2,3]".
Definition at line 175 of file GenericMuxedInterruptDistributor.cc.
ChimeraTK::async::DECLARE_TEMPLATE_FOR_CHIMERATK_USER_TYPES | ( | AsyncNDRegisterAccessor | ) |
std::string ChimeraTK::async::explainOptCode | ( | GmidOptionCode | optCode | ) |
This returns strings explaining the option code acronyms for use in error messages.
Ex: explainOptCode(ISR) ==> "ISR (Interrupt Status Register)"
Definition at line 107 of file GenericMuxedInterruptDistributor.cc.
GmidOptionCode ChimeraTK::async::getOptionRegisterEnum | ( | const std::string & | opt | ) |
If the string is not a recognized option code, returns GmidOptionCode::INVALID_OPTION_CODE It is not the job of this function to do any control logic on these code, just convert the strings It uses ChimeraTK::async::GmidOptionCodeMap Example: "ISR" -> GmidOptionCode::ISR Example: "useless" -> GmidOptionCode::INVALID_OPTION_CODE.
Definition at line 78 of file GenericMuxedInterruptDistributor.cc.
std::string ChimeraTK::async::getOptionRegisterStr | ( | GmidOptionCode | optCode | ) |
Given the Register option code enum, returns the corresponding string.
Definition at line 92 of file GenericMuxedInterruptDistributor.cc.
ChimeraTK::async::INSTANTIATE_TEMPLATE_FOR_CHIMERATK_USER_TYPES | ( | AsyncNDRegisterAccessor | ) |
std::string ChimeraTK::async::intVecToStr | ( | const std::vector< size_t > & | intVec, |
char | delimiter = ',' |
||
) |
Return a string describing the intVec of the form "1,2,3" The default delimiter is ',' TODO move this to some string helper library.
Definition at line 159 of file GenericMuxedInterruptDistributor.cc.
|
inline |
Return a 32 bit mask with the ithInterrupt bit from the left set to 1 and all others 0.
Definition at line 65 of file GenericMuxedInterruptDistributor.cc.
boost::bimap<std::string, GmidOptionCode> ChimeraTK::async::makeBimap | ( | std::initializer_list< typename boost::bimap< std::string, GmidOptionCode >::value_type > | list | ) |
This is an initializer for a boost::bimap so that it can be produced using nice syntax.
Ex: static const auto OptionCodeMap = makeBimap({ {"SIE", SIE}, {"IER", IER}, ... })
Definition at line 32 of file GenericMuxedInterruptDistributor.cc.
template boost::shared_ptr<AsyncAccessorManager> ChimeraTK::async::MuxedInterruptDistributor::getAccessorManager< VariableDistributor< std::nullptr_t > > | ( | std::vector< size_t > const & | qualififedSubDomainId | ) |
std::pair<std::bitset<OPTION_CODE_COUNT>, std::string> ChimeraTK::async::parseAndValidateJsonDescriptionStrV0 | ( | const std::vector< size_t > & | controllerID, |
const std::string & | descriptionJsonStr | ||
) |
This extracts and validates data from the json snippet 'descriptorJsonStr' that matches the version 1 format Expect 'descriptionJsonStr' of the form {"path":"APP.INTCB", "options":{"ICR", "IPR", "MER"...}, "version":1} controllerID is used for error reporting only.
Returns a pair containing {option flags, registerPath} options flags as a bitset indexed by the GmidOptionCode enum registerPath takes the value keyed in the descriptionJson by JsonDescriptorStandardV0::PATH_JSON_KEY ("path")
Definition at line 189 of file GenericMuxedInterruptDistributor.cc.
void ChimeraTK::async::steriliseOptionRegisterSettings | ( | std::bitset< OPTION_CODE_COUNT > const & | optionRegisterSettings, |
std::vector< size_t > const & | controllerID | ||
) |
Ensures permissible combinations of option registers by throwing ChimeraTK::logic_error if there are any problems.
Definition at line 301 of file GenericMuxedInterruptDistributor.cc.
std::string ChimeraTK::async::strSetToStr | ( | const std::set< std::string > & | strSet, |
char | delimiter = ',' |
||
) |
The default delimiter is ',' TODO move this to some string helper library.
Definition at line 141 of file GenericMuxedInterruptDistributor.cc.