static void disabledEvent(NanError error);
static void macAddressChangedEvent(unsigned char *mac);
- static void macAddressChangedEvent(const std::string &clientPath,
- unsigned char *mac);
static void serviceDiscoveredEvent(const std::string &clientPath,
uint16_t subscribeId, uint32_t peerId, const uint8_t *mac,
const uint8_t *specificInfo, uint16_t specificInfoLen, int distance);
uint32_t *dataPathIds;
};
-class NanMacAddressChangedEvent
-{
-public:
- uint8_t addr[NAN_MAC_ADDR_LEN];
-};
-
NAN_NAMESPACE_END
std::function<void(uint16_t, NanError)> on_notify_publish_terminated_event;
std::function<void(uint16_t, NanError)> on_notify_subscribe_terminated_event;
- std::function<void(unsigned char *)> on_notify_mac_address_changed_event;
};
NAN_NAMESPACE_END
void NanDbusHandler::macAddressChangedEvent(unsigned char *mac)
{
- NAN_LOGD("Broadcast MacAddressChanged Event");
nan_dbus_discovery_emit_mac_address_changed(
NanDbusManager::getDbusDiscoveryHandle(),
(const gchar*)mac);
}
-void NanDbusHandler::macAddressChangedEvent(const std::string &clientPath,
- unsigned char *mac)
-{
- NAN_LOGD("Unicast MacAddressChanged Event to %s", clientPath.c_str());
- GVariant *params = g_variant_new("s", (const gchar *)mac);
- emitUnicastEvent(clientPath.c_str(), "MacAddressChanged", params);
-}
-
void NanDbusHandler::emitUnicastEvent(const char *clientPath,
const char *eventName, GVariant *parameters)
{
std::function<void(const NanDataPathEndEvent&)> on_notify_data_path_end_event;
std::function<void(uint16_t, NanError)> on_notify_publish_terminated_event;
std::function<void(uint16_t, NanError)> on_notify_subscribe_terminated_event;
-std::function<void(uint8_t *)> on_notify_mac_address_changed_event;
typedef enum {
NAN_EVENT_PUBLISH_TERMINATED,
NAN_EVENT_DATA_PATH_CONFIRMED,
NAN_EVENT_DATA_PATH_END,
NAN_EVENT_DISABLED,
- NAN_EVENT_MAC_ADDRESS_CHANGED,
} NanEventType;
__NAN_LOG_FUNC_EXIT__;
}
-void raiseMacAddressChangedEvent(uint8_t *addr)
-{
- __NAN_LOG_FUNC_ENTER__;
- if (!on_notify_mac_address_changed_event) {
- NAN_LOGE("on_notify_mac_address_changed_event doesn't exist");
- return;
- }
-
- NAN_LOGI("NMI is changed: %02x:%02x:%02x:%02x:%02x:%02x",
- addr[0], addr[1], addr[2], addr[3], addr[4], addr[5]);
-
- on_notify_mac_address_changed_event(addr);
-
- __NAN_LOG_FUNC_EXIT__;
-}
-
gboolean handleEvent(gpointer event)
{
__NAN_LOG_FUNC_ENTER__;
raiseDataPathEndEvent((NanDataPathEndInd *) eventData->data);
delete (NanDataPathEndInd *)eventData->data;
break;
- case NAN_EVENT_MAC_ADDRESS_CHANGED:
- raiseMacAddressChangedEvent((uint8_t *) eventData->data);
- delete [] (uint8_t *)eventData->data;
default:
NAN_LOGI("Unhandled Event.");
break;
__NAN_LOG_FUNC_EXIT__;
}
-void onEventMacAddress(NanDiscEngEventInd *event)
+void onEventDiscEngEvent(NanDiscEngEventInd *event)
{
__NAN_LOG_FUNC_ENTER__;
- uint8_t *addr = new uint8_t[NAN_MAC_ADDR_LEN];
- memcpy(addr, event->data.mac_addr.addr, NAN_MAC_ADDR_LEN);
- attachEventSource(NAN_EVENT_MAC_ADDRESS_CHANGED, (void *)addr);
__NAN_LOG_FUNC_EXIT__;
}
-void onEventDiscEngEvent(NanDiscEngEventInd *event)
-{
- //__NAN_LOG_FUNC_ENTER__;
- switch (event->event_type) {
- case NAN_EVENT_ID_DISC_MAC_ADDR:
- onEventMacAddress(event);
- break;
- case NAN_EVENT_ID_STARTED_CLUSTER:
- case NAN_EVENT_ID_JOINED_CLUSTER:
- default:
- break;
- }
- //__NAN_LOG_FUNC_EXIT__;
-}
-
void onEventDisabled(NanDisabledInd *event)
{
__NAN_LOG_FUNC_ENTER__;
receiveSessionTerminatedEvent(subscribeId, error);
};
- callbacks.on_notify_mac_address_changed_event
- = [=](unsigned char *addr) {
- receiveMacAddressChangedEvent(addr);
- };
-
mHal->registerCallbackHandler(callbacks);
}
case NAN_ERROR_NONE:
setEnabled(true);
createAllNanInterfaces(true);
+ // TODO: NMI information
+ // NanDbusHandler::macAddressChangedEvent
break;
case NAN_ERROR_ALREADY_ENABLED:
NAN_LOGD("Already Enabled");
mClientManager.removeClient(mCurrentCommand->getClientId());
}
- NanClient *client = mClientManager.getClient(mCurrentCommand->getClientId());
- if (client != nullptr && error == NAN_ERROR_NONE)
- NanDbusHandler::macAddressChangedEvent(client->getClientPath(), mDiscoveryMacAddress);
-
mCurrentCommand->response(error);
deleteCurrentCommand();