DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Implementation

Mercurial (c68fe15a81fc)

VCS Links

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim:set ts=2 sw=2 sts=2 et cindent: */
/* 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/. */

#ifndef mozilla_dom_MediaStreamError_h
#ifndef mozilla_dom_MediaStreamError_h
#define mozilla_dom_MediaStreamError_h

#include "mozilla/Attributes.h"
#include "mozilla/ErrorResult.h"
#include "nsWrapperCache.h"
#include "nsWrapperCache.h"
#include "js/TypeDecls.h"
#include "nsPIDOMWindow.h"
#include "mozilla/RefPtr.h"

#if defined(XP_WIN) && defined(GetMessage)
#if defined(XP_WIN) && defined(GetMessage)
#  undef GetMessage
#endif

namespace mozilla {


namespace dom {

#define MOZILLA_DOM_MEDIASTREAMERROR_IMPLEMENTATION_IID \
  {                                                     \
    0x95fa29aa, 0x0cc2, 0x4698, {                       \
    0x95fa29aa, 0x0cc2, 0x4698, {                       \
      0x9d, 0xa9, 0xf2, 0xeb, 0x03, 0x91, 0x0b, 0xd1    \
    }                                                   \
  }

class MediaStreamError;
}  // namespace dom

class BaseMediaMgrError {
  friend class dom::MediaStreamError;
  friend class dom::MediaStreamError;

 public:
  enum class Name {
    AbortError,
    InvalidStateError,
    InvalidStateError,
    NotAllowedError,
    NotFoundError,
    NotReadableError,
    NotSupportedError,
    OverconstrainedError,
    OverconstrainedError,
    SecurityError,
    TypeError,
  };


 protected:
  BaseMediaMgrError(Name aName, const nsAString& aMessage,
                    const nsAString& aConstraint);

 public:
 public:
  nsString mNameString;
  nsString mMessage;
  const nsString mConstraint;
  const Name mName;
};
};

class MediaMgrError final : public nsISupports, public BaseMediaMgrError {
 public:
  explicit MediaMgrError(Name aName, const nsAString& aMessage = EmptyString(),
                         const nsAString& aConstraint = EmptyString())
                         const nsAString& aConstraint = EmptyString())
      : BaseMediaMgrError(aName, aMessage, aConstraint) {}

  NS_DECL_THREADSAFE_ISUPPORTS

 private:
 private:
  ~MediaMgrError() = default;
};

namespace dom {
class MediaStreamError final : public nsISupports,
                               public BaseMediaMgrError,
                               public nsWrapperCache {
 public:
 public:
  MediaStreamError(nsPIDOMWindowInner* aParent, Name aName,
                   const nsAString& aMessage = EmptyString(),
                   const nsAString& aConstraint = EmptyString());


  MediaStreamError(nsPIDOMWindowInner* aParent, const BaseMediaMgrError& aOther)
      : BaseMediaMgrError(aOther.mName, aOther.mMessage, aOther.mConstraint),
        mParent(aParent) {}

  NS_DECL_CYCLE_COLLECTING_ISUPPORTS
  NS_DECL_CYCLE_COLLECTING_ISUPPORTS
  NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(MediaStreamError)
  NS_DECLARE_STATIC_IID_ACCESSOR(
      MOZILLA_DOM_MEDIASTREAMERROR_IMPLEMENTATION_IID)

  JSObject* WrapObject(JSContext* aCx,
  JSObject* WrapObject(JSContext* aCx,
                       JS::Handle<JSObject*> aGivenProto) override;

  nsPIDOMWindowInner* GetParentObject() const { return mParent; }
  void GetName(nsAString& aName) const;
  void GetMessage(nsAString& aMessage) const;
  void GetMessage(nsAString& aMessage) const;
  void GetConstraint(nsAString& aConstraint) const;

 private:
  virtual ~MediaStreamError() = default;


  RefPtr<nsPIDOMWindowInner> mParent;
};

NS_DEFINE_STATIC_IID_ACCESSOR(MediaStreamError,
                              MOZILLA_DOM_MEDIASTREAMERROR_IMPLEMENTATION_IID)
                              MOZILLA_DOM_MEDIASTREAMERROR_IMPLEMENTATION_IID)
}  // namespace dom
}  // namespace mozilla

#endif