)]}'
{
  "commit": "a8049a284ecf3eafddbacf5230b0fefe85de8446",
  "tree": "5069c17fbc6be712f6be97e7ace444051e935717",
  "parents": [
    "d00e7e8de75d7d0bb7ce38f90c2fae8de2db0700"
  ],
  "author": {
    "name": "Jiwen \u0027Steve\u0027 Cai",
    "email": "jwcai@google.com",
    "time": "Wed Mar 28 15:14:02 2018 -0700"
  },
  "committer": {
    "name": "Jiwen \u0027Steve\u0027 Cai",
    "email": "jwcai@google.com",
    "time": "Wed Apr 04 14:10:14 2018 -0700"
  },
  "message": "bufferhubd: Implement more DetachedBuffer logic\n\n1/ Separate DetachedBuffer related logic into a dedicated subclass of\n   BufferHubRPC. This actually is the right thing to do as it utilizes\n   the PDX\u0027s client/service programming pattern better.\n2/ Add IsValid() check for the DetachedBufferChannel object.\n3/ Add BufferHubClient to handle general PDX operations.\n4/ Add DetachedBuffer which composites a BufferHubClient.\n5/ Fully functional logic of allocating a DetachedBuffer, converting it\n   to a BufferHub-backed GraphicBuffer, then converting it back to a\n   DetachedBuffer.\n\nBug: 38137191\nBug: 70046255\nBug: 70912269\nTest: buffer_hub-test\nChange-Id: I81bf9259cbbaeb29a6df2769363b5a03464e7864\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "39814cc216b5cdbdd6683581f6b26f12bf8f5f51",
      "old_mode": 33188,
      "old_path": "libs/vr/libbufferhub/Android.bp",
      "new_id": "b38ecc7190b84f4ccfb92690e72863bff0fc77a4",
      "new_mode": 33188,
      "new_path": "libs/vr/libbufferhub/Android.bp"
    },
    {
      "type": "modify",
      "old_id": "660a2003eaf5b158ec36705137510d803a8c780b",
      "old_mode": 33188,
      "old_path": "libs/vr/libbufferhub/buffer_hub-test.cpp",
      "new_id": "230282887f3f7c4f9b5aaf700255f35568014e41",
      "new_mode": 33188,
      "new_path": "libs/vr/libbufferhub/buffer_hub-test.cpp"
    },
    {
      "type": "modify",
      "old_id": "13971ebae546d4df7ddf7d722c52c614a04dc475",
      "old_mode": 33188,
      "old_path": "libs/vr/libbufferhub/buffer_hub_client.cpp",
      "new_id": "159f2bd1b3d6dde98aec516c7729850b112ad7c9",
      "new_mode": 33188,
      "new_path": "libs/vr/libbufferhub/buffer_hub_client.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1d59cf374c9a2358580c2f45fa5d24b8c3734504",
      "new_mode": 33188,
      "new_path": "libs/vr/libbufferhub/detached_buffer.cpp"
    },
    {
      "type": "modify",
      "old_id": "32448a15447fdb5e20e3736bcddd112c04dff966",
      "old_mode": 33188,
      "old_path": "libs/vr/libbufferhub/include/private/dvr/buffer_hub_client.h",
      "new_id": "c1cc7f34f8ddd06a340fdede496fc4c90bfbf53e",
      "new_mode": 33188,
      "new_path": "libs/vr/libbufferhub/include/private/dvr/buffer_hub_client.h"
    },
    {
      "type": "modify",
      "old_id": "fabefd51674ebdcba883e054df233d7f81ebaeaf",
      "old_mode": 33188,
      "old_path": "libs/vr/libbufferhub/include/private/dvr/bufferhub_rpc.h",
      "new_id": "f4918c497ef603e8e9edab1342ab080fe9f2120e",
      "new_mode": 33188,
      "new_path": "libs/vr/libbufferhub/include/private/dvr/bufferhub_rpc.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "73e895d7ef9b17c4b5ba1049ef246f4a8975f9c8",
      "new_mode": 33188,
      "new_path": "libs/vr/libbufferhub/include/private/dvr/detached_buffer.h"
    },
    {
      "type": "modify",
      "old_id": "0d337f7b3b5f1ebbd2d16ba32b2c476694571269",
      "old_mode": 33188,
      "old_path": "libs/vr/libbufferhub/include/private/dvr/ion_buffer.h",
      "new_id": "f6bc5471f45bf3f594429fcac4c2f029cd82feb3",
      "new_mode": 33188,
      "new_path": "libs/vr/libbufferhub/include/private/dvr/ion_buffer.h"
    },
    {
      "type": "modify",
      "old_id": "a01c4d67ec28a73f5a60b1f0b21ebf1d56628f17",
      "old_mode": 33188,
      "old_path": "libs/vr/libpdx/client.cpp",
      "new_id": "3c66a40a1bfe693cb04ed87fea0fa7ea67e44fd1",
      "new_mode": 33188,
      "new_path": "libs/vr/libpdx/client.cpp"
    },
    {
      "type": "modify",
      "old_id": "656de7e2cabe969dd9d2c00563d0ee9f54cdc6cc",
      "old_mode": 33188,
      "old_path": "libs/vr/libpdx/private/pdx/client.h",
      "new_id": "c35dabddf7c770c6bcae4e38e0c302cf57181fd3",
      "new_mode": 33188,
      "new_path": "libs/vr/libpdx/private/pdx/client.h"
    },
    {
      "type": "modify",
      "old_id": "8f5fdfe71f7a6e5099edac107d277208b21a59c3",
      "old_mode": 33188,
      "old_path": "libs/vr/libpdx/private/pdx/client_channel.h",
      "new_id": "f33a60e88177a286397b7bc437e08240e7fd4894",
      "new_mode": 33188,
      "new_path": "libs/vr/libpdx/private/pdx/client_channel.h"
    },
    {
      "type": "modify",
      "old_id": "ecc20b3275bcac6ada9cbc3dab22755137a89f52",
      "old_mode": 33188,
      "old_path": "libs/vr/libpdx/private/pdx/mock_client_channel.h",
      "new_id": "b1a12996c5e715da9b9399e5092a27e82b8e100c",
      "new_mode": 33188,
      "new_path": "libs/vr/libpdx/private/pdx/mock_client_channel.h"
    },
    {
      "type": "modify",
      "old_id": "b5524d8a626afb954aef1d945a5b1b4203bbac22",
      "old_mode": 33188,
      "old_path": "libs/vr/libpdx_uds/private/uds/client_channel.h",
      "new_id": "3561c6f19106bcd2767c5b287fd0a7068115fe9e",
      "new_mode": 33188,
      "new_path": "libs/vr/libpdx_uds/private/uds/client_channel.h"
    },
    {
      "type": "modify",
      "old_id": "e4e19c7518492e9134ae1d028137fcbb8f8f6623",
      "old_mode": 33188,
      "old_path": "services/vr/bufferhubd/buffer_hub.cpp",
      "new_id": "72bf6f2eb7c4936cb48620d1226e77df00c16981",
      "new_mode": 33188,
      "new_path": "services/vr/bufferhubd/buffer_hub.cpp"
    },
    {
      "type": "modify",
      "old_id": "e04967aa0603981a6676c45f70dfe6a9ef2d09fb",
      "old_mode": 33188,
      "old_path": "services/vr/bufferhubd/buffer_hub.h",
      "new_id": "e47ffa341770ffc6d5ae0109d2f9e29109af975e",
      "new_mode": 33188,
      "new_path": "services/vr/bufferhubd/buffer_hub.h"
    },
    {
      "type": "modify",
      "old_id": "edb211126db6aa39efecc6677f12e65f826d407a",
      "old_mode": 33188,
      "old_path": "services/vr/bufferhubd/detached_buffer_channel.cpp",
      "new_id": "4f4160ab88796395ec1d5b22f06514dc5d1d7b3a",
      "new_mode": 33188,
      "new_path": "services/vr/bufferhubd/detached_buffer_channel.cpp"
    },
    {
      "type": "modify",
      "old_id": "7ce4aed966193de9e334ece2c6047c46539edf7f",
      "old_mode": 33188,
      "old_path": "services/vr/bufferhubd/detached_buffer_channel.h",
      "new_id": "079ba72d8839ab4d1d91716fe650b86a591164ca",
      "new_mode": 33188,
      "new_path": "services/vr/bufferhubd/detached_buffer_channel.h"
    },
    {
      "type": "modify",
      "old_id": "c38c12b7b1705ea1ae7381e60cd7d7892d463d41",
      "old_mode": 33188,
      "old_path": "services/vr/bufferhubd/producer_channel.cpp",
      "new_id": "a753168750736382ac0c876ce657b1c6d1a48220",
      "new_mode": 33188,
      "new_path": "services/vr/bufferhubd/producer_channel.cpp"
    }
  ]
}
