44#if !defined(OWL_PROPERTY_H)
48#if defined(BI_HAS_PRAGMA_ONCE)
77#ifndef STRICT_PROPERTY_SYNTAX
78 operator T() {
return Content; }
85#ifndef STRICT_PROPERTY_SYNTAX
114#ifndef STRICT_PROPERTY_SYNTAX
115 operator T() {
return Content; }
144 operator const T&()
const;
173 operator T*() {
return &Content;}
174 operator const T&() {
return Content; }
187template <
class T,
class I>
209template <
class T,
class I>
213#if defined(BI_COMP_GNUC)
214 friend class TConstArrayProperty;
216 friend TConstArrayProperty;
240template <
class T,
class I>
287 operator T() {
return Get(); }
311 operator T*() {
return &Get(); }
312 operator const T&()
const {
return Get(); }
329 TFunctorV1<const T&> Put;
361 operator T*() {
return &Get(); }
362 operator const T&() {
return Get(); }
406 TFunctorV1<const T&> Put;
414 :Content(var),Put(put){}
419 operator T() {
return Content; }
438 :Content(&var),Put(put){}
445 operator T*() {
return Content; }
446 operator const T&() {
return *Content; }
460 TFunctorV1<const T&> Put;
465template <
class T,
int index>
479 TFunctor1<T,int> Get;
483template <
class T,
int index>
492 operator T*() {
return &Get(index);}
493 operator const T&() {
return Get(index); }
501 TFunctor1<T&,int> Get;
505template <
class T,
int index>
523template <
class T,
int index>
541template <
class T,
int index>
551 operator T() {
return Get(index); }
565template <
class T,
int index>
575 operator T*() {
return &Get(index);}
576 operator const T&()
const {
return Get(index); }
582 T&
operator=( T& t) { Put(index,t);
return Get(index); }
593 TFunctor1<T&,int> Get;
594 TFunctorV2<int,const T&> Put;
599#define GETFUNCTOR(T,func) \
600 Functor((TFunctor0<T>*)nullptr, func)
601#define PUTFUNCTOR(T,func) \
602 Functor((TFunctorV1<T>*)nullptr, func)
603#define GETPUTFUNCTOR(T,funcGet,funcPut) \
604 Functor((TFunctor0<T>*)nullptr, funcGet),\
605 Functor((TFunctorV1<T>*)nullptr, funcPut)
607#define GETOBJFUNCTOR(T,func) \
608 Functor((TFunctor0<T&>*)nullptr, func)
609#define PUTOBJFUNCTOR(T,func) \
610 Functor((TFunctorV1<const T&>*)nullptr, func)
611#define GETPUTOBJFUNCTOR(T,funcGet,funcPut) \
612 Functor((TFunctor0<T&>*)nullptr, funcGet),\
613 Functor((TFunctorV1<const T&>*)nullptr, funcPut)
615#define GETMFUNCTOR(T,type,memberFunc) \
616 Functor((TFunctor0<T>*)nullptr, *this, &type::memberFunc)
617#define PUTMFUNCTOR(T,type,memberFunc) \
618 Functor((TFunctorV1<T>*)nullptr, *this, &type::memberFunc)
619#define GETPUTMFUNCTOR(T,type,memberGet,memberPut) \
620 Functor((TFunctor0<T>*)nullptr, *this, &type::memberGet),\
621 Functor((TFunctorV1<T>*)nullptr, *this, &type::memberPut)
623#define GETOBJMFUNCTOR(T,type,memberFunc) \
624 Functor((TFunctor0<T&>*)nullptr, *this, &type::memberFunc)
625#define PUTOBJMFUNCTOR(T,type,memberFunc) \
626 Functor((TFunctorV1<const T&>*)nullptr, *this, &type::memberFunc)
627#define GETPUTOBJMFUNCTOR(T,type,memberGet,memberPut) \
628 Functor((TFunctor0<T&>*)nullptr, *this, &type::memberGet),\
629 Functor((TFunctorV1<const T&>*)nullptr, *this, &type::memberPut)
631#define IDXGETFUNCTOR(T,func) \
632 Functor((TFunctor1<T,int>*)nullptr, func)
633#define IDXPUTFUNCTOR(T,func) \
634 Functor((TFunctorV2<int,T>*)nullptr, func)
635#define IDXGETPUTFUNCTOR(T,funcGet,funcPut) \
636 Functor((TFunctor1<T,int>*)nullptr, funcGet),\
637 Functor((TFunctorV2<int,T>*)nullptr, funcPut)
638#define IDXGETPUTOBJFUNCTOR(T,funcGet,funcPut) \
639 Functor((TFunctor1<T&,int>*)nullptr, funcGet),\
640 Functor((TFunctorV2<int,const T&>*)nullptr, funcPut)
642#define IDXGETMFUNCTOR(T,type,memberFunc) \
643 Functor((TFunctor1<T,int>*)nullptr, *this, &type::memberFunc)
644#define IDXPUTMFUNCTOR(T,type,memberFunc) \
645 Functor((TFunctorV2<int,T>*)nullptr, *this, &type::memberFunc)
646#define IDXGETPUTMFUNCTOR(T,type,memberGet,memberPut) \
647 Functor((TFunctor1<T,int>*)nullptr, *this, &type::memberGet),\
648 Functor((TFunctorV2<int,T>*)nullptr, *this, &type::memberPut)
649#define IDXGETPUTOBJMFUNCTOR(T,type,memberGet,memberPut) \
650 Functor((TFunctor1<T,int>*)nullptr, *this, &type::memberGet),\
651 Functor((TFunctorV2<int,const T&>*)nullptr, *this, &type::memberPut)
663template <
class T>
inline
669template <
class T>
inline
677template <
class T>
inline
685template <
class T>
inline
692template <
class T>
inline
699template <
class T>
inline
707template <
class T>
inline T*
714template <
class T>
inline const T&
722template <
class T>
inline T*
731template <
class T>
inline T&
740template <
class T>
inline const T&
748template <
class T>
inline void
#define PRECONDITION(condition)
TSetter & operator=(const TSetter &val)
TSetter & operator[](I index)
class owl::TArrayProperty::TSetter Name
const T & operator()() const
TConstArrayProperty(T *value)
TGetter & operator[](I index)
class owl::TConstArrayProperty::TGetter Name
const T & operator()() const
TGetter & operator[](I index)
TConstObjArrayProperty(T *value)
class owl::TConstObjArrayProperty::TGetter Name
Read only Property container for object.
TConstObjProperty(const T &t)
const T & operator()() const
TConstProperty(const T &t)
const T operator()() const
const T & operator()() const
TFuncObjPropertyGet(const TFunctor0< T & > get)
const T & operator()() const
TFuncObjProperty< T > & operator=(const T &t)
TFuncObjProperty(const TFunctor0< T & > get, const TFunctorV1< const T & > put)
void operator()(const T &t)
~TFuncObjPropertyIdxGet()
const T & operator()() const
TFuncObjPropertyIdxGet(const TFunctor1< T &, int > get)
TFuncObjPropertyIdx(const TFunctor1< T &, int > get, const TFunctorV2< int, const T & > put)
void operator()(const T &t)
const T & operator()() const
TFuncObjPropertyIdx< T, index > & operator=(const T &t)
void operator()(const T &t)
TFuncObjPropertyIdxPut< T, index > & operator=(const T &t)
~TFuncObjPropertyIdxPut()
TFuncObjPropertyIdxPut(const TFunctorV2< int, const T & > put)
TFuncObjPropertyPut< T > & operator=(const T &t)
TFuncObjPropertyPut(const TFunctorV1< const T & > put)
void operator()(const T &t)
~TFuncObjPropertyVarPut()
TFuncObjPropertyVarPut(T &var, const TFunctorV1< const T & > put)
TFuncObjPropertyVarPut< T > & operator=(const T &t)
const T & operator()() const
void operator()(const T &t)
const T operator()() const
TFuncPropertyGet(const TFunctor0< T > get)
void operator()(const T &t)
TFuncProperty(const TFunctor0< T > get, const TFunctorV1< T > put)
TFuncProperty< T > & operator=(const T &t)
TFuncPropertyIdxGet(const TFunctor1< T, int > get)
const T operator()() const
TFuncPropertyIdx(const TFunctor1< T, int > get, const TFunctorV2< int, T > put)
TFuncPropertyIdx< T, index > & operator=(const T &t)
void operator()(const T &t)
TFuncPropertyIdxPut(const TFunctorV2< int, T > put)
void operator()(const T &t)
TFuncPropertyIdxPut< T, index > & operator=(const T &t)
TFuncPropertyPut< T > & operator=(const T &t)
void operator()(const T &t)
TFuncPropertyPut(const TFunctorV1< T > put)
TFuncPropertyVarPut(const T &var, const TFunctorV1< T > put)
void operator()(const T &t)
TFuncPropertyVarPut< T > & operator=(const T &t)
Functor with 0 parameters, return R.
Functor with 1 parameter, return R.
Functor with 1 parameter, void return.
Functor with 2 parameters, void return.
Property container for object.
const T & operator()() const
TProperty< T > & operator=(const T &t)
void operator()(const T &t)
C++ Functor template implementation.
Object Windows Library (OWLNext Core).