Home | History | Annotate | Download | only in uds
      1 #ifndef ANDROID_PDX_UDS_CLIENT_CHANNEL_FACTORY_H_
      2 #define ANDROID_PDX_UDS_CLIENT_CHANNEL_FACTORY_H_
      3 
      4 #include <string>
      5 
      6 #include <pdx/client_channel_factory.h>
      7 
      8 namespace android {
      9 namespace pdx {
     10 namespace uds {
     11 
     12 class ClientChannelFactory : public pdx::ClientChannelFactory {
     13  public:
     14   static std::unique_ptr<pdx::ClientChannelFactory> Create(
     15       const std::string& endpoint_path);
     16   static std::unique_ptr<pdx::ClientChannelFactory> Create(LocalHandle socket);
     17 
     18   Status<std::unique_ptr<pdx::ClientChannel>> Connect(
     19       int64_t timeout_ms) const override;
     20 
     21   static std::string GetRootEndpointPath();
     22   static std::string GetEndpointPath(const std::string& endpoint_path);
     23 
     24  private:
     25   explicit ClientChannelFactory(const std::string& endpoint_path);
     26   explicit ClientChannelFactory(LocalHandle socket);
     27 
     28   mutable LocalHandle socket_;
     29   std::string endpoint_path_;
     30 };
     31 
     32 }  // namespace uds
     33 }  // namespace pdx
     34 }  // namespace android
     35 
     36 #endif  // ANDROID_PDX_UDS_CLIENT_CHANNEL_FACTORY_H_
     37