sbio::FormatTraits
sbio::FormatTraits
Section titled “sbio::FormatTraits”Definition
Section titled “Definition”template<typename T, typename IO, typename EPolicy>concept=
HasBoundedDataDimensions<T> &&
HasCountableDataUnits<T> && CanFindAndConfigureStreams<T> && CanAllocateStorage<T> && HasDataRequest<T> && HasStreamState< T, StorageView<Storage<typename T::BrokerBufferRequirements, EPolicy>, EPolicy>> && CanOpenStreams<T, IO> && CanDiscoverMetadata< T, IO, StorageView<Storage<typename T::BrokerBufferRequirements, EPolicy>, EPolicy>> && CanFetchStreamData< T, IO, StorageView<Storage<typename T::BrokerBufferRequirements, EPolicy>, EPolicy>> &&
CanResolveData<T> &&
CanFillBuffer< T, IO, StorageView<Storage<typename T::BrokerBufferRequirements, EPolicy>, EPolicy>>;Detailed Description
Section titled “Detailed Description”FormatTraits Theconcept defines a conforming data-format implementation. A struct implementing the following constraints is both necessary and sufficient to serve as a data-format implementation for the rest of the generic sbio infrastructure. There are a number of additional concepts which can be used to test for optional APIs and features of a data-format implementation. The concept is subdivided into a number of sub-concepts for various pieces of the overall API. A conforming struct will look something like the following: struct keyword ImplementsFormatTraits{ normal normal //HasBoundedDataDimensions comment normal normal //———————— comment normal normal static keyword normal constexpr keyword std::size_tHeaderSize{0}; normal normal static keyword normal constexpr keyword MaxRank namespacesbio_1_1XTC1_1a312c806750b28b990f6cf7996d3740b1 member std::uint16_t{1}; normal normal static keyword normal constexpr keyword MaxNameSize namespacesbio_1_1XTC1_1a238097828eda5f09e7ade7fab018203a member std::uint16_t{1}; normal normal normal //HasCountableDataUnits comment normal normal //——————— comment normal normal using keyword DataUnit=void; normal normal using keyword StepIdxType=std::size_t; normal normal static keyword normal constexpr keyword StepIdxTypeExhaustedSentinel{ normal static_cast< keyword StepIdxType normal > keyword (-1)}; normal normal normal //CanFindAndConfigureStreams comment normal normal //––––––––––––– comment normal normal struct keyword DataSourceParameters{}; normal normal static keyword normal constexpr keyword StreamPartitioningStrategy namespacesbio_1a6633fab915f70b2c4721451902f09ef9 member PartitioningStrategy{ normal StreamPartitioningStrategy::SubDivide normal }; normal normal enum keyword Roles{}; normal normal static keyword normal constexpr keyword std::size_tRoleCount{0}; normal normal enumclass keyword DataAccessPtn:std::uint8_t{}; normal normal static keyword normal constexpr keyword std::size_tDataAccessPtnCount{0}; normal normal struct keyword StreamParameters{}; normal normal normal template keyword < normal typename keyword DS> normal normal static keyword normal bool keywordtype make_stream_brokers(DS&ds, normal normal const keyword DataSourceParameters&ds_params, normal StreamParameters&cfg); normal normal normal //CanAllocateStorage comment normal normal //—————— comment normal normal using keyword BrokerBufferRequirements=TypeList<>; normal normal static keyword AllocationRequest