Loading libstats/socket/Android.bp +4 −1 Original line number Diff line number Diff line Loading @@ -109,7 +109,10 @@ cc_benchmark { cc_test { name: "libstatssocket_test", srcs: ["tests/stats_event_test.cpp"], srcs: [ "tests/stats_event_test.cpp", "tests/stats_writer_test.cpp", ], cflags: [ "-Wall", "-Werror", Loading libstats/socket/include/stats_buffer_writer.h +1 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ extern "C" { #endif // __CPLUSPLUS void stats_log_close(); int stats_log_is_closed(); int write_buffer_to_statsd(void* buffer, size_t size, uint32_t atomId); #ifdef __cplusplus } Loading libstats/socket/stats_buffer_writer.c +4 −0 Original line number Diff line number Diff line Loading @@ -43,6 +43,10 @@ void stats_log_close() { statsd_writer_init_unlock(); } int stats_log_is_closed() { return statsdLoggerWrite.isClosed && (*statsdLoggerWrite.isClosed)(); } int write_buffer_to_statsd(void* buffer, size_t size, uint32_t atomId) { int ret = 1; Loading libstats/socket/statsd_writer.c +9 −0 Original line number Diff line number Diff line Loading @@ -62,6 +62,7 @@ static int statsdOpen(); static void statsdClose(); static int statsdWrite(struct timespec* ts, struct iovec* vec, size_t nr); static void statsdNoteDrop(); static int statsdIsClosed(); struct android_log_transport_write statsdLoggerWrite = { .name = "statsd", Loading @@ -71,6 +72,7 @@ struct android_log_transport_write statsdLoggerWrite = { .close = statsdClose, .write = statsdWrite, .noteDrop = statsdNoteDrop, .isClosed = statsdIsClosed, }; /* log_init_lock assumed */ Loading Loading @@ -153,6 +155,13 @@ static void statsdNoteDrop(int error, int tag) { atomic_exchange_explicit(&atom_tag, tag, memory_order_relaxed); } static int statsdIsClosed() { if (atomic_load(&statsdLoggerWrite.sock) < 0) { return 1; } return 0; } static int statsdWrite(struct timespec* ts, struct iovec* vec, size_t nr) { ssize_t ret; int sock; Loading libstats/socket/statsd_writer.h +2 −0 Original line number Diff line number Diff line Loading @@ -40,6 +40,8 @@ struct android_log_transport_write { int (*write)(struct timespec* ts, struct iovec* vec, size_t nr); /* note one log drop */ void (*noteDrop)(int error, int tag); /* checks if the socket is closed */ int (*isClosed)(); }; #endif // ANDROID_STATS_LOG_STATS_WRITER_H Loading
libstats/socket/Android.bp +4 −1 Original line number Diff line number Diff line Loading @@ -109,7 +109,10 @@ cc_benchmark { cc_test { name: "libstatssocket_test", srcs: ["tests/stats_event_test.cpp"], srcs: [ "tests/stats_event_test.cpp", "tests/stats_writer_test.cpp", ], cflags: [ "-Wall", "-Werror", Loading
libstats/socket/include/stats_buffer_writer.h +1 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ extern "C" { #endif // __CPLUSPLUS void stats_log_close(); int stats_log_is_closed(); int write_buffer_to_statsd(void* buffer, size_t size, uint32_t atomId); #ifdef __cplusplus } Loading
libstats/socket/stats_buffer_writer.c +4 −0 Original line number Diff line number Diff line Loading @@ -43,6 +43,10 @@ void stats_log_close() { statsd_writer_init_unlock(); } int stats_log_is_closed() { return statsdLoggerWrite.isClosed && (*statsdLoggerWrite.isClosed)(); } int write_buffer_to_statsd(void* buffer, size_t size, uint32_t atomId) { int ret = 1; Loading
libstats/socket/statsd_writer.c +9 −0 Original line number Diff line number Diff line Loading @@ -62,6 +62,7 @@ static int statsdOpen(); static void statsdClose(); static int statsdWrite(struct timespec* ts, struct iovec* vec, size_t nr); static void statsdNoteDrop(); static int statsdIsClosed(); struct android_log_transport_write statsdLoggerWrite = { .name = "statsd", Loading @@ -71,6 +72,7 @@ struct android_log_transport_write statsdLoggerWrite = { .close = statsdClose, .write = statsdWrite, .noteDrop = statsdNoteDrop, .isClosed = statsdIsClosed, }; /* log_init_lock assumed */ Loading Loading @@ -153,6 +155,13 @@ static void statsdNoteDrop(int error, int tag) { atomic_exchange_explicit(&atom_tag, tag, memory_order_relaxed); } static int statsdIsClosed() { if (atomic_load(&statsdLoggerWrite.sock) < 0) { return 1; } return 0; } static int statsdWrite(struct timespec* ts, struct iovec* vec, size_t nr) { ssize_t ret; int sock; Loading
libstats/socket/statsd_writer.h +2 −0 Original line number Diff line number Diff line Loading @@ -40,6 +40,8 @@ struct android_log_transport_write { int (*write)(struct timespec* ts, struct iovec* vec, size_t nr); /* note one log drop */ void (*noteDrop)(int error, int tag); /* checks if the socket is closed */ int (*isClosed)(); }; #endif // ANDROID_STATS_LOG_STATS_WRITER_H