aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow/contrib/lite/stderr_reporter.cc
diff options
context:
space:
mode:
authorGravatar Pete Warden <petewarden@google.com>2018-09-07 17:36:59 -0700
committerGravatar TensorFlower Gardener <gardener@tensorflow.org>2018-09-07 17:40:10 -0700
commit9982fd6c8831cbd2f58954f79ea71f26660393bc (patch)
tree108907bde953d0d70ee5d3b8323a99bb9b681563 /tensorflow/contrib/lite/stderr_reporter.cc
parentedda5e39e4e93ba60e4d31b6ecb1c295dead29c8 (diff)
Modularize TF Lite interface definitions and reorganize file structure
PiperOrigin-RevId: 212064501
Diffstat (limited to 'tensorflow/contrib/lite/stderr_reporter.cc')
-rw-r--r--tensorflow/contrib/lite/stderr_reporter.cc45
1 files changed, 45 insertions, 0 deletions
diff --git a/tensorflow/contrib/lite/stderr_reporter.cc b/tensorflow/contrib/lite/stderr_reporter.cc
new file mode 100644
index 0000000000..e29a6345fd
--- /dev/null
+++ b/tensorflow/contrib/lite/stderr_reporter.cc
@@ -0,0 +1,45 @@
+/* Copyright 2017 The TensorFlow Authors. All Rights Reserved.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+==============================================================================*/
+#include "tensorflow/contrib/lite/stderr_reporter.h"
+#include <cstdarg>
+#include <cstdio>
+
+#ifdef __ANDROID__
+#include <android/log.h>
+#endif
+
+namespace tflite {
+
+int StderrReporter::Report(const char* format, va_list args) {
+#ifdef __ANDROID__
+ // On Android stderr is not captured for applications, only for code run from
+ // the shell. Rather than assume all users will set up a custom error
+ // reporter, let's output to logcat here
+ va_list args_for_log;
+ va_copy(args_for_log, args);
+ __android_log_vprint(ANDROID_LOG_ERROR, "tflite", format, args_for_log);
+ va_end(args_for_log);
+#endif
+ const int result = vfprintf(stderr, format, args);
+ fputc('\n', stderr);
+ return result;
+}
+
+ErrorReporter* DefaultErrorReporter() {
+ static StderrReporter* error_reporter = new StderrReporter;
+ return error_reporter;
+}
+
+} // namespace tflite