netwerk/base/src/nsDNSPrefetch.h

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
     2 /* This Source Code Form is subject to the terms of the Mozilla Public
     3  * License, v. 2.0. If a copy of the MPL was not distributed with this
     4  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     6 #ifndef nsDNSPrefetch_h___
     7 #define nsDNSPrefetch_h___
     9 #include "nsWeakReference.h"
    10 #include "nsString.h"
    11 #include "mozilla/TimeStamp.h"
    12 #include "mozilla/Attributes.h"
    14 #include "nsIDNSListener.h"
    16 class nsIURI;
    17 class nsIDNSService;
    19 class nsDNSPrefetch MOZ_FINAL : public nsIDNSListener
    20 {
    21 public:
    22     NS_DECL_THREADSAFE_ISUPPORTS
    23     NS_DECL_NSIDNSLISTENER
    25     nsDNSPrefetch(nsIURI *aURI, nsIDNSListener *aListener, bool storeTiming);
    26     bool TimingsValid() const {
    27         return !mStartTimestamp.IsNull() && !mEndTimestamp.IsNull();
    28     }
    29     // Only use the two timings if TimingsValid() returns true
    30     const mozilla::TimeStamp& StartTimestamp() const { return mStartTimestamp; }
    31     const mozilla::TimeStamp& EndTimestamp() const { return mEndTimestamp; }
    33     static nsresult Initialize(nsIDNSService *aDNSService);
    34     static nsresult Shutdown();
    36     // Call one of the following methods to start the Prefetch.
    37     nsresult PrefetchHigh(bool refreshDNS = false);
    38     nsresult PrefetchMedium(bool refreshDNS = false);
    39     nsresult PrefetchLow(bool refreshDNS = false);
    41 private:
    42     nsCString mHostname;
    43     bool mStoreTiming;
    44     mozilla::TimeStamp mStartTimestamp;
    45     mozilla::TimeStamp mEndTimestamp;
    46     nsWeakPtr mListener;
    48     nsresult Prefetch(uint16_t flags);
    49 };
    51 #endif 

mercurial