<table><tr><td style="">davidedmundson created this revision.<br />davidedmundson added a reviewer: Plasma.<br />Herald added a project: Plasma.<br />Herald added a subscriber: plasma-devel.<br />davidedmundson requested review of this revision.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D28333">View Revision</a></tr></table><br /><div><strong>REVISION SUMMARY</strong><div><p>ksysguardd, whilst good, has a few problems</p>
<p>The code is a bit archaic, it relies on a polling API, which is overhead<br />
for infrequently changed values or where setting up a monitor has a big<br />
overhead.</p>
<p>It also moves the problem of translations into the daemon, allowing for<br />
better extensibility without requiring client side changes.</p>
<p>The daemon is based around a typical OO model. Plugins have lists of<br />
objects, those objects have properties using common Qt patterns. A<br />
property also has various metadata.</p>
<p>For full compatibility ksgrd is wrapped and the plan is to land with the<br />
bridge, then slowly land patches that use the new API natively.</p>
<p>An nvidia plugin is also added to show the API being used in another<br />
format.</p>
<p>This is all consumed by the new API posted in <a href="https://phabricator.kde.org/D28141" style="background-color: #e7e7e7;
border-color: #e7e7e7;
border-radius: 3px;
padding: 0 4px;
font-weight: bold;
color: black;text-decoration: none;">D28141</a></p></div></div><br /><div><strong>TEST PLAN</strong><div><p>Unit test<br />
Used with the new library to create a new suite of applet (upcoming patch)<br />
Used in a ported ksysguard</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>R106 KSysguard</div></div></div><br /><div><strong>BRANCH</strong><div><div>master</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D28333">https://phabricator.kde.org/D28333</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>CMakeLists.txt<br />
kstats/CMakeLists.txt<br />
kstats/autotests/CMakeLists.txt<br />
kstats/autotests/main.cpp<br />
kstats/client.cpp<br />
kstats/client.h<br />
kstats/ksysguard_iface.xml<br />
kstats/ksysguarddaemon.cpp<br />
kstats/ksysguarddaemon.h<br />
kstats/main.cpp<br />
kstats/test/CMakeLists.txt<br />
kstats/test/README.txt<br />
kstats/test/main.cpp<br />
libkstats/AggregateSensor.cpp<br />
libkstats/AggregateSensor.h<br />
libkstats/CMakeLists.txt<br />
libkstats/SensorContainer.cpp<br />
libkstats/SensorContainer.h<br />
libkstats/SensorObject.cpp<br />
libkstats/SensorObject.h<br />
libkstats/SensorPlugin.cpp<br />
libkstats/SensorPlugin.h<br />
libkstats/SensorProperty.cpp<br />
libkstats/SensorProperty.h<br />
libkstats/types.h<br />
plugins/CMakeLists.txt<br />
plugins/global/ksgrd/CMakeLists.txt<br />
plugins/global/ksgrd/ksgrd.json<br />
plugins/global/ksgrd/ksgrdiface.cpp<br />
plugins/global/ksgrd/ksgrdiface.h<br />
plugins/global/nvidia/CMakeLists.txt<br />
plugins/global/nvidia/nvidia.cpp<br />
plugins/global/nvidia/nvidia.h<br />
plugins/global/nvidia/nvidiaplugin.json</div></div></div><br /><div><strong>To: </strong>davidedmundson, Plasma<br /><strong>Cc: </strong>plasma-devel, Orage, LeGast00n, The-Feren-OS-Dev, cblack, jraleigh, zachus, fbampaloukas, GB_2, ragreen, ZrenBot, ngraham, himcesjf, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, ahiemstra, mart<br /></div>