private OCStackApplicationResult OnDiscover(IntPtr context, IntPtr handle, OCClientResponse clientResponse) { if (clientResponse == null) { return(OCStackApplicationResult.OC_STACK_DELETE_TRANSACTION); } var response = new ClientResponse <Payload>(clientResponse); if (response.Payload != null) { if (response.Payload is DiscoveryPayload) { var dpayload = (DiscoveryPayload)response.Payload; var addr = response.DeviceAddress; // new DeviceAddress(clientResponse.devAddr); foreach (var item in dpayload.Resources) { string key = $"{addr.Address}:{addr.Port}{item.Uri}"; if (!discoveredResources.ContainsKey(key)) { discoveredResources[key] = DateTimeOffset.UtcNow; ResourceDiscovered?.Invoke(this, new ResourceDiscoveredEventArgs(addr, item)); } } } } return(OCStackApplicationResult.OC_STACK_KEEP_TRANSACTION); }
private OCStackApplicationResult OnDiscover(IntPtr context, IntPtr handle, OCClientResponse clientResponse) { if (clientResponse == null) { return(OCStackApplicationResult.OC_STACK_DELETE_TRANSACTION); } ResourceDiscovered?.Invoke(this, new ClientResponseEventArgs <OC.DiscoveryPayload>(clientResponse, handle)); return(OCStackApplicationResult.OC_STACK_KEEP_TRANSACTION); }