]> git.stg.codes - stg.git/blobdiff - projects/stargazer/plugins/other/smux/sensors.cpp
Use std::lock_guard instead of STG_LOCKER.
[stg.git] / projects / stargazer / plugins / other / smux / sensors.cpp
index 9cfdadd074bf053e1d61b82cbb41c6246816cfb1..d868e37bafc56f88739cd452c1e93a7528421b24 100644 (file)
@@ -1,17 +1,20 @@
-#include <cassert>
-
-#include "stg/INTEGER.h"
+#include "sensors.h"
 
 #include "stg/user.h"
 
 
 #include "stg/user.h"
 
-#include "sensors.h"
+#include <cassert>
 
 
-bool UsersSensor::GetValue(ObjectSyntax_t * objectSyntax) const
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wold-style-cast"
+#include "stg/INTEGER.h"
+#pragma GCC diagnostic pop
+
+void UsersSensor::GetValue(ObjectSyntax_t * objectSyntax) const
 {
 int handle = users.OpenSearch();
 assert(handle && "USERS::OpenSearch is always correct");
 
 {
 int handle = users.OpenSearch();
 assert(handle && "USERS::OpenSearch is always correct");
 
-USER_PTR user;
+STG::User* user;
 size_t count = 0;
 while (!users.SearchNext(handle, &user))
     {
 size_t count = 0;
 while (!users.SearchNext(handle, &user))
     {
@@ -22,7 +25,6 @@ while (!users.SearchNext(handle, &user))
 users.CloseSearch(handle);
 
 ValueToOS(count, objectSyntax);
 users.CloseSearch(handle);
 
 ValueToOS(count, objectSyntax);
-return true;
 }
 
 #ifdef DEBUG
 }
 
 #ifdef DEBUG
@@ -31,7 +33,7 @@ std::string UsersSensor::ToString() const
 int handle = users.OpenSearch();
 assert(handle && "USERS::OpenSearch is always correct");
 
 int handle = users.OpenSearch();
 assert(handle && "USERS::OpenSearch is always correct");
 
-USER_PTR user;
+STG::User* user;
 size_t count = 0;
 while (!users.SearchNext(handle, &user))
     {
 size_t count = 0;
 while (!users.SearchNext(handle, &user))
     {
@@ -41,8 +43,19 @@ while (!users.SearchNext(handle, &user))
 
 users.CloseSearch(handle);
 
 
 users.CloseSearch(handle);
 
-std::string res;
-x2str(count, res);
-return res;
+return std::to_string(count);
 }
 #endif
 }
 #endif
+
+bool ActiveUsersSensor::UserPredicate(STG::User* userPtr) const
+{
+if (!userPtr->GetConnected())
+    return false;
+for (size_t i = 0; i < DIR_NUM; ++i)
+    {
+    if (userPtr->GetSessionUpload()[i] > 0 ||
+        userPtr->GetSessionDownload()[i] > 0)
+        return true;
+    }
+return false;
+}