core.h 606 B

123456789101112131415161718192021222324252627
  1. #pragma once
  2. #include <yt/yt/core/http/public.h>
  3. #include <memory>
  4. namespace NYT::NHttp {
  5. ////////////////////////////////////////////////////////////////////////////////
  6. /// @brief Wrapper for THeaderPtr which allows to hide NYT::IntrusivePtr from interfaces.
  7. struct THeadersPtrWrapper
  8. {
  9. THeadersPtrWrapper(THeadersPtr ptr)
  10. : Ptr(std::make_shared<THeadersPtr>(std::move(ptr)))
  11. { }
  12. THeadersPtr Get() {
  13. return *Ptr;
  14. }
  15. std::shared_ptr<THeadersPtr> Ptr;
  16. };
  17. ////////////////////////////////////////////////////////////////////////////////
  18. } // namespace NYT::NHttp