diff --git a/tensorflow/core/BUILD b/tensorflow/core/BUILD index c8c6b7188e2..48388401b55 100644 --- a/tensorflow/core/BUILD +++ b/tensorflow/core/BUILD @@ -670,6 +670,7 @@ cc_library( "//tensorflow/core/platform:macros.h", "//tensorflow/core/platform:platform.h", "//tensorflow/core/platform:protobuf.h", + "//tensorflow/core/platform:stringpiece.h", "//tensorflow/core/platform:tstring.h", "//tensorflow/core/platform:types.h", "//tensorflow/core/platform:windows/cpu_info.h", @@ -679,11 +680,12 @@ cc_library( ":platform_base", "@com_google_absl//absl/strings", "@double_conversion//:double-conversion", - "//tensorflow/core/platform:macros", - "//tensorflow/core/platform:logging", - "//tensorflow/core/platform:platform", - "//tensorflow/core/platform:types", "//tensorflow/core/platform:cpu_info", + "//tensorflow/core/platform:logging", + "//tensorflow/core/platform:macros", + "//tensorflow/core/platform:platform", + "//tensorflow/core/platform:stringpiece", + "//tensorflow/core/platform:types", ], ) @@ -765,6 +767,7 @@ cc_library( visibility = ["//visibility:public"], deps = [ ":lib_internal", + "//tensorflow/core/platform:stringpiece", "@com_google_absl//absl/container:inlined_vector", "@com_google_absl//absl/strings", "@com_google_absl//absl/types:optional", @@ -810,16 +813,13 @@ cc_library( ], ) -# Libraries that will eventually be moved into lib/core -# Note that stringpiece_test can't be place here yet, because we are -# required to use tf_cc_test, and that rule will change / into _ +# DEPRECATED: use platform:stringpiece instead. cc_library( name = "core_stringpiece", hdrs = ["lib/core/stringpiece.h"], copts = tf_copts(), deps = [ - ":platform_base", - "@com_google_absl//absl/strings", + "//tensorflow/core/platform:stringpiece", ], ) @@ -2627,12 +2627,15 @@ cc_library( "//tensorflow/core/platform:macros.h", "//tensorflow/core/platform:mem.h", "//tensorflow/core/platform:platform.h", + "//tensorflow/core/platform:stringpiece.h", "//tensorflow/core/platform:tstring.h", "//tensorflow/core/platform:types.h", ], copts = tf_copts(), linkopts = ["-ldl"], deps = [ + ":core_stringpiece", + "//tensorflow/core/platform:stringpiece", "//tensorflow/core/platform/default/build_config:jpeg", "//tensorflow/core/platform/default/build_config:logging", "@com_google_absl//absl/base:core_headers", @@ -3755,7 +3758,6 @@ tf_cc_tests( "lib/core/notification_test.cc", "lib/core/refcount_test.cc", "lib/core/status_test.cc", - "lib/core/stringpiece_test.cc", "lib/core/threadpool_test.cc", "lib/gtl/cleanup_test.cc", "lib/gtl/compactptrset_test.cc", @@ -3805,6 +3807,7 @@ tf_cc_tests( "//tensorflow/core/platform:port_test.cc", "//tensorflow/core/platform:profile_utils/cpu_utils_test.cc", "//tensorflow/core/platform:stacktrace_handler_test.cc", + "//tensorflow/core/platform:stringpiece_test.cc", "//tensorflow/core/platform:subprocess_test.cc", "//tensorflow/core/platform:vmodule_benchmark_test.cc", ], @@ -3816,6 +3819,7 @@ tf_cc_tests( ":protos_all_cc", ":test", ":test_main", + "//tensorflow/core/platform:stringpiece", "//third_party/eigen3", "@com_google_absl//absl/strings", "@com_google_absl//absl/synchronization", diff --git a/tensorflow/core/lib/core/stringpiece.h b/tensorflow/core/lib/core/stringpiece.h index 6edff139ae2..ba389e5bfb3 100644 --- a/tensorflow/core/lib/core/stringpiece.h +++ b/tensorflow/core/lib/core/stringpiece.h @@ -26,13 +26,6 @@ limitations under the License. #ifndef TENSORFLOW_CORE_LIB_CORE_STRINGPIECE_H_ #define TENSORFLOW_CORE_LIB_CORE_STRINGPIECE_H_ -#include "absl/strings/string_view.h" - -namespace tensorflow { - -// Deprecated: please use absl::string_view directly. -using StringPiece = absl::string_view; - -} // namespace tensorflow +#include "tensorflow/core/platform/stringpiece.h" #endif // TENSORFLOW_CORE_LIB_CORE_STRINGPIECE_H_ diff --git a/tensorflow/core/platform/BUILD b/tensorflow/core/platform/BUILD index 1416011f0be..98ab3d1241b 100644 --- a/tensorflow/core/platform/BUILD +++ b/tensorflow/core/platform/BUILD @@ -160,6 +160,14 @@ cc_library( ], ) +cc_library( + name = "stringpiece", + hdrs = ["stringpiece.h"], + deps = [ + "@com_google_absl//absl/strings", + ], +) + cc_library( name = "tstring", hdrs = ["tstring.h"], diff --git a/tensorflow/core/platform/stringpiece.h b/tensorflow/core/platform/stringpiece.h new file mode 100644 index 00000000000..4ca42b474dd --- /dev/null +++ b/tensorflow/core/platform/stringpiece.h @@ -0,0 +1,37 @@ +/* Copyright 2015 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. +==============================================================================*/ + +// StringPiece is a simple structure containing a pointer into some external +// storage and a size. The user of a StringPiece must ensure that the slice +// is not used after the corresponding external storage has been +// deallocated. +// +// Multiple threads can invoke const methods on a StringPiece without +// external synchronization, but if any of the threads may call a +// non-const method, all threads accessing the same StringPiece must use +// external synchronization. + +#ifndef TENSORFLOW_CORE_PLATFORM_STRINGPIECE_H_ +#define TENSORFLOW_CORE_PLATFORM_STRINGPIECE_H_ + +#include "absl/strings/string_view.h" + +namespace tensorflow { + +using StringPiece = absl::string_view; + +} // namespace tensorflow + +#endif // TENSORFLOW_CORE_PLATFORM_STRINGPIECE_H_ diff --git a/tensorflow/core/lib/core/stringpiece_test.cc b/tensorflow/core/platform/stringpiece_test.cc similarity index 97% rename from tensorflow/core/lib/core/stringpiece_test.cc rename to tensorflow/core/platform/stringpiece_test.cc index e4b489fe17f..4643c0c4f33 100644 --- a/tensorflow/core/lib/core/stringpiece_test.cc +++ b/tensorflow/core/platform/stringpiece_test.cc @@ -13,9 +13,10 @@ See the License for the specific language governing permissions and limitations under the License. ==============================================================================*/ -#include "tensorflow/core/lib/core/stringpiece.h" +#include "tensorflow/core/platform/stringpiece.h" #include <unordered_map> + #include "tensorflow/core/platform/test.h" namespace tensorflow {