{"action":"created","issue":{"url":"https://api.github.com/repos/FreeOpcUa/freeopcua/issues/159","labels_url":"https://api.github.com/repos/FreeOpcUa/freeopcua/issues/159/labels{/name}","comments_url":"https://api.github.com/repos/FreeOpcUa/freeopcua/issues/159/comments","events_url":"https://api.github.com/repos/FreeOpcUa/freeopcua/issues/159/events","html_url":"https://github.com/FreeOpcUa/freeopcua/pull/159","id":92109817,"number":159,"title":"Batch updates","user":{"login":"tomkcook","id":1853442,"avatar_url":"https://avatars.githubusercontent.com/u/1853442?v=3","gravatar_id":"","url":"https://api.github.com/users/tomkcook","html_url":"https://github.com/tomkcook","followers_url":"https://api.github.com/users/tomkcook/followers","following_url":"https://api.github.com/users/tomkcook/following{/other_user}","gists_url":"https://api.github.com/users/tomkcook/gists{/gist_id}","starred_url":"https://api.github.com/users/tomkcook/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tomkcook/subscriptions","organizations_url":"https://api.github.com/users/tomkcook/orgs","repos_url":"https://api.github.com/users/tomkcook/repos","events_url":"https://api.github.com/users/tomkcook/events{/privacy}","received_events_url":"https://api.github.com/users/tomkcook/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-06-30T14:30:41Z","updated_at":"2015-09-03T06:35:51Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/FreeOpcUa/freeopcua/pulls/159","html_url":"https://github.com/FreeOpcUa/freeopcua/pull/159","diff_url":"https://github.com/FreeOpcUa/freeopcua/pull/159.diff","patch_url":"https://github.com/FreeOpcUa/freeopcua/pull/159.patch"},"body":"As discussed in #156, I've created a new class called `ServerOperations` as somewhere to put operations that can be done on either `UaClient` or `UaServer` objects.\r\n\r\nI've avoided using a shared pointer and instead returned `std::move(ServerOperations)`.  Since this is a non-virtual object that only has one member, a pointer, it seems overkill to keep track of instances.\r\n\r\nCurrently the only member function is `WriteAttributes(std::vector<WriteValue>&)`.  It's been suggested that `AddVariable`, `AddFunction` etc could go here, rather than in the `Node` class, but I think there is more discussion needed there first; for instance, the objects created by those functions need to have a parent `Node`.  Doesn't that make it natural for those functions to be part of the `Node` class?"},"comment":{"url":"https://api.github.com/repos/FreeOpcUa/freeopcua/issues/comments/137350481","html_url":"https://github.com/FreeOpcUa/freeopcua/pull/159#issuecomment-137350481","issue_url":"https://api.github.com/repos/FreeOpcUa/freeopcua/issues/159","id":137350481,"user":{"login":"destogl","id":1918204,"avatar_url":"https://avatars.githubusercontent.com/u/1918204?v=3","gravatar_id":"","url":"https://api.github.com/users/destogl","html_url":"https://github.com/destogl","followers_url":"https://api.github.com/users/destogl/followers","following_url":"https://api.github.com/users/destogl/following{/other_user}","gists_url":"https://api.github.com/users/destogl/gists{/gist_id}","starred_url":"https://api.github.com/users/destogl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/destogl/subscriptions","organizations_url":"https://api.github.com/users/destogl/orgs","repos_url":"https://api.github.com/users/destogl/repos","events_url":"https://api.github.com/users/destogl/events{/privacy}","received_events_url":"https://api.github.com/users/destogl/received_events","type":"User","site_admin":false},"created_at":"2015-09-03T06:35:51Z","updated_at":"2015-09-03T06:35:51Z","body":"What is the status of this?"}}