/*============================================================================= Copyright 2018. Siemens Product Lifecycle Management Software Inc. All Rights Reserved. =============================================================================== File description: File name: CrfCumParamStruct.hxx Module : qry =============================================================================*/ #ifndef CRFCUMPARAMSTRUCT_HXX /* if not already included */ #define CRFCUMPARAMSTRUCT_HXX #include /* use polymorphism here, so in future when we need add new parameters, just add a new type and custom ITK still works */ struct CUMITKINPUTBASE { const char* method_name; /**< Name of method selected by user.*/ const char* release_status; /**< The release status value.*/ const int objs_num; /**< Number of selected objects.*/ const tag_t* n_objs; /**< This holds tags of all selected objects.*/ const tag_t ss_tag; /**< Tag for selected stylesheet.*/ logical isCustomLib; /**< Flag to indicate if executing from OOTB or Custom library.*/ virtual void emptyOp(){} CUMITKINPUTBASE( const char*name,const char*rs,const int num,const tag_t* objs,const tag_t ss):method_name(name),release_status(rs),objs_num(num),n_objs(objs),ss_tag(ss){} }; struct CUMITKINPUT_A : CUMITKINPUTBASE { const char* dataset_name; /**< Name of the dataset user has entered.*/ logical dataset_created; /**< This indicates dataset is created by custom ITK.*/ logical applyst; /**< This indicates stylesheet is applied by custom ITK.*/ CUMITKINPUT_A(const char*name,const char*rs,const int num,const tag_t* objs,const tag_t ss,const char* dt):CUMITKINPUTBASE(name,rs,num,objs,ss),dataset_name(dt){} }; struct CUMITKINPUT_B : CUMITKINPUT_A { const char* report_locale; /**< ID of the locale selected by user. For English value will be en_US, German will have de_DE.*/ CUMITKINPUT_B(const char*name,const char*rs,const int num,const tag_t* objs,const tag_t ss,const char* dt,const char* rl):CUMITKINPUT_A(name,rs,num,objs,ss,dt),report_locale(rl){} }; struct CUMITKINPUT_C : CUMITKINPUT_B { int n_report_options; /**< Number of the user options.*/ char** report_option_names; /**< n_report_options Custom Report UI enables users to include additional options. This holds all user entered option names.*/ char** report_option_values; /**< n_report_options This holds values for all the report options.*/ CUMITKINPUT_C(const char*name,const char*rs,const int num,const tag_t* objs,const tag_t ss,const char* dt,const char* rl,char** rd_option_names, char** rd_option_values, int rd_options_count):CUMITKINPUT_B(name,rs,num,objs,ss,dt,rl),report_option_names(rd_option_names),report_option_values(rd_option_values),n_report_options(rd_options_count){} }; #include #endif