LCOV - code coverage report
Current view: top level - netwerk/base - nsProxyInfo.h (source / functions) Hit Total Coverage
Test: output.info Lines: 0 14 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 8 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
       2             : /* vim:set ts=2 sw=2 sts=2 et cindent: */
       3             : /* This Source Code Form is subject to the terms of the Mozilla Public
       4             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       5             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
       6             : 
       7             : #ifndef nsProxyInfo_h__
       8             : #define nsProxyInfo_h__
       9             : 
      10             : #include "nsIProxyInfo.h"
      11             : #include "nsString.h"
      12             : #include "mozilla/Attributes.h"
      13             : 
      14             : // Use to support QI nsIProxyInfo to nsProxyInfo
      15             : #define NS_PROXYINFO_IID \
      16             : { /* ed42f751-825e-4cc2-abeb-3670711a8b85 */         \
      17             :     0xed42f751,                                      \
      18             :     0x825e,                                          \
      19             :     0x4cc2,                                          \
      20             :     {0xab, 0xeb, 0x36, 0x70, 0x71, 0x1a, 0x8b, 0x85} \
      21             : }
      22             : 
      23             : namespace mozilla {
      24             : namespace net {
      25             : 
      26             : // This class is exposed to other classes inside Necko for fast access
      27             : // to the nsIProxyInfo attributes.
      28             : class nsProxyInfo final : public nsIProxyInfo
      29             : {
      30             : public:
      31             :   NS_DECLARE_STATIC_IID_ACCESSOR(NS_PROXYINFO_IID)
      32             : 
      33             :   NS_DECL_THREADSAFE_ISUPPORTS
      34             :   NS_DECL_NSIPROXYINFO
      35             : 
      36             :   // Cheap accessors for use within Necko
      37           0 :   const nsCString &Host()  { return mHost; }
      38           0 :   int32_t          Port()  { return mPort; }
      39           0 :   const char      *Type()  { return mType; }
      40           0 :   uint32_t         Flags() { return mFlags; }
      41           0 :   const nsCString &Username()  { return mUsername; }
      42           0 :   const nsCString &Password()  { return mPassword; }
      43             : 
      44             :   bool IsDirect();
      45             :   bool IsHTTP();
      46             :   bool IsHTTPS();
      47             :   bool IsSOCKS();
      48             : 
      49             : private:
      50             :   friend class nsProtocolProxyService;
      51             : 
      52           0 :   explicit nsProxyInfo(const char *type = nullptr)
      53           0 :     : mType(type)
      54             :     , mPort(-1)
      55             :     , mFlags(0)
      56             :     , mResolveFlags(0)
      57             :     , mTimeout(UINT32_MAX)
      58           0 :     , mNext(nullptr)
      59           0 :   {}
      60             : 
      61           0 :   ~nsProxyInfo()
      62           0 :   {
      63           0 :     NS_IF_RELEASE(mNext);
      64           0 :   }
      65             : 
      66             :   const char  *mType;  // pointer to statically allocated value
      67             :   nsCString    mHost;
      68             :   nsCString    mUsername;
      69             :   nsCString    mPassword;
      70             :   int32_t      mPort;
      71             :   uint32_t     mFlags;
      72             :   uint32_t     mResolveFlags;
      73             :   uint32_t     mTimeout;
      74             :   nsProxyInfo *mNext;
      75             : };
      76             : 
      77             : NS_DEFINE_STATIC_IID_ACCESSOR(nsProxyInfo, NS_PROXYINFO_IID)
      78             : 
      79             : } // namespace net
      80             : } // namespace mozilla
      81             : 
      82             : #endif // nsProxyInfo_h__

Generated by: LCOV version 1.13