service_worker_registration_handle_reference.h revision 03b57e008b61dfcb1fbad3aea950ae0e001748b0
1// Copyright 2014 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 CONTENT_CHILD_SERVICE_WORKER_SERVICE_WORKER_REGISTRATION_HANDLE_REFERENCE_H_ 6#define CONTENT_CHILD_SERVICE_WORKER_SERVICE_WORKER_REGISTRATION_HANDLE_REFERENCE_H_ 7 8#include "base/memory/ref_counted.h" 9#include "base/memory/scoped_ptr.h" 10#include "content/common/service_worker/service_worker_types.h" 11#include "url/gurl.h" 12 13namespace content { 14 15class ThreadSafeSender; 16 17class ServiceWorkerRegistrationHandleReference { 18 public: 19 // Creates a new ServiceWorkerRegistrationHandleReference and increments 20 // ref-count. 21 static scoped_ptr<ServiceWorkerRegistrationHandleReference> Create( 22 const ServiceWorkerRegistrationObjectInfo& info, 23 ThreadSafeSender* sender); 24 25 // Creates a new ServiceWorkerRegistrationHandleReference by adopting a 26 // ref-count. 27 static scoped_ptr<ServiceWorkerRegistrationHandleReference> Adopt( 28 const ServiceWorkerRegistrationObjectInfo& info, 29 ThreadSafeSender* sender); 30 31 ~ServiceWorkerRegistrationHandleReference(); 32 33 int handle_id() const { return info_.handle_id; } 34 GURL scope() const { return info_.scope; } 35 36 private: 37 ServiceWorkerRegistrationHandleReference( 38 const ServiceWorkerRegistrationObjectInfo& info, 39 ThreadSafeSender* sender, 40 bool increment_ref_in_ctor); 41 42 ServiceWorkerRegistrationObjectInfo info_; 43 scoped_refptr<ThreadSafeSender> sender_; 44 45 DISALLOW_COPY_AND_ASSIGN(ServiceWorkerRegistrationHandleReference); 46}; 47 48} // namespace content 49 50#endif // CONTENT_CHILD_SERVICE_WORKER_SERVICE_WORKER_REGISTRATION_HANDLE_REFERENCE_H_ 51