123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- /* 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 nsDashboard_h__
- #define nsDashboard_h__
- #include "mozilla/Mutex.h"
- #include "mozilla/net/DashboardTypes.h"
- #include "nsIDashboard.h"
- #include "nsIDashboardEventNotifier.h"
- #include "nsIDNSListener.h"
- #include "nsIServiceManager.h"
- #include "nsITimer.h"
- #include "nsITransport.h"
- class nsIDNSService;
- namespace mozilla {
- namespace net {
- class SocketData;
- class HttpData;
- class DnsData;
- class WebSocketRequest;
- class ConnectionData;
- class Dashboard final
- : public nsIDashboard
- , public nsIDashboardEventNotifier
- {
- public:
- NS_DECL_THREADSAFE_ISUPPORTS
- NS_DECL_NSIDASHBOARD
- NS_DECL_NSIDASHBOARDEVENTNOTIFIER
- Dashboard();
- static const char *GetErrorString(nsresult rv);
- nsresult GetConnectionStatus(ConnectionData *aConnectionData);
- private:
- struct LogData
- {
- LogData(nsCString host, uint32_t serial, bool encryption):
- mHost(host),
- mSerial(serial),
- mMsgSent(0),
- mMsgReceived(0),
- mSizeSent(0),
- mSizeReceived(0),
- mEncrypted(encryption)
- { }
- nsCString mHost;
- uint32_t mSerial;
- uint32_t mMsgSent;
- uint32_t mMsgReceived;
- uint64_t mSizeSent;
- uint64_t mSizeReceived;
- bool mEncrypted;
- bool operator==(const LogData& a) const
- {
- return mHost.Equals(a.mHost) && (mSerial == a.mSerial);
- }
- };
- struct WebSocketData
- {
- WebSocketData():lock("Dashboard.webSocketData")
- {
- }
- uint32_t IndexOf(nsCString hostname, uint32_t mSerial)
- {
- LogData temp(hostname, mSerial, false);
- return data.IndexOf(temp);
- }
- nsTArray<LogData> data;
- mozilla::Mutex lock;
- };
- bool mEnableLogging;
- WebSocketData mWs;
- private:
- virtual ~Dashboard();
- nsresult GetSocketsDispatch(SocketData *);
- nsresult GetHttpDispatch(HttpData *);
- nsresult GetDnsInfoDispatch(DnsData *);
- nsresult TestNewConnection(ConnectionData *);
- /* Helper methods that pass the JSON to the callback function. */
- nsresult GetSockets(SocketData *);
- nsresult GetHttpConnections(HttpData *);
- nsresult GetDNSCacheEntries(DnsData *);
- nsresult GetWebSocketConnections(WebSocketRequest *);
- nsCOMPtr<nsIDNSService> mDnsService;
- };
- } // namespace net
- } // namespace mozilla
- #endif // nsDashboard_h__
|