You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@zookeeper.apache.org by "Ivan Kelly (JIRA)" <ji...@apache.org> on 2010/06/25 16:40:50 UTC

[jira] Created: (ZOOKEEPER-793) Large-scale Pub/Sub System (C++ Client)

Large-scale Pub/Sub System (C++ Client)
---------------------------------------

                 Key: ZOOKEEPER-793
                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-793
             Project: Zookeeper
          Issue Type: Sub-task
            Reporter: Ivan Kelly
            Assignee: Ivan Kelly


Write a c++ client for hedwig

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (ZOOKEEPER-793) Large-scale Pub/Sub System (C++ Client)

Posted by "Thiruvalluvan M. G. (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/ZOOKEEPER-793?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12882950#action_12882950 ] 

Thiruvalluvan M. G. commented on ZOOKEEPER-793:
-----------------------------------------------

I've not gone into the actual logic of this implementation. The following comments are based on the common C++ best practices.
   - The main interface Client uses the pimpl idiom, which is great. Is it possible to separate interface and the implementation? This will help our clients to unit test their wares without a server by mocking the interface.
   - The client should be non-copyable. The simplest way to do it is to privately derive from boost::noncopyable. With the current implementation, a copy of client will cause the Impl destructed twice. I guess Publisher and Subscriber should also be made non-copyable.
  - Some non-const references are being passed, where, I think, const reference is intended. E.g. Publisher::asyncPublish's callback parameter.
  - Client class does not follow the "rule-of-three": http://en.wikipedia.org/wiki/Rule_of_three_%28C%2B%2B_programming%29
  - Herb Sutter advices to "Avoid Exception Specifications" - Item 75 in http://www.gotw.ca/publications/c++cs.htm

I don't have a Linux box handy. I'll get one and try this out.

> Large-scale Pub/Sub System (C++ Client)
> ---------------------------------------
>
>                 Key: ZOOKEEPER-793
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-793
>             Project: Zookeeper
>          Issue Type: Sub-task
>            Reporter: Ivan Kelly
>            Assignee: Ivan Kelly
>         Attachments: hedwig-cpp-0.1.tar.gz
>
>
> Write a c++ client for hedwig

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (ZOOKEEPER-793) Large-scale Pub/Sub System (C++ Client)

Posted by "Ivan Kelly (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/ZOOKEEPER-793?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12883184#action_12883184 ] 

Ivan Kelly commented on ZOOKEEPER-793:
--------------------------------------

This is great feedback. A lot of the things were simply things I overlooked, or bad habits carried over from java :)

I'm a bit confused by your first point. The interface and implementation are already separate. If you want to stub out the hedwig client, just implement the Client, Subscriber and Publisher class and don't link against the actual hedwig library. Perhaps I misread.

> Large-scale Pub/Sub System (C++ Client)
> ---------------------------------------
>
>                 Key: ZOOKEEPER-793
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-793
>             Project: Zookeeper
>          Issue Type: Sub-task
>            Reporter: Ivan Kelly
>            Assignee: Ivan Kelly
>         Attachments: hedwig-cpp-0.1.tar.gz
>
>
> Write a c++ client for hedwig

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (ZOOKEEPER-793) Large-scale Pub/Sub System (C++ Client)

Posted by "Ivan Kelly (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/ZOOKEEPER-793?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ivan Kelly updated ZOOKEEPER-793:
---------------------------------

    Attachment: hedwig-cpp-0.1.tar.gz

First drop of C++ client

> Large-scale Pub/Sub System (C++ Client)
> ---------------------------------------
>
>                 Key: ZOOKEEPER-793
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-793
>             Project: Zookeeper
>          Issue Type: Sub-task
>            Reporter: Ivan Kelly
>            Assignee: Ivan Kelly
>         Attachments: hedwig-cpp-0.1.tar.gz
>
>
> Write a c++ client for hedwig

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.