|
Boost Users : |
Subject: Re: [Boost-users] Boost.Coroutine and Object Inheritance
From: Carlos Ferreira (carlosmf.pt_at_[hidden])
Date: 2013-12-19 09:47:36
Yes, I know this is a different approach but I wanted to maintain a pure
object model. I don't know if this is a good approach or not, but then
again, I'm implementing a prototype.
1.) do you know that boost.asio integrates boost.coroutine? example can be
> read at
> http://www.boost.org/doc/libs/1_55_0/doc/html/boost_asio/example/cpp03/spawn/echo_server.cpp
Yes, I noticed that but I kinda got lost when I saw that spawn(...) used
stackfull coroutines but at the boost::asio::coroutine documentation,
stackless coroutines were described. I wanted to ensure I was using
stackfull coroutines.
2.) coroutine<> is a type holder, e.g. you have to derive from
> coroutine<>::push_type or coroutine<>::pull_type
I also saw that documentation and also got lost there... What is the
difference between the push_type and pull_type? For what purposes should I
use them?
3.) usually you would not track SimpleObj as is-a-coroutine -> I suggest to
> aggregate coroutine<> instead derive from it
I also though about that... I just didn't know what was the best approach.
Thinking a second time pushes me to go with the approach you just described.
Thanks for the info.
On 19 December 2013 14:06, Oliver Kowalke <oliver.kowalke_at_[hidden]> wrote:
> 2013/12/19 Carlos Ferreira <carlosmf.pt_at_[hidden]>
>
>> Hello to all.
>>
>> I need some help using the Boost.Coroutine lib.
>> I wanted to use the coroutines as objects and for that, I tried to build
>> a simple object and inherit the boost::coroutines::coroutine template.
>>
>> ex:
>>
>> class SimpleObj : public boost::coroutines::coroutine<SimpleObj>{
>> private:
>> std::unique_ptr<boost::asio::ip::tcp::socket> tcpSkt_uPtr;
>> std::unique_ptr<boost::asio::ip::tcp::acceptor> acc_uPtr;
>>
>> public:
>> SimpleObj(std::shared_ptr<boost::asio::io_service> ioService_ptr,
>> boost::asio::ip::tcp::endpoint &endPoint);
>> ~SimpleObj();
>> void run();
>> };
>>
>>
>> Is this right? Can I actually inherit from
>> the boost::coroutines::coroutine template ?
>> If yes, how can I proceed from here, to use the run() object method as
>> the coroutine itself, with an io_service provided through the constructor
>> ?
>>
>
> 1.) do you know that boost.asio integrates boost.coroutine? example can be
> read at
> http://www.boost.org/doc/libs/1_55_0/doc/html/boost_asio/example/cpp03/spawn/echo_server.cpp
> 2.) coroutine<> is a type holder, e.g. you have to derive from
> coroutine<>::push_type or coroutine<>::pull_type
> 3.) usually you would not track SimpleObj as is-a-coroutine -> I suggest
> to aggregate coroutine<> instead derive from it
>
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>
-- Carlos Miguel Ferreira Researcher at Telecommunications Institute Aveiro - Portugal Work E-mail - cmf_at_[hidden] Skype & GTalk -> carlosmf.pt_at_[hidden] LinkedIn -> http://www.linkedin.com/in/carlosmferreira
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net