toolkit/components/places/INativePlacesEventCallback.h
author Emilio Cobos Álvarez <emilio@crisal.io>
Thu, 23 Jul 2020 14:51:46 +0000
changeset 541764 be4b0f6e68c9d46ecb15aac5ad87a3a7b8731e57
parent 517740 c6c3ec3568c7e6324e1311c5b6293320a3796939
permissions -rw-r--r--
Bug 1653011 - Simplify and make WeakPtr<Derived> usable and compact. r=froydnj,sg,geckoview-reviewers,jgilbert,kvark,snorp Having two classes in the inheritance chain inherit from SupportsWeakPtr now won't compile, but you can use WeakPtr<Derived> when any base class inherits from SupportsWeakPtr. Differential Revision: https://phabricator.services.mozilla.com/D83674

/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* 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/. */

#ifndef mozilla_image_INativePlacesEventCallback_h
#define mozilla_image_INativePlacesEventCallback_h

#include "mozilla/dom/PlacesObserversBinding.h"
#include "mozilla/WeakPtr.h"
#include "nsISupports.h"
#include "nsTArray.h"

namespace mozilla {
namespace places {

class INativePlacesEventCallback : public SupportsWeakPtr {
 public:
  typedef dom::Sequence<OwningNonNull<dom::PlacesEvent>> PlacesEventSequence;

  NS_INLINE_DECL_PURE_VIRTUAL_REFCOUNTING

  virtual void HandlePlacesEvent(const PlacesEventSequence& aEvents) = 0;

 protected:
  virtual ~INativePlacesEventCallback() = default;
};

}  // namespace places
}  // namespace mozilla

#endif  // mozilla_image_INativePlacesEventCallback_h