Информация об изменениях

Сообщение Re: Вопрос про Poco library от 25.01.2017 18:19

Изменено 25.01.2017 18:22 regnar

Re: Вопрос про Poco library
Рокет саенс, берегите моск!

class ClientServiceHandler
{
public:
    ClientServiceHandler(StreamSocket& socket, SocketReactor& reactor):
        _socket(socket),
        _reactor(reactor),
        _or(*this, &ClientServiceHandler::onReadable),
        _ow(*this, &ClientServiceHandler::onWritable)
    {
        _reactor.addEventHandler(_socket, _or);
        _reactor.addEventHandler(_socket, _ow);
        _reactor.addEventHandler(_socket, _ot);
    }
    
    void onReadable(const NotificationPtr& pNf)
    {
        //...
    }
    
    void onWritable(const NotificationPtr& pNf)
    {
        _reactor.removeEventHandler(...); // write once
        //...
    }
    
private:
    StreamSocket                                         _socket;
    SocketReactor&                                       _reactor;
    NObserver<ClientServiceHandler, ReadableNotification> _or;
    NObserver<ClientServiceHandler, WritableNotification> _ow;
};


Вообще для поколения SO есть даже слайды:


Также всё расжевано в тестах для каждого класса, но это ж блин не гуглится...
Re: Вопрос про Poco library
Рокет саенс, берегите моск!

class ClientServiceHandler
{
public:
    ClientServiceHandler(StreamSocket& socket, SocketReactor& reactor):
        _socket(socket),
        _reactor(reactor),
        _or(*this, &ClientServiceHandler::onReadable),
        _ow(*this, &ClientServiceHandler::onWritable)
    {
        _reactor.addEventHandler(_socket, _or);
        _reactor.addEventHandler(_socket, _ow);
    }
    
    void onReadable(const NotificationPtr& pNf)
    {
        //...
    }
    
    void onWritable(const NotificationPtr& pNf)
    {
        _reactor.removeEventHandler(...); // write once
        //...
    }
    
private:
    StreamSocket                                         _socket;
    SocketReactor&                                       _reactor;
    NObserver<ClientServiceHandler, ReadableNotification> _or;
    NObserver<ClientServiceHandler, WritableNotification> _ow;
};


Вообще для поколения SO есть даже слайды:


Также всё расжевано в тестах для каждого класса, но это ж блин не гуглится...