1c8b59c046895fa5b6d79f73e0b5817330fcfbfc1A. Unique TensorFlower/* Copyright 2015 The TensorFlow Authors. All Rights Reserved.
29c3043ff3bf31a6a81810b4ce9e87ef936f1f529Manjunath Kudlur
39c3043ff3bf31a6a81810b4ce9e87ef936f1f529Manjunath KudlurLicensed under the Apache License, Version 2.0 (the "License");
49c3043ff3bf31a6a81810b4ce9e87ef936f1f529Manjunath Kudluryou may not use this file except in compliance with the License.
59c3043ff3bf31a6a81810b4ce9e87ef936f1f529Manjunath KudlurYou may obtain a copy of the License at
69c3043ff3bf31a6a81810b4ce9e87ef936f1f529Manjunath Kudlur
79c3043ff3bf31a6a81810b4ce9e87ef936f1f529Manjunath Kudlur    http://www.apache.org/licenses/LICENSE-2.0
89c3043ff3bf31a6a81810b4ce9e87ef936f1f529Manjunath Kudlur
99c3043ff3bf31a6a81810b4ce9e87ef936f1f529Manjunath KudlurUnless required by applicable law or agreed to in writing, software
109c3043ff3bf31a6a81810b4ce9e87ef936f1f529Manjunath Kudlurdistributed under the License is distributed on an "AS IS" BASIS,
119c3043ff3bf31a6a81810b4ce9e87ef936f1f529Manjunath KudlurWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
129c3043ff3bf31a6a81810b4ce9e87ef936f1f529Manjunath KudlurSee the License for the specific language governing permissions and
139c3043ff3bf31a6a81810b4ce9e87ef936f1f529Manjunath Kudlurlimitations under the License.
149c3043ff3bf31a6a81810b4ce9e87ef936f1f529Manjunath Kudlur==============================================================================*/
159c3043ff3bf31a6a81810b4ce9e87ef936f1f529Manjunath Kudlur
16f41959ccb2d9d4c722fe8fc3351401d53bcf490Manjunath Kudlur#ifndef TENSORFLOW_KERNELS_SENDRECV_OPS_H_
17f41959ccb2d9d4c722fe8fc3351401d53bcf490Manjunath Kudlur#define TENSORFLOW_KERNELS_SENDRECV_OPS_H_
18f41959ccb2d9d4c722fe8fc3351401d53bcf490Manjunath Kudlur
19f41959ccb2d9d4c722fe8fc3351401d53bcf490Manjunath Kudlur#include "tensorflow/core/framework/op_kernel.h"
20564abcc02f98ae83f8ae9969a7546b510efbbb94Josh Levenberg#include "tensorflow/core/platform/macros.h"
21f41959ccb2d9d4c722fe8fc3351401d53bcf490Manjunath Kudlur
22f41959ccb2d9d4c722fe8fc3351401d53bcf490Manjunath Kudlurnamespace tensorflow {
23f41959ccb2d9d4c722fe8fc3351401d53bcf490Manjunath Kudlur
24f41959ccb2d9d4c722fe8fc3351401d53bcf490Manjunath Kudlurclass SendOp : public OpKernel {
25f41959ccb2d9d4c722fe8fc3351401d53bcf490Manjunath Kudlur public:
26f41959ccb2d9d4c722fe8fc3351401d53bcf490Manjunath Kudlur  explicit SendOp(OpKernelConstruction* ctx);
27f41959ccb2d9d4c722fe8fc3351401d53bcf490Manjunath Kudlur  void Compute(OpKernelContext* ctx) override;
28f41959ccb2d9d4c722fe8fc3351401d53bcf490Manjunath Kudlur
29f41959ccb2d9d4c722fe8fc3351401d53bcf490Manjunath Kudlur private:
30f41959ccb2d9d4c722fe8fc3351401d53bcf490Manjunath Kudlur  string key_prefix_;
319f932e6ce6061d251ed8e6b038fe3864a9b4d07aDerek Murray  Rendezvous::ParsedKey parsed_key_;
32689cbda96444511bd37a01b125791c45a093bec3A. Unique TensorFlower  bool hostmem_sendrecv_;
33f41959ccb2d9d4c722fe8fc3351401d53bcf490Manjunath Kudlur
34f41959ccb2d9d4c722fe8fc3351401d53bcf490Manjunath Kudlur  TF_DISALLOW_COPY_AND_ASSIGN(SendOp);
35f41959ccb2d9d4c722fe8fc3351401d53bcf490Manjunath Kudlur};
36f41959ccb2d9d4c722fe8fc3351401d53bcf490Manjunath Kudlur
37f41959ccb2d9d4c722fe8fc3351401d53bcf490Manjunath Kudlurclass RecvOp : public AsyncOpKernel {
38f41959ccb2d9d4c722fe8fc3351401d53bcf490Manjunath Kudlur public:
39f41959ccb2d9d4c722fe8fc3351401d53bcf490Manjunath Kudlur  explicit RecvOp(OpKernelConstruction* ctx);
40f41959ccb2d9d4c722fe8fc3351401d53bcf490Manjunath Kudlur  void ComputeAsync(OpKernelContext* ctx, DoneCallback done) override;
41f41959ccb2d9d4c722fe8fc3351401d53bcf490Manjunath Kudlur
42f41959ccb2d9d4c722fe8fc3351401d53bcf490Manjunath Kudlur private:
43f41959ccb2d9d4c722fe8fc3351401d53bcf490Manjunath Kudlur  string key_prefix_;
449f932e6ce6061d251ed8e6b038fe3864a9b4d07aDerek Murray  Rendezvous::ParsedKey parsed_key_;
45689cbda96444511bd37a01b125791c45a093bec3A. Unique TensorFlower  bool hostmem_sendrecv_;
46f41959ccb2d9d4c722fe8fc3351401d53bcf490Manjunath Kudlur
47f41959ccb2d9d4c722fe8fc3351401d53bcf490Manjunath Kudlur  TF_DISALLOW_COPY_AND_ASSIGN(RecvOp);
48f41959ccb2d9d4c722fe8fc3351401d53bcf490Manjunath Kudlur};
49f41959ccb2d9d4c722fe8fc3351401d53bcf490Manjunath Kudlur
50f41959ccb2d9d4c722fe8fc3351401d53bcf490Manjunath Kudlur}  // end namespace tensorflow
51f41959ccb2d9d4c722fe8fc3351401d53bcf490Manjunath Kudlur
52f41959ccb2d9d4c722fe8fc3351401d53bcf490Manjunath Kudlur#endif  // TENSORFLOW_KERNELS_SENDRECV_OPS_H_
53