Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2013 Google Inc. All Rights Reserved.
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *     http://www.apache.org/licenses/LICENSE-2.0
   *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 package com.google.api.services.datastore.client;
 
 
 
An RPC transport that sends protocol buffers over HTTP.
 
 class RemoteRpc {
   private static final Logger logger = Logger.getLogger(RemoteRpc.class.getName());
 
   private HttpRequestFactory client;
   private String url;
   private int rpcCount = 0;
 
   RemoteRpc(HttpRequestFactory clientString url) {
     this. = client;
     this. = url;
     try {
       resolveURL("dummyRpc");
     } catch (Exception e) {
       throw new IllegalArgumentException(
           "Unable to construct RemoteRpc due to unsupported url: <" + url + ">"e);
     }
   }

  
Makes an RPC call using the client. Logs how long it took and any exceptions. NOTE: The request could be an InputStream too, but the http client will need to find its length, which will require buffering it anyways.

Throws:
DatastoreException if the RPC fails.
 
   InputStream call(String methodNameMessageLite requestthrows DatastoreException {
     .fine("remote datastore call " + methodName);
 
     long startTime = System.currentTimeMillis();
     try {
       HttpResponse httpResponse;
       try {
         ++;
         ProtoHttpContent payload = new ProtoHttpContent(request);
         httpResponse = .buildPostRequest(resolveURL(methodName), payload).execute();
         return httpResponse.getContent();
       } catch (HttpResponseException e) {
         throw makeException(methodNamee.getStatusCode(), e.getContent(), e);
       } catch (IOException e) {
         throw makeException(methodName.,
             "I/O error"e);
       }
     } finally {
       long elapsedTime = System.currentTimeMillis() - startTime;
       .fine("remote datastore call " + methodName + " took " + elapsedTime + " ms");
     }
   }
 
   void resetRpcCount() {
      = 0;
   }
 
   int getRpcCount() {
     return ;
   }
 
   String getUrl() {
     return ;
   }
 
   GenericUrl resolveURL(String path) {
     return new GenericUrl( + "/" + path);
   }
 
    return ;
  }
      String urlString methodNameint codeString messageThrowable cause) {
    .fine("remote datastore call " + methodName + " against " + url  + " failed: " + message);
    return new DatastoreException(methodNamecodemessagecause);
  }
New to GrepCode? Check out our FAQ X