sandboxed-api/sandboxed_api
Christian Blichmann 1ae04ac332 clang_generator: Use fully-qualified names, emit in source order
When generating headers from libraries that export functions as `extern "C"`
but still use namespaces (C-compatible C++ libraries), we want to generate
a Sandboxed API that includes fully-qualified namespace names as well.

In addition, we want the generated API to have the same source order as the
original library. Not only is this less surprising when reading the generated
code, it's also more accurate. Previously, we'd bundle all definitions in a
namespace and sort those alphabetically, but for code that relies on symbols
from another namespace to be available, generation will fail:

```c++
namespace zzz {
using entity_count_t = uint64_t;
}  // namespace zzz
namespace sheep_counter {
using sheep_count_t = :💤:entity_count_t;
extern "C" void IncreaseSheepCounter(sheep_count_t increment);
}  // namespace sheep_counter
```

PiperOrigin-RevId: 486586024
Change-Id: I419c9db8e9cb5b904364b353e2dc3d7f1030fab3
2022-11-07 00:37:53 -08:00
..
bazel Bazel: Add copts attribute to macros which use _default_copts where necessary 2022-10-13 06:01:26 -07:00
docs Update references to the new documentation 2021-12-14 09:03:29 -08:00
examples Use Abseil's log/flags instead of glog/gflags 2022-10-20 06:48:51 -07:00
sandbox2 Fix command-line handling in sandbox2tool 2022-10-25 08:05:23 -07:00
tools clang_generator: Use fully-qualified names, emit in source order 2022-11-07 00:37:53 -08:00
util Remove unused SAPI_INTERNAL_UNREACHABLE 2022-10-24 08:48:35 -07:00
BUILD.bazel Use Abseil's log/flags instead of glog/gflags 2022-10-20 06:48:51 -07:00
call.h Change license link to HTTPS URL 2022-01-28 01:39:09 -08:00
client.cc Use Abseil's log/flags instead of glog/gflags 2022-10-20 06:48:51 -07:00
CMakeLists.txt Use Abseil's log/flags instead of glog/gflags 2022-10-20 06:48:51 -07:00
config.h For the SECCOMP event, check if the event msg is in the range of one of the known architectures. 2022-08-31 08:09:37 -07:00
embed_file.cc Use Abseil's log/flags instead of glog/gflags 2022-10-20 06:48:51 -07:00
embed_file.h Change license link to HTTPS URL 2022-01-28 01:39:09 -08:00
file_toc.h Change license link to HTTPS URL 2022-01-28 01:39:09 -08:00
lenval_core.h Change license link to HTTPS URL 2022-01-28 01:39:09 -08:00
proto_arg.proto Migration of remaining protobufs from proto2 to proto3 2022-03-16 00:43:46 -07:00
proto_helper.cc Change to proto2::MessageLite and resolve reflextion for mobile builds 2022-03-03 04:48:30 -08:00
proto_helper.h Change to proto2::MessageLite and resolve reflextion for mobile builds 2022-03-03 04:48:30 -08:00
rpcchannel.cc Use Abseil's log/flags instead of glog/gflags 2022-10-20 06:48:51 -07:00
rpcchannel.h Change license link to HTTPS URL 2022-01-28 01:39:09 -08:00
sandbox.cc Use Abseil's log/flags instead of glog/gflags 2022-10-20 06:48:51 -07:00
sandbox.h Internal Changes 2022-05-19 04:55:24 -07:00
sapi_test.cc #Cleanup: Consistently use std::make_unique 2022-10-12 05:23:42 -07:00
testing.cc bazel: Drop dependency on util/flags.h in runfiles helper 2022-04-20 04:46:08 -07:00
testing.h This change introduces internal experimental support for Android. 2022-06-08 06:51:41 -07:00
transaction.cc Change license link to HTTPS URL 2022-01-28 01:39:09 -08:00
transaction.h Use Abseil's log/flags instead of glog/gflags 2022-10-20 06:48:51 -07:00
var_abstract.cc Use Abseil's log/flags instead of glog/gflags 2022-10-20 06:48:51 -07:00
var_abstract.h Change license link to HTTPS URL 2022-01-28 01:39:09 -08:00
var_array.h Use Abseil's log/flags instead of glog/gflags 2022-10-20 06:48:51 -07:00
var_int.cc Use Abseil's log/flags instead of glog/gflags 2022-10-20 06:48:51 -07:00
var_int.h Change license link to HTTPS URL 2022-01-28 01:39:09 -08:00
var_lenval.cc Use Abseil's log/flags instead of glog/gflags 2022-10-20 06:48:51 -07:00
var_lenval.h Change license link to HTTPS URL 2022-01-28 01:39:09 -08:00
var_proto.h #Cleanup: Consistently use std::make_unique 2022-10-12 05:23:42 -07:00
var_ptr.h Change license link to HTTPS URL 2022-01-28 01:39:09 -08:00
var_reg.h Use Abseil's log/flags instead of glog/gflags 2022-10-20 06:48:51 -07:00
var_struct.h Change license link to HTTPS URL 2022-01-28 01:39:09 -08:00
var_type.h Change license link to HTTPS URL 2022-01-28 01:39:09 -08:00
var_void.h Change license link to HTTPS URL 2022-01-28 01:39:09 -08:00
vars.h Change license link to HTTPS URL 2022-01-28 01:39:09 -08:00