WARPXM v1.10.0
|
The set of classes in this file provide a mechanism for creating self registering classes. More...
Namespaces | |
namespace | wxm |
Base namespace for everything not included in the global namespace. | |
Classes | |
class | WmIndexer< TYPE > |
template<typename T> class WxArray; More... | |
class | WmNameTree< V > |
Provides hierarchical container for T values according to unique string keys. More... | |
class | WmOpaquePtr |
Opaque Pointer object that carries the referenced data type, but does not expose this payload type as part of the pointer type. More... | |
class | WmConstOpaquePtr |
Opaque Pointer object that carries the referenced data type, but does not expose this payload type as part of the pointer type. More... | |
class | WmTypeWrapper |
class | WxAny |
Class WxAny is based on the "any" class described in "Valued
Conversion", Kevlin Henney, C++ Report, July-August 2000, pages 37–40. More... | |
class | WxBox< TYPE > |
WxBox represents a n-dimensional box of elements specified by lower coordinates and upper coordinates. More... | |
class | WxCreatorBase< B > |
class | WxCreatorForChildrenBase< B > |
class | WxCreatorMapBase< B > |
Defines Common Interface for WxCreatorMap. More... | |
class | WxCreatorMap< B > |
class | WxCreator< D, B > |
This creator is meant to be used for classes with default constructor. More... | |
class | WxCreatorForChildren< D, B > |
This creator is meant to be used for classes that require a parent argument to their constructor. More... | |
class | WxCrypt |
WxCrypt provides a container to store/retrive name-value pairs. More... | |
class | WxCryptSet |
WxCryptSet extends WxCrypt by providing, in addition to name-value pairs, an set of named WxCryptSets, thus providing a powerful way of representing hierarchical data. More... | |
class | WxCryptSetLexer |
Class that provides utility to read an input stream into a WxCryptSet. More... | |
class | wxm::lib::Except |
wxm::lib::Except is the class to use for creating and throwing exceptions. More... | |
class | WxHdf5Io |
WxHdf5Io is the interface for the HDF5 implementation of HDF5. More... | |
struct | WxHdf5NodeTypev |
HDF5 specific i/o node wrapper. More... | |
class | WxHdf5IoTmpl |
WxHdf5IoTmpl does the reading and writing to HDF5 files for a given data type. More... | |
struct | WxHdf5Traits |
Traits class for HDF5. More... | |
class | WxIoBase |
Provides an abstract interface for access to hierachical datasets. More... | |
struct | WxIoNodeTypev |
Provides a means for derived messengers to return implimentation specific message status flags and data. More... | |
class | WxIoTmpl |
WxIoTmpl is the base class for access to a hierarchical file system with groups, data sets, and attributes for those datasets. More... | |
class | WxLoggerBase< T > |
Establishes basic interface of loggers. More... | |
class | WxLogger |
class | WxLogRecordHandler |
Class to handle log messages generated by WarpX logging system. More... | |
class | WxStreamHandler |
Class to log messages to an open stream. More... | |
class | WxFileHandler |
Class to log messages to a file. More... | |
class | WxLogStream |
Provides interface to streaming iostreams to logs. More... | |
class | WxLogStreamStrm |
Works with WxLogStream for providing streaming to logs. More... | |
class | WxMpiMsg |
MPI Messenger. More... | |
struct | WxMpiMsgStatus_v |
Mpi specific message status wrapper. More... | |
class | WxMpiMsgTmpl< T > |
class | WxMpiTraits< T > |
Type traits for use in MPI messengers. More... | |
class | WxMpiTraits< bool > |
class | WxMpiTraits< char > |
class | WxMpiTraits< unsigned char > |
class | WxMpiTraits< short > |
class | WxMpiTraits< unsigned short > |
class | WxMpiTraits< int > |
class | WxMpiTraits< unsigned > |
class | WxMpiTraits< long > |
class | WxMpiTraits< unsigned long > |
class | WxMpiTraits< float > |
class | WxMpiTraits< double > |
class | WxMpiTraits< long double > |
class | WxMpiTraits< long long int > |
class | WxMsgBase |
Provides an abstract interface for message based communication between different processes. More... | |
struct | WxMsgStatus_v |
Provides a means for derived messengers to return implimentation specific message status flags and data. More... | |
class | WxMsgTmpl< T > |
Provides interface for messaging between processes. More... | |
class | WxObject |
WxObject is a base class for WarpX classes which need to go through a creation/destruction cycle within the simulation. More... | |
class | WxRange |
WxRange represents a hyper-rectangular domain of an n-dimensional space of integers. More... | |
class | WxTimer |
Timer class which keeps accurate wall time. More... | |
struct | WxTypeList< T, U > |
WxTypeList class provides a means of defining a list of types (hence the name "typelist"). More... | |
class | WxTypeMap< AtomicType, Unit > |
WxTypeMap can be used to generate a whole class hierachy at compile time. More... | |
class | WxTypeMap< WxTypeList< T1, T2 >, Unit > |
Specialization 1: Inherit from WxTypeMap generated from the elements of the typelist. More... | |
class | WxTypeMap< WxNullType, Unit > |
Specialization 3: For WxNullType do nothing. More... | |
Macros | |
#define | _WX_COL_MAJOR_ORDER 1 |
#define | _WX_ROW_MAJOR_ORDER 2 |
#define | WX_TYPELIST_1(t1) WxTypeList<t1, WxNullType> |
#define | WX_TYPELIST_2(t1, t2) WxTypeList<t1, WX_TYPELIST_1(t2)> |
#define | WX_TYPELIST_3(t1, t2, t3) WxTypeList<t1, WX_TYPELIST_2(t2, t3)> |
#define | WX_TYPELIST_4(t1, t2, t3, t4) WxTypeList<t1, WX_TYPELIST_3(t2, t3, t4)> |
#define | WX_TYPELIST_5(t1, t2, t3, t4, t5) WxTypeList<t1, WX_TYPELIST_4(t2, t3, t4, t5)> |
#define | WX_TYPELIST_6(t1, t2, t3, t4, t5, t6) WxTypeList<t1, WX_TYPELIST_5(t2, t3, t4, t5, t6)> |
#define | WX_TYPELIST_7(t1, t2, t3, t4, t5, t6, t7) WxTypeList<t1, WX_TYPELIST_6(t2, t3, t4, t5, t6, t7)> |
#define | WX_TYPELIST_8(t1, t2, t3, t4, t5, t6, t7, t8) WxTypeList<t1, WX_TYPELIST_7(t2, t3, t4, t5, t6, t7, t8)> |
#define | WX_TYPELIST_9(t1, t2, t3, t4, t5, t6, t7, t8, t9) WxTypeList<t1, WX_TYPELIST_8(t2, t3, t4, t5, t6, t7, t8, t9)> |
#define | WX_TYPELIST_10(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10) WxTypeList<t1, WX_TYPELIST_9(t2, t3, t4, t5, t6, t7, t8, t9, t10)> |
#define | WX_TYPELIST_11(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11) WxTypeList<t1, WX_TYPELIST_10(t2, t3, t4, t5, t6, t7, t8, t9, t10, t11)> |
#define | WX_TYPELIST_12(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12) WxTypeList<t1, WX_TYPELIST_11(t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12)> |
#define | WX_TYPELIST_13(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13) WxTypeList<t1, WX_TYPELIST_12(t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13)> |
#define | WX_TYPELIST_14(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14) |
#define | WX_TYPELIST_15(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15) |
#define | WX_TYPELIST_16( t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16) |
#define | WX_TYPELIST_17( t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17) |
#define | WX_TYPELIST_18( t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18) |
#define | WX_TYPELIST_19(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19) |
#define | WX_TYPELIST_20(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20) |
Typedefs | |
typedef WxTypeList< bool, WxTypeList< char, WxTypeList< unsigned char, WxTypeList< short, WxTypeList< unsigned short, WxTypeList< int, WxTypeList< unsigned int, WxTypeList< long, WxTypeList< unsigned long, WxTypeList< float, WxTypeList< double, WxTypeList< long double, WxTypeList< long long int, WxTypeList< WxAny, WxTypeList< std::vector< WxAny >, WxTypeList< std::string, WxTypeList< float *, WxTypeList< double *, WxNullType > > > > > > > > > > > > > > > > > > | WxDataTypes_t |
typelist for supported I/O and message-ing types. | |
typedef WxIoNodeTypev * | WxIoNodeType |
A simple typedef to easily refer to an WxIoNodeType pointer w/o having to know about it. | |
typedef WxMsgStatus_v * | WxMsgStatus |
Enumerations | |
enum | { WX_ERROR = -2 , WX_DONE = -1 , WX_LEFT_BOX = 256 , WX_RIGHT_BOX , WX_LEFT_ANGLE , WX_RIGHT_ANGLE , WX_ID , WX_KEY = WX_ID , WX_VALUE = WX_ID , WX_EQUAL , WX_FRONT_SLASH , WX_COMMA , WX_INT , WX_REAL , WX_STRING , WX_SEMI_COLON , WX_LEFT_ANGLE_FRONT_SLASH , WX_LEFT_CURLY_BRACKET , WX_RIGHT_CURLY_BRACKET } |
Functions | |
WmTypeWrapper::WmTypeWrapper (const std::type_info &info) | |
template<typename VALUETYPE > | |
static WmTypeWrapper | WmTypeWrapper::create () |
retreive a WmTypeWrapper object wrapping VALUETYPE | |
bool | WmTypeWrapper::operator== (const WmTypeWrapper &other) const |
bool | WmTypeWrapper::operator< (const WmTypeWrapper &other) const |
bool | WmTypeWrapper::operator== (const std::type_info &other) const |
template<typename VALUETYPE > | |
VALUETYPE | wx_access_payload_with_type_check (const WxAny &operand) |
Extract the data from the WxAny object. | |
template<typename VALUETYPE > | |
VALUETYPE | wx_access_payload_with_type_check (WxAny &operand) |
Extract the data from the WxAny object. | |
template<typename TYPE > | |
bool | operator== (const WxBox< TYPE > &wa, const WxBox< TYPE > &wb) |
Returns true if boxes are same. | |
template<class T , class H > | |
H::template Rebind< T >::Result & | wxTypeMapExtract (H &obj) |
Say one has created WxTypeMap from a typelist and class Unit. | |
template<class T , class H > | |
const H::template Rebind< T >::Result & | wxTypeMapExtract (const H &obj) |
WmIndexer< TYPE >::WmIndexer () | |
The default constructor creates an empty WmIndexer object. | |
WmIndexer< TYPE >::WmIndexer (const WmIndexer &idx) | |
WmIndexer< TYPE >::WmIndexer (unsigned rank, int *ai, const WxRange &r) | |
WmIndexer< TYPE >::~WmIndexer () | |
WmIndexer & | WmIndexer< TYPE >::operator= (const WmIndexer &idx) |
int | WmIndexer< TYPE >::index (const int *k) const |
Index arbitrary dimensional array. | |
Variables | |
const unsigned | __max_idx_size = WxRange::max_dims |
The set of classes in this file provide a mechanism for creating self registering classes.
If class D derived from class B then
REGISTER_CREATOR("mydclass",D,B);
registers a factory for objects of type D that implement a default constructor. After that, doing
B *p = WxCreatorMap<B>::getNew("mydclass");
returns a new object of type D. This way different classes derived from the same base B can be selected at run time based on the derived class registered name.
For classes that require a pointer to their parent as argument to their constructor, the following variant is provided:
REGISTER_CREATOR_FOR_CHILDREN("mydclass",D,B);
WxAny parent( const ParentClass * ); B *p = WxCreatorMap<B>::getNew("mydclass", parent);
#define _WX_COL_MAJOR_ORDER 1 |
#define _WX_ROW_MAJOR_ORDER 2 |
#define WX_TYPELIST_1 | ( | t1 | ) | WxTypeList<t1, WxNullType> |
#define WX_TYPELIST_10 | ( | t1, | |
t2, | |||
t3, | |||
t4, | |||
t5, | |||
t6, | |||
t7, | |||
t8, | |||
t9, | |||
t10 | |||
) | WxTypeList<t1, WX_TYPELIST_9(t2, t3, t4, t5, t6, t7, t8, t9, t10)> |
#define WX_TYPELIST_11 | ( | t1, | |
t2, | |||
t3, | |||
t4, | |||
t5, | |||
t6, | |||
t7, | |||
t8, | |||
t9, | |||
t10, | |||
t11 | |||
) | WxTypeList<t1, WX_TYPELIST_10(t2, t3, t4, t5, t6, t7, t8, t9, t10, t11)> |
#define WX_TYPELIST_12 | ( | t1, | |
t2, | |||
t3, | |||
t4, | |||
t5, | |||
t6, | |||
t7, | |||
t8, | |||
t9, | |||
t10, | |||
t11, | |||
t12 | |||
) | WxTypeList<t1, WX_TYPELIST_11(t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12)> |
#define WX_TYPELIST_13 | ( | t1, | |
t2, | |||
t3, | |||
t4, | |||
t5, | |||
t6, | |||
t7, | |||
t8, | |||
t9, | |||
t10, | |||
t11, | |||
t12, | |||
t13 | |||
) | WxTypeList<t1, WX_TYPELIST_12(t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13)> |
#define WX_TYPELIST_14 | ( | t1, | |
t2, | |||
t3, | |||
t4, | |||
t5, | |||
t6, | |||
t7, | |||
t8, | |||
t9, | |||
t10, | |||
t11, | |||
t12, | |||
t13, | |||
t14 | |||
) |
#define WX_TYPELIST_15 | ( | t1, | |
t2, | |||
t3, | |||
t4, | |||
t5, | |||
t6, | |||
t7, | |||
t8, | |||
t9, | |||
t10, | |||
t11, | |||
t12, | |||
t13, | |||
t14, | |||
t15 | |||
) |
#define WX_TYPELIST_16 | ( | t1, | |
t2, | |||
t3, | |||
t4, | |||
t5, | |||
t6, | |||
t7, | |||
t8, | |||
t9, | |||
t10, | |||
t11, | |||
t12, | |||
t13, | |||
t14, | |||
t15, | |||
t16 | |||
) |
#define WX_TYPELIST_17 | ( | t1, | |
t2, | |||
t3, | |||
t4, | |||
t5, | |||
t6, | |||
t7, | |||
t8, | |||
t9, | |||
t10, | |||
t11, | |||
t12, | |||
t13, | |||
t14, | |||
t15, | |||
t16, | |||
t17 | |||
) |
#define WX_TYPELIST_18 | ( | t1, | |
t2, | |||
t3, | |||
t4, | |||
t5, | |||
t6, | |||
t7, | |||
t8, | |||
t9, | |||
t10, | |||
t11, | |||
t12, | |||
t13, | |||
t14, | |||
t15, | |||
t16, | |||
t17, | |||
t18 | |||
) |
#define WX_TYPELIST_19 | ( | t1, | |
t2, | |||
t3, | |||
t4, | |||
t5, | |||
t6, | |||
t7, | |||
t8, | |||
t9, | |||
t10, | |||
t11, | |||
t12, | |||
t13, | |||
t14, | |||
t15, | |||
t16, | |||
t17, | |||
t18, | |||
t19 | |||
) |
#define WX_TYPELIST_2 | ( | t1, | |
t2 | |||
) | WxTypeList<t1, WX_TYPELIST_1(t2)> |
#define WX_TYPELIST_20 | ( | t1, | |
t2, | |||
t3, | |||
t4, | |||
t5, | |||
t6, | |||
t7, | |||
t8, | |||
t9, | |||
t10, | |||
t11, | |||
t12, | |||
t13, | |||
t14, | |||
t15, | |||
t16, | |||
t17, | |||
t18, | |||
t19, | |||
t20 | |||
) |
#define WX_TYPELIST_3 | ( | t1, | |
t2, | |||
t3 | |||
) | WxTypeList<t1, WX_TYPELIST_2(t2, t3)> |
#define WX_TYPELIST_4 | ( | t1, | |
t2, | |||
t3, | |||
t4 | |||
) | WxTypeList<t1, WX_TYPELIST_3(t2, t3, t4)> |
#define WX_TYPELIST_5 | ( | t1, | |
t2, | |||
t3, | |||
t4, | |||
t5 | |||
) | WxTypeList<t1, WX_TYPELIST_4(t2, t3, t4, t5)> |
#define WX_TYPELIST_6 | ( | t1, | |
t2, | |||
t3, | |||
t4, | |||
t5, | |||
t6 | |||
) | WxTypeList<t1, WX_TYPELIST_5(t2, t3, t4, t5, t6)> |
#define WX_TYPELIST_7 | ( | t1, | |
t2, | |||
t3, | |||
t4, | |||
t5, | |||
t6, | |||
t7 | |||
) | WxTypeList<t1, WX_TYPELIST_6(t2, t3, t4, t5, t6, t7)> |
#define WX_TYPELIST_8 | ( | t1, | |
t2, | |||
t3, | |||
t4, | |||
t5, | |||
t6, | |||
t7, | |||
t8 | |||
) | WxTypeList<t1, WX_TYPELIST_7(t2, t3, t4, t5, t6, t7, t8)> |
#define WX_TYPELIST_9 | ( | t1, | |
t2, | |||
t3, | |||
t4, | |||
t5, | |||
t6, | |||
t7, | |||
t8, | |||
t9 | |||
) | WxTypeList<t1, WX_TYPELIST_8(t2, t3, t4, t5, t6, t7, t8, t9)> |
typedef WxTypeList< bool , WxTypeList< char , WxTypeList< unsigned char , WxTypeList< short , WxTypeList< unsigned short , WxTypeList< int , WxTypeList< unsigned int , WxTypeList< long , WxTypeList< unsigned long , WxTypeList< float , WxTypeList< double , WxTypeList< long double , WxTypeList< long long int , WxTypeList< WxAny , WxTypeList< std::vector<WxAny> , WxTypeList< std::string , WxTypeList< float* , WxTypeList< double* , WxNullType> > > > > > > > > > > > > > > > > > WxDataTypes_t |
typelist for supported I/O and message-ing types.
These can be augment if needed.
NOTE: If adding more types change typelist length. Also ensure no duplicates exist in the list.
typedef WxIoNodeTypev* WxIoNodeType |
A simple typedef to easily refer to an WxIoNodeType pointer w/o having to know about it.
typedef WxMsgStatus_v* WxMsgStatus |
anonymous enum |
|
inlinestatic |
retreive a WmTypeWrapper object wrapping VALUETYPE
|
inline |
Index arbitrary dimensional array.
|
inline |
WmIndexer< TYPE > & WmIndexer< TYPE >::operator= | ( | const WmIndexer< TYPE > & | idx | ) |
|
inline |
|
inline |
Returns true if boxes are same.
WmIndexer< TYPE >::WmIndexer |
The default constructor creates an empty WmIndexer object.
This should be used only as a place holder.
WmIndexer< TYPE >::WmIndexer | ( | const WmIndexer< TYPE > & | idx | ) |
WmIndexer< TYPE >::WmIndexer | ( | unsigned | rank, |
int * | ai, | ||
const WxRange & | r | ||
) |
|
inline |
VALUETYPE wx_access_payload_with_type_check | ( | const WxAny & | operand | ) |
VALUETYPE wx_access_payload_with_type_check | ( | WxAny & | operand | ) |
const H::template Rebind< T >::Result & wxTypeMapExtract | ( | const H & | obj | ) |
H::template Rebind< T >::Result & wxTypeMapExtract | ( | H & | obj | ) |
const unsigned __max_idx_size = WxRange::max_dims |