NetworkInfoConnection.h [plain text]
#ifndef NetworkInfoConnection_h
#define NetworkInfoConnection_h
#if ENABLE(NETWORK_INFO)
#include "ActiveDOMObject.h"
#include "EventListener.h"
#include "EventTarget.h"
#include "Navigator.h"
#include "NetworkInfo.h"
#include "NetworkInfoController.h"
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
#include <wtf/text/WTFString.h>
namespace WebCore {
class NetworkInfoController;
class NetworkInfoConnection : public RefCounted<NetworkInfoConnection>, public EventTarget, public ActiveDOMObject {
public:
static PassRefPtr<NetworkInfoConnection> create(Navigator*);
~NetworkInfoConnection();
double bandwidth() const;
bool metered() const;
void didChangeNetworkInformation(PassRefPtr<Event>, PassRefPtr<NetworkInfo>);
void networkInfoControllerDestroyed() { m_controller = 0; }
virtual const AtomicString& interfaceName() const;
virtual ScriptExecutionContext* scriptExecutionContext() const { return ActiveDOMObject::scriptExecutionContext(); }
using RefCounted<NetworkInfoConnection>::ref;
using RefCounted<NetworkInfoConnection>::deref;
DEFINE_ATTRIBUTE_EVENT_LISTENER(webkitnetworkinfochange);
virtual bool canSuspend() const { return true; }
virtual void suspend(ReasonForSuspension);
virtual void resume();
virtual void stop();
private:
explicit NetworkInfoConnection(Navigator*);
virtual EventTargetData* eventTargetData();
virtual EventTargetData* ensureEventTargetData();
virtual void refEventTarget() { ref(); }
virtual void derefEventTarget() { deref(); }
EventTargetData m_eventTargetData;
NetworkInfoController* m_controller;
RefPtr<NetworkInfo> m_networkInfo;
};
}
#endif
#endif // NetworkInfoConnection_h