From 03aaa278a5ea16779412efdf13082436c1e816c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Revol?= Date: Thu, 17 Apr 2008 20:30:13 +0000 Subject: [PATCH] Add Semaphores and Ports data sources. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25011 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/apps/activitymonitor/DataSource.cpp | 96 +++++++++++++++++++++++++ src/apps/activitymonitor/DataSource.h | 26 +++++++ src/apps/activitymonitor/SystemInfo.cpp | 28 ++++++++ src/apps/activitymonitor/SystemInfo.h | 6 ++ 4 files changed, 156 insertions(+) diff --git a/src/apps/activitymonitor/DataSource.cpp b/src/apps/activitymonitor/DataSource.cpp index 254ee72ced..01092576d4 100644 --- a/src/apps/activitymonitor/DataSource.cpp +++ b/src/apps/activitymonitor/DataSource.cpp @@ -17,6 +17,8 @@ const DataSource* kSources[] = { new UsedMemoryDataSource(), new CachedMemoryDataSource(), + new SemaphoresDataSource(), + new PortsDataSource(), new ThreadsDataSource(), new TeamsDataSource(), new CPUUsageDataSource(), @@ -340,6 +342,100 @@ CachedMemoryDataSource::Label() const // #pragma mark - +SemaphoresDataSource::SemaphoresDataSource() +{ + SystemInfo info; + + fMinimum = 0; + fMaximum = info.MaxSemaphores(); + + fColor = (rgb_color){100, 200, 100}; +} + + +SemaphoresDataSource::~SemaphoresDataSource() +{ +} + + +DataSource* +SemaphoresDataSource::Copy() const +{ + return new SemaphoresDataSource(*this); +} + + +int64 +SemaphoresDataSource::NextValue(SystemInfo& info) +{ + return info.UsedSemaphores(); +} + + +const char* +SemaphoresDataSource::Label() const +{ + return "Semaphores"; +} + + +bool +SemaphoresDataSource::AdaptiveScale() const +{ + return true; +} + + +// #pragma mark - + + +PortsDataSource::PortsDataSource() +{ + SystemInfo info; + + fMinimum = 0; + fMaximum = info.MaxPorts(); + + fColor = (rgb_color){180, 200, 180}; +} + + +PortsDataSource::~PortsDataSource() +{ +} + + +DataSource* +PortsDataSource::Copy() const +{ + return new PortsDataSource(*this); +} + + +int64 +PortsDataSource::NextValue(SystemInfo& info) +{ + return info.UsedPorts(); +} + + +const char* +PortsDataSource::Label() const +{ + return "Ports"; +} + + +bool +PortsDataSource::AdaptiveScale() const +{ + return true; +} + + +// #pragma mark - + + ThreadsDataSource::ThreadsDataSource() { SystemInfo info; diff --git a/src/apps/activitymonitor/DataSource.h b/src/apps/activitymonitor/DataSource.h index 43ed2fab75..19271c8cde 100644 --- a/src/apps/activitymonitor/DataSource.h +++ b/src/apps/activitymonitor/DataSource.h @@ -89,6 +89,32 @@ public: }; +class SemaphoresDataSource : public DataSource { +public: + SemaphoresDataSource(); + virtual ~SemaphoresDataSource(); + + virtual DataSource* Copy() const; + + virtual int64 NextValue(SystemInfo& info); + virtual const char* Label() const; + virtual bool AdaptiveScale() const; +}; + + +class PortsDataSource : public DataSource { +public: + PortsDataSource(); + virtual ~PortsDataSource(); + + virtual DataSource* Copy() const; + + virtual int64 NextValue(SystemInfo& info); + virtual const char* Label() const; + virtual bool AdaptiveScale() const; +}; + + class ThreadsDataSource : public DataSource { public: ThreadsDataSource(); diff --git a/src/apps/activitymonitor/SystemInfo.cpp b/src/apps/activitymonitor/SystemInfo.cpp index e308c6620a..ff7257ab62 100644 --- a/src/apps/activitymonitor/SystemInfo.cpp +++ b/src/apps/activitymonitor/SystemInfo.cpp @@ -53,6 +53,34 @@ SystemInfo::MaxMemory() const } +uint32 +SystemInfo::UsedSemaphores() const +{ + return fSystemInfo.used_sems; +} + + +uint32 +SystemInfo::MaxSemaphores() const +{ + return fSystemInfo.max_sems; +} + + +uint32 +SystemInfo::UsedPorts() const +{ + return fSystemInfo.used_ports; +} + + +uint32 +SystemInfo::MaxPorts() const +{ + return fSystemInfo.max_ports; +} + + uint32 SystemInfo::UsedThreads() const { diff --git a/src/apps/activitymonitor/SystemInfo.h b/src/apps/activitymonitor/SystemInfo.h index 58021ba241..a30ae91118 100644 --- a/src/apps/activitymonitor/SystemInfo.h +++ b/src/apps/activitymonitor/SystemInfo.h @@ -18,6 +18,12 @@ public: uint64 UsedMemory() const; uint64 MaxMemory() const; + uint32 UsedSemaphores() const; + uint32 MaxSemaphores() const; + + uint32 UsedPorts() const; + uint32 MaxPorts() const; + uint32 UsedThreads() const; uint32 MaxThreads() const;