public PeerId[] GetConnectedPeers()
            {
#if !UNITY_EDITOR || UNITY_EDITOR_OSX || UNITY_EDITOR_OVERRIDE
                IntPtr nativePeersArrayPtr = IntPtr.Zero;
                try {
                    int    nativePeerCount;
                    IntPtr error;
                    bool   success =
                        NativeMethods.UMCMediatorFacade.GetConnectedPeers(
                            -1,
                            out nativePeersArrayPtr,
                            out nativePeerCount,
                            out error);
                    AssertNativeError(success, error);

                    if (nativePeerCount == 0)
                    {
                        return(kEmptyPeerIdArray);
                    }

                    PeerId[] peers = MarshalUtility.MarshalNativeArray(nativePeersArrayPtr, nativePeerCount, ptr => new PeerId(ptr));
                    return(peers);
                } finally {
                    NativeMethods.free(nativePeersArrayPtr);
                }
#else
                return(kEmptyPeerIdArray);
#endif
            }
            public int GetConnectedPeers(PeerId[] results)
            {
                if (results == null)
                {
                    throw new ArgumentNullException("results");
                }

#if !UNITY_EDITOR || UNITY_EDITOR_OSX || UNITY_EDITOR_OVERRIDE
                IntPtr nativePeersArrayPtr = IntPtr.Zero;
                try {
                    int    nativePeerCount;
                    IntPtr error;
                    bool   success =
                        NativeMethods.UMCMediatorFacade.GetConnectedPeers(
                            results.Length,
                            out nativePeersArrayPtr,
                            out nativePeerCount,
                            out error);
                    AssertNativeError(success, error);

                    if (nativePeerCount == 0)
                    {
                        return(0);
                    }

                    MarshalUtility.MarshalNativeArray(nativePeersArrayPtr, nativePeerCount, results, ptr => new PeerId(ptr));
                    return(nativePeerCount);
                } finally {
                    NativeMethods.free(nativePeersArrayPtr);
                }
#else
                return(0);
#endif
            }