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