Harald Alvestrand 4f19950660 Reland "Remove some default implementations in api/rtp_transcever_interface"
This reverts commit 226a2e32d03df3a2cf4bf3c616ac00dcd91ed3d2.

Reason for revert: Downstream fixed (will submit when true)

Original change's description:
> Revert "Remove some default implementations in api/rtp_transcever_interface"
>
> This reverts commit 40941ee72d30676296f3545004e7a6e30b959612.
>
> Reason for revert: breaks downstream project
>
> Original change's description:
> > Remove some default implementations in api/rtp_transcever_interface
> >
> > Bug: webrtc:11839
> > Change-Id: I6ddc0468e75bc346e12fc3dc64236ca2ab52e708
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/244504
> > Reviewed-by: Henrik Boström <hbos@webrtc.org>
> > Commit-Queue: Harald Alvestrand <hta@webrtc.org>
> > Cr-Commit-Position: refs/heads/main@{#35701}
>
> # Not skipping CQ checks because original CL landed > 1 day ago.
>
> Bug: webrtc:11839
> Change-Id: I8a3eb0a279b28ed8b55745af97596c4a853669be
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/247186
> Reviewed-by: Björn Terelius <terelius@webrtc.org>
> Owners-Override: Artem Titov <titovartem@webrtc.org>
> Commit-Queue: Artem Titov <titovartem@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#35713}

# Not skipping CQ checks because this is a reland.

Bug: webrtc:11839
Change-Id: Ie25f1a5fdb4ef8ebf200780755a69dc09dd28ccb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/247189
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35737}
2022-01-19 11:32:24 +00:00
..
2021-11-30 10:31:16 +00:00
2021-08-16 14:38:57 +00:00
2021-11-23 08:37:36 +00:00
2021-08-31 14:27:49 +00:00
2021-12-14 21:16:18 +00:00
2021-12-03 12:01:14 +00:00
2021-12-03 12:01:14 +00:00
2021-06-11 12:59:37 +00:00

How to write code in the api/ directory

Mostly, just follow the regular style guide, but:

  • Note that api/ code is not exempt from the “.h and .cc files come in pairs” rule, so if you declare something in api/path/to/foo.h, it should be defined in api/path/to/foo.cc.
  • Headers in api/ should, if possible, not #include headers outside api/. Its not always possible to avoid this, but be aware that it adds to a small mountain of technical debt that were trying to shrink.
  • .cc files in api/, on the other hand, are free to #include headers outside api/.

That is, the preferred way for api/ code to access non-api/ code is to call it from a .cc file, so that users of our API headers wont transitively #include non-public headers.

For headers in api/ that need to refer to non-public types, forward declarations are often a lesser evil than including non-public header files. The usual rules still apply, though.

.cc files in api/ should preferably be kept reasonably small. If a substantial implementation is needed, consider putting it with our non-public code, and just call it from the api/ .cc file.