#pragma once #include #include namespace NYT::NAuth { //////////////////////////////////////////////////////////////////////////////// /// This wrapper is required because NYT::NAuth::IServiceTicketAuthPtr is NYT::TIntrusivePtr, /// and, if we used this pointer in interfaces of `mapreduce/yt` client, a lot of users of this library /// could get unexpected build errors that `TIntrusivePtr` is ambiguous /// (from `::` namespace and from `::NYT::` namespace). /// So we use this wrapper in our interfaces to avoid such problems for users. struct IServiceTicketAuthPtrWrapper { // /// Construct wrapper from NYT::TIntrusivePtr /// /// This constructor is implicit so users can transparently pass NYT::TIntrusivePtr to the functions of /// mapreduce/yt client. template >> IServiceTicketAuthPtrWrapper(const TIntrusivePtr ptr) : Ptr(ptr) { } /// Wrapped pointer NYT::TIntrusivePtr Ptr; }; //////////////////////////////////////////////////////////////////////////////// } // namespace NYT::NAuth