1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2026-01-21 02:41:00 +00:00
serenity/Applications/ProcessManager/SocketModel.h
Andreas Kling d6bce37756 ProcessManager: Add a "Network" tab with live adapter and socket stats
This fetches info from /proc/netadapters and /proc/net_tcp, updating
every second. Very cool. :^)
2019-08-08 20:43:30 +02:00

38 lines
973 B
C++

#pragma once
#include <AK/JsonArray.h>
#include <LibGUI/GModel.h>
class SocketModel final : public GModel {
public:
enum Column {
PeerAddress,
PeerPort,
LocalAddress,
LocalPort,
State,
AckNumber,
SeqNumber,
PacketsIn,
PacketsOut,
BytesIn,
BytesOut,
__Count
};
static NonnullRefPtr<SocketModel> create() { return adopt(*new SocketModel); }
virtual ~SocketModel() override {}
virtual int row_count(const GModelIndex& = GModelIndex()) const override;
virtual int column_count(const GModelIndex& = GModelIndex()) const override { return Column::__Count; }
virtual String column_name(int) const override;
virtual ColumnMetadata column_metadata(int) const override;
virtual GVariant data(const GModelIndex&, Role = Role::Display) const override;
virtual void update() override;
private:
SocketModel() {}
JsonArray m_sockets;
};