AServantImp.h 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. /**
  2. * Tencent is pleased to support the open source community by making Tars available.
  3. *
  4. * Copyright (C) 2016THL A29 Limited, a Tencent company. All rights reserved.
  5. *
  6. * Licensed under the BSD 3-Clause License (the "License"); you may not use this file except
  7. * in compliance with the License. You may obtain a copy of the License at
  8. *
  9. * https://opensource.org/licenses/BSD-3-Clause
  10. *
  11. * Unless required by applicable law or agreed to in writing, software distributed
  12. * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
  13. * CONDITIONS OF ANY KIND, either express or implied. See the License for the
  14. * specific language governing permissions and limitations under the License.
  15. */
  16. #ifndef _BServantImp_H_
  17. #define _BServantImp_H_
  18. #include "servant/Application.h"
  19. #include "AServant.h"
  20. #include "BServant.h"
  21. #include "CServant.h"
  22. #include "promise/promise.h"
  23. //#include "promise/tuple.h"
  24. #include "promise/when_all.h"
  25. using namespace Test;
  26. ///////////////////////////////////
  27. promise::Future<std::string> sendBReq(BServantPrx prx, const std::string& sIn, tars::TarsCurrentPtr current);
  28. promise::Future<std::string> handleBRspAndSendCReq(CServantPrx prx, TarsCurrentPtr current, const promise::Future<std::string>& future);
  29. promise::Future<std::string> sendCReq(CServantPrx prx, const std::string& sIn, tars::TarsCurrentPtr current);
  30. int handleCRspAndReturnClient(TarsCurrentPtr current, const promise::Future<std::string>& future);
  31. ///////////////////////////////////
  32. int handleBCRspAndReturnClient(TarsCurrentPtr current, const promise::Future<promise::Tuple<promise::Future<std::string>, promise::Future<std::string> > >& allFuture);
  33. ///////////////////////////////////
  34. class AServantImp : public Test::AServant
  35. {
  36. public:
  37. virtual ~AServantImp() {}
  38. virtual void initialize();
  39. virtual void destroy();
  40. tars::Int32 queryResultSerial(const std::string& sIn, std::string &sOut, tars::TarsCurrentPtr current);
  41. tars::Int32 queryResultParallel(const std::string& sIn, std::string &sOut, tars::TarsCurrentPtr current);
  42. private:
  43. BServantPrx _pPrxB;
  44. CServantPrx _pPrxC;
  45. };
  46. /////////////////////////////////////////////////////
  47. #endif