Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(196)

Side by Side Diff: net/url_request/url_request_file_dir_job.h

Issue 5710002: Create base::WorkerPoolJob. Use it for HostResolverImpl and DirectoryLister. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Minimize the header dependency. Created 10 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef NET_URL_REQUEST_URL_REQUEST_FILE_DIR_JOB_H__ 5 #ifndef NET_URL_REQUEST_URL_REQUEST_FILE_DIR_JOB_H__
6 #define NET_URL_REQUEST_URL_REQUEST_FILE_DIR_JOB_H__ 6 #define NET_URL_REQUEST_URL_REQUEST_FILE_DIR_JOB_H__
7 #pragma once 7 #pragma once
8 8
9 #include <string> 9 #include <string>
10 10
11 #include "base/file_path.h" 11 #include "base/file_path.h"
12 #include "base/file_util.h" 12 #include "base/file_util.h"
13 #include "base/task.h" 13 #include "base/task.h"
14 #include "net/base/directory_lister.h" 14 #include "net/base/directory_lister.h"
15 #include "net/url_request/url_request_job.h" 15 #include "net/url_request/url_request_job.h"
16 16
17 class URLRequestFileDirJob 17 class URLRequestFileDirJob
18 : public URLRequestJob, 18 : public URLRequestJob,
19 public net::DirectoryLister::DirectoryListerDelegate { 19 public net::DirectoryLister::Delegate {
20 public: 20 public:
21 URLRequestFileDirJob(net::URLRequest* request, const FilePath& dir_path); 21 URLRequestFileDirJob(net::URLRequest* request, const FilePath& dir_path);
22 22
23 // URLRequestJob methods: 23 // URLRequestJob methods:
24 virtual void Start(); 24 virtual void Start();
25 virtual void StartAsync(); 25 virtual void StartAsync();
26 virtual void Kill(); 26 virtual void Kill();
27 virtual bool ReadRawData(net::IOBuffer* buf, int buf_size, int *bytes_read); 27 virtual bool ReadRawData(net::IOBuffer* buf, int buf_size, int *bytes_read);
28 virtual bool GetMimeType(std::string* mime_type) const; 28 virtual bool GetMimeType(std::string* mime_type) const;
29 virtual bool GetCharset(std::string* charset); 29 virtual bool GetCharset(std::string* charset);
30 30
31 // DirectoryLister::DirectoryListerDelegate methods: 31 // DirectoryLister::Delegate methods:
32 virtual void OnListFile( 32 virtual void OnListFile(
33 const net::DirectoryLister::DirectoryListerData& data); 33 const net::DirectoryLister::Data& data);
34 virtual void OnListDone(int error); 34 virtual void OnListDone(int error);
35 35
36 bool list_complete() const { return list_complete_; } 36 bool list_complete() const { return list_complete_; }
37 37
38 private: 38 private:
39 virtual ~URLRequestFileDirJob(); 39 virtual ~URLRequestFileDirJob();
40 40
41 void CloseLister(); 41 void CloseLister();
42 // When we have data and a read has been pending, this function 42 // When we have data and a read has been pending, this function
43 // will fill the response buffer and notify the request 43 // will fill the response buffer and notify the request
44 // appropriately. 44 // appropriately.
45 void CompleteRead(); 45 void CompleteRead();
46 46
47 // Fills a buffer with the output. 47 // Fills a buffer with the output.
48 bool FillReadBuffer(char *buf, int buf_size, int *bytes_read); 48 bool FillReadBuffer(char *buf, int buf_size, int *bytes_read);
49 49
50 scoped_refptr<net::DirectoryLister> lister_; 50 net::DirectoryLister lister_;
51 FilePath dir_path_; 51 FilePath dir_path_;
52 std::string data_; 52 std::string data_;
53 bool canceled_; 53 bool canceled_;
54 54
55 // Indicates whether we have the complete list of the dir 55 // Indicates whether we have the complete list of the dir
56 bool list_complete_; 56 bool list_complete_;
57 57
58 // Indicates whether we have written the HTML header 58 // Indicates whether we have written the HTML header
59 bool wrote_header_; 59 bool wrote_header_;
60 60
61 // To simulate Async IO, we hold onto the Reader's buffer while 61 // To simulate Async IO, we hold onto the Reader's buffer while
62 // we wait for IO to complete. When done, we fill the buffer 62 // we wait for IO to complete. When done, we fill the buffer
63 // manually. 63 // manually.
64 bool read_pending_; 64 bool read_pending_;
65 scoped_refptr<net::IOBuffer> read_buffer_; 65 scoped_refptr<net::IOBuffer> read_buffer_;
66 int read_buffer_length_; 66 int read_buffer_length_;
67 ScopedRunnableMethodFactory<URLRequestFileDirJob> method_factory_; 67 ScopedRunnableMethodFactory<URLRequestFileDirJob> method_factory_;
68 68
69 DISALLOW_COPY_AND_ASSIGN(URLRequestFileDirJob); 69 DISALLOW_COPY_AND_ASSIGN(URLRequestFileDirJob);
70 }; 70 };
71 71
72 #endif // NET_URL_REQUEST_URL_REQUEST_FILE_DIR_JOB_H__ 72 #endif // NET_URL_REQUEST_URL_REQUEST_FILE_DIR_JOB_H__
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698