Use absl::AnyInvocable instead of std::function in JsepTransportCollection and JsepTransport

This change updates `JsepTransportCollection` and `JsepTransport` to use `absl::AnyInvocable`
instead of `std::function` for callbacks.

This aligns with webrtc guidance:
https://webrtc.googlesource.com/src/+/refs/heads/main/g3doc/style-guide.md

This change was made by Gemini using the following prompt:
Use commit d471f7cf9a3e7900404ba5ef1 as a template for how to port each use of std::function in the `pc/jsep_transport_collection.h` and `pc/jsep_transport.h` files to absl::AnyInvocable.
Use absl::AnyInvocable<void() &&> for callbacks used once and absl::AnyInvocable<void()> otherwise.
Port usage one at a time and use `ninja -C out/Default` to see if you change compiles before moving to the next usage.
Use `tools_webrtc/gn_check_autofix.py -C out/Default` to update the BUILD.gn files.
Use `git cl format` to ensure formatting.
Use `git diff --name-only | xargs tools_webrtc/iwyu/apply-include-cleaner` to add include files needed.

When done, write a commit message in the same style as the commit above and acknowledge this was done by gemini and include this prompt. Finally, verify the commit message.

Bug: None
Change-Id: I69c1626da573b58df7422935b3d4616b33e3c352
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/425121
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Commit-Queue: Philipp Hancke <philipp.hancke@googlemail.com>
Cr-Commit-Position: refs/heads/main@{#46193}
4 files changed
tree: e709f925bcb4de202171ff5615298b920b8cf01e
  1. api/
  2. audio/
  3. build_overrides/
  4. call/
  5. common_audio/
  6. common_video/
  7. data/
  8. docs/
  9. examples/
  10. experiments/
  11. g3doc/
  12. infra/
  13. logging/
  14. media/
  15. modules/
  16. net/
  17. p2p/
  18. pc/
  19. resources/
  20. rtc_base/
  21. rtc_tools/
  22. sdk/
  23. stats/
  24. system_wrappers/
  25. test/
  26. tools_webrtc/
  27. video/
  28. .clang-format
  29. .clang-tidy
  30. .git-blame-ignore-revs
  31. .gitignore
  32. .gn
  33. .mailmap
  34. .rustfmt.toml
  35. .style.yapf
  36. .vpython3
  37. AUTHORS
  38. BUILD.gn
  39. CODE_OF_CONDUCT.md
  40. codereview.settings
  41. DEPS
  42. DIR_METADATA
  43. ENG_REVIEW_OWNERS
  44. LICENSE
  45. license_template.txt
  46. native-api.md
  47. OWNERS
  48. OWNERS_INFRA
  49. PATENTS
  50. PRESUBMIT.py
  51. presubmit_test.py
  52. presubmit_test_mocks.py
  53. pylintrc
  54. pylintrc_old_style
  55. README.chromium
  56. README.md
  57. WATCHLISTS
  58. webrtc.gni
  59. webrtc_lib_link_test.cc
  60. whitespace.txt
README.md

WebRTC is a free, open software project that provides browsers and mobile applications with Real-Time Communications (RTC) capabilities via simple APIs. The WebRTC components have been optimized to best serve this purpose.

Our mission: To enable rich, high-quality RTC applications to be developed for the browser, mobile platforms, and IoT devices, and allow them all to communicate via a common set of protocols.

The WebRTC initiative is a project supported by Google, Mozilla and Opera, amongst others.

Development

See here for instructions on how to get started developing with the native code.

Authoritative list of directories that contain the native API header files.

More info