Index: content/browser/vr/vr_service_consumer.cc |
diff --git a/content/browser/vr/vr_service_consumer.cc b/content/browser/vr/vr_service_consumer.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..42ae4fe0f07a83191c9d5852eb9c2b9913f17210 |
--- /dev/null |
+++ b/content/browser/vr/vr_service_consumer.cc |
@@ -0,0 +1,38 @@ |
+// Copyright 2015 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "content/browser/vr/vr_service_consumer.h" |
+ |
+#include "content/browser/vr/vr_service.h" |
+ |
+namespace content { |
+ |
+VRServiceConsumer::VRServiceConsumer() : |
+ service_(NULL), |
+ registered_with_service_(false) { |
+} |
+ |
+VRServiceConsumer::VRServiceConsumer(VRService* service) : |
+ service_(service), |
+ registered_with_service_(false) { |
+} |
+ |
+VRServiceConsumer::~VRServiceConsumer() { |
+ if (registered_with_service_) { |
+ service_->RemoveConsumer(this); |
+ } |
+} |
+ |
+VRService* VRServiceConsumer::GetServiceInstance() { |
+ if (!registered_with_service_) { |
+ if (!service_) { |
+ service_ = VRService::GetInstance(); |
+ } |
+ service_->AddConsumer(this); |
+ registered_with_service_ = true; |
+ } |
+ return service_; |
+} |
+ |
+} // namespace content |