当前位置: 首页>>代码示例>>C++>>正文


C++ StaticAutoPtr::AppendElement方法代码示例

本文整理汇总了C++中StaticAutoPtr::AppendElement方法的典型用法代码示例。如果您正苦于以下问题:C++ StaticAutoPtr::AppendElement方法的具体用法?C++ StaticAutoPtr::AppendElement怎么用?C++ StaticAutoPtr::AppendElement使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在StaticAutoPtr的用法示例。


在下文中一共展示了StaticAutoPtr::AppendElement方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: ConnectResultHandler

void
BluetoothGattManager::Connect(const nsAString& aAppUuid,
                              const nsAString& aDeviceAddr,
                              BluetoothReplyRunnable* aRunnable)
{
  MOZ_ASSERT(NS_IsMainThread());
  MOZ_ASSERT(aRunnable);

  ENSURE_GATT_CLIENT_INTF_IS_READY_VOID(aRunnable);

  size_t index = sClients->IndexOf(aAppUuid, 0 /* Start */, UuidComparator());
  if (index == sClients->NoIndex) {
    index = sClients->Length();
    sClients->AppendElement(new BluetoothGattClient(aAppUuid, aDeviceAddr));
  }

  nsRefPtr<BluetoothGattClient> client = sClients->ElementAt(index);
  client->mConnectRunnable = aRunnable;

  if (client->mClientIf > 0) {
    sBluetoothGattClientInterface->Connect(client->mClientIf,
                                           aDeviceAddr,
                                           true, // direct connect
                                           new ConnectResultHandler(client));
  } else {
    BluetoothUuid uuid;
    StringToUuid(NS_ConvertUTF16toUTF8(aAppUuid).get(), uuid);

    // connect will be proceeded after client registered
    sBluetoothGattClientInterface->RegisterClient(
      uuid, new RegisterClientResultHandler(client));
  }
}
开发者ID:AOSC-Dev,项目名称:Pale-Moon,代码行数:33,代码来源:BluetoothGattManager.cpp

示例2: locker

void
TelemetryIPCAccumulator::RecordChildEvent(const mozilla::TimeStamp& timestamp,
                                          const nsACString& category,
                                          const nsACString& method,
                                          const nsACString& object,
                                          const mozilla::Maybe<nsCString>& value,
                                          const nsTArray<mozilla::Telemetry::EventExtraEntry>& extra)
{
  StaticMutexAutoLock locker(gTelemetryIPCAccumulatorMutex);

  if (!gChildEvents) {
    gChildEvents = new nsTArray<ChildEventData>();
  }

  if (gChildEvents->Length() >=
      kWaterMarkDiscardFactor * kEventsArrayHighWaterMark) {
    gDiscardedData.mDiscardedChildEvents++;
    return;
  }

  if (gChildEvents->Length() == kEventsArrayHighWaterMark) {
    DispatchIPCTimerFired();
  }

  // Store the event.
  gChildEvents->AppendElement(ChildEventData{timestamp, nsCString(category),
                                             nsCString(method), nsCString(object),
                                             value,
                                             nsTArray<mozilla::Telemetry::EventExtraEntry>(extra)});
  ArmIPCTimer(locker);
}
开发者ID:luke-chang,项目名称:gecko-1,代码行数:31,代码来源:TelemetryIPCAccumulator.cpp

示例3: Register

/* static */
void AudioNotificationReceiver::Register(
    DeviceChangeListener* aDeviceChangeListener) {
  MOZ_ASSERT(XRE_IsContentProcess());

  StaticMutexAutoLock lock(sMutex);
  if (!sSubscribers) {
    sSubscribers = new nsTArray<DeviceChangeListener*>();
  }
  sSubscribers->AppendElement(aDeviceChangeListener);

  ANR_LOG("The DeviceChangeListener: %p is registered successfully.",
          aDeviceChangeListener);
}
开发者ID:Noctem,项目名称:gecko-dev,代码行数:14,代码来源:AudioNotificationReceiver.cpp

示例4: ClearOnShutdown

static const nsTArray<KeySystemConfig>&
GetSupportedKeySystems()
{
  if (!sKeySystemConfigs) {
    sKeySystemConfigs = new nsTArray<KeySystemConfig>();
    ClearOnShutdown(&sKeySystemConfigs);

    {
      KeySystemConfig clearkey;
      clearkey.mKeySystem = NS_ConvertUTF8toUTF16(kEMEKeySystemClearkey);
      clearkey.mInitDataTypes.AppendElement(NS_LITERAL_STRING("cenc"));
      clearkey.mInitDataTypes.AppendElement(NS_LITERAL_STRING("keyids"));
      clearkey.mInitDataTypes.AppendElement(NS_LITERAL_STRING("webm"));
      clearkey.mPersistentState = KeySystemFeatureSupport::Requestable;
      clearkey.mDistinctiveIdentifier = KeySystemFeatureSupport::Prohibited;
      clearkey.mSessionTypes.AppendElement(MediaKeySessionType::Temporary);
      clearkey.mSessionTypes.AppendElement(MediaKeySessionType::Persistent_license);
#if defined(XP_WIN)
      // Clearkey CDM uses WMF decoders on Windows.
      if (WMFDecoderModule::HasAAC()) {
        clearkey.mMP4.SetCanDecryptAndDecode(GMP_CODEC_AAC);
      } else {
        clearkey.mMP4.SetCanDecrypt(GMP_CODEC_AAC);
      }
      if (WMFDecoderModule::HasH264()) {
        clearkey.mMP4.SetCanDecryptAndDecode(GMP_CODEC_H264);
      } else {
        clearkey.mMP4.SetCanDecrypt(GMP_CODEC_H264);
      }
#else
      clearkey.mMP4.SetCanDecrypt(GMP_CODEC_AAC);
      clearkey.mMP4.SetCanDecrypt(GMP_CODEC_H264);
#endif
      clearkey.mWebM.SetCanDecrypt(GMP_CODEC_VORBIS);
      clearkey.mWebM.SetCanDecrypt(GMP_CODEC_OPUS);
      clearkey.mWebM.SetCanDecrypt(GMP_CODEC_VP8);
      clearkey.mWebM.SetCanDecrypt(GMP_CODEC_VP9);
      sKeySystemConfigs->AppendElement(Move(clearkey));
    }
    {
      KeySystemConfig widevine;
      widevine.mKeySystem = NS_ConvertUTF8toUTF16(kEMEKeySystemWidevine);
      widevine.mInitDataTypes.AppendElement(NS_LITERAL_STRING("cenc"));
      widevine.mInitDataTypes.AppendElement(NS_LITERAL_STRING("keyids"));
      widevine.mInitDataTypes.AppendElement(NS_LITERAL_STRING("webm"));
      widevine.mPersistentState = KeySystemFeatureSupport::Requestable;
      widevine.mDistinctiveIdentifier = KeySystemFeatureSupport::Prohibited;
      widevine.mSessionTypes.AppendElement(MediaKeySessionType::Temporary);
      widevine.mAudioRobustness.AppendElement(NS_LITERAL_STRING("SW_SECURE_CRYPTO"));
      widevine.mVideoRobustness.AppendElement(NS_LITERAL_STRING("SW_SECURE_DECODE"));
#if defined(XP_WIN)
      // Widevine CDM doesn't include an AAC decoder. So if WMF can't
      // decode AAC, and a codec wasn't specified, be conservative
      // and reject the MediaKeys request, since our policy is to prevent
      //  the Adobe GMP's unencrypted AAC decoding path being used to
      // decode content decrypted by the Widevine CDM.
      if (WMFDecoderModule::HasAAC()) {
        widevine.mMP4.SetCanDecrypt(GMP_CODEC_AAC);
      }
#else
      widevine.mMP4.SetCanDecrypt(GMP_CODEC_AAC);
#endif
      widevine.mMP4.SetCanDecryptAndDecode(GMP_CODEC_H264);
      widevine.mWebM.SetCanDecrypt(GMP_CODEC_VORBIS);
      widevine.mWebM.SetCanDecrypt(GMP_CODEC_OPUS);
      widevine.mWebM.SetCanDecryptAndDecode(GMP_CODEC_VP8);
      widevine.mWebM.SetCanDecryptAndDecode(GMP_CODEC_VP9);
      sKeySystemConfigs->AppendElement(Move(widevine));
    }
    {
      KeySystemConfig primetime;
      primetime.mKeySystem = NS_ConvertUTF8toUTF16(kEMEKeySystemPrimetime);
      primetime.mInitDataTypes.AppendElement(NS_LITERAL_STRING("cenc"));
      primetime.mPersistentState = KeySystemFeatureSupport::Required;
      primetime.mDistinctiveIdentifier = KeySystemFeatureSupport::Required;
      primetime.mSessionTypes.AppendElement(MediaKeySessionType::Temporary);
      primetime.mMP4.SetCanDecryptAndDecode(GMP_CODEC_AAC);
      primetime.mMP4.SetCanDecryptAndDecode(GMP_CODEC_H264);
      sKeySystemConfigs->AppendElement(Move(primetime));
    }
  }
  return *sKeySystemConfigs;
}
开发者ID:MichaelKohler,项目名称:gecko-dev,代码行数:83,代码来源:MediaKeySystemAccess.cpp


注:本文中的StaticAutoPtr::AppendElement方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。