00001 #include <bundle/Bundle.hpp> 00002 #include <bundle/Slice.hpp> 00003 #include <F5/F5F.h> 00004 00005 using namespace Fiber; 00006 00007 struct Sld 00008 { 00009 Slice&S; 00010 const RefPtr<BundleLoaderProgress>&BLP; 00011 double t; 00012 00013 Sld(Slice&pS, const RefPtr<BundleLoaderProgress>&pBLP, double T) 00014 : S(pS) 00015 , BLP(pBLP), t(T) 00016 {} 00017 }; 00018 00019 00020 00021 extern "C" 00022 { 00023 herr_t grid_iterator(F5Path*grid, const char*gridname, void *operator_data); 00024 00025 herr_t vertex_iterator(F5Path*topology, const char*topologyname, 00026 int index_depth, 00027 void *operator_data); 00028 00029 } 00030 00031 RefPtr<Field> LoadField(const RefPtr<LoaderProgress>&LP, F5Path*field); 00032 00033 struct HDF5SliceLoader : Slice::Loader 00034 { 00035 RefPtr<BundleLoaderProgress> BLP; 00036 double time; 00037 F5Path *myPath; 00038 00039 HDF5SliceLoader(const RefPtr<BundleLoaderProgress>&p1, double p2, F5Path*SlicePath); 00040 00041 ~HDF5SliceLoader(); 00042 00043 bool load(const WeakPtr<Slice>&Self); 00044 }; 00045 00046 00047 struct HDF5Cleanup 00048 { 00049 static void registerLoader(const WeakPtr<HDF5SliceLoader>&H5Loader); 00050 00051 ~HDF5Cleanup(); 00052 }; 00053 00054 00055 00056