)]}'
{
  "commit": "89d3b8ac58c523fba41356ea560cf95c9c451790",
  "tree": "1ccd9dc9c69741216726354a2a8764966da02792",
  "parents": [
    "b95fbe74be46e3d888824ad6c1f1d42f0f00aa5b"
  ],
  "author": {
    "name": "ericorth",
    "email": "ericorth@google.com",
    "time": "Tue Aug 09 08:29:21 2022 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Tue Aug 09 08:30:47 2022 -0700"
  },
  "message": "Add higher-level TCP client socket/factory support to QUICHE\n\nAdded some basic interfaces that could be used to abstract away implementation details of socket operations, including a SocketFactory that allows initiation details like QuicEventLoop to be hidden away from code interacting with it and creating/running sockets.  Especially helpful to pass factory objects to code that doesn\u0027t need to know details around the event/async libraries in use or need to stay agnostic between them to build on multiple plaforms/environments.\n\nInterfaces support my current needs (TCP client sockets), but left them deliberately open to future expansion to server sockets or UDP, etc.  Created a QuicEventLoop-based implementation of the interfaces.\n\nPiperOrigin-RevId: 466366913\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "30d068a1c572f93b7faf35a99b0460fb61844a38",
      "old_mode": 33188,
      "old_path": "build/source_list.bzl",
      "new_id": "a928fe684c66ee2720f6e638c9d3e63d62aa70ca",
      "new_mode": 33188,
      "new_path": "build/source_list.bzl"
    },
    {
      "type": "modify",
      "old_id": "daadaf6f1beaa11891527a7248eff24ae839c6fe",
      "old_mode": 33188,
      "old_path": "build/source_list.gni",
      "new_id": "2fd7580555a2d35c0711364d73ec828a26a52ebc",
      "new_mode": 33188,
      "new_path": "build/source_list.gni"
    },
    {
      "type": "modify",
      "old_id": "ca31469a43b13acb1b47251771e32cd927b43e57",
      "old_mode": 33188,
      "old_path": "build/source_list.json",
      "new_id": "02f608bf2ac74a674c27901facab9d0a9cea1a45",
      "new_mode": 33188,
      "new_path": "build/source_list.json"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4d2508e4f4f3672d7c790687f6d0ae89f68834ab",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/io/event_loop_socket_factory.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6882e808797cc6b495f41813307ce9a4ad2472c9",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/io/event_loop_socket_factory.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "84263bc9a829e71b0725f61703c8efe8a75d5855",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/io/event_loop_tcp_client_socket.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2d50087a5e8202e0491bb50bfd2f51609a76ef59",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/io/event_loop_tcp_client_socket.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f3c0800457afe72fbed89505dcc8072ceabdeade",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/io/event_loop_tcp_client_socket_test.cc"
    },
    {
      "type": "modify",
      "old_id": "748de4da3f8eb828c8035b620f661595f32e17e7",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/io/socket.h",
      "new_id": "fcc6418ac495584b26f12e5be9b9dcb045be6e73",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/io/socket.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "39102f1c870e0de47487630383924b40180ec0cd",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/io/socket_factory.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "00f9a42a5ad2485346a837c839b8fff8d7d1cf10",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/io/stream_client_socket.h"
    }
  ]
}
