00001 00009 #ifndef BS_CALC_PERF_BHP_BASE_H_ 00010 #define BS_CALC_PERF_BHP_BASE_H_ 00011 00012 // WTF?? 00013 #include "well_results_storage.h" 00014 #include "fip_results_storage.h" 00015 00016 namespace blue_sky 00017 { 00018 00019 template <typename strategy_t> 00020 class calc_model; 00021 00022 template <typename strategy_t> 00023 class well; 00024 00030 template <typename strategy_t> 00031 class calc_perf_bhp_base : public objbase 00032 { 00033 public: 00034 00035 typedef typename strategy_t::index_t index_t; 00036 typedef typename strategy_t::item_t item_t; 00037 00038 typedef calc_model <strategy_t> calc_model_t; 00039 typedef well <strategy_t> well_t; 00040 typedef rs_mesh_iface <strategy_t> mesh_iface_t; 00041 00042 typedef smart_ptr <calc_model_t, true> sp_calc_model_t; 00043 typedef smart_ptr <well_t, true> sp_well_t; 00044 typedef smart_ptr <mesh_iface_t, true> sp_mesh_iface_t; 00045 00046 public: 00050 virtual ~calc_perf_bhp_base () 00051 {} 00052 00059 virtual void 00060 calculate (sp_well_t &well, const sp_calc_model_t &calc_model, const sp_mesh_iface_t &mesh) const = 0; 00061 }; 00062 00063 00064 } // namespace blue_sky 00065 00066 00067 #endif // #ifndef BS_CALC_PERF_BHP_BASE_H_ 00068