1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2026-01-21 02:41:00 +00:00
serenity/Applications/ProcessManager/NetworkAdapterModel.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

33 lines
954 B
C++

#pragma once
#include <AK/JsonArray.h>
#include <LibGUI/GModel.h>
class NetworkAdapterModel final : public GModel {
public:
enum Column {
Name,
ClassName,
MacAddress,
IpAddress,
PacketsIn,
PacketsOut,
BytesIn,
BytesOut,
__Count
};
static NonnullRefPtr<NetworkAdapterModel> create() { return adopt(*new NetworkAdapterModel); }
virtual ~NetworkAdapterModel() 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:
NetworkAdapterModel() {}
JsonArray m_netadapters;
};