{"action":"created","comment":{"url":"https://api.github.com/repos/gnuradio/gnuradio/pulls/comments/46072663","id":46072663,"diff_hunk":"@@ -135,7 +135,7 @@ namespace gr {\n     std::multimap<uint64_t,tag_t>::iterator get_tags_lower_bound(uint64_t x) { return d_item_tags.lower_bound(x); }\n     std::multimap<uint64_t,tag_t>::iterator get_tags_upper_bound(uint64_t x) { return d_item_tags.upper_bound(x); }\n \n-    // -------------------------------------------------------------------------\n+    virtual bool allocate_buffer();","path":"gnuradio-runtime/include/gnuradio/buffer.h","position":5,"original_position":5,"commit_id":"a7925ea2a28be8ca31d35053e0f0679644e4bef3","original_commit_id":"a7925ea2a28be8ca31d35053e0f0679644e4bef3","user":{"login":"jmcorgan","id":1492956,"avatar_url":"https://avatars.githubusercontent.com/u/1492956?v=3","gravatar_id":"","url":"https://api.github.com/users/jmcorgan","html_url":"https://github.com/jmcorgan","followers_url":"https://api.github.com/users/jmcorgan/followers","following_url":"https://api.github.com/users/jmcorgan/following{/other_user}","gists_url":"https://api.github.com/users/jmcorgan/gists{/gist_id}","starred_url":"https://api.github.com/users/jmcorgan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jmcorgan/subscriptions","organizations_url":"https://api.github.com/users/jmcorgan/orgs","repos_url":"https://api.github.com/users/jmcorgan/repos","events_url":"https://api.github.com/users/jmcorgan/events{/privacy}","received_events_url":"https://api.github.com/users/jmcorgan/received_events","type":"User","site_admin":false},"body":"This was moved from the private section to the public section.  Was this to facilitate overloading?  In that case, it should actually be in the protected section, so derived classes can override it, but it would still not be exposed publicly.  I think.","created_at":"2015-11-27T23:08:38Z","updated_at":"2015-11-27T23:08:38Z","html_url":"https://github.com/gnuradio/gnuradio/pull/689#discussion_r46072663","pull_request_url":"https://api.github.com/repos/gnuradio/gnuradio/pulls/689","_links":{"self":{"href":"https://api.github.com/repos/gnuradio/gnuradio/pulls/comments/46072663"},"html":{"href":"https://github.com/gnuradio/gnuradio/pull/689#discussion_r46072663"},"pull_request":{"href":"https://api.github.com/repos/gnuradio/gnuradio/pulls/689"}}},"pull_request":{"url":"https://api.github.com/repos/gnuradio/gnuradio/pulls/689","id":52027235,"html_url":"https://github.com/gnuradio/gnuradio/pull/689","diff_url":"https://github.com/gnuradio/gnuradio/pull/689.diff","patch_url":"https://github.com/gnuradio/gnuradio/pull/689.patch","issue_url":"https://api.github.com/repos/gnuradio/gnuradio/issues/689","number":689,"state":"open","locked":false,"title":"Custom buffers","user":{"login":"douggeiger","id":641136,"avatar_url":"https://avatars.githubusercontent.com/u/641136?v=3","gravatar_id":"","url":"https://api.github.com/users/douggeiger","html_url":"https://github.com/douggeiger","followers_url":"https://api.github.com/users/douggeiger/followers","following_url":"https://api.github.com/users/douggeiger/following{/other_user}","gists_url":"https://api.github.com/users/douggeiger/gists{/gist_id}","starred_url":"https://api.github.com/users/douggeiger/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/douggeiger/subscriptions","organizations_url":"https://api.github.com/users/douggeiger/orgs","repos_url":"https://api.github.com/users/douggeiger/repos","events_url":"https://api.github.com/users/douggeiger/events{/privacy}","received_events_url":"https://api.github.com/users/douggeiger/received_events","type":"User","site_admin":false},"body":"Addresses issue #730\r\n\r\nThis add's the ability to tell the scheduler that a block wants to allocate input/output buffers, and modified gr::buffer to allow sub-classing. The scheduler must then be modified to a.) Ensure that two blocks are not both trying to allocate the same buffer (i.e. upstream block wants to allocate output buffer, downstream wants to allocate input buffer) and b.) deal with lifecycle management of the buffers (e.g. during the flattening of flowgraphs as well as lock()/unlock(), etc.) since that does not coincide with block creation/destruction.\r\n\r\nThere is new QA code to provide coverage of the changes, however more testing should be done to ensure existing code has not been broken. Note that the only known case of blocks using gr::buffer's directly is the in-tree portaudio blocks.","created_at":"2015-11-27T22:39:37Z","updated_at":"2015-11-27T23:08:38Z","closed_at":null,"merged_at":null,"merge_commit_sha":"6d093c0b32b520fad01685526c7d231561ef0b98","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/gnuradio/gnuradio/pulls/689/commits","review_comments_url":"https://api.github.com/repos/gnuradio/gnuradio/pulls/689/comments","review_comment_url":"https://api.github.com/repos/gnuradio/gnuradio/pulls/comments{/number}","comments_url":"https://api.github.com/repos/gnuradio/gnuradio/issues/689/comments","statuses_url":"https://api.github.com/repos/gnuradio/gnuradio/statuses/a7925ea2a28be8ca31d35053e0f0679644e4bef3","head":{"label":"douggeiger:custom-buffers","ref":"custom-buffers","sha":"a7925ea2a28be8ca31d35053e0f0679644e4bef3","user":{"login":"douggeiger","id":641136,"avatar_url":"https://avatars.githubusercontent.com/u/641136?v=3","gravatar_id":"","url":"https://api.github.com/users/douggeiger","html_url":"https://github.com/douggeiger","followers_url":"https://api.github.com/users/douggeiger/followers","following_url":"https://api.github.com/users/douggeiger/following{/other_user}","gists_url":"https://api.github.com/users/douggeiger/gists{/gist_id}","starred_url":"https://api.github.com/users/douggeiger/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/douggeiger/subscriptions","organizations_url":"https://api.github.com/users/douggeiger/orgs","repos_url":"https://api.github.com/users/douggeiger/repos","events_url":"https://api.github.com/users/douggeiger/events{/privacy}","received_events_url":"https://api.github.com/users/douggeiger/received_events","type":"User","site_admin":false},"repo":{"id":24197696,"name":"gnuradio","full_name":"douggeiger/gnuradio","owner":{"login":"douggeiger","id":641136,"avatar_url":"https://avatars.githubusercontent.com/u/641136?v=3","gravatar_id":"","url":"https://api.github.com/users/douggeiger","html_url":"https://github.com/douggeiger","followers_url":"https://api.github.com/users/douggeiger/followers","following_url":"https://api.github.com/users/douggeiger/following{/other_user}","gists_url":"https://api.github.com/users/douggeiger/gists{/gist_id}","starred_url":"https://api.github.com/users/douggeiger/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/douggeiger/subscriptions","organizations_url":"https://api.github.com/users/douggeiger/orgs","repos_url":"https://api.github.com/users/douggeiger/repos","events_url":"https://api.github.com/users/douggeiger/events{/privacy}","received_events_url":"https://api.github.com/users/douggeiger/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/douggeiger/gnuradio","description":"GNU Radio","fork":true,"url":"https://api.github.com/repos/douggeiger/gnuradio","forks_url":"https://api.github.com/repos/douggeiger/gnuradio/forks","keys_url":"https://api.github.com/repos/douggeiger/gnuradio/keys{/key_id}","collaborators_url":"https://api.github.com/repos/douggeiger/gnuradio/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/douggeiger/gnuradio/teams","hooks_url":"https://api.github.com/repos/douggeiger/gnuradio/hooks","issue_events_url":"https://api.github.com/repos/douggeiger/gnuradio/issues/events{/number}","events_url":"https://api.github.com/repos/douggeiger/gnuradio/events","assignees_url":"https://api.github.com/repos/douggeiger/gnuradio/assignees{/user}","branches_url":"https://api.github.com/repos/douggeiger/gnuradio/branches{/branch}","tags_url":"https://api.github.com/repos/douggeiger/gnuradio/tags","blobs_url":"https://api.github.com/repos/douggeiger/gnuradio/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/douggeiger/gnuradio/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/douggeiger/gnuradio/git/refs{/sha}","trees_url":"https://api.github.com/repos/douggeiger/gnuradio/git/trees{/sha}","statuses_url":"https://api.github.com/repos/douggeiger/gnuradio/statuses/{sha}","languages_url":"https://api.github.com/repos/douggeiger/gnuradio/languages","stargazers_url":"https://api.github.com/repos/douggeiger/gnuradio/stargazers","contributors_url":"https://api.github.com/repos/douggeiger/gnuradio/contributors","subscribers_url":"https://api.github.com/repos/douggeiger/gnuradio/subscribers","subscription_url":"https://api.github.com/repos/douggeiger/gnuradio/subscription","commits_url":"https://api.github.com/repos/douggeiger/gnuradio/commits{/sha}","git_commits_url":"https://api.github.com/repos/douggeiger/gnuradio/git/commits{/sha}","comments_url":"https://api.github.com/repos/douggeiger/gnuradio/comments{/number}","issue_comment_url":"https://api.github.com/repos/douggeiger/gnuradio/issues/comments{/number}","contents_url":"https://api.github.com/repos/douggeiger/gnuradio/contents/{+path}","compare_url":"https://api.github.com/repos/douggeiger/gnuradio/compare/{base}...{head}","merges_url":"https://api.github.com/repos/douggeiger/gnuradio/merges","archive_url":"https://api.github.com/repos/douggeiger/gnuradio/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/douggeiger/gnuradio/downloads","issues_url":"https://api.github.com/repos/douggeiger/gnuradio/issues{/number}","pulls_url":"https://api.github.com/repos/douggeiger/gnuradio/pulls{/number}","milestones_url":"https://api.github.com/repos/douggeiger/gnuradio/milestones{/number}","notifications_url":"https://api.github.com/repos/douggeiger/gnuradio/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/douggeiger/gnuradio/labels{/name}","releases_url":"https://api.github.com/repos/douggeiger/gnuradio/releases{/id}","created_at":"2014-09-18T17:20:48Z","updated_at":"2015-04-28T15:59:50Z","pushed_at":"2015-11-27T22:31:53Z","git_url":"git://github.com/douggeiger/gnuradio.git","ssh_url":"git@github.com:douggeiger/gnuradio.git","clone_url":"https://github.com/douggeiger/gnuradio.git","svn_url":"https://github.com/douggeiger/gnuradio","homepage":"gnuradio.org","size":45298,"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":"gnuradio:master","ref":"master","sha":"2d0b64bf031c16a8c0e41a2dd9f446baf0a88492","user":{"login":"gnuradio","id":1278659,"avatar_url":"https://avatars.githubusercontent.com/u/1278659?v=3","gravatar_id":"","url":"https://api.github.com/users/gnuradio","html_url":"https://github.com/gnuradio","followers_url":"https://api.github.com/users/gnuradio/followers","following_url":"https://api.github.com/users/gnuradio/following{/other_user}","gists_url":"https://api.github.com/users/gnuradio/gists{/gist_id}","starred_url":"https://api.github.com/users/gnuradio/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gnuradio/subscriptions","organizations_url":"https://api.github.com/users/gnuradio/orgs","repos_url":"https://api.github.com/users/gnuradio/repos","events_url":"https://api.github.com/users/gnuradio/events{/privacy}","received_events_url":"https://api.github.com/users/gnuradio/received_events","type":"Organization","site_admin":false},"repo":{"id":3030065,"name":"gnuradio","full_name":"gnuradio/gnuradio","owner":{"login":"gnuradio","id":1278659,"avatar_url":"https://avatars.githubusercontent.com/u/1278659?v=3","gravatar_id":"","url":"https://api.github.com/users/gnuradio","html_url":"https://github.com/gnuradio","followers_url":"https://api.github.com/users/gnuradio/followers","following_url":"https://api.github.com/users/gnuradio/following{/other_user}","gists_url":"https://api.github.com/users/gnuradio/gists{/gist_id}","starred_url":"https://api.github.com/users/gnuradio/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gnuradio/subscriptions","organizations_url":"https://api.github.com/users/gnuradio/orgs","repos_url":"https://api.github.com/users/gnuradio/repos","events_url":"https://api.github.com/users/gnuradio/events{/privacy}","received_events_url":"https://api.github.com/users/gnuradio/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/gnuradio/gnuradio","description":"GNU Radio","fork":false,"url":"https://api.github.com/repos/gnuradio/gnuradio","forks_url":"https://api.github.com/repos/gnuradio/gnuradio/forks","keys_url":"https://api.github.com/repos/gnuradio/gnuradio/keys{/key_id}","collaborators_url":"https://api.github.com/repos/gnuradio/gnuradio/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/gnuradio/gnuradio/teams","hooks_url":"https://api.github.com/repos/gnuradio/gnuradio/hooks","issue_events_url":"https://api.github.com/repos/gnuradio/gnuradio/issues/events{/number}","events_url":"https://api.github.com/repos/gnuradio/gnuradio/events","assignees_url":"https://api.github.com/repos/gnuradio/gnuradio/assignees{/user}","branches_url":"https://api.github.com/repos/gnuradio/gnuradio/branches{/branch}","tags_url":"https://api.github.com/repos/gnuradio/gnuradio/tags","blobs_url":"https://api.github.com/repos/gnuradio/gnuradio/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/gnuradio/gnuradio/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/gnuradio/gnuradio/git/refs{/sha}","trees_url":"https://api.github.com/repos/gnuradio/gnuradio/git/trees{/sha}","statuses_url":"https://api.github.com/repos/gnuradio/gnuradio/statuses/{sha}","languages_url":"https://api.github.com/repos/gnuradio/gnuradio/languages","stargazers_url":"https://api.github.com/repos/gnuradio/gnuradio/stargazers","contributors_url":"https://api.github.com/repos/gnuradio/gnuradio/contributors","subscribers_url":"https://api.github.com/repos/gnuradio/gnuradio/subscribers","subscription_url":"https://api.github.com/repos/gnuradio/gnuradio/subscription","commits_url":"https://api.github.com/repos/gnuradio/gnuradio/commits{/sha}","git_commits_url":"https://api.github.com/repos/gnuradio/gnuradio/git/commits{/sha}","comments_url":"https://api.github.com/repos/gnuradio/gnuradio/comments{/number}","issue_comment_url":"https://api.github.com/repos/gnuradio/gnuradio/issues/comments{/number}","contents_url":"https://api.github.com/repos/gnuradio/gnuradio/contents/{+path}","compare_url":"https://api.github.com/repos/gnuradio/gnuradio/compare/{base}...{head}","merges_url":"https://api.github.com/repos/gnuradio/gnuradio/merges","archive_url":"https://api.github.com/repos/gnuradio/gnuradio/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/gnuradio/gnuradio/downloads","issues_url":"https://api.github.com/repos/gnuradio/gnuradio/issues{/number}","pulls_url":"https://api.github.com/repos/gnuradio/gnuradio/pulls{/number}","milestones_url":"https://api.github.com/repos/gnuradio/gnuradio/milestones{/number}","notifications_url":"https://api.github.com/repos/gnuradio/gnuradio/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/gnuradio/gnuradio/labels{/name}","releases_url":"https://api.github.com/repos/gnuradio/gnuradio/releases{/id}","created_at":"2011-12-21T22:05:37Z","updated_at":"2015-11-22T06:47:48Z","pushed_at":"2015-11-27T22:39:37Z","git_url":"git://github.com/gnuradio/gnuradio.git","ssh_url":"git@github.com:gnuradio/gnuradio.git","clone_url":"https://github.com/gnuradio/gnuradio.git","svn_url":"https://github.com/gnuradio/gnuradio","homepage":"gnuradio.org","size":81123,"stargazers_count":378,"watchers_count":378,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":376,"mirror_url":null,"open_issues_count":16,"forks":376,"open_issues":16,"watchers":378,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/gnuradio/gnuradio/pulls/689"},"html":{"href":"https://github.com/gnuradio/gnuradio/pull/689"},"issue":{"href":"https://api.github.com/repos/gnuradio/gnuradio/issues/689"},"comments":{"href":"https://api.github.com/repos/gnuradio/gnuradio/issues/689/comments"},"review_comments":{"href":"https://api.github.com/repos/gnuradio/gnuradio/pulls/689/comments"},"review_comment":{"href":"https://api.github.com/repos/gnuradio/gnuradio/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/gnuradio/gnuradio/pulls/689/commits"},"statuses":{"href":"https://api.github.com/repos/gnuradio/gnuradio/statuses/a7925ea2a28be8ca31d35053e0f0679644e4bef3"}}}}