本文整理汇总了C++中BNetworkInterface::Flags方法的典型用法代码示例。如果您正苦于以下问题:C++ BNetworkInterface::Flags方法的具体用法?C++ BNetworkInterface::Flags怎么用?C++ BNetworkInterface::Flags使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BNetworkInterface
的用法示例。
在下文中一共展示了BNetworkInterface::Flags方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: if
int32
NetworkStatusView::_DetermineInterfaceStatus(
const BNetworkInterface& interface)
{
uint32 flags = interface.Flags();
int32 status = kStatusNoLink;
// TODO: no kStatusLinkNoConfig yet
if (flags & IFF_CONFIGURING)
status = kStatusConnecting;
else if ((flags & (IFF_UP | IFF_LINK)) == (IFF_UP | IFF_LINK))
status = kStatusReady;
return status;
}
示例2: InterfaceListItem
void
NetworkWindow::_ScanInterfaces()
{
// Try existing devices first
BNetworkRoster& roster = BNetworkRoster::Default();
BNetworkInterface interface;
uint32 cookie = 0;
while (roster.GetNextInterface(&cookie, interface) == B_OK) {
if ((interface.Flags() & IFF_LOOPBACK) != 0)
continue;
InterfaceListItem* item = new InterfaceListItem(interface.Name());
item->SetExpanded(true);
fInterfaceItemMap.insert(std::pair<BString, InterfaceListItem*>(
BString(interface.Name()), item));
fListView->AddItem(item);
}
// TODO: Then consider those from the settings (for example, for USB)
}
示例3: notification
void
NetworkStatusView::_Update(bool force)
{
BNetworkRoster& roster = BNetworkRoster::Default();
BNetworkInterface interface;
uint32 cookie = 0;
while (roster.GetNextInterface(&cookie, interface) == B_OK) {
if ((interface.Flags() & IFF_LOOPBACK) == 0) {
int32 oldStatus = kStatusUnknown;
if (fInterfaceStatuses.find(interface.Name())
!= fInterfaceStatuses.end()) {
oldStatus = fInterfaceStatuses[interface.Name()];
}
int32 status = _DetermineInterfaceStatus(interface);
if (oldStatus != status) {
BNotification notification(B_INFORMATION_NOTIFICATION);
notification.SetGroup(B_TRANSLATE("Network Status"));
notification.SetTitle(interface.Name());
notification.SetMessageID(interface.Name());
notification.SetIcon(fNotifyIcons[status]);
if (status == kStatusConnecting
|| (status == kStatusReady
&& oldStatus == kStatusConnecting)
|| (status == kStatusNoLink
&& oldStatus == kStatusReady)
|| (status == kStatusNoLink
&& oldStatus == kStatusConnecting)) {
// A significant state change, raise notification.
notification.SetContent(kStatusDescriptions[status]);
notification.Send();
}
Invalidate();
}
fInterfaceStatuses[interface.Name()] = status;
}
}
}