BNetworkSettings: added const, server IsRunning() method.
* Get{Interface|Network|Service}() methods are now const.
* Added variants of Interface(), and Service() that are const.
* Added new BNetworkServiceSettings::IsRunning() convenience method that
reflects the status quo rather than the settings.
This commit is contained in:
@@ -38,28 +38,33 @@ public:
|
||||
status_t GetNextInterface(uint32& cookie,
|
||||
BMessage& interface);
|
||||
status_t GetInterface(const char* name,
|
||||
BMessage& interface);
|
||||
BMessage& interface) const;
|
||||
status_t AddInterface(const BMessage& interface);
|
||||
status_t RemoveInterface(const char* name);
|
||||
BNetworkInterfaceSettings
|
||||
Interface(const char* name);
|
||||
const BNetworkInterfaceSettings
|
||||
Interface(const char* name) const;
|
||||
|
||||
int32 CountNetworks() const;
|
||||
status_t GetNextNetwork(uint32& cookie,
|
||||
BMessage& network) const;
|
||||
status_t GetNetwork(const char* name,
|
||||
BMessage& network);
|
||||
BMessage& network) const;
|
||||
status_t AddNetwork(const BMessage& network);
|
||||
status_t RemoveNetwork(const char* name);
|
||||
|
||||
const BMessage& Services() const;
|
||||
status_t GetNextService(uint32& cookie,
|
||||
BMessage& service);
|
||||
status_t GetService(const char* name, BMessage& service);
|
||||
status_t GetService(const char* name,
|
||||
BMessage& service) const;
|
||||
status_t AddService(const BMessage& service);
|
||||
status_t RemoveService(const char* name);
|
||||
BNetworkServiceSettings
|
||||
Service(const char* name);
|
||||
const BNetworkServiceSettings
|
||||
Service(const char* name) const;
|
||||
|
||||
status_t StartMonitoring(const BMessenger& target);
|
||||
status_t StopMonitoring(const BMessenger& target);
|
||||
@@ -84,10 +89,10 @@ private:
|
||||
status_t _ConvertNetworkToSettings(BMessage& message);
|
||||
status_t _ConvertNetworkFromSettings(BMessage& message);
|
||||
|
||||
status_t _GetItem(BMessage& container,
|
||||
status_t _GetItem(const BMessage& container,
|
||||
const char* itemField,
|
||||
const char* nameField, const char* name,
|
||||
int32& _index, BMessage& item);
|
||||
int32& _index, BMessage& item) const;
|
||||
status_t _RemoveItem(BMessage& container,
|
||||
const char* itemField,
|
||||
const char* nameField, const char* name,
|
||||
@@ -262,6 +267,8 @@ public:
|
||||
BNetworkServiceAddressSettings& address);
|
||||
void RemoveAddress(int32 index);
|
||||
|
||||
bool IsRunning() const;
|
||||
|
||||
status_t GetMessage(BMessage& data) const;
|
||||
|
||||
private:
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
#include <String.h>
|
||||
|
||||
#include <DriverSettingsMessageAdapter.h>
|
||||
#include <NetServer.h>
|
||||
|
||||
|
||||
using namespace BNetworkKit;
|
||||
@@ -318,7 +319,7 @@ BNetworkSettings::GetNextInterface(uint32& cookie, BMessage& interface)
|
||||
|
||||
|
||||
status_t
|
||||
BNetworkSettings::GetInterface(const char* name, BMessage& interface)
|
||||
BNetworkSettings::GetInterface(const char* name, BMessage& interface) const
|
||||
{
|
||||
int32 index;
|
||||
return _GetItem(fInterfaces, "interface", "device", name, index, interface);
|
||||
@@ -359,6 +360,15 @@ BNetworkSettings::Interface(const char* name)
|
||||
}
|
||||
|
||||
|
||||
const BNetworkInterfaceSettings
|
||||
BNetworkSettings::Interface(const char* name) const
|
||||
{
|
||||
BMessage interface;
|
||||
GetInterface(name, interface);
|
||||
return BNetworkInterfaceSettings(interface);
|
||||
}
|
||||
|
||||
|
||||
int32
|
||||
BNetworkSettings::CountNetworks() const
|
||||
{
|
||||
@@ -383,7 +393,7 @@ BNetworkSettings::GetNextNetwork(uint32& cookie, BMessage& network) const
|
||||
|
||||
|
||||
status_t
|
||||
BNetworkSettings::GetNetwork(const char* name, BMessage& network)
|
||||
BNetworkSettings::GetNetwork(const char* name, BMessage& network) const
|
||||
{
|
||||
int32 index;
|
||||
return _GetItem(fNetworks, "network", "name", name, index, network);
|
||||
@@ -435,7 +445,7 @@ BNetworkSettings::GetNextService(uint32& cookie, BMessage& service)
|
||||
|
||||
|
||||
status_t
|
||||
BNetworkSettings::GetService(const char* name, BMessage& service)
|
||||
BNetworkSettings::GetService(const char* name, BMessage& service) const
|
||||
{
|
||||
int32 index;
|
||||
return _GetItem(fServices, "service", "name", name, index, service);
|
||||
@@ -476,6 +486,15 @@ BNetworkSettings::Service(const char* name)
|
||||
}
|
||||
|
||||
|
||||
const BNetworkServiceSettings
|
||||
BNetworkSettings::Service(const char* name) const
|
||||
{
|
||||
BMessage service;
|
||||
GetService(name, service);
|
||||
return BNetworkServiceSettings(service);
|
||||
}
|
||||
|
||||
|
||||
status_t
|
||||
BNetworkSettings::StartMonitoring(const BMessenger& target)
|
||||
{
|
||||
@@ -835,8 +854,9 @@ BNetworkSettings::_ConvertNetworkFromSettings(BMessage& message)
|
||||
|
||||
|
||||
status_t
|
||||
BNetworkSettings::_GetItem(BMessage& container, const char* itemField,
|
||||
const char* nameField, const char* name, int32& _index, BMessage& item)
|
||||
BNetworkSettings::_GetItem(const BMessage& container, const char* itemField,
|
||||
const char* nameField, const char* name, int32& _index,
|
||||
BMessage& item) const
|
||||
{
|
||||
int32 index = 0;
|
||||
while (container.FindMessage(itemField, index, &item) == B_OK) {
|
||||
@@ -1662,6 +1682,25 @@ BNetworkServiceSettings::RemoveAddress(int32 index)
|
||||
}
|
||||
|
||||
|
||||
/*! This is a convenience method that returns the current state of the
|
||||
service, independent of the current settings.
|
||||
*/
|
||||
bool
|
||||
BNetworkServiceSettings::IsRunning() const
|
||||
{
|
||||
BMessage request(kMsgIsServiceRunning);
|
||||
request.AddString("name", fName);
|
||||
|
||||
BMessenger networkServer(kNetServerSignature);
|
||||
BMessage reply;
|
||||
status_t status = networkServer.SendMessage(&request, &reply);
|
||||
if (status == B_OK)
|
||||
return reply.GetBool("running");
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
status_t
|
||||
BNetworkServiceSettings::GetMessage(BMessage& data) const
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user