{"action":"created","issue":{"url":"https://api.github.com/repos/ros2/rclcpp/issues/277","repository_url":"https://api.github.com/repos/ros2/rclcpp","labels_url":"https://api.github.com/repos/ros2/rclcpp/issues/277/labels{/name}","comments_url":"https://api.github.com/repos/ros2/rclcpp/issues/277/comments","events_url":"https://api.github.com/repos/ros2/rclcpp/issues/277/events","html_url":"https://github.com/ros2/rclcpp/pull/277","id":189915038,"number":277,"title":"break Node into several separate interfaces","user":{"login":"wjwwood","id":100427,"avatar_url":"https://avatars.githubusercontent.com/u/100427?v=3","gravatar_id":"","url":"https://api.github.com/users/wjwwood","html_url":"https://github.com/wjwwood","followers_url":"https://api.github.com/users/wjwwood/followers","following_url":"https://api.github.com/users/wjwwood/following{/other_user}","gists_url":"https://api.github.com/users/wjwwood/gists{/gist_id}","starred_url":"https://api.github.com/users/wjwwood/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wjwwood/subscriptions","organizations_url":"https://api.github.com/users/wjwwood/orgs","repos_url":"https://api.github.com/users/wjwwood/repos","events_url":"https://api.github.com/users/wjwwood/events{/privacy}","received_events_url":"https://api.github.com/users/wjwwood/received_events","type":"User","site_admin":false},"labels":[{"id":180241234,"url":"https://api.github.com/repos/ros2/rclcpp/labels/in%20review","name":"in review","color":"c7def8","default":false}],"state":"open","locked":false,"assignee":{"login":"wjwwood","id":100427,"avatar_url":"https://avatars.githubusercontent.com/u/100427?v=3","gravatar_id":"","url":"https://api.github.com/users/wjwwood","html_url":"https://github.com/wjwwood","followers_url":"https://api.github.com/users/wjwwood/followers","following_url":"https://api.github.com/users/wjwwood/following{/other_user}","gists_url":"https://api.github.com/users/wjwwood/gists{/gist_id}","starred_url":"https://api.github.com/users/wjwwood/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wjwwood/subscriptions","organizations_url":"https://api.github.com/users/wjwwood/orgs","repos_url":"https://api.github.com/users/wjwwood/repos","events_url":"https://api.github.com/users/wjwwood/events{/privacy}","received_events_url":"https://api.github.com/users/wjwwood/received_events","type":"User","site_admin":false},"assignees":[{"login":"wjwwood","id":100427,"avatar_url":"https://avatars.githubusercontent.com/u/100427?v=3","gravatar_id":"","url":"https://api.github.com/users/wjwwood","html_url":"https://github.com/wjwwood","followers_url":"https://api.github.com/users/wjwwood/followers","following_url":"https://api.github.com/users/wjwwood/following{/other_user}","gists_url":"https://api.github.com/users/wjwwood/gists{/gist_id}","starred_url":"https://api.github.com/users/wjwwood/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wjwwood/subscriptions","organizations_url":"https://api.github.com/users/wjwwood/orgs","repos_url":"https://api.github.com/users/wjwwood/repos","events_url":"https://api.github.com/users/wjwwood/events{/privacy}","received_events_url":"https://api.github.com/users/wjwwood/received_events","type":"User","site_admin":false}],"milestone":null,"comments":12,"created_at":"2016-11-17T02:18:58Z","updated_at":"2016-12-07T22:45:16Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/ros2/rclcpp/pulls/277","html_url":"https://github.com/ros2/rclcpp/pull/277","diff_url":"https://github.com/ros2/rclcpp/pull/277.diff","patch_url":"https://github.com/ros2/rclcpp/pull/277.patch"},"body":"This is a work in progress, I've only converted some of the most basic functionality to what I'm calling the \"NodeBaseInterface\". This is a preview of what I'm doing for the other parts, for which I've sketched out \"NodeTopicInterface\", \"NodeServiceInterface\", \"NodeGraphInterface\", and \"NodeParameterInterface\".\r\n\r\nI've run into a few issues, but specifically I have some work to do to resolve the ownership issues. This is demonstrated by this:\r\n\r\nhttps://github.com/ros2/rclcpp/compare/node_interfaces?expand=1#diff-14f85fa16e78532d255620f1d3529debR52\r\n\r\nWhere the comment reads \"These are used to keep the scope on the containing items\" and I had to comment out the Node pointer. Had we gone with inheritance, the NodeBase pointer this class would have access to would have been enough, but given the composition nature, I cannot just hold that part of the interface and maintain the same guarantee. That's ok though, I never liked how we have so much \"ownership spaghetti\" (for lack of a better phrase) anyways. I just have to resolve how to handle this now. I've got the options and arguments for one way versus another partially written out, I'll try to post those soon. @Karsten1987 recently ran into this in a related situation and thinks (if I can speak for him a bit) that moving away from scoped objects would help a little bit because it could ensure the lifetime of the entities created by a node do not outlive it (using a proxy or handle pattern instead)."},"comment":{"url":"https://api.github.com/repos/ros2/rclcpp/issues/comments/265597836","html_url":"https://github.com/ros2/rclcpp/pull/277#issuecomment-265597836","issue_url":"https://api.github.com/repos/ros2/rclcpp/issues/277","id":265597836,"user":{"login":"wjwwood","id":100427,"avatar_url":"https://avatars.githubusercontent.com/u/100427?v=3","gravatar_id":"","url":"https://api.github.com/users/wjwwood","html_url":"https://github.com/wjwwood","followers_url":"https://api.github.com/users/wjwwood/followers","following_url":"https://api.github.com/users/wjwwood/following{/other_user}","gists_url":"https://api.github.com/users/wjwwood/gists{/gist_id}","starred_url":"https://api.github.com/users/wjwwood/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wjwwood/subscriptions","organizations_url":"https://api.github.com/users/wjwwood/orgs","repos_url":"https://api.github.com/users/wjwwood/repos","events_url":"https://api.github.com/users/wjwwood/events{/privacy}","received_events_url":"https://api.github.com/users/wjwwood/received_events","type":"User","site_admin":false},"created_at":"2016-12-07T22:45:16Z","updated_at":"2016-12-07T22:45:16Z","body":"Ok, I think I've addressed the constness issues, now there is a tlsf test failing which may be something I broke in the allocator support that I need to look into. Still looking for more reviews in the meantime."}}
{"actor":{"display_login":"wjwwood"}}