internal IntPtr AllocNativeInitParams(IntPtr aCallbackPtr)
{
IntPtr nativeParams = OhNetInitParamsCreate();
if (LogOutput != null)
{
OhNetInitParamsSetLogOutput(nativeParams, LogOutput.Callback, LogOutput.Handle());
}
if (FatalErrorHandler != null)
{
OhNetInitParamsSetFatalErrorHandler(nativeParams, FatalErrorHandler.Callback, FatalErrorHandler.Handle());
}
if (AsyncBeginHandler != null)
{
OhNetInitParamsSetAsyncBeginHandler(nativeParams, AsyncBeginHandler.Callback, AsyncBeginHandler.Handle());
}
if (AsyncEndHandler != null)
{
OhNetInitParamsSetAsyncEndHandler(nativeParams, AsyncEndHandler.Callback, AsyncEndHandler.Handle());
}
if (AsyncErrorHandler != null)
{
OhNetInitParamsSetAsyncErrorHandler(nativeParams, AsyncErrorHandler.Callback, AsyncErrorHandler.Handle());
}
if (SubnetListChangedListener != null)
{
OhNetInitParamsSetSubnetListChangedListener(nativeParams, SubnetListChangedListener.Callback, SubnetListChangedListener.Handle());
}
if (SubnetAddedListener != null)
{
OhNetInitParamsSetSubnetAddedListener(nativeParams, SubnetAddedListener.Callback, SubnetAddedListener.Handle());
}
if (SubnetRemovedListener != null)
{
OhNetInitParamsSetSubnetRemovedListener(nativeParams, SubnetRemovedListener.Callback, SubnetRemovedListener.Handle());
}
if (NetworkAdapterChangedListener != null)
{
OhNetInitParamsSetNetworkAdapterChangedListener(nativeParams, NetworkAdapterChangedListener.Callback, NetworkAdapterChangedListener.Handle());
}
OhNetInitParamsSetTcpConnectTimeout(nativeParams, TcpConnectTimeoutMs);
OhNetInitParamsSetMsearchTime(nativeParams, MsearchTimeSecs);
OhNetInitParamsSetMsearchTtl(nativeParams, MsearchTtl);
OhNetInitParamsSetNumEventSessionThreads(nativeParams, NumEventSessionThreads);
OhNetInitParamsSetNumXmlFetcherThreads(nativeParams, NumXmlFetcherThreads);
OhNetInitParamsSetNumActionInvokerThreads(nativeParams, NumActionInvokerThreads);
OhNetInitParamsSetNumInvocations(nativeParams, NumInvocations);
OhNetInitParamsSetNumSubscriberThreads(nativeParams, NumSubscriberThreads);
OhNetInitParamsSetSubscriptionDuration(nativeParams, SubscriptionDurationSecs);
OhNetInitParamsSetPendingSubscriptionTimeout(nativeParams, PendingSubscriptionTimeoutMs);
OhNetInitParamsSetDvMaxUpdateTime(nativeParams, DvMaxUpdateTimeSecs);
OhNetInitParamsSetDvNumServerThreads(nativeParams, DvNumServerThreads);
OhNetInitParamsSetDvNumPublisherThreads(nativeParams, DvNumPublisherThreads);
OhNetInitParamsSetDvNumWebSocketThreads(nativeParams, DvNumWebSocketThreads);
OhNetInitParamsSetCpUpnpEventServerPort(nativeParams, CpUpnpEventPort);
OhNetInitParamsSetDvUpnpServerPort(nativeParams, DvUpnpWebServerPort);
OhNetInitParamsSetDvWebSocketPort(nativeParams, DvWebSocketPort);
if (DvEnableBonjour)
{
IntPtr hostName = InteropUtils.StringToHGlobalUtf8(DvMdnsHostName);
OhNetInitParamsSetDvEnableBonjour(nativeParams, hostName);
Marshal.FreeHGlobal(hostName);
}
if (!String.IsNullOrEmpty(HttpUserAgent))
{
IntPtr userAgent = InteropUtils.StringToHGlobalUtf8(HttpUserAgent);
OhNetInitParamsSetHttpUserAgent(nativeParams, userAgent);
Marshal.FreeHGlobal(userAgent);
}
OhNetInitParamsSetHostUdpIsLowQuality(nativeParams, HostUdpIsLowQuality ? 1 : 0);
if (UseLoopbackNetworkAdapter)
{
OhNetInitParamsSetUseLoopbackNetworkAdapter(nativeParams);
}
if (IncludeLoopbackNetworkAdapter)
{
if (UseLoopbackNetworkAdapter)
{
System.Diagnostics.Debug.WriteLine("WARNING: IncludeLoopbackNetworkAdapter is incompatible with UseLoopbackNetworkAdapter. Ignoring UseLoopbackNetworkAdapter.");
}
OhNetInitParamsSetIncludeLoopbackNetworkAdapter(nativeParams);
}
return nativeParams;
}
internal static void FreeNativeInitParams(IntPtr aNativeInitParams)