Show users in spectrum_manager status command

This commit is contained in:
Jan Kaluza 2011-06-27 16:57:14 +02:00
parent a1d5543db0
commit 091411eea4
4 changed files with 19 additions and 5 deletions

View file

@ -28,10 +28,12 @@ namespace Transport {
class Component;
class StorageBackend;
class UserManager;
class NetworkPluginServer;
class AdminInterface {
public:
AdminInterface(Component *component, StorageBackend *storageBackend = NULL);
AdminInterface(Component *component, UserManager *userManager, NetworkPluginServer *server = NULL, StorageBackend *storageBackend = NULL);
~AdminInterface();
@ -40,6 +42,8 @@ class AdminInterface {
Component *m_component;
StorageBackend *m_storageBackend;
UserManager *m_userManager;
NetworkPluginServer *m_server;
};
}

View file

@ -53,6 +53,10 @@ class NetworkPluginServer {
virtual ~NetworkPluginServer();
int getBackendCount() {
return m_clients.size();
}
void handleMessageReceived(NetworkConversation *conv, boost::shared_ptr<Swift::Message> &message);
private:

View file

@ -73,9 +73,9 @@ int main(int argc, char **argv)
}
logger.setUserManager(&userManager);
AdminInterface adminInterface(&transport, storageBackend);
NetworkPluginServer plugin(&transport, &config, &userManager);
AdminInterface adminInterface(&transport, &userManager, &plugin, storageBackend);
eventLoop.run();
}

View file

@ -24,6 +24,8 @@
#include "transport/storagebackend.h"
#include "transport/conversationmanager.h"
#include "transport/rostermanager.h"
#include "transport/usermanager.h"
#include "transport/networkpluginserver.h"
#include "storageresponder.h"
#include "log4cxx/logger.h"
@ -33,9 +35,11 @@ namespace Transport {
static LoggerPtr logger = Logger::getLogger("AdminInterface");
AdminInterface::AdminInterface(Component *component, StorageBackend *storageBackend) {
AdminInterface::AdminInterface(Component *component, UserManager *userManager, NetworkPluginServer *server, StorageBackend *storageBackend) {
m_component = component;
m_storageBackend = storageBackend;
m_userManager = userManager;
m_server = server;
m_component->getStanzaChannel()->onMessageReceived.connect(bind(&AdminInterface::handleMessageReceived, this, _1));
}
@ -57,7 +61,9 @@ void AdminInterface::handleMessageReceived(Swift::Message::ref message) {
message->setFrom(m_component->getJID());
if (message->getBody() == "status") {
message->setBody("Running");
int users = m_userManager->getUserCount();
int backends = m_server->getBackendCount() - 1;
message->setBody("Running (" + boost::lexical_cast<std::string>(users) + " users connected using " + boost::lexical_cast<std::string>(backends) + " backends)");
}
else {
message->setBody("Unknown command");