netwerk/base/nsSyncStreamListener.h
author Andrew Osmond <aosmond@mozilla.com>
Fri, 17 Nov 2017 06:45:28 -0500
changeset 392351 b9a29d94ccac646c9336fa75e084bbc8581501ad
parent 236178 8bc7561d75577b08ae0c5449104378144a6fc9e0
child 416428 17e1f96d453f869f9bb64cc1d889320ca2b4adba
permissions -rw-r--r--
Bug 1368776 - Part 15. Cache flags passed to ImageResource::GetImageContainerImpl for consistency. r=tnikkel When FLAG_HIGH_QUALITY_SCALING is used, we need to make sure we continue using that flag when we update the container. We should also use it for comparing whether or not an existing image container is equivalent.

/* 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 nsSyncStreamListener_h__
#define nsSyncStreamListener_h__

#include "nsISyncStreamListener.h"
#include "nsIInputStream.h"
#include "nsIOutputStream.h"
#include "nsCOMPtr.h"
#include "mozilla/Attributes.h"

//-----------------------------------------------------------------------------

class nsSyncStreamListener final : public nsISyncStreamListener
                                 , public nsIInputStream
{
public:
    NS_DECL_ISUPPORTS
    NS_DECL_NSIREQUESTOBSERVER
    NS_DECL_NSISTREAMLISTENER
    NS_DECL_NSISYNCSTREAMLISTENER
    NS_DECL_NSIINPUTSTREAM

    nsSyncStreamListener()
        : mStatus(NS_OK)
        , mKeepWaiting(false)
        , mDone(false) {}

    nsresult Init();

private:
    ~nsSyncStreamListener() {}

    nsresult WaitForData();

    nsCOMPtr<nsIInputStream>    mPipeIn;
    nsCOMPtr<nsIOutputStream>   mPipeOut;
    nsresult                    mStatus;
    bool                        mKeepWaiting;
    bool                        mDone;
};

#endif // nsSyncStreamListener_h__