service_worker_registration_handle_reference.h revision 6e8cce623b6e4fe0c9e4af605d675dd9d0338c38
16e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 26e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 36e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)// found in the LICENSE file. 46e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 56e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#ifndef CONTENT_CHILD_SERVICE_WORKER_SERVICE_WORKER_REGISTRATION_HANDLE_REFERENCE_H_ 66e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#define CONTENT_CHILD_SERVICE_WORKER_SERVICE_WORKER_REGISTRATION_HANDLE_REFERENCE_H_ 76e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 86e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#include "base/memory/ref_counted.h" 96e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#include "base/memory/scoped_ptr.h" 106e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#include "url/gurl.h" 116e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 126e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)namespace content { 136e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 146e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)class ThreadSafeSender; 156e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)struct ServiceWorkerObjectInfo; 166e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 176e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)class ServiceWorkerRegistrationHandleReference { 186e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) public: 196e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) // Creates a new ServiceWorkerRegistrationHandleReference and increments 206e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) // ref-count. 216e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) static scoped_ptr<ServiceWorkerRegistrationHandleReference> Create( 226e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) int registration_handle_id, 236e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) const ServiceWorkerObjectInfo& info, 246e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) ThreadSafeSender* sender); 256e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 266e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) // Creates a new ServiceWorkerRegistrationHandleReference by adopting a 276e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) // ref-count. 286e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) static scoped_ptr<ServiceWorkerRegistrationHandleReference> Adopt( 296e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) int registration_handle_id, 306e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) const ServiceWorkerObjectInfo& info, 316e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) ThreadSafeSender* sender); 326e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 336e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) ~ServiceWorkerRegistrationHandleReference(); 346e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 356e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) int handle_id() const { return handle_id_; } 366e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) GURL scope() const { return scope_; } 376e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 386e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) private: 396e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) ServiceWorkerRegistrationHandleReference(int registration_handle_id, 406e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) const ServiceWorkerObjectInfo& info, 416e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) ThreadSafeSender* sender, 426e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) bool increment_ref_in_ctor); 436e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 446e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) const int handle_id_; 456e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) const GURL scope_; 466e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) scoped_refptr<ThreadSafeSender> sender_; 476e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 486e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(ServiceWorkerRegistrationHandleReference); 496e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)}; 506e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 516e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)} // namespace content 526e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 536e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#endif // CONTENT_CHILD_SERVICE_WORKER_SERVICE_WORKER_REGISTRATION_HANDLE_REFERENCE_H_ 54