00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #include <iostream>
00028 #include "vlvolume.h"
00029 #include "vlvoldata_diskraw.h"
00030 #include "vlgenericfactory.h"
00031 #include "diskraw.h"
00032
00033 typedef vlGenericFactory<vlVolDataDiskRawPlugin> vlVolDataDiskRawPluginFactory;
00034 VL_EXPORT_COMPONENT_FACTORY( diskraw, vlVolDataDiskRawPluginFactory );
00035
00039 vlVolDataDiskRawPlugin::vlVolDataDiskRawPlugin()
00040 {
00041 infoRef().setVersion(0, 0, 1);
00042 infoRef().setName("DiskRawLayout");
00043 infoRef().setService("DiskRaw", "Disk based raw volume layout");
00044 infoRef().addAuthor("Sarang Lakare");
00045 infoRef().setCopyrightText("2003 Sarang Lakare");
00046 }
00047
00048
00052 vlVolDataDiskRawPlugin::~vlVolDataDiskRawPlugin()
00053 {
00054 }
00055
00056 vlLayoutType vlVolDataDiskRawPlugin::layoutType() const
00057 {
00058 return (LayoutType);
00059 }
00060
00061 vlVolData * vlVolDataDiskRawPlugin::getLayout(const vlDataType & datatype, const vlDim & dim,
00062 const vlUnit & units)
00063 {
00064 vlVolData * ret;
00065 callFunctionOnDataType(datatype, ret, getLayoutT, dim, units);
00066 return (ret);
00067 }
00068
00069
00070 template <class DataType>
00071 vlVolData * vlVolDataDiskRawPlugin::getLayoutT(DataType & dummy, const vlDim & dim,
00072 const vlUnit & units)
00073 {
00074 vlVolDataLayout<DataType,LayoutType>* layout =
00075 new vlVolDataLayout<DataType,LayoutType>(dim, units);
00076 return (layout);
00077 }
00078
00079
00080 vlVolIterSuperBase * vlVolDataDiskRawPlugin::getIter(vlVolume * vol)
00081 {
00082 vlVolIterSuperBase *iter;
00083 callFunctionOnDataType(vol->dataType(), iter, getIterT, vol);
00084 return (iter);
00085 }
00086
00087 vlVolIterSuperBase * vlVolDataDiskRawPlugin::getConstIter(const vlVolume * vol)
00088 {
00089 vlVolIterSuperBase *iter;
00090 callFunctionOnDataType(vol->dataType(), iter, getConstIterT, vol);
00091 return (iter);
00092 }
00093
00094 template <class DataType>
00095 vlVolIterSuperBase * vlVolDataDiskRawPlugin::getIterT(DataType & dummy, vlVolume *vol)
00096 {
00097
00098
00099 return (0L);
00100 }
00101
00102
00103 template <class DataType>
00104 vlVolIterSuperBase * vlVolDataDiskRawPlugin::getConstIterT(DataType & dummy, const vlVolume *vol)
00105 {
00106
00107
00108 return (0L);
00109 }
00110
00111
00112