LCOV - code coverage report
Current view: top level - dom/flyweb - FlyWebDiscoveryManager.cpp (source / functions) Hit Total Coverage
Test: output.info Lines: 0 49 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 17 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
       2             : /* vim: set ts=8 sts=2 et sw=2 tw=80: */
       3             : /* This Source Code Form is subject to the terms of the Mozilla Public
       4             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       5             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
       6             : 
       7             : #include "nsString.h"
       8             : #include "nsTHashtable.h"
       9             : #include "nsClassHashtable.h"
      10             : #include "nsIUUIDGenerator.h"
      11             : #include "jsapi.h"
      12             : #include "mozilla/StaticPtr.h"
      13             : #include "mozilla/Logging.h"
      14             : #include "nsComponentManagerUtils.h"
      15             : #include "nsServiceManagerUtils.h"
      16             : 
      17             : #include "mozilla/dom/FlyWebDiscoveryManager.h"
      18             : #include "mozilla/dom/FlyWebDiscoveryManagerBinding.h"
      19             : #include "mozilla/dom/Element.h"
      20             : 
      21             : namespace mozilla {
      22             : namespace dom {
      23             : 
      24             : static LazyLogModule gFlyWebDiscoveryManagerLog("FlyWebDiscoveryManager");
      25             : #undef LOG_I
      26             : #define LOG_I(...) MOZ_LOG(mozilla::dom::gFlyWebDiscoveryManagerLog, mozilla::LogLevel::Debug, (__VA_ARGS__))
      27             : #undef LOG_E
      28             : #define LOG_E(...) MOZ_LOG(mozilla::dom::gFlyWebDiscoveryManagerLog, mozilla::LogLevel::Error, (__VA_ARGS__))
      29             : 
      30             : 
      31           0 : NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE_0(FlyWebDiscoveryManager)
      32             : 
      33           0 : NS_IMPL_CYCLE_COLLECTING_ADDREF(FlyWebDiscoveryManager)
      34           0 : NS_IMPL_CYCLE_COLLECTING_RELEASE(FlyWebDiscoveryManager)
      35           0 : NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(FlyWebDiscoveryManager)
      36           0 :   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
      37           0 :   NS_INTERFACE_MAP_ENTRY(nsISupports)
      38           0 : NS_INTERFACE_MAP_END
      39             : 
      40           0 : FlyWebDiscoveryManager::FlyWebDiscoveryManager(nsISupports* aParent,
      41           0 :                                                FlyWebService* aService)
      42             :   : mParent(aParent)
      43             :   , mService(aService)
      44           0 :   , mNextId(0)
      45             : {
      46           0 : }
      47             : 
      48           0 : FlyWebDiscoveryManager::~FlyWebDiscoveryManager()
      49             : {
      50           0 :   mService->UnregisterDiscoveryManager(this);
      51           0 : }
      52             : 
      53             : JSObject*
      54           0 : FlyWebDiscoveryManager::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
      55             : {
      56           0 :   return FlyWebDiscoveryManagerBinding::Wrap(aCx, this, aGivenProto);
      57             : }
      58             : 
      59             : nsISupports*
      60           0 : FlyWebDiscoveryManager::GetParentObject() const
      61             : {
      62           0 :   return mParent;
      63             : }
      64             : 
      65             : /* static */ already_AddRefed<FlyWebDiscoveryManager>
      66           0 : FlyWebDiscoveryManager::Constructor(const GlobalObject& aGlobal, ErrorResult& rv)
      67             : {
      68           0 :   RefPtr<FlyWebService> service = FlyWebService::GetOrCreate();
      69           0 :   if (!service) {
      70           0 :     return nullptr;
      71             :   }
      72             : 
      73             :   RefPtr<FlyWebDiscoveryManager> result = new FlyWebDiscoveryManager(
      74           0 :                     aGlobal.GetAsSupports(), service);
      75           0 :   return result.forget();
      76             : }
      77             : 
      78             : void
      79           0 : FlyWebDiscoveryManager::ListServices(nsTArray<FlyWebDiscoveredService>& aServices)
      80             : {
      81           0 :   return mService->ListDiscoveredServices(aServices);
      82             : }
      83             : 
      84             : uint32_t
      85           0 : FlyWebDiscoveryManager::StartDiscovery(FlyWebDiscoveryCallback& aCallback)
      86             : {
      87           0 :   uint32_t id = GenerateId();
      88           0 :   mCallbackMap.Put(id, &aCallback);
      89           0 :   mService->RegisterDiscoveryManager(this);
      90           0 :   return id;
      91             : }
      92             : 
      93             : void
      94           0 : FlyWebDiscoveryManager::StopDiscovery(uint32_t aId)
      95             : {
      96           0 :   mCallbackMap.Remove(aId);
      97           0 :   if (mCallbackMap.Count() == 0) {
      98           0 :     mService->UnregisterDiscoveryManager(this);
      99             :   }
     100           0 : }
     101             : 
     102             : void
     103           0 : FlyWebDiscoveryManager::PairWithService(const nsAString& aServiceId,
     104             :                                         FlyWebPairingCallback& aCallback)
     105             : {
     106           0 :   mService->PairWithService(aServiceId, aCallback);
     107           0 : }
     108             : 
     109             : void
     110           0 : FlyWebDiscoveryManager::NotifyDiscoveredServicesChanged()
     111             : {
     112           0 :   nsTArray<FlyWebDiscoveredService> services;
     113           0 :   ListServices(services);
     114           0 :   Sequence<FlyWebDiscoveredService> servicesSeq;
     115           0 :   servicesSeq.SwapElements(services);
     116           0 :   for (auto iter = mCallbackMap.Iter(); !iter.Done(); iter.Next()) {
     117           0 :     FlyWebDiscoveryCallback *callback = iter.UserData();
     118           0 :     ErrorResult err;
     119           0 :     callback->OnDiscoveredServicesChanged(servicesSeq, err);
     120           0 :     ENSURE_SUCCESS_VOID(err);
     121             :   }
     122             : }
     123             : 
     124             : 
     125             : } // namespace dom
     126             : } // namespace mozilla

Generated by: LCOV version 1.13