Home | History | Annotate | Download | only in drive
      1 // Copyright (c) 2012 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 #ifndef CHROME_BROWSER_CHROMEOS_DRIVE_DRIVE_PROTOCOL_HANDLER_H_
      6 #define CHROME_BROWSER_CHROMEOS_DRIVE_DRIVE_PROTOCOL_HANDLER_H_
      7 
      8 #include "base/basictypes.h"
      9 #include "base/memory/ref_counted.h"
     10 #include "net/url_request/url_request_job_factory.h"
     11 
     12 namespace base {
     13 class SequencedTaskRunner;
     14 }  // namespace base
     15 
     16 namespace drive {
     17 
     18 class DriveProtocolHandler : public net::URLRequestJobFactory::ProtocolHandler {
     19  public:
     20   explicit DriveProtocolHandler(void* profile_id);
     21   virtual ~DriveProtocolHandler();
     22 
     23   // Creates URLRequestJobs for drive:// URLs.
     24   virtual net::URLRequestJob* MaybeCreateJob(
     25       net::URLRequest* request,
     26       net::NetworkDelegate* network_delegate) const OVERRIDE;
     27 
     28  private:
     29   // The profile for processing Drive accesses. Should not be NULL.
     30   void* profile_id_;
     31 
     32   // The task runner for operations to communicate with a locally cached file.
     33   scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_;
     34 
     35   DISALLOW_COPY_AND_ASSIGN(DriveProtocolHandler);
     36 };
     37 
     38 }  // namespace drive
     39 
     40 #endif  // CHROME_BROWSER_CHROMEOS_DRIVE_DRIVE_PROTOCOL_HANDLER_H_
     41