diff --git a/tensorflow/c/BUILD b/tensorflow/c/BUILD index 954f9dcb303564..cca7a00fbce7f9 100644 --- a/tensorflow/c/BUILD +++ b/tensorflow/c/BUILD @@ -156,6 +156,7 @@ tf_cuda_library( "tf_file_statistics.h", "tf_status.h", "tf_tensor.h", + "tf_tstring.h", ], copts = tf_copts(), visibility = ["//visibility:public"], @@ -166,6 +167,7 @@ tf_cuda_library( ":tf_status_internal", ":tf_file_statistics", ":tf_tensor_internal", + ":tf_tstring", ] + select({ "//tensorflow:with_xla_support": [ "//tensorflow/compiler/tf2xla:xla_compiler", @@ -313,6 +315,22 @@ cc_library( visibility = ["//visibility:public"], ) +cc_library( + name = "tf_tstring", + srcs = [ + "tf_tstring.cc", + "//tensorflow/core/platform:ctstring", + ], + hdrs = [ + "c_api_macros.h", + "tf_datatype.h", + "tf_status.h", + "tf_tensor.h", + "tf_tstring.h", + ], + visibility = ["//visibility:public"], +) + cc_library( name = "tf_file_statistics", hdrs = ["tf_file_statistics.h"], diff --git a/tensorflow/c/tf_tstring.cc b/tensorflow/c/tf_tstring.cc new file mode 100644 index 00000000000000..15624060add69c --- /dev/null +++ b/tensorflow/c/tf_tstring.cc @@ -0,0 +1,50 @@ +/* Copyright 2021 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/c/tf_tensor.h" +#include "tensorflow/c/tf_tstring.h" +#include "tensorflow/core/platform/ctstring_internal.h" + +void TF_StringInit(TF_TString* tstr) { + TF_TString_Init(tstr); +} + +void TF_StringCopy(TF_TString *dst, const char *src, size_t size) { + TF_TString_Copy(dst, src, size); +} + +void TF_StringAssignView(TF_TString *dst, const char *src, size_t size) { + TF_TString_AssignView(dst, src, size); +} + +const char* TF_StringGetDataPointer(const TF_TString *tstr) { + return TF_TString_GetDataPointer(tstr); +} + +TF_TString_Type TF_StringGetType(const TF_TString *str) { + return TF_TString_GetType(str); +} + +size_t TF_StringGetSize(const TF_TString* tstr) { + return TF_TString_GetSize(tstr); +} + +size_t TF_StringGetCapacity(const TF_TString *str) { + return TF_TString_GetCapacity(str); +} + +void TF_StringDealloc(TF_TString* tstr) { + TF_TString_Dealloc(tstr); +} \ No newline at end of file diff --git a/tensorflow/c/tf_tstring.h b/tensorflow/c/tf_tstring.h index 8b576ff8197bc5..12eba52fb6765d 100644 --- a/tensorflow/c/tf_tstring.h +++ b/tensorflow/c/tf_tstring.h @@ -15,6 +15,45 @@ limitations under the License. #ifndef TENSORFLOW_C_TF_TSTRING_H_ #define TENSORFLOW_C_TF_TSTRING_H_ +#include "tensorflow/c/tf_tensor.h" #include "tensorflow/core/platform/ctstring.h" +#ifdef SWIG +#define TF_CAPI_EXPORT +#else +#if defined(_WIN32) +#ifdef TF_COMPILE_LIBRARY +#define TF_CAPI_EXPORT __declspec(dllexport) +#else +#define TF_CAPI_EXPORT __declspec(dllimport) +#endif // TF_COMPILE_LIBRARY +#else +#define TF_CAPI_EXPORT __attribute__((visibility("default"))) +#endif // _WIN32 +#endif // SWIG + +#ifdef __cplusplus +extern "C" { +#endif + +TF_CAPI_EXPORT extern void TF_StringInit(TF_TString* t); + +TF_CAPI_EXPORT extern void TF_StringCopy(TF_TString *dst, const char *src, size_t size); + +TF_CAPI_EXPORT extern void TF_StringAssignView(TF_TString *dst, const char *src, size_t size); + +TF_CAPI_EXPORT extern const char* TF_StringGetDataPointer(const TF_TString *tstr); + +TF_CAPI_EXPORT extern TF_TString_Type TF_StringGetType(const TF_TString *str); + +TF_CAPI_EXPORT extern size_t TF_StringGetSize(const TF_TString* tstr); + +TF_CAPI_EXPORT extern size_t TF_StringGetCapacity(const TF_TString *str); + +TF_CAPI_EXPORT extern void TF_StringDealloc(TF_TString* tstr); + +#ifdef __cplusplus +} /* end extern "C" */ +#endif + #endif // THIRD_PARTY_TENSORFLOW_C_TF_TSTRING_H_