aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow/c/c_api_function.cc
diff options
context:
space:
mode:
authorGravatar Igor Ganichev <iga@google.com>2018-01-17 13:46:17 -0800
committerGravatar TensorFlower Gardener <gardener@tensorflow.org>2018-01-17 13:49:50 -0800
commit9eb734b94773fe5422b39b66f1a704b7934167d4 (patch)
tree4d8fbdb5c5282b239f4e2388344ca96dae862eb7 /tensorflow/c/c_api_function.cc
parent1bad35937281293d5bd08c1a4030713f85b0e352 (diff)
Add TF_GraphNumFunctions and TF_GraphGetFunctions
PiperOrigin-RevId: 182263576
Diffstat (limited to 'tensorflow/c/c_api_function.cc')
-rw-r--r--tensorflow/c/c_api_function.cc22
1 files changed, 22 insertions, 0 deletions
diff --git a/tensorflow/c/c_api_function.cc b/tensorflow/c/c_api_function.cc
index dd6119e8aa..46271e0514 100644
--- a/tensorflow/c/c_api_function.cc
+++ b/tensorflow/c/c_api_function.cc
@@ -548,6 +548,28 @@ void TF_GraphCopyFunction(TF_Graph* g, const TF_Function* func,
status->status = g->graph.AddFunctionLibrary(fdef_lib);
}
+int TF_GraphNumFunctions(TF_Graph* g) {
+ tensorflow::mutex_lock l(g->mu);
+ return g->graph.flib_def().num_functions();
+}
+
+int TF_GraphGetFunctions(TF_Graph* g, TF_Function** funcs, int max_func,
+ TF_Status* status) {
+ tensorflow::FunctionDefLibrary lib;
+ {
+ tensorflow::mutex_lock l(g->mu);
+ lib = g->graph.flib_def().ToProto();
+ }
+ const auto len = std::min(max_func, static_cast<int>(lib.function_size()));
+ for (int i = 0; i < len; ++i) {
+ TF_Function* func = new TF_Function();
+ func->fdef = lib.function(i);
+ funcs[i] = func;
+ }
+ status->status = tensorflow::Status::OK();
+ return len;
+}
+
void TF_FunctionToFunctionDef(TF_Function* func, TF_Buffer* output_func_def,
TF_Status* status) {
status->status = MessageToBuffer(func->fdef, output_func_def);