26 #define mODMemMinThreadSize 131072 48 typedef T (*ValueFunc)();
97 void setInput(
const T* ptr ) { inptr_ = ptr; invs_ = 0; }
145 void setPtr(T* ptr) { ptr_ = ptr; vs_ = 0; }
171 bool doFinish(
bool yn);
178 template <
class T>
inline 187 template <
class T>
inline 197 template <
class T>
inline 207 template <
class T>
inline 212 template <
class T>
inline 220 T* stopptr =
ptr_+stop;
221 while ( ptr<=stopptr )
231 return setPtr( start, stop-start+1 );
237 for (
od_int64 idx=start; idx<=stop; idx++ )
242 for (
od_int64 idx=start; idx<=stop; idx++ )
243 {
vs_->setValue( idx,
val_ ); }
253 OD::memSet(
ptr_+start, (
int)
val_, (
size_t) size );
262 OD::memSet(
ptr_+start, (
int)
val_, (
size_t) size );
271 OD::memSet(
ptr_+start, (
int)
val_, (
size_t) size );
277 #define mODMemSetterFullImpl(Type) \ 278 Type* ptr = ptr_ + start; \ 279 const Type* stopptr = ptr + size; \ 280 while ( ptr != stopptr ) \ 289 #define mODMemSpecialImpl( Type ) \ 291 bool MemSetter<Type>::setPtr( od_int64 start, od_int64 size ) \ 295 OD::memZero( ptr_+start, size*sizeof(Type) ); \ 296 addToNrDone( size ); \ 300 mODMemSetterFullImpl(Type); \ 315 template <
class T>
inline 321 #undef mODMemSpecialImpl 322 #undef mODMemSetterFullImpl 325 template <
class T>
inline 327 :
sz_(0), inptr_(0), invs_(0), outptr_(0), outvs_(0) {}
329 template <
class T>
inline 333 template <
class T>
inline 337 template <
class T>
inline 341 template <
class T>
inline 347 template <
class T>
inline 352 template <
class T>
inline 356 return setPtr( start, stop-start+1 );
360 for (
od_int64 idx=start; idx<=stop; idx++ )
365 for (
od_int64 idx=start; idx<=stop; idx++ )
370 for (
od_int64 idx=start; idx<=stop; idx++ )
381 template <
class T>
inline 390 template <
class T>
inline 395 , fromval_( fromval )
402 template <
class T>
inline 415 template <
class T>
inline 425 template <
class T>
inline 431 return setPtr( start, stop-start+1 );
434 for (
od_int64 idx=start; idx<=stop; idx++ )
446 for (
od_int64 idx=start; idx<=stop; idx++ )
459 template <
class T>
inline 476 template <
class T>
inline 479 T* ptr =
ptr_ + start;
480 const T* stopptr = ptr + size;
481 while ( ptr != stopptr )
495 #define cMinMemValSetParallelSize 400 509 taskrun ? taskrun->
execute( msetter )
514 const T* stopptr = arr + sz;
515 for ( T* curptr=arr; curptr!=stopptr; curptr++ )
uiString message() const
Definition: odmemory.h:55
bool doWork(int64_t, int64_t, int)
Definition: odmemory.h:353
T val_
Definition: odmemory.h:68
int64_t sz_
Definition: odmemory.h:67
T toval_
Definition: odmemory.h:162
bool doPrepare(int)
Definition: odmemory.h:208
T to(const F &fr)
Definition: convert.h:31
ValueSeries< T > * vs_
Definition: odmemory.h:65
Sets large amounts of values to a constant using multiple threads.
Definition: odmemory.h:40
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
#define mGlobal(module)
Definition: commondefs.h:160
#define od_int64
Definition: plftypes.h:34
int minThreadSize() const
Definition: odmemory.h:62
void setToValue(const T &val)
Definition: odmemory.h:144
TypeSetBase< T, I > & add(const T &)
Definition: typeset.h:344
int64_t nrIterations() const
Definition: odmemory.h:61
ValueFunc valfunc_
Definition: odmemory.h:69
TypeSet< int64_t > * repids_
Definition: odmemory.h:164
static bool execute(TaskRunner *tskr, Task &)
Taskrunner may be zero.
Definition: uistring.h:88
Goes through some mem or a ValSeries and replaces one value with another.
Definition: odmemory.h:134
void setTarget(ValueSeries< T > &vs)
Definition: odmemory.h:52
void setOutput(ValueSeries< T > &vs)
Definition: odmemory.h:101
void setSize(int64_t sz)
Definition: odmemory.h:103
Generalization of a task that can be run in parallel.
Definition: paralleltask.h:64
#define mODMemSetterFullImpl(Type)
Definition: odmemory.h:277
uiString nrDoneText() const
Definition: odmemory.h:106
int64_t sz_
Definition: odmemory.h:161
uiString nrDoneText() const
Definition: odmemory.h:56
MemSetter()
Definition: odmemory.h:179
int minThreadSize() const
Definition: odmemory.h:112
void setSize(int64_t sz)
Definition: odmemory.h:147
bool doPrepare(int)
Definition: odmemory.h:348
void setInput(const ValueSeries< T > &vs)
Definition: odmemory.h:98
Class that can execute a task.
Definition: task.h:193
bool setPtr(int64_t start, int64_t size)
Definition: odmemory.h:316
#define mODMemMinThreadSize
Definition: odmemory.h:26
const T * inptr_
Definition: odmemory.h:115
bool execute()
Definition: paralleltask.h:69
Interface to a series of values.
Definition: odmemory.h:15
Definition: odmemory.h:20
void setPtr(T *ptr)
Definition: odmemory.h:145
T * ptr_
Definition: odmemory.h:66
bool setPtr(int64_t start, int64_t size)
Definition: odmemory.h:382
TypeSet< TypeSet< int64_t > > threadrepids_
Definition: odmemory.h:165
int64_t nrIterations() const
Definition: odmemory.h:155
void setValueFunc(ValueFunc valfunc)
Definition: odmemory.h:49
void setOutput(T *ptr)
Definition: odmemory.h:100
void memValueSet(T *, T, int64_t, TaskRunner *taskrun=0)
Definition: odmemory.h:501
T * outptr_
Definition: odmemory.h:117
ValueSeries< T > * outvs_
Definition: odmemory.h:118
void setInput(const T *ptr)
Definition: odmemory.h:97
int64_t nrIterations() const
Definition: odmemory.h:111
int minThreadSize() const
Definition: odmemory.h:156
uiString message() const
Definition: odmemory.h:149
#define cMinMemValSetParallelSize
size determined experimentally on different Linux and Windows systems
Definition: odmemory.h:495
void setPtr(ValueSeries< T > &vs)
Definition: odmemory.h:146
bool doFinish(bool yn)
Definition: odmemory.h:460
#define od_uint64
Definition: plftypes.h:35
ValueSeries< T > * vs_
Definition: odmemory.h:159
void sysMemCopy(void *, const void *, int64_t)
int64_t sz_
Definition: odmemory.h:119
size_type size() const
Definition: typeset.h:263
uiString message() const
Definition: odmemory.h:105
MemCopier()
Definition: odmemory.h:326
T * ptr_
Definition: odmemory.h:160
virtual void erase()
Definition: typeset.h:360
OpendTect.
Definition: commontypes.h:25
PtrPolicy
Definition: odmemory.h:20
T fromval_
Definition: odmemory.h:163
bool doWork(int64_t, int64_t, int)
Definition: odmemory.h:426
virtual bool setSize(size_type, T val=T())
Definition: typeset.h:267
ValueSeries Copier.
Definition: odmemory.h:87
const ValueSeries< T > * invs_
Definition: odmemory.h:116
void setSize(int64_t sz)
Definition: odmemory.h:53
#define mClass(module)
Definition: commondefs.h:161
bool doWork(int64_t, int64_t, int)
Definition: odmemory.h:213
Definition: odmemory.h:20
void addToNrDone(int64_t increment)
virtual T * arr()
Definition: valseries.h:48
void setTarget(T *ptr)
Definition: odmemory.h:51
void sysMemSet(void *, char, int64_t)
#define mODMemSpecialImpl(Type)
Definition: odmemory.h:289
void setValue(const T &val)
Definition: odmemory.h:50
Definition: odmemory.h:20
bool doPrepare(int)
Definition: odmemory.h:416
uiString nrDoneText() const
Definition: odmemory.h:150
void setFromValue(const T &val)
Definition: odmemory.h:143