mirror of
https://github.com/ZuneDev/Xune.git
synced 2026-07-27 13:13:10 -07:00
Added raw UIX.RenderApi project
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: Microsoft.Iris.Render.Protocol.RemoteChannel
|
||||
// Assembly: UIX.RenderApi, Version=4.8.0.0, Culture=neutral, PublicKeyToken=ddd0da4d3e678217
|
||||
// MVID: D47658B8-A8EA-43D6-8837-ECE823BFFFC1
|
||||
// Assembly location: C:\Program Files\Zune\UIX.RenderApi.dll
|
||||
|
||||
using Microsoft.Iris.Render.Common;
|
||||
using System;
|
||||
|
||||
namespace Microsoft.Iris.Render.Protocol
|
||||
{
|
||||
internal class RemoteChannel : RenderObject, IChannel
|
||||
{
|
||||
private string m_sessionName;
|
||||
private TransportProtocol m_protocol;
|
||||
private IntPtr m_pSendStream;
|
||||
private IntPtr m_pReceiveStream;
|
||||
private IntPtr m_pSession;
|
||||
|
||||
public RemoteChannel(RemoteConnectionInfo connectionInfo)
|
||||
{
|
||||
this.m_sessionName = connectionInfo.SessionName;
|
||||
this.m_protocol = connectionInfo.TransportProtocol;
|
||||
EngineApi.IFC(EngineApi.SpRemoteCreateServerStreams(this.m_sessionName, this.m_protocol, out this.m_pSendStream, out this.m_pReceiveStream));
|
||||
}
|
||||
|
||||
protected override void Dispose(bool inDispose)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (!(this.m_pSession != IntPtr.Zero))
|
||||
return;
|
||||
EngineApi.IFC(EngineApi.SpRemoteServerUninit(this.m_pSession, true, out ShutdownReason _));
|
||||
this.m_pSession = IntPtr.Zero;
|
||||
}
|
||||
finally
|
||||
{
|
||||
base.Dispose(inDispose);
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsConnected => this.m_pSession != IntPtr.Zero;
|
||||
|
||||
public void Connect(
|
||||
ContextID idRemoteContext,
|
||||
RENDERHANDLE hBrokerClass,
|
||||
MessageCookieLayout layout)
|
||||
{
|
||||
EngineApi.IFC(EngineApi.SpRemoteWaitServerStreamsConnected(this.m_protocol, this.m_pSendStream, this.m_pReceiveStream));
|
||||
EngineApi.IFC(EngineApi.SpRemoteServerInit(this.m_pSendStream, this.m_pReceiveStream, new EngineApi.InitArgs(layout, idRemoteContext)
|
||||
{
|
||||
idObjectBrokerClass = hBrokerClass
|
||||
}, out this.m_pSession));
|
||||
EngineApi.SpObjectRelease(this.m_pSendStream);
|
||||
EngineApi.SpObjectRelease(this.m_pReceiveStream);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user