OmniSciDB  b24e664e58
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Experimental::MetaTypeClassFactory< CLASSIFICATIONS_PACK > Class Template Reference

#include <ExperimentalTypeUtilities.h>

Public Types

using MetaTypeClassContainer = MetaTypeClassAny< CLASSIFICATIONS_PACK...>
 

Static Public Member Functions

template<typename SQL_TYPE_INFO >
static auto getMetaTypeClass (SQL_TYPE_INFO const &sql_type_info) -> MetaTypeClassContainer
 

Static Private Member Functions

template<typename SQL_TYPE_INFO , MetaTypeClassifications FIRST_TYPE>
static void resolveClassification (MetaTypeClassContainer &return_value, SQL_TYPE_INFO const &sql_type_info)
 
template<typename SQL_TYPE_INFO , MetaTypeClassifications FIRST_TYPE, MetaTypeClassifications SECOND_TYPE, MetaTypeClassifications... REMAINING_TYPES>
static void resolveClassification (MetaTypeClassContainer &return_value, SQL_TYPE_INFO const &sql_type_info)
 

Detailed Description

template<MetaTypeClassifications... CLASSIFICATIONS_PACK>
class Experimental::MetaTypeClassFactory< CLASSIFICATIONS_PACK >

Definition at line 159 of file ExperimentalTypeUtilities.h.

Member Typedef Documentation

template<MetaTypeClassifications... CLASSIFICATIONS_PACK>
using Experimental::MetaTypeClassFactory< CLASSIFICATIONS_PACK >::MetaTypeClassContainer = MetaTypeClassAny<CLASSIFICATIONS_PACK...>

Definition at line 161 of file ExperimentalTypeUtilities.h.

Member Function Documentation

template<MetaTypeClassifications... CLASSIFICATIONS_PACK>
template<typename SQL_TYPE_INFO >
static auto Experimental::MetaTypeClassFactory< CLASSIFICATIONS_PACK >::getMetaTypeClass ( SQL_TYPE_INFO const &  sql_type_info) -> MetaTypeClassContainer
inlinestatic

Definition at line 164 of file ExperimentalTypeUtilities.h.

References Experimental::MetaTypeClassFactory< CLASSIFICATIONS_PACK >::resolveClassification().

Referenced by Executor::executePlanWithoutGroupBy(), and Experimental::FullMetaTypeClassSwitch().

165  {
166  MetaTypeClassContainer return_value;
167  resolveClassification<SQL_TYPE_INFO, CLASSIFICATIONS_PACK...>(return_value,
168  sql_type_info);
169  return return_value;
170  }
static void resolveClassification(MetaTypeClassContainer &return_value, SQL_TYPE_INFO const &sql_type_info)
MetaTypeClassAny< CLASSIFICATIONS_PACK...> MetaTypeClassContainer

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<MetaTypeClassifications... CLASSIFICATIONS_PACK>
template<typename SQL_TYPE_INFO , MetaTypeClassifications FIRST_TYPE>
static void Experimental::MetaTypeClassFactory< CLASSIFICATIONS_PACK >::resolveClassification ( MetaTypeClassContainer return_value,
SQL_TYPE_INFO const &  sql_type_info 
)
inlinestaticprivate

Definition at line 174 of file ExperimentalTypeUtilities.h.

Referenced by Experimental::MetaTypeClassFactory< CLASSIFICATIONS_PACK >::getMetaTypeClass(), and Experimental::MetaTypeClassFactory< CLASSIFICATIONS_PACK >::resolveClassification().

175  {
176  if (MetaTypeClassDeterminant<FIRST_TYPE>::isTargetClass(sql_type_info)) {
177  static_cast<CapturedMetaTypeClassOptional<FIRST_TYPE>&>(return_value) =
178  MetaTypeClass<FIRST_TYPE>();
179  return;
180  }
181  static_cast<UncapturedMetaTypeClassOptional&>(return_value) =
182  UncapturedMetaTypeClass();
183  }
MetaTypeOptional< UncapturedMetaTypeClass > UncapturedMetaTypeClassOptional

+ Here is the caller graph for this function:

template<MetaTypeClassifications... CLASSIFICATIONS_PACK>
template<typename SQL_TYPE_INFO , MetaTypeClassifications FIRST_TYPE, MetaTypeClassifications SECOND_TYPE, MetaTypeClassifications... REMAINING_TYPES>
static void Experimental::MetaTypeClassFactory< CLASSIFICATIONS_PACK >::resolveClassification ( MetaTypeClassContainer return_value,
SQL_TYPE_INFO const &  sql_type_info 
)
inlinestaticprivate

Definition at line 189 of file ExperimentalTypeUtilities.h.

References Experimental::MetaTypeClassFactory< CLASSIFICATIONS_PACK >::resolveClassification().

190  {
191  if (MetaTypeClassDeterminant<FIRST_TYPE>::isTargetClass(sql_type_info)) {
192  static_cast<CapturedMetaTypeClassOptional<FIRST_TYPE>>(return_value) =
193  MetaTypeClass<FIRST_TYPE>();
194  return;
195  }
196  resolveClassification<SQL_TYPE_INFO, SECOND_TYPE, REMAINING_TYPES...>(return_value,
197  sql_type_info);
198  }
static void resolveClassification(MetaTypeClassContainer &return_value, SQL_TYPE_INFO const &sql_type_info)

+ Here is the call graph for this function:


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