• Home
Name Date Size #Lines LOC

..--

include/android-base/03-May-2024-4,5982,404

tidy/03-May-2024-5313

.clang-formatD03-May-2024239

Android.bpD03-May-20247.1 KiB318295

CPPLINT.cfgD03-May-202490 32

NOTICED03-May-202412.5 KiB231193

OWNERSD03-May-202415 21

PREUPLOAD.cfgD03-May-2024246 96

README.mdD03-May-20241.6 KiB4330

TEST_MAPPINGD03-May-2024136 1312

abi_compatibility.cppD03-May-20242.9 KiB9053

chrono_utils.cppD03-May-20241.2 KiB4320

chrono_utils_test.cppD03-May-20242.4 KiB8151

cmsg.cppD03-May-20245.4 KiB176128

cmsg_test.cppD03-May-20245.6 KiB203143

endian_test.cppD03-May-20242 KiB7040

errors_test.cppD03-May-20241.1 KiB3511

errors_unix.cppD03-May-2024866 3110

errors_windows.cppD03-May-20242.4 KiB6933

expected_test.cppD03-May-202422.5 KiB877712

file.cppD03-May-202419 KiB679518

file_benchmark.cppD03-May-20241.2 KiB3918

file_test.cppD03-May-202413.2 KiB432325

format_benchmark.cppD03-May-20242.4 KiB8146

function_ref_benchmark.cppD03-May-20243 KiB11580

function_ref_test.cppD03-May-20242.4 KiB8853

hex.cppD03-May-20241.3 KiB4318

hex_test.cppD03-May-20241.9 KiB5028

logging.cppD03-May-202416.2 KiB577454

logging_splitters.hD03-May-20247 KiB186122

logging_splitters_test.cppD03-May-202412.4 KiB326236

logging_test.cppD03-May-202423.1 KiB708543

macros_test.cppD03-May-2024867 3111

mapped_file.cppD03-May-20243.9 KiB12994

mapped_file_test.cppD03-May-20241.4 KiB5023

no_destructor_test.cppD03-May-20241.7 KiB6740

parsebool.cppD03-May-20241 KiB3515

parsebool_test.cppD03-May-20241.3 KiB4926

parsedouble_test.cppD03-May-20242.5 KiB6842

parseint_test.cppD03-May-20245.7 KiB204156

parsenetaddress.cppD03-May-20242.4 KiB8353

parsenetaddress_fuzzer.cppD03-May-20241 KiB3010

parsenetaddress_fuzzer.dictD03-May-2024515 3533

parsenetaddress_test.cppD03-May-20243.6 KiB12886

posix_strerror_r.cppD03-May-20241 KiB3513

process.cppD03-May-2024988 4019

process_test.cppD03-May-2024947 3614

properties.cppD03-May-20249.8 KiB284208

properties_test.cppD03-May-202410.7 KiB285209

result_test.cppD03-May-202425.5 KiB833645

result_test_constraint.cppD03-May-2024916 221

scopeguard_test.cppD03-May-20241.8 KiB6037

stringprintf.cppD03-May-20242.2 KiB8646

stringprintf_test.cppD03-May-20241.5 KiB6135

strings.cppD03-May-20244.5 KiB151101

strings_test.cppD03-May-202414.3 KiB423331

test_main.cppD03-May-2024851 267

test_utils.cppD03-May-20242 KiB7645

test_utils_test.cppD03-May-20243.2 KiB10469

threads.cppD03-May-20241.3 KiB5532

utf8.cppD03-May-20246.6 KiB236153

utf8_test.cppD03-May-202416.2 KiB489295

README.md

1# libbase
2
3## Who is this library for?
4
5This library is a collection of convenience functions to make common tasks
6easier and less error-prone.
7
8In this context, "error-prone" covers both "hard to do correctly" and
9"hard to do with good performance", but as a general purpose library,
10libbase's primary focus is on making it easier to do things easily and
11correctly when a compromise has to be made between "simplest API" on the
12one hand and "fastest implementation" on the other. Though obviously
13the ideal is to have both.
14
15## Should my routine be added?
16
17The intention is to cover the 80% use cases, not be all things to all users.
18
19If you have a routine that's really useful in your project,
20congratulations. But that doesn't mean it should be here rather than
21just in your project.
22
23The question for libbase is "should everyone be doing this?"/"does this
24make everyone's code cleaner/safer?". Historically we've considered the
25bar for inclusion to be "are there at least three *unrelated* projects
26that would be cleaned up by doing so".
27
28If your routine is actually something from a future C++ standard (that
29isn't yet in libc++), or it's widely used in another library, that helps
30show that there's precedent. Being able to say "so-and-so has used this
31API for n years" is a good way to reduce concerns about API choices.
32
33## Any other restrictions?
34
35Unlike most Android code, code in libbase has to build for Mac and
36Windows too.
37
38Code here is also expected to have good test coverage.
39
40By its nature, it's difficult to change libbase API. It's often best
41to start using your routine just in your project, and let it "graduate"
42after you're certain that the API is solid.
43