Temporarily removing menuetlibc
git-svn-id: svn://kolibrios.org@4799 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
@@ -1,113 +0,0 @@
|
||||
#ifndef SIGCXX_HANDLE_H
|
||||
#define SIGCXX_HANDLE_H
|
||||
#include <sigc++config.h>
|
||||
|
||||
#ifdef SIGC_CXX_NAMESPACES
|
||||
namespace SigC
|
||||
{
|
||||
#endif
|
||||
|
||||
// Signiture for Handles
|
||||
template <class Obj,class Scope_>
|
||||
class Handle
|
||||
{
|
||||
protected:
|
||||
Scope_ scope_;
|
||||
public:
|
||||
// access
|
||||
Obj* obj()
|
||||
{
|
||||
return static_cast<Obj*>(scope_.cache());
|
||||
}
|
||||
Obj* obj() const
|
||||
{
|
||||
return static_cast<Obj*>(scope_.cache());
|
||||
}
|
||||
|
||||
bool connected() const
|
||||
{return (scope_.object()!=0);}
|
||||
operator Obj*()
|
||||
{return (obj());}
|
||||
operator Obj*() const
|
||||
{return (obj());}
|
||||
|
||||
Obj& operator*() const
|
||||
{return *(obj());}
|
||||
Obj* operator->() const
|
||||
{return (obj());}
|
||||
|
||||
Scope_& scope()
|
||||
{return scope_;}
|
||||
const Scope_& scope() const
|
||||
{return scope_;}
|
||||
|
||||
void disconnect()
|
||||
{scope_.disconnect(0);}
|
||||
|
||||
// copy
|
||||
Handle& operator =(Obj* obj)
|
||||
{scope_.set(obj,obj,true); return *this;}
|
||||
Handle& operator =(Obj& obj)
|
||||
{scope_.set(&obj,&obj,false); return *this;}
|
||||
#ifndef SIGC_CXX_TEMPLATE_CCTOR
|
||||
Handle& operator =(const Handle& handle)
|
||||
{
|
||||
Obj *o=handle.obj();
|
||||
scope_.set(o,o,false);
|
||||
return *this;
|
||||
}
|
||||
#endif
|
||||
template <class Obj2,class Scope2>
|
||||
Handle& operator = (const Handle<Obj2,Scope2>& handle)
|
||||
{
|
||||
Obj *o=handle.obj();
|
||||
scope_.set(o,o,false);
|
||||
return *this;
|
||||
}
|
||||
|
||||
// construct
|
||||
Handle():scope_() {}
|
||||
Handle(Obj *obj):scope_() {scope_.set(obj,obj,true);}
|
||||
Handle(Obj &obj):scope_() {scope_.set(&obj,&obj,false);}
|
||||
#ifndef SIGC_CXX_TEMPLATE_CCTOR
|
||||
Handle(const Handle& handle)
|
||||
:scope_()
|
||||
{
|
||||
Obj *o=handle.obj();
|
||||
scope_.set(o,o,false);
|
||||
}
|
||||
#endif
|
||||
template <class Obj2,class Scope2>
|
||||
Handle(const Handle<Obj2,Scope2>& handle)
|
||||
:scope_()
|
||||
{
|
||||
Obj *o=handle.obj();
|
||||
scope_.set(o,o,false);
|
||||
}
|
||||
};
|
||||
|
||||
#define HANDLE_CTORS(X,T,P) \
|
||||
public: \
|
||||
X(T *t):Handle<T,P>(t) {} \
|
||||
X(T &t):Handle<T,P>(t) {} \
|
||||
template <class T2,class P2> \
|
||||
X(const Handle<T2,P2> &h):Handle<T,P>(h) {} \
|
||||
X& operator =(T *t) \
|
||||
{return Handle<T,P>::operator=(t);} \
|
||||
X& operator =(T &t) \
|
||||
{return Handle<T,P>::operator=(t);} \
|
||||
template <class T2,class P2> \
|
||||
X& operator =(const Handle<T2,P2> &t) \
|
||||
{return Handle<T,P>::operator=(t);}
|
||||
|
||||
//template <class T>
|
||||
// class Ref:public Handle<T,Scopes::RefCount>
|
||||
// {
|
||||
// HANDLE_CTORS(Ref,T,Scopes::RefCount)
|
||||
// };
|
||||
|
||||
#ifdef SIGC_CXX_NAMESPACES
|
||||
} // namespace
|
||||
#endif
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user