Home | History | Annotate | Download | only in glue
      1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 //
      5 // A delegate class of WebURLLoaderImpl that handles text/vnd.chromium.ftp-dir
      6 // data.
      7 
      8 #ifndef WEBKIT_GLUE_FTP_DIRECTORY_LISTING_RESPONSE_DELEGATE_H_
      9 #define WEBKIT_GLUE_FTP_DIRECTORY_LISTING_RESPONSE_DELEGATE_H_
     10 
     11 #include <string>
     12 
     13 #include "base/basictypes.h"
     14 #include "third_party/WebKit/Source/WebKit/chromium/public/WebURLResponse.h"
     15 
     16 namespace WebKit {
     17 class WebURLLoader;
     18 class WebURLLoaderClient;
     19 }
     20 
     21 class GURL;
     22 
     23 namespace webkit_glue {
     24 
     25 class FtpDirectoryListingResponseDelegate {
     26  public:
     27   FtpDirectoryListingResponseDelegate(WebKit::WebURLLoaderClient* client,
     28                                       WebKit::WebURLLoader* loader,
     29                                       const WebKit::WebURLResponse& response);
     30 
     31   // Passed through from ResourceHandleInternal
     32   void OnReceivedData(const char* data, int data_len);
     33   void OnCompletedRequest();
     34 
     35  private:
     36   void Init(const GURL& response_url);
     37 
     38   void SendDataToClient(const std::string& data);
     39 
     40   // Pointers to the client and associated loader so we can make callbacks as
     41   // we parse pieces of data.
     42   WebKit::WebURLLoaderClient* client_;
     43   WebKit::WebURLLoader* loader_;
     44 
     45   // Buffer for data received from the network.
     46   std::string buffer_;
     47 
     48   DISALLOW_COPY_AND_ASSIGN(FtpDirectoryListingResponseDelegate);
     49 };
     50 
     51 }  // namespace webkit_glue
     52 
     53 #endif  // WEBKIT_GLUE_FTP_DIRECTORY_LISTING_RESPONSE_DELEGATE_H_
     54