net_server: Clients can now check if a service is running.
* Using the new kMsgIsServiceRunning command.
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2006-2010, Haiku, Inc. All Rights Reserved.
|
* Copyright 2006-2015, Haiku, Inc. All Rights Reserved.
|
||||||
* Distributed under the terms of the MIT License.
|
* Distributed under the terms of the MIT License.
|
||||||
*
|
*
|
||||||
* Authors:
|
* Authors:
|
||||||
@@ -20,6 +20,7 @@
|
|||||||
#define kMsgJoinNetwork 'JNnw'
|
#define kMsgJoinNetwork 'JNnw'
|
||||||
#define kMsgLeaveNetwork 'LVnw'
|
#define kMsgLeaveNetwork 'LVnw'
|
||||||
#define kMsgAutoJoinNetwork 'AJnw'
|
#define kMsgAutoJoinNetwork 'AJnw'
|
||||||
|
#define kMsgIsServiceRunning 'IRsv'
|
||||||
|
|
||||||
|
|
||||||
#endif // _NET_SERVER_H
|
#endif // _NET_SERVER_H
|
||||||
|
|||||||
@@ -304,6 +304,15 @@ NetServer::MessageReceived(BMessage* message)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case kMsgIsServiceRunning:
|
||||||
|
{
|
||||||
|
// Forward the message to the handler that can answer it
|
||||||
|
BHandler* handler = fServices.Target(NULL);
|
||||||
|
if (handler != NULL)
|
||||||
|
handler->MessageReceived(message);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
BApplication::MessageReceived(message);
|
BApplication::MessageReceived(message);
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -22,6 +22,8 @@
|
|||||||
#include <NetworkAddress.h>
|
#include <NetworkAddress.h>
|
||||||
#include <NetworkSettings.h>
|
#include <NetworkSettings.h>
|
||||||
|
|
||||||
|
#include <NetServer.h>
|
||||||
|
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace BNetworkKit;
|
using namespace BNetworkKit;
|
||||||
@@ -196,6 +198,19 @@ Services::MessageReceived(BMessage* message)
|
|||||||
_Update(*message);
|
_Update(*message);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case kMsgIsServiceRunning:
|
||||||
|
{
|
||||||
|
const char* name = message->GetString("name");
|
||||||
|
if (name == NULL)
|
||||||
|
break;
|
||||||
|
|
||||||
|
BMessage reply(B_REPLY);
|
||||||
|
reply.AddString("name", name);
|
||||||
|
reply.AddBool("running", fNameMap.find(name) != fNameMap.end());
|
||||||
|
message->SendReply(&reply);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
BHandler::MessageReceived(message);
|
BHandler::MessageReceived(message);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user