diff options
author | Igor Ganichev <iga@google.com> | 2017-09-19 18:54:03 -0700 |
---|---|---|
committer | TensorFlower Gardener <gardener@tensorflow.org> | 2017-09-19 18:57:41 -0700 |
commit | 7ad8e25495a2793ea14189359af736d2c662a694 (patch) | |
tree | a45d248a4eaff33d65b48864f06b59acf884f905 /tensorflow/c/c_api_function.cc | |
parent | ed89a2b31f775db8ae6adf894fee27cc963ba030 (diff) |
Add attribute setting and getting support to TF_Function
PiperOrigin-RevId: 169337159
Diffstat (limited to 'tensorflow/c/c_api_function.cc')
-rw-r--r-- | tensorflow/c/c_api_function.cc | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/tensorflow/c/c_api_function.cc b/tensorflow/c/c_api_function.cc index 7848883e3e..92ee77935e 100644 --- a/tensorflow/c/c_api_function.cc +++ b/tensorflow/c/c_api_function.cc @@ -545,4 +545,31 @@ TF_Function* TF_FunctionImportFunctionDef(const TF_Buffer* func_def, return func; } +void TF_FunctionSetAttrValueProto(TF_Function* func, const char* attr_name, + const void* proto, size_t proto_len, + TF_Status* status) { + tensorflow::AttrValue attr_value; + if (!attr_value.ParseFromArray(proto, proto_len)) { + status->status = InvalidArgument( + "Unparseable AttrValue proto passed to " + "TF_FunctionSetAttrValueProto"); + return; + } + (*func->fdef.mutable_attr())[string(attr_name)] = attr_value; + status->status = tensorflow::Status::OK(); +} + +void TF_FunctionGetAttrValueProto(TF_Function* func, const char* attr_name, + TF_Buffer* output_attr_value, + TF_Status* status) { + const auto& it = func->fdef.attr().find(attr_name); + if (it == func->fdef.attr().end()) { + status->status = + InvalidArgument("Function '", func->fdef.signature().name(), + "' has no attr named '", attr_name, "'."); + return; + } + status->status = MessageToBuffer(it->second, output_attr_value); +} + void TF_DeleteFunction(TF_Function* func) { delete func; } |