|
|
||
|---|---|---|
| .. | ||
| adaptation | ||
| audio | ||
| audio_codecs | ||
| call | ||
| crypto | ||
| neteq | ||
| rtc_event_log | ||
| stats | ||
| task_queue | ||
| test | ||
| transport | ||
| units | ||
| video | ||
| video_codecs | ||
| voip | ||
| BUILD.gn | ||
| DEPS | ||
| DESIGN.md | ||
| OWNERS.webrtc | ||
| README.md | ||
| array_view.h | ||
| array_view_unittest.cc | ||
| async_resolver_factory.h | ||
| audio_options.cc | ||
| audio_options.h | ||
| candidate.cc | ||
| candidate.h | ||
| create_peerconnection_factory.cc | ||
| create_peerconnection_factory.h | ||
| crypto_params.h | ||
| data_channel_interface.cc | ||
| data_channel_interface.h | ||
| dtls_transport_interface.cc | ||
| dtls_transport_interface.h | ||
| dtmf_sender_interface.h | ||
| fec_controller.h | ||
| fec_controller_override.h | ||
| frame_transformer_interface.h | ||
| function_view.h | ||
| function_view_unittest.cc | ||
| ice_transport_factory.cc | ||
| ice_transport_factory.h | ||
| ice_transport_interface.h | ||
| jsep.cc | ||
| jsep.h | ||
| jsep_ice_candidate.cc | ||
| jsep_ice_candidate.h | ||
| jsep_session_description.h | ||
| media_stream_interface.cc | ||
| media_stream_interface.h | ||
| media_stream_proxy.h | ||
| media_stream_track_proxy.h | ||
| media_types.cc | ||
| media_types.h | ||
| network_state_predictor.h | ||
| notifier.h | ||
| packet_socket_factory.h | ||
| peer_connection_factory_proxy.h | ||
| peer_connection_interface.cc | ||
| peer_connection_interface.h | ||
| peer_connection_proxy.h | ||
| priority.h | ||
| proxy.cc | ||
| proxy.h | ||
| ref_counted_base.h | ||
| rtc_error.cc | ||
| rtc_error.h | ||
| rtc_error_unittest.cc | ||
| rtc_event_log_output.h | ||
| rtc_event_log_output_file.cc | ||
| rtc_event_log_output_file.h | ||
| rtc_event_log_output_file_unittest.cc | ||
| rtp_headers.cc | ||
| rtp_headers.h | ||
| rtp_packet_info.cc | ||
| rtp_packet_info.h | ||
| rtp_packet_info_unittest.cc | ||
| rtp_packet_infos.h | ||
| rtp_packet_infos_unittest.cc | ||
| rtp_parameters.cc | ||
| rtp_parameters.h | ||
| rtp_parameters_unittest.cc | ||
| rtp_receiver_interface.cc | ||
| rtp_receiver_interface.h | ||
| rtp_sender_interface.cc | ||
| rtp_sender_interface.h | ||
| rtp_transceiver_direction.h | ||
| rtp_transceiver_interface.cc | ||
| rtp_transceiver_interface.h | ||
| scoped_refptr.h | ||
| scoped_refptr_unittest.cc | ||
| sctp_transport_interface.cc | ||
| sctp_transport_interface.h | ||
| set_remote_description_observer_interface.h | ||
| stats_types.cc | ||
| stats_types.h | ||
| turn_customizer.h | ||
| uma_metrics.h | ||
| video_track_source_proxy.h | ||
README.md
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 “.hand.ccfiles come in pairs” rule, so if you declare something inapi/path/to/foo.h, it should be defined inapi/path/to/foo.cc. - Headers in
api/should, if possible, not#includeheaders outsideapi/. It’s not always possible to avoid this, but be aware that it adds to a small mountain of technical debt that we’re trying to shrink. .ccfiles inapi/, on the other hand, are free to#includeheaders outsideapi/.
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 won’t 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.