1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136
|
// common constructor, destructor
static CFP_ARRAY_TYPE
_t1(CFP_ARRAY_TYPE, ctor_default)()
{
CFP_ARRAY_TYPE a;
a.object = new ZFP_ARRAY_TYPE();
return a;
}
static CFP_ARRAY_TYPE
_t1(CFP_ARRAY_TYPE, ctor_copy)(CFP_ARRAY_TYPE src)
{
CFP_ARRAY_TYPE a;
a.object = new ZFP_ARRAY_TYPE(*static_cast<const ZFP_ARRAY_TYPE *>(src.object));
return a;
}
static CFP_ARRAY_TYPE
_t1(CFP_ARRAY_TYPE, ctor_header)(CFP_HEADER_TYPE h, const void* buffer, size_t buffer_size_bytes)
{
CFP_ARRAY_TYPE a;
a.object = new ZFP_ARRAY_TYPE(*static_cast<zfp::array::header*>(h.object), buffer, buffer_size_bytes);
return a;
}
static void
_t1(CFP_ARRAY_TYPE, dtor)(CFP_ARRAY_TYPE self)
{
delete static_cast<ZFP_ARRAY_TYPE*>(self.object);
}
// functions defined in zfparray.h (base class)
static double
_t1(CFP_ARRAY_TYPE, rate)(CFP_ARRAY_TYPE self)
{
return static_cast<const ZFP_ARRAY_TYPE*>(self.object)->rate();
}
static double
_t1(CFP_ARRAY_TYPE, set_rate)(CFP_ARRAY_TYPE self, double rate)
{
return static_cast<ZFP_ARRAY_TYPE*>(self.object)->set_rate(rate);
}
static size_t
_t1(CFP_ARRAY_TYPE, size_bytes)(CFP_ARRAY_TYPE self, uint mask)
{
return static_cast<const ZFP_ARRAY_TYPE*>(self.object)->size_bytes(mask);
}
static size_t
_t1(CFP_ARRAY_TYPE, compressed_size)(CFP_ARRAY_TYPE self)
{
return static_cast<const ZFP_ARRAY_TYPE*>(self.object)->compressed_size();
}
static void*
_t1(CFP_ARRAY_TYPE, compressed_data)(CFP_ARRAY_TYPE self)
{
return static_cast<const ZFP_ARRAY_TYPE*>(self.object)->compressed_data();
}
static void
_t1(CFP_ARRAY_TYPE, deep_copy)(CFP_ARRAY_TYPE self, const CFP_ARRAY_TYPE src)
{
*static_cast<ZFP_ARRAY_TYPE*>(self.object) = *static_cast<const ZFP_ARRAY_TYPE*>(src.object);
}
// functions defined in subclasses
static size_t
_t1(CFP_ARRAY_TYPE, size)(CFP_ARRAY_TYPE self)
{
return static_cast<const ZFP_ARRAY_TYPE*>(self.object)->size();
}
static size_t
_t1(CFP_ARRAY_TYPE, cache_size)(CFP_ARRAY_TYPE self)
{
return static_cast<const ZFP_ARRAY_TYPE*>(self.object)->cache_size();
}
static void
_t1(CFP_ARRAY_TYPE, set_cache_size)(CFP_ARRAY_TYPE self, size_t bytes)
{
static_cast<ZFP_ARRAY_TYPE*>(self.object)->set_cache_size(bytes);
}
static void
_t1(CFP_ARRAY_TYPE, clear_cache)(CFP_ARRAY_TYPE self)
{
static_cast<const ZFP_ARRAY_TYPE*>(self.object)->clear_cache();
}
static void
_t1(CFP_ARRAY_TYPE, flush_cache)(CFP_ARRAY_TYPE self)
{
static_cast<const ZFP_ARRAY_TYPE*>(self.object)->flush_cache();
}
static void
_t1(CFP_ARRAY_TYPE, get_array)(CFP_ARRAY_TYPE self, ZFP_SCALAR_TYPE * p)
{
static_cast<const ZFP_ARRAY_TYPE*>(self.object)->get(p);
}
static void
_t1(CFP_ARRAY_TYPE, set_array)(CFP_ARRAY_TYPE self, const ZFP_SCALAR_TYPE * p)
{
static_cast<ZFP_ARRAY_TYPE*>(self.object)->set(p);
}
static ZFP_SCALAR_TYPE
_t1(CFP_ARRAY_TYPE, get_flat)(CFP_ARRAY_TYPE self, size_t i)
{
return static_cast<const ZFP_ARRAY_TYPE*>(self.object)->operator[](i);
}
static void
_t1(CFP_ARRAY_TYPE, set_flat)(CFP_ARRAY_TYPE self, size_t i, ZFP_SCALAR_TYPE val)
{
static_cast<ZFP_ARRAY_TYPE*>(self.object)->operator[](i) = val;
}
static CFP_PTR_TYPE
_t2(CFP_ARRAY_TYPE, CFP_REF_TYPE, ptr)(CFP_REF_TYPE self)
{
CFP_PTR_TYPE p;
p.reference = self;
return p;
}
static CFP_REF_TYPE
_t2(CFP_ARRAY_TYPE, CFP_PTR_TYPE, ref)(CFP_PTR_TYPE self)
{
return self.reference;
}
|