)]}'
{
  "commit": "747634273144e0df7b37475375ad4790b6a7b0e8",
  "tree": "dbe0b7e3fcf645528037195c6a54391d5b5a0091",
  "parents": [
    "f7f52d4707c007bb9255bd80b23ac3428c6fc2e0"
  ],
  "author": {
    "name": "Vitaly Buka",
    "email": "vitalybuka@google.com",
    "time": "Sun Oct 11 00:39:52 2015 -0700"
  },
  "committer": {
    "name": "Vitaly Buka",
    "email": "vitalybuka@google.com",
    "time": "Mon Oct 12 23:02:24 2015 +0000"
  },
  "message": "Use single callback for replies to async operations\n\nSingle callback simplifies copying of callbacks and makes\ncontrol flow more obvious.\n\nBUG:24267885\n\nChange-Id: I489e7158e2bb1adf8c9c3966a0859fa024a57db2\nReviewed-on: https://weave-review.googlesource.com/1302\nReviewed-by: Vitaly Buka \u003cvitalybuka@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c058a9beed0cf2b62bbadf7e5dc3c66b184b12ce",
      "old_mode": 33188,
      "old_path": "libweave/examples/ubuntu/curl_http_client.cc",
      "new_id": "653cbb38eba9a62171c644b160852aac4a9f9394",
      "new_mode": 33188,
      "new_path": "libweave/examples/ubuntu/curl_http_client.cc"
    },
    {
      "type": "modify",
      "old_id": "a5090ff3d0146c0cddb2e409aa26949275bec68f",
      "old_mode": 33188,
      "old_path": "libweave/examples/ubuntu/curl_http_client.h",
      "new_id": "6bbb3f4781b9e7a543f97bca6cff5c754741e2da",
      "new_mode": 33188,
      "new_path": "libweave/examples/ubuntu/curl_http_client.h"
    },
    {
      "type": "modify",
      "old_id": "8341a07b7c4775e523cd9a4ec4b6b225e0a33e09",
      "old_mode": 33188,
      "old_path": "libweave/examples/ubuntu/event_http_client.cc",
      "new_id": "637ae2f96dcc88a4d88400409d671ff627db0aff",
      "new_mode": 33188,
      "new_path": "libweave/examples/ubuntu/event_http_client.cc"
    },
    {
      "type": "modify",
      "old_id": "457e5501d136ee3d02e82b3925f3895e8b928244",
      "old_mode": 33188,
      "old_path": "libweave/examples/ubuntu/event_http_client.h",
      "new_id": "e564e8a75e287d783e26f285f357cd4b4fbc725a",
      "new_mode": 33188,
      "new_path": "libweave/examples/ubuntu/event_http_client.h"
    },
    {
      "type": "modify",
      "old_id": "e7627919567f3853746566d560943e4aac5c657e",
      "old_mode": 33188,
      "old_path": "libweave/examples/ubuntu/main.cc",
      "new_id": "6324411506d93ff416ebd5643492a5cca0455926",
      "new_mode": 33188,
      "new_path": "libweave/examples/ubuntu/main.cc"
    },
    {
      "type": "modify",
      "old_id": "24d099662703e510459b965cc288029221dc759f",
      "old_mode": 33188,
      "old_path": "libweave/examples/ubuntu/netlink_network.cc",
      "new_id": "60807a4c8cdbec9c44936fddb89b06b600c0c4f6",
      "new_mode": 33188,
      "new_path": "libweave/examples/ubuntu/netlink_network.cc"
    },
    {
      "type": "modify",
      "old_id": "3f5f51af9bfade6f46be51ddef3536ece8c62845",
      "old_mode": 33188,
      "old_path": "libweave/examples/ubuntu/netlink_network.h",
      "new_id": "af8bf13ad0e250989149f74d0d6a71382fd9c306",
      "new_mode": 33188,
      "new_path": "libweave/examples/ubuntu/netlink_network.h"
    },
    {
      "type": "modify",
      "old_id": "ff54f0b73d5768cd439705696c7abf95c6992fe7",
      "old_mode": 33188,
      "old_path": "libweave/examples/ubuntu/network_manager.cc",
      "new_id": "e6dd9d8c4f866232f2396243aa96b3ddf738d5d0",
      "new_mode": 33188,
      "new_path": "libweave/examples/ubuntu/network_manager.cc"
    },
    {
      "type": "modify",
      "old_id": "b8e589d6294756cdc37e664b8da20d2e3c35d0ba",
      "old_mode": 33188,
      "old_path": "libweave/examples/ubuntu/network_manager.h",
      "new_id": "164d419bcab0f8d29dd3fcee16b18e8e6565ade7",
      "new_mode": 33188,
      "new_path": "libweave/examples/ubuntu/network_manager.h"
    },
    {
      "type": "modify",
      "old_id": "e146d5842b70d647c4a68270c51887c426656a68",
      "old_mode": 33188,
      "old_path": "libweave/examples/ubuntu/ssl_stream.cc",
      "new_id": "8b17358ed8e1ab07c932a58c6233966224d0f74a",
      "new_mode": 33188,
      "new_path": "libweave/examples/ubuntu/ssl_stream.cc"
    },
    {
      "type": "modify",
      "old_id": "ac0d76a7e493386d9b015b2429745586b6f5e5cf",
      "old_mode": 33188,
      "old_path": "libweave/examples/ubuntu/ssl_stream.h",
      "new_id": "859cbf94464bc09d82d73461c5ad4eb0c6c02fc3",
      "new_mode": 33188,
      "new_path": "libweave/examples/ubuntu/ssl_stream.h"
    },
    {
      "type": "modify",
      "old_id": "7fbe248690c79ac6eadbbb2767d4db9459302211",
      "old_mode": 33188,
      "old_path": "libweave/include/weave/device.h",
      "new_id": "09dab91031a63c50cf18ae2cb3c3ee4794f5b1fc",
      "new_mode": 33188,
      "new_path": "libweave/include/weave/device.h"
    },
    {
      "type": "modify",
      "old_id": "83b33b443d168aaa01393091d933a3281ca98bc1",
      "old_mode": 33188,
      "old_path": "libweave/include/weave/error.h",
      "new_id": "0869b71698765aab7a2ab51dc513dc2a6cde5a9d",
      "new_mode": 33188,
      "new_path": "libweave/include/weave/error.h"
    },
    {
      "type": "modify",
      "old_id": "24b4588c662b884b2c0388b13b97a12bfc9fca86",
      "old_mode": 33188,
      "old_path": "libweave/include/weave/provider/http_client.h",
      "new_id": "3c442d9979691f07236397ed8a5ea38e51b8362c",
      "new_mode": 33188,
      "new_path": "libweave/include/weave/provider/http_client.h"
    },
    {
      "type": "modify",
      "old_id": "cb3730e5f03d3a9c349a8f89b9b5dae6cd85c2f6",
      "old_mode": 33188,
      "old_path": "libweave/include/weave/provider/network.h",
      "new_id": "4c0d5dd969c58ec3c9fe06c3da301e34fa806d82",
      "new_mode": 33188,
      "new_path": "libweave/include/weave/provider/network.h"
    },
    {
      "type": "modify",
      "old_id": "72cb9b8e3972596fc000e21b8d5db365d9966d89",
      "old_mode": 33188,
      "old_path": "libweave/include/weave/provider/test/mock_http_client.h",
      "new_id": "85ac15491efddb2549a492f092849ef00fe41c7d",
      "new_mode": 33188,
      "new_path": "libweave/include/weave/provider/test/mock_http_client.h"
    },
    {
      "type": "modify",
      "old_id": "e38dde2e8991802978385386b474fc911db27c72",
      "old_mode": 33188,
      "old_path": "libweave/include/weave/provider/test/mock_network.h",
      "new_id": "b2811dccf12abb98639bc50165a223be3ebc6440",
      "new_mode": 33188,
      "new_path": "libweave/include/weave/provider/test/mock_network.h"
    },
    {
      "type": "modify",
      "old_id": "6c53d9a86d9ec5ed9d35d9015abc30632102c26a",
      "old_mode": 33188,
      "old_path": "libweave/include/weave/provider/test/mock_wifi.h",
      "new_id": "579887202cbb604dfae491c89f8a280ee1e9ee03",
      "new_mode": 33188,
      "new_path": "libweave/include/weave/provider/test/mock_wifi.h"
    },
    {
      "type": "modify",
      "old_id": "51f370c043f7b0e7e8f8888de7839d13c5988699",
      "old_mode": 33188,
      "old_path": "libweave/include/weave/provider/wifi.h",
      "new_id": "aaf46093a647345e38046fa789a2d7bd09d6de4f",
      "new_mode": 33188,
      "new_path": "libweave/include/weave/provider/wifi.h"
    },
    {
      "type": "modify",
      "old_id": "9d4d6fdd3b6f198682c2d31cd9712d386b466e41",
      "old_mode": 33188,
      "old_path": "libweave/include/weave/stream.h",
      "new_id": "ea8af234639383f17f31d13dbd3d5ad586eb859f",
      "new_mode": 33188,
      "new_path": "libweave/include/weave/stream.h"
    },
    {
      "type": "modify",
      "old_id": "8abb491ac6f845ee1212d1e22e62b8b7da333de3",
      "old_mode": 33188,
      "old_path": "libweave/include/weave/test/fake_stream.h",
      "new_id": "e5e0b571d8a931cd5bfc4fb3adb2ff6b392693a5",
      "new_mode": 33188,
      "new_path": "libweave/include/weave/test/fake_stream.h"
    },
    {
      "type": "modify",
      "old_id": "0d8a6da27d97bec7a9000b5cc18ef4c13840c26f",
      "old_mode": 33188,
      "old_path": "libweave/include/weave/test/mock_device.h",
      "new_id": "c0a75bc6c3000d422df3eec50bcd26211ebe8119",
      "new_mode": 33188,
      "new_path": "libweave/include/weave/test/mock_device.h"
    },
    {
      "type": "modify",
      "old_id": "38263785262acd9c71a77bdd2e34acb153370ed4",
      "old_mode": 33188,
      "old_path": "libweave/src/commands/cloud_command_proxy.cc",
      "new_id": "41dc8ee9951e7ba3de4498d84e7eb27840fb9421",
      "new_mode": 33188,
      "new_path": "libweave/src/commands/cloud_command_proxy.cc"
    },
    {
      "type": "modify",
      "old_id": "86dc5d3178df9cdee92696a078cf96f526deff8d",
      "old_mode": 33188,
      "old_path": "libweave/src/commands/cloud_command_proxy.h",
      "new_id": "b2ef11aa651132ad8e45d0a24fb8a45b388aa031",
      "new_mode": 33188,
      "new_path": "libweave/src/commands/cloud_command_proxy.h"
    },
    {
      "type": "modify",
      "old_id": "3c7692f091171b0628acbaa7b0a04c70e2b8fbb2",
      "old_mode": 33188,
      "old_path": "libweave/src/commands/cloud_command_proxy_unittest.cc",
      "new_id": "d9518e4ec6af5a4b3031510ab99fb82ba4e05d67",
      "new_mode": 33188,
      "new_path": "libweave/src/commands/cloud_command_proxy_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "5bd5c11303dd812bb9adc318897629e8f9b74732",
      "old_mode": 33188,
      "old_path": "libweave/src/commands/cloud_command_update_interface.h",
      "new_id": "71c2f189233f09b171d80466eeb59c9c7ee8600e",
      "new_mode": 33188,
      "new_path": "libweave/src/commands/cloud_command_update_interface.h"
    },
    {
      "type": "modify",
      "old_id": "91053529fe4463c702b64edaaae5786759f779a1",
      "old_mode": 33188,
      "old_path": "libweave/src/device_manager.cc",
      "new_id": "54570f6e561fa2a81edda396c585d81b703dd8e0",
      "new_mode": 33188,
      "new_path": "libweave/src/device_manager.cc"
    },
    {
      "type": "modify",
      "old_id": "16e0601f9a1b5081dbb36619668356b4838f9080",
      "old_mode": 33188,
      "old_path": "libweave/src/device_manager.h",
      "new_id": "7bded153278fbfb2cc09ce142a4b61231b1bd7db",
      "new_mode": 33188,
      "new_path": "libweave/src/device_manager.h"
    },
    {
      "type": "modify",
      "old_id": "6481481eb84bba33897f69d4bd6bf94e66bf39bb",
      "old_mode": 33188,
      "old_path": "libweave/src/device_registration_info.cc",
      "new_id": "e35b7684226100c06d1cd237132860c8ce3e2d58",
      "new_mode": 33188,
      "new_path": "libweave/src/device_registration_info.cc"
    },
    {
      "type": "modify",
      "old_id": "a7f79b66f2e8ee269cf7dc4f8a06cb66c38e0283",
      "old_mode": 33188,
      "old_path": "libweave/src/device_registration_info.h",
      "new_id": "d3892903d1169a83a0250d5d50b1e6948635d062",
      "new_mode": 33188,
      "new_path": "libweave/src/device_registration_info.h"
    },
    {
      "type": "modify",
      "old_id": "6d00a5153f7d1a840ce183c6f4e61e291adc9cb7",
      "old_mode": 33188,
      "old_path": "libweave/src/device_registration_info_unittest.cc",
      "new_id": "b086f8bd146dc748be47092a3e1b6cbc0bb043c2",
      "new_mode": 33188,
      "new_path": "libweave/src/device_registration_info_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "0d222867b24b24413fcb337978385b913885f0cc",
      "old_mode": 33188,
      "old_path": "libweave/src/notification/xmpp_channel.cc",
      "new_id": "c88ba456c6f02df858b5933d13f62eb72f32a877",
      "new_mode": 33188,
      "new_path": "libweave/src/notification/xmpp_channel.cc"
    },
    {
      "type": "modify",
      "old_id": "814b2a507da1839c375ee7ae6b8a605f7291e504",
      "old_mode": 33188,
      "old_path": "libweave/src/notification/xmpp_channel.h",
      "new_id": "a40eca9b7f0b892f749eb0c3e6ec9a0feed5e748",
      "new_mode": 33188,
      "new_path": "libweave/src/notification/xmpp_channel.h"
    },
    {
      "type": "modify",
      "old_id": "c6e0be1ae502dd45eb23a7993c09a19210b81357",
      "old_mode": 33188,
      "old_path": "libweave/src/notification/xmpp_channel_unittest.cc",
      "new_id": "6c334dd7e92ea168ac706659e5719e0e49a65336",
      "new_mode": 33188,
      "new_path": "libweave/src/notification/xmpp_channel_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "3df5b8682abe10ce7320c9564633ecda385034a5",
      "old_mode": 33188,
      "old_path": "libweave/src/privet/cloud_delegate.cc",
      "new_id": "81b7e333511c5f0756da9b659729203f14bd5927",
      "new_mode": 33188,
      "new_path": "libweave/src/privet/cloud_delegate.cc"
    },
    {
      "type": "modify",
      "old_id": "74456d3a1da4f6753c4d7c4df19bc13912159127",
      "old_mode": 33188,
      "old_path": "libweave/src/privet/cloud_delegate.h",
      "new_id": "05ba8a64d63f5e7e1e26f22fc40b1ff64147f87b",
      "new_mode": 33188,
      "new_path": "libweave/src/privet/cloud_delegate.h"
    },
    {
      "type": "modify",
      "old_id": "48227aec2c568284a01dad914636057410c6333f",
      "old_mode": 33188,
      "old_path": "libweave/src/privet/mock_delegates.h",
      "new_id": "f16b5262317feeef468c9125a6aa68314cf17023",
      "new_mode": 33188,
      "new_path": "libweave/src/privet/mock_delegates.h"
    },
    {
      "type": "modify",
      "old_id": "702104db5b7f3eac4de3e8eb5747f98abb0b92b4",
      "old_mode": 33188,
      "old_path": "libweave/src/privet/privet_handler.cc",
      "new_id": "ad1d3d07a41cf2a65194a5274114d9c7e84b0aae",
      "new_mode": 33188,
      "new_path": "libweave/src/privet/privet_handler.cc"
    },
    {
      "type": "modify",
      "old_id": "42dd9567ab137e28bd10063f886f6f3605affcb9",
      "old_mode": 33188,
      "old_path": "libweave/src/privet/privet_handler_unittest.cc",
      "new_id": "dba394a5d3f61255185046742595af6e3019a12d",
      "new_mode": 33188,
      "new_path": "libweave/src/privet/privet_handler_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "b4b0153f4a71814eafcb22a99567c44f34201fa3",
      "old_mode": 33188,
      "old_path": "libweave/src/privet/wifi_bootstrap_manager.cc",
      "new_id": "1d2d81358e8c32b623753631d3318278991fe534",
      "new_mode": 33188,
      "new_path": "libweave/src/privet/wifi_bootstrap_manager.cc"
    },
    {
      "type": "modify",
      "old_id": "390af31e03b8b860d110a8837c31a2b21f258e0f",
      "old_mode": 33188,
      "old_path": "libweave/src/privet/wifi_bootstrap_manager.h",
      "new_id": "c0a1c242ed1059633f2dd2b57d7b4c1f94dc2f91",
      "new_mode": 33188,
      "new_path": "libweave/src/privet/wifi_bootstrap_manager.h"
    },
    {
      "type": "modify",
      "old_id": "1dc035555fcb42a9f178d9b2447f07edc999b651",
      "old_mode": 33188,
      "old_path": "libweave/src/streams.cc",
      "new_id": "0516f662a30c7171cdc40aa5bc22c7f121523822",
      "new_mode": 33188,
      "new_path": "libweave/src/streams.cc"
    },
    {
      "type": "modify",
      "old_id": "0a2173749d943fbe83e6f73a8ff2753b9821da80",
      "old_mode": 33188,
      "old_path": "libweave/src/streams.h",
      "new_id": "6d2a1d0085cf6ffa1f6e5308beaa125c5d68ddcc",
      "new_mode": 33188,
      "new_path": "libweave/src/streams.h"
    },
    {
      "type": "modify",
      "old_id": "3cef6f06bfde21b87e9951de9d0e51b343f17935",
      "old_mode": 33188,
      "old_path": "libweave/src/streams_unittest.cc",
      "new_id": "b6693283eaf189ba35c22072db3cb68475fa763b",
      "new_mode": 33188,
      "new_path": "libweave/src/streams_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "786aa015261bbd591ea46d9753dc71dcf4bbf600",
      "old_mode": 33188,
      "old_path": "libweave/src/test/fake_stream.cc",
      "new_id": "7c86c4aee5c3b7d6e6388b7a2c23efb09f409968",
      "new_mode": 33188,
      "new_path": "libweave/src/test/fake_stream.cc"
    },
    {
      "type": "modify",
      "old_id": "8d872298b13bf96f2157a0fb7d6fd8f550e54afb",
      "old_mode": 33188,
      "old_path": "libweave/src/weave_unittest.cc",
      "new_id": "74e8c41ca1ba2138b9460db5f8dfc81fd0a4e7fb",
      "new_mode": 33188,
      "new_path": "libweave/src/weave_unittest.cc"
    }
  ]
}
