add last backwards-compatible version
This commit is contained in:
@@ -14,18 +14,11 @@ namespace CF {
|
||||
};
|
||||
|
||||
template<typename TWhat> class CallForwarder {
|
||||
private:
|
||||
CallForwarder() = delete;
|
||||
protected:
|
||||
CallForwarder(TWhat * ptr) : m_ptr(pfc::rcnew_t<TWhat*>(ptr)) {}
|
||||
void Orphan() {
|
||||
*m_ptr = NULL;
|
||||
}
|
||||
public:
|
||||
bool IsValid() const {
|
||||
PFC_ASSERT( m_ptr.is_valid() );
|
||||
return m_ptr.is_valid() && *m_ptr != NULL;
|
||||
}
|
||||
CallForwarder(TWhat * ptr) { m_ptr.new_t(ptr); }
|
||||
|
||||
void Orphan() {*m_ptr = NULL;}
|
||||
bool IsValid() const { return *m_ptr != NULL; }
|
||||
bool IsEmpty() const { return !IsValid(); }
|
||||
|
||||
TWhat * operator->() const {
|
||||
@@ -43,18 +36,15 @@ namespace CF {
|
||||
main_thread_callback_add( new service_impl_t<_inMainThread< CallForwarder<TWhat>, arg_t> >(*this, arg) );
|
||||
}
|
||||
private:
|
||||
const pfc::rcptr_t<TWhat*> m_ptr;
|
||||
pfc::rcptr_t<TWhat*> m_ptr;
|
||||
};
|
||||
|
||||
template<typename TWhat> class CallForwarderMaster : public CallForwarder<TWhat> {
|
||||
public:
|
||||
CallForwarderMaster(TWhat * ptr) : CallForwarder<TWhat>(ptr) {PFC_ASSERT(ptr!=NULL);}
|
||||
CallForwarderMaster(TWhat * ptr) : CallForwarder<TWhat>(ptr) {}
|
||||
~CallForwarderMaster() { this->Orphan(); }
|
||||
using CallForwarder<TWhat>::Orphan;
|
||||
private:
|
||||
CallForwarderMaster() = delete;
|
||||
CallForwarderMaster( const CallForwarderMaster<TWhat> & ) = delete;
|
||||
void operator=( const CallForwarderMaster & ) = delete;
|
||||
|
||||
PFC_CLASS_NOT_COPYABLE(CallForwarderMaster, CallForwarderMaster<TWhat>);
|
||||
};
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user