/**
  * @param Settings $settings
  *
  * @return \RemoteObjects\Client|\stdClass
  */
 public function createEndpoint(Settings $settings)
 {
     $url = parse_url($settings->getPath());
     // local call
     if (empty($url['scheme']) || $url['scheme'] == 'file') {
         $endpoint = new Endpoint($settings);
     } else {
         $transport = new CurlClient($settings->getPath());
         $encoder = new JsonRpc20Encoder();
         if ($settings->isEncryptionEnabled()) {
             $encoder = new RsaEncoder($encoder, $settings->getRsaRemotePublicKey(), $settings->getRsaLocalPrivateKey());
         }
         $client = new Client($transport, $encoder);
         $endpoint = $client->castAsRemoteObject();
     }
     return $endpoint;
 }