30 inline T value(
od_int64 idx )
const;
31 inline void setValue(
od_int64 idx, T v );
33 inline const T* arr()
const;
34 inline bool writable()
const;
35 inline bool canSetAll()
const;
36 inline void setAll(T);
53 { return typeid(RT)==typeid(AT) ? (RT*) ptr_ : (RT*) 0;} 61 template <
class RT,
class AT>
72 bool isOK()
const {
return ptr_; }
84 bool reSizeable()
const {
return mine_; }
99 #define mChunkSize 0x20000000 100 #elif defined __win32__ 101 #define mChunkSize 0x20000000 103 #define mChunkSize 0x800000000 115 template <
class RT,
class AT>
125 bool isOK()
const {
return cursize_>=0; }
134 const RT* arr()
const;
149 template <
class RT,
class AT>
inline 154 template <
class T>
inline 156 : src_( src ), off_( off ), writable_(true)
160 template <
class T>
inline 166 template <
class T>
inline 171 template <
class T>
inline 175 template <
class T>
inline 181 {
pErrMsg(
"Attempting to write to write-protected array"); }
185 template <
class T>
inline 191 {
pErrMsg(
"Attempting to write to write-protected array"); }
196 template <
class T>
inline 201 template <
class T>
inline 203 { T* p =
src_.arr();
return p ? p+
off_ : 0; }
206 template <
class T>
inline 208 { T* p =
src_.arr();
return p ? p+
off_ : 0; }
211 template <
class T>
inline 216 template <
class T>
inline 221 template <
class T>
inline 226 template <
class RT,
class AT>
228 : ptr_(ptr), mine_(memmine), cursize_( cursz )
232 template <
class RT,
class AT>
240 template <
class RT,
class AT>
254 template <
class RT,
class AT>
269 template <
class RT,
class AT>
284 template <
class RT,
class AT>
291 template <
class RT,
class AT>
inline 295 if ( !
mine_ )
return false;
307 if (
ptr_ && copysize>0 )
308 OD::memCopy(
ptr_, oldptr, (
size_t) (copysize*
sizeof(AT)) );
315 template <
class RT,
class AT>
inline 325 template <
class RT,
class AT>
inline 335 for (
int idx=0; idx<
ptrs_.
size(); idx++ )
342 curchunksize -= diff;
344 OD::memCopy(
ptrs_[idx], mavs.
ptrs_[idx], curchunksize*
sizeof(AT) );
350 template <
class RT,
class AT>
inline 357 template <
class RT,
class AT>
inline 376 template <
class RT,
class AT>
inline 395 template <
class RT,
class AT>
inline 404 for (
int idx=
ptrs_.
size()-1; idx>=0; idx-- )
411 curchunksize -= diff;
415 memsetter.
setSize( curchunksize );
421 template <
class RT,
class AT>
inline 429 template <
class RT,
class AT>
inline 434 template <
class RT,
class AT>
inline 443 while ( lefttoalloc )
459 if ( lefttoalloc > allocsize )
460 lefttoalloc -= allocsize;
T * arr()
Definition: valseriesimpl.h:202
void setValue(int64_t idx, RT v)
Definition: valseriesimpl.h:270
ValueSeries< T > * clone() const
Definition: valseriesimpl.h:167
#define mImplArr
Definition: valseriesimpl.h:52
ValueSeries< RT > * clone() const
Definition: valseriesimpl.h:241
Valueseries that allocates its data in smaller chunks. By doing this, it performs better in environme...
Definition: valseriesimpl.h:116
Sets large amounts of values to a constant using multiple threads.
Definition: odmemory.h:40
ValueSeries< T > & src_
Definition: valseriesimpl.h:44
bool setSize(int64_t)
Definition: valseriesimpl.h:292
ArrayValueSeries(AT *ptr, bool memmine, int64_t sz=-1)
Definition: valseriesimpl.h:227
#define mCast(tp, v)
Definition: commondefs.h:120
bool writable_
Definition: valseriesimpl.h:46
#define od_int64
Definition: plftypes.h:34
T value(int64_t idx) const
Definition: valseriesimpl.h:172
bool canSetAll() const
Definition: valseriesimpl.h:197
bool writable() const
Definition: valseriesimpl.h:128
ValueSeries of offsets.
Definition: valseriesimpl.h:22
MultiArrayValueSeries(int64_t)
Definition: valseriesimpl.h:316
const RT * arr() const
Definition: valseriesimpl.h:430
#define mMIN(x, y)
Definition: commondefs.h:52
bool writable() const
Definition: valseriesimpl.h:222
size_type size() const
Definition: objectset.h:48
RT value(int64_t idx) const
Definition: valseriesimpl.h:255
Series of values from a pointer to some kind of array. If a more advanced conversion between the retu...
Definition: valseriesimpl.h:62
int64_t off_
Definition: valseriesimpl.h:45
bool isOK() const
Definition: valseriesimpl.h:125
RT value(int64_t idx) const
Definition: valseriesimpl.h:358
int64_t cursize_
Definition: valseriesimpl.h:144
const RT * arr() const
Definition: valseriesimpl.h:81
OffsetValueSeries(ValueSeries< T > &src, int64_t off)
Definition: valseriesimpl.h:155
char bytesPerItem() const
Definition: valseriesimpl.h:140
bool execute()
Definition: paralleltask.h:69
Interface to a series of values.
Definition: odmemory.h:15
#define mTryAlloc(var, stmt)
Catches bad_alloc and sets ptr to null as normal.
Definition: commondefs.h:244
int64_t getOffset() const
Definition: valseriesimpl.h:212
int64_t cursize_
Definition: valseriesimpl.h:93
#define mChunkSize
Definition: valseriesimpl.h:103
bool isOK() const
Definition: valseriesimpl.h:72
void memValueSet(T *, T, int64_t, TaskRunner *taskrun=0)
Definition: odmemory.h:501
bool canSetAll() const
Definition: valseriesimpl.h:131
void setOffset(int64_t no)
Definition: valseriesimpl.h:217
AT * ptr_
Definition: valseriesimpl.h:91
bool setSize(int64_t)
Definition: valseriesimpl.h:435
#define od_uint64
Definition: plftypes.h:35
void setValue(int64_t idx, RT v)
Definition: valseriesimpl.h:377
int64_t size() const
Definition: valseriesimpl.h:139
void setAll(RT)
Definition: valseriesimpl.h:396
const ValueSeries< T > & source() const
Definition: valseriesimpl.h:41
void deepEraseArr(ObjectSet< T > &os)
empty the ObjectSet deleting all objects pointed to.
Definition: objectset.h:126
~ArrayValueSeries()
Definition: valseriesimpl.h:68
~MultiArrayValueSeries()
Definition: valseriesimpl.h:351
void forceCrash(bool withdump)
void setAll(RT)
Definition: valseriesimpl.h:285
virtual bool validIdx(int64_t) const
Definition: objectset.h:306
ObjectSet< AT > ptrs_
Definition: valseriesimpl.h:143
bool writable() const
Definition: valseriesimpl.h:75
void setSize(int64_t sz)
Definition: odmemory.h:53
void allowNull(bool yn=true)
Definition: objectset.h:301
#define mClass(module)
Definition: commondefs.h:161
#define pErrMsg(msg)
Usual access point for programmer error messages.
Definition: errmsg.h:34
bool mine_
Definition: valseriesimpl.h:92
void setValue(int64_t idx, T v)
Definition: valseriesimpl.h:176
void setAll(T)
Definition: valseriesimpl.h:186
const int64_t chunksize_
Definition: valseriesimpl.h:145
void setTarget(T *ptr)
Definition: odmemory.h:51
void setValue(const T &val)
Definition: odmemory.h:50
char bytesPerItem() const
Definition: valseriesimpl.h:87
ValueSeries< RT > * clone() const
Definition: valseriesimpl.h:150
int64_t size() const
Definition: valseriesimpl.h:86
bool canSetAll() const
Definition: valseriesimpl.h:78
bool reSizeable() const
Definition: valseriesimpl.h:137