{"action":"created","issue":{"url":"https://api.github.com/repos/robotology/yarp/issues/1837","repository_url":"https://api.github.com/repos/robotology/yarp","labels_url":"https://api.github.com/repos/robotology/yarp/issues/1837/labels{/name}","comments_url":"https://api.github.com/repos/robotology/yarp/issues/1837/comments","events_url":"https://api.github.com/repos/robotology/yarp/issues/1837/events","html_url":"https://github.com/robotology/yarp/issues/1837","id":354236930,"node_id":"MDU6SXNzdWUzNTQyMzY5MzA=","number":1837,"title":"remote_controlboard has a network server (wrapper) assigned, and RGBDSensorClient is a wrapper","user":{"login":"jgvictores","id":4448588,"node_id":"MDQ6VXNlcjQ0NDg1ODg=","avatar_url":"https://avatars1.githubusercontent.com/u/4448588?v=4","gravatar_id":"","url":"https://api.github.com/users/jgvictores","html_url":"https://github.com/jgvictores","followers_url":"https://api.github.com/users/jgvictores/followers","following_url":"https://api.github.com/users/jgvictores/following{/other_user}","gists_url":"https://api.github.com/users/jgvictores/gists{/gist_id}","starred_url":"https://api.github.com/users/jgvictores/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jgvictores/subscriptions","organizations_url":"https://api.github.com/users/jgvictores/orgs","repos_url":"https://api.github.com/users/jgvictores/repos","events_url":"https://api.github.com/users/jgvictores/events{/privacy}","received_events_url":"https://api.github.com/users/jgvictores/received_events","type":"User","site_admin":false},"labels":[{"id":90676350,"node_id":"MDU6TGFiZWw5MDY3NjM1MA==","url":"https://api.github.com/repos/robotology/yarp/labels/Component:%20Devices","name":"Component: Devices","color":"bfe5bf","default":false},{"id":90673404,"node_id":"MDU6TGFiZWw5MDY3MzQwNA==","url":"https://api.github.com/repos/robotology/yarp/labels/Component:%20Library%20-%20YARP_dev","name":"Component: Library - YARP_dev","color":"207de5","default":false},{"id":628011070,"node_id":"MDU6TGFiZWw2MjgwMTEwNzA=","url":"https://api.github.com/repos/robotology/yarp/labels/Issue%20Type:%20Feat/Enh%20Req","name":"Issue Type: Feat/Enh Req","color":"9830d1","default":false},{"id":150031843,"node_id":"MDU6TGFiZWwxNTAwMzE4NDM=","url":"https://api.github.com/repos/robotology/yarp/labels/Type:%20Discussion","name":"Type: Discussion","color":"5319e7","default":false}],"state":"open","locked":false,"assignee":{"login":"barbalberto","id":4061020,"node_id":"MDQ6VXNlcjQwNjEwMjA=","avatar_url":"https://avatars2.githubusercontent.com/u/4061020?v=4","gravatar_id":"","url":"https://api.github.com/users/barbalberto","html_url":"https://github.com/barbalberto","followers_url":"https://api.github.com/users/barbalberto/followers","following_url":"https://api.github.com/users/barbalberto/following{/other_user}","gists_url":"https://api.github.com/users/barbalberto/gists{/gist_id}","starred_url":"https://api.github.com/users/barbalberto/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/barbalberto/subscriptions","organizations_url":"https://api.github.com/users/barbalberto/orgs","repos_url":"https://api.github.com/users/barbalberto/repos","events_url":"https://api.github.com/users/barbalberto/events{/privacy}","received_events_url":"https://api.github.com/users/barbalberto/received_events","type":"User","site_admin":false},"assignees":[{"login":"barbalberto","id":4061020,"node_id":"MDQ6VXNlcjQwNjEwMjA=","avatar_url":"https://avatars2.githubusercontent.com/u/4061020?v=4","gravatar_id":"","url":"https://api.github.com/users/barbalberto","html_url":"https://github.com/barbalberto","followers_url":"https://api.github.com/users/barbalberto/followers","following_url":"https://api.github.com/users/barbalberto/following{/other_user}","gists_url":"https://api.github.com/users/barbalberto/gists{/gist_id}","starred_url":"https://api.github.com/users/barbalberto/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/barbalberto/subscriptions","organizations_url":"https://api.github.com/users/barbalberto/orgs","repos_url":"https://api.github.com/users/barbalberto/repos","events_url":"https://api.github.com/users/barbalberto/events{/privacy}","received_events_url":"https://api.github.com/users/barbalberto/received_events","type":"User","site_admin":false}],"milestone":null,"comments":5,"created_at":"2018-08-27T08:59:34Z","updated_at":"2018-08-28T15:35:00Z","closed_at":null,"author_association":"MEMBER","body":"**Describe the bug**\r\n`remote_controlboard` and `RGBDSensorClient` are client devices, yet have network servers (wrappers) assigned:\r\n- `remote_controlboard` has `controlboardwrapper2` defined [here](https://github.com/robotology/yarp/blob/7a550482e5546a5cf06873165220ce9f203e5aea/src/libYARP_dev/src/devices/RemoteControlBoard/RemoteControlBoard.cpp#L3372).\r\n- `RGBDSensorClient` has `RGBDSensorClient` defined [here](https://github.com/robotology/yarp/blob/f5e903f58cd4550504d6f6643e0bb3f91ece2ffe/src/libYARP_dev/src/devices/RGBDSensorClient/RGBDSensorClient.cpp#L27) (edit: well, this actually means it is saying it is a wrapper).\r\n\r\nI understand that this is conceptually wrong and can lead to misunderstandings and wrong code in the future due to copy+paste (issues on documenting this are on the way at time of writing, see #1707). Note that this should not affect run-time: proof is they have been there for a very long time.\r\n\r\n**To Reproduce**\r\nSee code, or run `yarpdev --list` and see wrappers.\r\n\r\n**Expected behavior**\r\nClient devices, from my understanding, should have no wrapper (wrappers are for server sides).\r\n\r\n**Additional context**\r\nSwitching the mentioned source code to empty quotes `\"\"` should suffice."},"comment":{"url":"https://api.github.com/repos/robotology/yarp/issues/comments/416633236","html_url":"https://github.com/robotology/yarp/issues/1837#issuecomment-416633236","issue_url":"https://api.github.com/repos/robotology/yarp/issues/1837","id":416633236,"node_id":"MDEyOklzc3VlQ29tbWVudDQxNjYzMzIzNg==","user":{"login":"barbalberto","id":4061020,"node_id":"MDQ6VXNlcjQwNjEwMjA=","avatar_url":"https://avatars2.githubusercontent.com/u/4061020?v=4","gravatar_id":"","url":"https://api.github.com/users/barbalberto","html_url":"https://github.com/barbalberto","followers_url":"https://api.github.com/users/barbalberto/followers","following_url":"https://api.github.com/users/barbalberto/following{/other_user}","gists_url":"https://api.github.com/users/barbalberto/gists{/gist_id}","starred_url":"https://api.github.com/users/barbalberto/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/barbalberto/subscriptions","organizations_url":"https://api.github.com/users/barbalberto/orgs","repos_url":"https://api.github.com/users/barbalberto/repos","events_url":"https://api.github.com/users/barbalberto/events{/privacy}","received_events_url":"https://api.github.com/users/barbalberto/received_events","type":"User","site_admin":false},"created_at":"2018-08-28T15:35:00Z","updated_at":"2018-08-28T15:35:00Z","author_association":"MEMBER","body":"> What about documenting rather than removing?\r\n\r\nThat's my point. It looks that we are discussing about words rather than about features (which is good anyway).\r\n\r\nNone of both citation in  A states that the client is not a wrapper. They simply state the the devices are wrapped by wrappers. Clients are devices, and they may be wrapped by another network wrapper as well. It is not explixitly said that the client is a wrapper either.\r\n\r\nUsually we refer to clients and servers as _Network_ wrappers because their business logic is to handle network communication, they do not have any computation and do not generated or modify the data they handle.\r\n\r\nThe HW device on the contrary produce/consume data and do not have any ports and don't care where the data goes/comes from (a device can be used without wrappers). You can find more details about this idea in this presentation https://github.com/easy-peasy-robotics/easy-peasy-robotics.github.io/blob/master/editions/cpi18/yarp.pptx\r\n\r\nSo a client is a network wrapper which can, in turn, wrapped again (and again and again :smile: ) in case this is found useful.\r\n\r\n "}}
{"actor":{"display_login":"barbalberto"}}