123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- /* -*- Mode: C++; tab-width: 8; 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/. */
- #include "mozilla/net/IPCTransportProvider.h"
- #include "nsISocketTransport.h"
- #include "nsIAsyncInputStream.h"
- #include "nsIAsyncOutputStream.h"
- namespace mozilla {
- namespace net {
- NS_IMPL_ISUPPORTS(TransportProviderParent,
- nsITransportProvider,
- nsIHttpUpgradeListener)
- TransportProviderParent::TransportProviderParent()
- {
- MOZ_COUNT_CTOR(TransportProviderParent);
- }
- TransportProviderParent::~TransportProviderParent()
- {
- MOZ_COUNT_DTOR(TransportProviderParent);
- }
- NS_IMETHODIMP
- TransportProviderParent::SetListener(nsIHttpUpgradeListener* aListener)
- {
- MOZ_ASSERT(aListener);
- mListener = aListener;
- MaybeNotify();
- return NS_OK;
- }
- NS_IMETHODIMP
- TransportProviderParent::GetIPCChild(mozilla::net::PTransportProviderChild** aChild)
- {
- MOZ_CRASH("Don't call this in parent process");
- *aChild = nullptr;
- return NS_OK;
- }
- NS_IMETHODIMP
- TransportProviderParent::OnTransportAvailable(nsISocketTransport* aTransport,
- nsIAsyncInputStream* aSocketIn,
- nsIAsyncOutputStream* aSocketOut)
- {
- MOZ_ASSERT(aTransport && aSocketOut && aSocketOut);
- mTransport = aTransport;
- mSocketIn = aSocketIn;
- mSocketOut = aSocketOut;
- MaybeNotify();
- return NS_OK;
- }
- void
- TransportProviderParent::MaybeNotify()
- {
- if (!mListener || !mTransport) {
- return;
- }
- mListener->OnTransportAvailable(mTransport, mSocketIn, mSocketOut);
- }
- NS_IMPL_ISUPPORTS(TransportProviderChild,
- nsITransportProvider)
- TransportProviderChild::TransportProviderChild()
- {
- MOZ_COUNT_CTOR(TransportProviderChild);
- }
- TransportProviderChild::~TransportProviderChild()
- {
- MOZ_COUNT_DTOR(TransportProviderChild);
- Send__delete__(this);
- }
- NS_IMETHODIMP
- TransportProviderChild::SetListener(nsIHttpUpgradeListener* aListener)
- {
- MOZ_CRASH("Don't call this in child process");
- return NS_OK;
- }
- NS_IMETHODIMP
- TransportProviderChild::GetIPCChild(mozilla::net::PTransportProviderChild** aChild)
- {
- *aChild = this;
- return NS_OK;
- }
- } // net
- } // mozilla
|