{"action":"created","comment":{"url":"https://api.github.com/repos/BlueBrain/Livre/pulls/comments/45201877","id":45201877,"diff_hunk":"@@ -36,59 +39,107 @@\n namespace livre\n {\n \n-Client::Client()\n+struct Client::Impl\n {\n-}\n+    Impl()\n+    {\n+    }\n \n-Client::~Client()\n-{\n-    VolumeDataSource::unloadPlugins();\n-}\n+    ~Impl()\n+    {\n+        VolumeDataSource::unloadPlugins();\n+    }\n \n-bool Client::_parseArguments( const int32_t argc, char** argv )\n-{\n-    if( !_applicationParameters.initialize( argc, argv ) ||\n-        !_rendererParameters.initialize( argc, argv ))\n+    bool parseArguments( const int32_t argc, char** argv )\n     {\n-        LBERROR << \"Error parsing command line arguments\" << std::endl;\n-        return false;\n+        if( !_applicationParameters.initialize( argc, argv ) ||\n+            !_rendererParameters.initialize( argc, argv ))\n+        {\n+            LBERROR << \"Error parsing command line arguments\" << std::endl;\n+            return false;\n+        }\n+\n+        if( _applicationParameters.dataFileName.empty())\n+            _applicationParameters.dataFileName = \"mem:///#4096,4096,4096,32\";\n+\n+        return true;\n     }\n \n-    if( _applicationParameters.dataFileName.empty())\n-        _applicationParameters.dataFileName = \"mem:///#4096,4096,4096,32\";\n+    static std::string getHelp()\n+    {\n+        VolumeRendererParameters vrParameters;\n+        ApplicationParameters applicationParameters;\n \n-    return true;\n-}\n+        Configuration conf;\n+        conf.addDescription( vrParameters.getConfiguration( ));\n+        conf.addDescription( applicationParameters.getConfiguration( ));\n+\n+        std::stringstream os;\n+        os << conf;\n+    #ifdef LIVRE_USE_RESTBRIDGE\n+        os << std::endl << restbridge::RestBridge::getHelp();\n+    #endif\n+        return os.str();\n+    }\n+\n+    static std::string getVersion()\n+    {\n+        std::stringstream os;\n+        os << \"Livre version \" << livrecore::Version::getString() << std::endl;\n+        return os.str();\n+    }\n+\n+    bool initLocal( const int argc, char** argv )\n+    {\n+        if( !parseArguments( argc, argv ))\n+            return false;\n+\n+        VolumeDataSource::loadPlugins(); //initLocal on render clients never returns\n+        return true;\n+    }\n+\n+    IdleFunc _idleFunc;\n+    ApplicationParameters _applicationParameters;\n+    VolumeRendererParameters _rendererParameters;\n+};\n+\n+Client::Client()\n+    : _impl( new Client::Impl( ))\n+{}\n+\n+Client::~Client()\n+{}\n \n std::string Client::getHelp()\n {\n-    VolumeRendererParameters vrParameters;\n-    ApplicationParameters applicationParameters;\n+    return Impl::getHelp();\n+}\n \n-    Configuration conf;\n-    conf.addDescription( vrParameters.getConfiguration( ));\n-    conf.addDescription( applicationParameters.getConfiguration( ));\n+std::string Client::getVersion()\n+{\n+    return Impl::getVersion();\n+}\n \n-    std::stringstream os;\n-    os << conf;\n-#ifdef LIVRE_USE_RESTBRIDGE\n-    os << std::endl << restbridge::RestBridge::getHelp();\n-#endif\n-    return os.str();\n+void Client::registerIdleFunction( const IdleFunc& idleFunc LB_UNUSED )","path":"livre/eq/Client.cpp","position":122,"original_position":122,"commit_id":"6e31910c8ccbc4d4618e95e72cdbc28a275fa82d","original_commit_id":"6e31910c8ccbc4d4618e95e72cdbc28a275fa82d","user":{"login":"eile","id":354947,"avatar_url":"https://avatars.githubusercontent.com/u/354947?v=3","gravatar_id":"","url":"https://api.github.com/users/eile","html_url":"https://github.com/eile","followers_url":"https://api.github.com/users/eile/followers","following_url":"https://api.github.com/users/eile/following{/other_user}","gists_url":"https://api.github.com/users/eile/gists{/gist_id}","starred_url":"https://api.github.com/users/eile/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eile/subscriptions","organizations_url":"https://api.github.com/users/eile/orgs","repos_url":"https://api.github.com/users/eile/repos","events_url":"https://api.github.com/users/eile/events{/privacy}","received_events_url":"https://api.github.com/users/eile/received_events","type":"User","site_admin":false},"body":"why LB_UNUSED?","created_at":"2015-11-18T14:05:46Z","updated_at":"2015-11-18T14:05:46Z","html_url":"https://github.com/BlueBrain/Livre/pull/197#discussion_r45201877","pull_request_url":"https://api.github.com/repos/BlueBrain/Livre/pulls/197","_links":{"self":{"href":"https://api.github.com/repos/BlueBrain/Livre/pulls/comments/45201877"},"html":{"href":"https://github.com/BlueBrain/Livre/pull/197#discussion_r45201877"},"pull_request":{"href":"https://api.github.com/repos/BlueBrain/Livre/pulls/197"}}},"pull_request":{"url":"https://api.github.com/repos/BlueBrain/Livre/pulls/197","id":51070109,"html_url":"https://github.com/BlueBrain/Livre/pull/197","diff_url":"https://github.com/BlueBrain/Livre/pull/197.diff","patch_url":"https://github.com/BlueBrain/Livre/pull/197.patch","issue_url":"https://api.github.com/repos/BlueBrain/Livre/issues/197","number":197,"state":"open","locked":false,"title":"Clean up the frame range issue with streaming data sources","user":{"login":"bilgili","id":1157568,"avatar_url":"https://avatars.githubusercontent.com/u/1157568?v=3","gravatar_id":"","url":"https://api.github.com/users/bilgili","html_url":"https://github.com/bilgili","followers_url":"https://api.github.com/users/bilgili/followers","following_url":"https://api.github.com/users/bilgili/following{/other_user}","gists_url":"https://api.github.com/users/bilgili/gists{/gist_id}","starred_url":"https://api.github.com/users/bilgili/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilgili/subscriptions","organizations_url":"https://api.github.com/users/bilgili/orgs","repos_url":"https://api.github.com/users/bilgili/repos","events_url":"https://api.github.com/users/bilgili/events{/privacy}","received_events_url":"https://api.github.com/users/bilgili/received_events","type":"User","site_admin":false},"body":"Needs https://github.com/Eyescale/Equalizer/pull/518","created_at":"2015-11-18T11:03:33Z","updated_at":"2015-11-18T14:05:46Z","closed_at":null,"merged_at":null,"merge_commit_sha":"0040b921a5e367889c902f777a20c9e8ea1f7e04","assignee":{"login":"eile","id":354947,"avatar_url":"https://avatars.githubusercontent.com/u/354947?v=3","gravatar_id":"","url":"https://api.github.com/users/eile","html_url":"https://github.com/eile","followers_url":"https://api.github.com/users/eile/followers","following_url":"https://api.github.com/users/eile/following{/other_user}","gists_url":"https://api.github.com/users/eile/gists{/gist_id}","starred_url":"https://api.github.com/users/eile/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eile/subscriptions","organizations_url":"https://api.github.com/users/eile/orgs","repos_url":"https://api.github.com/users/eile/repos","events_url":"https://api.github.com/users/eile/events{/privacy}","received_events_url":"https://api.github.com/users/eile/received_events","type":"User","site_admin":false},"milestone":null,"commits_url":"https://api.github.com/repos/BlueBrain/Livre/pulls/197/commits","review_comments_url":"https://api.github.com/repos/BlueBrain/Livre/pulls/197/comments","review_comment_url":"https://api.github.com/repos/BlueBrain/Livre/pulls/comments{/number}","comments_url":"https://api.github.com/repos/BlueBrain/Livre/issues/197/comments","statuses_url":"https://api.github.com/repos/BlueBrain/Livre/statuses/6e31910c8ccbc4d4618e95e72cdbc28a275fa82d","head":{"label":"bilgili:frame_range","ref":"frame_range","sha":"6e31910c8ccbc4d4618e95e72cdbc28a275fa82d","user":{"login":"bilgili","id":1157568,"avatar_url":"https://avatars.githubusercontent.com/u/1157568?v=3","gravatar_id":"","url":"https://api.github.com/users/bilgili","html_url":"https://github.com/bilgili","followers_url":"https://api.github.com/users/bilgili/followers","following_url":"https://api.github.com/users/bilgili/following{/other_user}","gists_url":"https://api.github.com/users/bilgili/gists{/gist_id}","starred_url":"https://api.github.com/users/bilgili/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilgili/subscriptions","organizations_url":"https://api.github.com/users/bilgili/orgs","repos_url":"https://api.github.com/users/bilgili/repos","events_url":"https://api.github.com/users/bilgili/events{/privacy}","received_events_url":"https://api.github.com/users/bilgili/received_events","type":"User","site_admin":false},"repo":{"id":34505794,"name":"Livre","full_name":"bilgili/Livre","owner":{"login":"bilgili","id":1157568,"avatar_url":"https://avatars.githubusercontent.com/u/1157568?v=3","gravatar_id":"","url":"https://api.github.com/users/bilgili","html_url":"https://github.com/bilgili","followers_url":"https://api.github.com/users/bilgili/followers","following_url":"https://api.github.com/users/bilgili/following{/other_user}","gists_url":"https://api.github.com/users/bilgili/gists{/gist_id}","starred_url":"https://api.github.com/users/bilgili/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bilgili/subscriptions","organizations_url":"https://api.github.com/users/bilgili/orgs","repos_url":"https://api.github.com/users/bilgili/repos","events_url":"https://api.github.com/users/bilgili/events{/privacy}","received_events_url":"https://api.github.com/users/bilgili/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/bilgili/Livre","description":"Largescale Interactive Volume Rendering Engine","fork":true,"url":"https://api.github.com/repos/bilgili/Livre","forks_url":"https://api.github.com/repos/bilgili/Livre/forks","keys_url":"https://api.github.com/repos/bilgili/Livre/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bilgili/Livre/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bilgili/Livre/teams","hooks_url":"https://api.github.com/repos/bilgili/Livre/hooks","issue_events_url":"https://api.github.com/repos/bilgili/Livre/issues/events{/number}","events_url":"https://api.github.com/repos/bilgili/Livre/events","assignees_url":"https://api.github.com/repos/bilgili/Livre/assignees{/user}","branches_url":"https://api.github.com/repos/bilgili/Livre/branches{/branch}","tags_url":"https://api.github.com/repos/bilgili/Livre/tags","blobs_url":"https://api.github.com/repos/bilgili/Livre/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bilgili/Livre/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bilgili/Livre/git/refs{/sha}","trees_url":"https://api.github.com/repos/bilgili/Livre/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bilgili/Livre/statuses/{sha}","languages_url":"https://api.github.com/repos/bilgili/Livre/languages","stargazers_url":"https://api.github.com/repos/bilgili/Livre/stargazers","contributors_url":"https://api.github.com/repos/bilgili/Livre/contributors","subscribers_url":"https://api.github.com/repos/bilgili/Livre/subscribers","subscription_url":"https://api.github.com/repos/bilgili/Livre/subscription","commits_url":"https://api.github.com/repos/bilgili/Livre/commits{/sha}","git_commits_url":"https://api.github.com/repos/bilgili/Livre/git/commits{/sha}","comments_url":"https://api.github.com/repos/bilgili/Livre/comments{/number}","issue_comment_url":"https://api.github.com/repos/bilgili/Livre/issues/comments{/number}","contents_url":"https://api.github.com/repos/bilgili/Livre/contents/{+path}","compare_url":"https://api.github.com/repos/bilgili/Livre/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bilgili/Livre/merges","archive_url":"https://api.github.com/repos/bilgili/Livre/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bilgili/Livre/downloads","issues_url":"https://api.github.com/repos/bilgili/Livre/issues{/number}","pulls_url":"https://api.github.com/repos/bilgili/Livre/pulls{/number}","milestones_url":"https://api.github.com/repos/bilgili/Livre/milestones{/number}","notifications_url":"https://api.github.com/repos/bilgili/Livre/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bilgili/Livre/labels{/name}","releases_url":"https://api.github.com/repos/bilgili/Livre/releases{/id}","created_at":"2015-04-24T08:00:16Z","updated_at":"2015-05-04T13:03:11Z","pushed_at":"2015-11-18T11:00:27Z","git_url":"git://github.com/bilgili/Livre.git","ssh_url":"git@github.com:bilgili/Livre.git","clone_url":"https://github.com/bilgili/Livre.git","svn_url":"https://github.com/bilgili/Livre","homepage":"https://bluebrain.github.io","size":6736,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"BlueBrain:master","ref":"master","sha":"b2d8c95e7d4c43f0e4345495002fda3d1200c65a","user":{"login":"BlueBrain","id":1479142,"avatar_url":"https://avatars.githubusercontent.com/u/1479142?v=3","gravatar_id":"","url":"https://api.github.com/users/BlueBrain","html_url":"https://github.com/BlueBrain","followers_url":"https://api.github.com/users/BlueBrain/followers","following_url":"https://api.github.com/users/BlueBrain/following{/other_user}","gists_url":"https://api.github.com/users/BlueBrain/gists{/gist_id}","starred_url":"https://api.github.com/users/BlueBrain/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BlueBrain/subscriptions","organizations_url":"https://api.github.com/users/BlueBrain/orgs","repos_url":"https://api.github.com/users/BlueBrain/repos","events_url":"https://api.github.com/users/BlueBrain/events{/privacy}","received_events_url":"https://api.github.com/users/BlueBrain/received_events","type":"Organization","site_admin":false},"repo":{"id":10625435,"name":"Livre","full_name":"BlueBrain/Livre","owner":{"login":"BlueBrain","id":1479142,"avatar_url":"https://avatars.githubusercontent.com/u/1479142?v=3","gravatar_id":"","url":"https://api.github.com/users/BlueBrain","html_url":"https://github.com/BlueBrain","followers_url":"https://api.github.com/users/BlueBrain/followers","following_url":"https://api.github.com/users/BlueBrain/following{/other_user}","gists_url":"https://api.github.com/users/BlueBrain/gists{/gist_id}","starred_url":"https://api.github.com/users/BlueBrain/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BlueBrain/subscriptions","organizations_url":"https://api.github.com/users/BlueBrain/orgs","repos_url":"https://api.github.com/users/BlueBrain/repos","events_url":"https://api.github.com/users/BlueBrain/events{/privacy}","received_events_url":"https://api.github.com/users/BlueBrain/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/BlueBrain/Livre","description":"Largescale Interactive Volume Rendering Engine","fork":false,"url":"https://api.github.com/repos/BlueBrain/Livre","forks_url":"https://api.github.com/repos/BlueBrain/Livre/forks","keys_url":"https://api.github.com/repos/BlueBrain/Livre/keys{/key_id}","collaborators_url":"https://api.github.com/repos/BlueBrain/Livre/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/BlueBrain/Livre/teams","hooks_url":"https://api.github.com/repos/BlueBrain/Livre/hooks","issue_events_url":"https://api.github.com/repos/BlueBrain/Livre/issues/events{/number}","events_url":"https://api.github.com/repos/BlueBrain/Livre/events","assignees_url":"https://api.github.com/repos/BlueBrain/Livre/assignees{/user}","branches_url":"https://api.github.com/repos/BlueBrain/Livre/branches{/branch}","tags_url":"https://api.github.com/repos/BlueBrain/Livre/tags","blobs_url":"https://api.github.com/repos/BlueBrain/Livre/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/BlueBrain/Livre/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/BlueBrain/Livre/git/refs{/sha}","trees_url":"https://api.github.com/repos/BlueBrain/Livre/git/trees{/sha}","statuses_url":"https://api.github.com/repos/BlueBrain/Livre/statuses/{sha}","languages_url":"https://api.github.com/repos/BlueBrain/Livre/languages","stargazers_url":"https://api.github.com/repos/BlueBrain/Livre/stargazers","contributors_url":"https://api.github.com/repos/BlueBrain/Livre/contributors","subscribers_url":"https://api.github.com/repos/BlueBrain/Livre/subscribers","subscription_url":"https://api.github.com/repos/BlueBrain/Livre/subscription","commits_url":"https://api.github.com/repos/BlueBrain/Livre/commits{/sha}","git_commits_url":"https://api.github.com/repos/BlueBrain/Livre/git/commits{/sha}","comments_url":"https://api.github.com/repos/BlueBrain/Livre/comments{/number}","issue_comment_url":"https://api.github.com/repos/BlueBrain/Livre/issues/comments{/number}","contents_url":"https://api.github.com/repos/BlueBrain/Livre/contents/{+path}","compare_url":"https://api.github.com/repos/BlueBrain/Livre/compare/{base}...{head}","merges_url":"https://api.github.com/repos/BlueBrain/Livre/merges","archive_url":"https://api.github.com/repos/BlueBrain/Livre/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/BlueBrain/Livre/downloads","issues_url":"https://api.github.com/repos/BlueBrain/Livre/issues{/number}","pulls_url":"https://api.github.com/repos/BlueBrain/Livre/pulls{/number}","milestones_url":"https://api.github.com/repos/BlueBrain/Livre/milestones{/number}","notifications_url":"https://api.github.com/repos/BlueBrain/Livre/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/BlueBrain/Livre/labels{/name}","releases_url":"https://api.github.com/repos/BlueBrain/Livre/releases{/id}","created_at":"2013-06-11T16:13:56Z","updated_at":"2015-10-30T15:46:56Z","pushed_at":"2015-11-18T14:04:12Z","git_url":"git://github.com/BlueBrain/Livre.git","ssh_url":"git@github.com:BlueBrain/Livre.git","clone_url":"https://github.com/BlueBrain/Livre.git","svn_url":"https://github.com/BlueBrain/Livre","homepage":"https://bluebrain.github.io","size":7652,"stargazers_count":6,"watchers_count":6,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":12,"mirror_url":null,"open_issues_count":22,"forks":12,"open_issues":22,"watchers":6,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/BlueBrain/Livre/pulls/197"},"html":{"href":"https://github.com/BlueBrain/Livre/pull/197"},"issue":{"href":"https://api.github.com/repos/BlueBrain/Livre/issues/197"},"comments":{"href":"https://api.github.com/repos/BlueBrain/Livre/issues/197/comments"},"review_comments":{"href":"https://api.github.com/repos/BlueBrain/Livre/pulls/197/comments"},"review_comment":{"href":"https://api.github.com/repos/BlueBrain/Livre/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/BlueBrain/Livre/pulls/197/commits"},"statuses":{"href":"https://api.github.com/repos/BlueBrain/Livre/statuses/6e31910c8ccbc4d4618e95e72cdbc28a275fa82d"}}}}