)]}'
{
  "commit": "1ece526b5ccee1b11bd7038e145f8bb96a7f55b0",
  "tree": "fc63b511152b7d01e1595b91803dd94b826b182e",
  "parents": [
    "bb208ff200a66a21a0805e428f341d9190df44da"
  ],
  "author": {
    "name": "QUICHE team",
    "email": "quiche-dev@google.com",
    "time": "Tue Apr 16 14:25:51 2019 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Tue Apr 16 14:52:53 2019 -0700"
  },
  "message": "Create a test utility for sending and receiving data from QuartcDataSources.\n\nQuartcPeer serves as a delegate for QuartcEndpoint, QuartcSession, and\nQuartcDataSource.  It does not own a QuartcEndpoint--it instead expects the\nendpoint to be set up by a test.  It waits for the endpoint to create a session,\nthen initializes QuartcDataSources according to a vector of configs.  It then\nsends the data produced by those sources as QUIC datagrams.\n\nQuartcPeer is responsible for adapting the data sources to the interface\nprovided by the session.  It adjusts bitrates and maximum frame sizes in order\nto ensure that ensure that the data produced fits in the session (in accordance\nwith the session\u0027s max datagram frame size and bandwidth estimate).\n\nQuartcPeer tracks messages it receives.  It parses each message as a frame sent\nby QuartcDataSource, then attaches a receive timestamp.\n\nThis cl also fixes some bugs in QuartcDataSource.  It now produces at least\nenough data to include the full frame header in each of its frames.  It no\nlonger reschedules the send alarm if SetEnabled(true) is called when the source\nis already enabled.\n\ngfe-relnote: n/a (Quartc only)\nPiperOrigin-RevId: 243879297\nChange-Id: I79412e9582fbbe98eaeaf33dca3ee621261c4846\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8f81ccb4d7deeedaa5ff7ce901193dae16c7f43f",
      "old_mode": 33188,
      "old_path": "quic/quartc/test/quartc_data_source.cc",
      "new_id": "22d4716a6e1095a3236ec8a37cb103bef823d997",
      "new_mode": 33188,
      "new_path": "quic/quartc/test/quartc_data_source.cc"
    },
    {
      "type": "modify",
      "old_id": "0e851d319c655b81ffd57b0a59bcc9d9310d004f",
      "old_mode": 33188,
      "old_path": "quic/quartc/test/quartc_data_source.h",
      "new_id": "25717b0278e2e3384d2923507c3f939e16bfa1b2",
      "new_mode": 33188,
      "new_path": "quic/quartc/test/quartc_data_source.h"
    },
    {
      "type": "modify",
      "old_id": "d9a1cfe42ed5dd7b7d3a5c223a998a44e4ba59a1",
      "old_mode": 33188,
      "old_path": "quic/quartc/test/quartc_data_source_test.cc",
      "new_id": "88029b8bdea2333837e56d44b9ccd0b765ae573c",
      "new_mode": 33188,
      "new_path": "quic/quartc/test/quartc_data_source_test.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5970969bed7b05de68dc62d09315a34809c941cd",
      "new_mode": 33188,
      "new_path": "quic/quartc/test/quartc_peer.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "502024ce95f7c07be02b568c1a576f2a7d58033d",
      "new_mode": 33188,
      "new_path": "quic/quartc/test/quartc_peer.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "06a7432713f595fcdca5c100e4b8e0829c181cb8",
      "new_mode": 33188,
      "new_path": "quic/quartc/test/quartc_peer_test.cc"
    }
  ]
}
