diff options
Diffstat (limited to 'dom/presentation/ControllerConnectionCollection.cpp')
-rw-r--r-- | dom/presentation/ControllerConnectionCollection.cpp | 116 |
1 files changed, 0 insertions, 116 deletions
diff --git a/dom/presentation/ControllerConnectionCollection.cpp b/dom/presentation/ControllerConnectionCollection.cpp deleted file mode 100644 index 7d3ffe684..000000000 --- a/dom/presentation/ControllerConnectionCollection.cpp +++ /dev/null @@ -1,116 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* vim:set ts=2 sw=2 sts=2 et cindent: */ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -#include "ControllerConnectionCollection.h" - -#include "mozilla/ClearOnShutdown.h" -#include "nsIPresentationService.h" -#include "PresentationConnection.h" - -namespace mozilla { -namespace dom { - -/* static */ -StaticAutoPtr<ControllerConnectionCollection> -ControllerConnectionCollection::sSingleton; - -/* static */ ControllerConnectionCollection* -ControllerConnectionCollection::GetSingleton() -{ - MOZ_ASSERT(NS_IsMainThread()); - - if (!sSingleton) { - sSingleton = new ControllerConnectionCollection(); - ClearOnShutdown(&sSingleton); - } - - return sSingleton; -} - -ControllerConnectionCollection::ControllerConnectionCollection() -{ - MOZ_COUNT_CTOR(ControllerConnectionCollection); -} - -ControllerConnectionCollection::~ControllerConnectionCollection() -{ - MOZ_COUNT_DTOR(ControllerConnectionCollection); -} - -void -ControllerConnectionCollection::AddConnection( - PresentationConnection* aConnection, - const uint8_t aRole) -{ - MOZ_ASSERT(NS_IsMainThread()); - if (aRole != nsIPresentationService::ROLE_CONTROLLER) { - MOZ_ASSERT(false, "This is allowed only to be called at controller side."); - return; - } - - if (!aConnection) { - return; - } - - WeakPtr<PresentationConnection> connection = aConnection; - if (mConnections.Contains(connection)) { - return; - } - - mConnections.AppendElement(connection); -} - -void -ControllerConnectionCollection::RemoveConnection( - PresentationConnection* aConnection, - const uint8_t aRole) -{ - MOZ_ASSERT(NS_IsMainThread()); - if (aRole != nsIPresentationService::ROLE_CONTROLLER) { - MOZ_ASSERT(false, "This is allowed only to be called at controller side."); - return; - } - - if (!aConnection) { - return; - } - - WeakPtr<PresentationConnection> connection = aConnection; - mConnections.RemoveElement(connection); -} - -already_AddRefed<PresentationConnection> -ControllerConnectionCollection::FindConnection( - uint64_t aWindowId, - const nsAString& aId, - const uint8_t aRole) -{ - MOZ_ASSERT(NS_IsMainThread()); - if (aRole != nsIPresentationService::ROLE_CONTROLLER) { - MOZ_ASSERT(false, "This is allowed only to be called at controller side."); - return nullptr; - } - - // Loop backwards to allow removing elements in the loop. - for (int i = mConnections.Length() - 1; i >= 0; --i) { - WeakPtr<PresentationConnection> connection = mConnections[i]; - if (!connection) { - // The connection was destroyed. Remove it from the list. - mConnections.RemoveElementAt(i); - continue; - } - - if (connection->Equals(aWindowId, aId)) { - RefPtr<PresentationConnection> matchedConnection = connection.get(); - return matchedConnection.forget(); - } - } - - return nullptr; -} - -} // namespace dom -} // namespace mozilla |