mirror of
https://github.com/debauchee/barrier.git
synced 2026-07-04 19:06:45 +08:00
Make ownership of SocketMultiplexerJob explicit
This commit is contained in:
@@ -28,8 +28,7 @@ A socket multiplexer job class that invokes a member function.
|
||||
template <class T>
|
||||
class TSocketMultiplexerMethodJob : public ISocketMultiplexerJob {
|
||||
public:
|
||||
typedef ISocketMultiplexerJob*
|
||||
(T::*Method)(ISocketMultiplexerJob*, bool, bool, bool);
|
||||
using Method = MultiplexerJobStatus (T::*)(ISocketMultiplexerJob*, bool, bool, bool);
|
||||
|
||||
//! run() invokes \c object->method(arg)
|
||||
TSocketMultiplexerMethodJob(T* object, Method method,
|
||||
@@ -37,11 +36,10 @@ public:
|
||||
virtual ~TSocketMultiplexerMethodJob();
|
||||
|
||||
// IJob overrides
|
||||
virtual ISocketMultiplexerJob*
|
||||
run(bool readable, bool writable, bool error);
|
||||
virtual ArchSocket getSocket() const;
|
||||
virtual bool isReadable() const;
|
||||
virtual bool isWritable() const;
|
||||
virtual MultiplexerJobStatus run(bool readable, bool writable, bool error) override;
|
||||
virtual ArchSocket getSocket() const override;
|
||||
virtual bool isReadable() const override;
|
||||
virtual bool isWritable() const override;
|
||||
|
||||
private:
|
||||
T* m_object;
|
||||
@@ -74,14 +72,12 @@ TSocketMultiplexerMethodJob<T>::~TSocketMultiplexerMethodJob()
|
||||
}
|
||||
|
||||
template <class T>
|
||||
inline
|
||||
ISocketMultiplexerJob*
|
||||
TSocketMultiplexerMethodJob<T>::run(bool read, bool write, bool error)
|
||||
inline MultiplexerJobStatus TSocketMultiplexerMethodJob<T>::run(bool read, bool write, bool error)
|
||||
{
|
||||
if (m_object != NULL) {
|
||||
return (m_object->*m_method)(this, read, write, error);
|
||||
}
|
||||
return NULL;
|
||||
return {false, {}};
|
||||
}
|
||||
|
||||
template <class T>
|
||||
|
||||
Reference in New Issue
Block a user