Imports System.Runtime.CompilerServices Imports Microsoft.VisualBasic.CommandLine Imports Microsoft.VisualBasic.ComputingServices.ComponentModel Imports Microsoft.VisualBasic.Net Imports Microsoft.VisualBasic.Net.Abstract Imports Microsoft.VisualBasic.Net.Protocols Imports Microsoft.VisualBasic.Net.Protocols.Reflection Namespace TaskHost ''' ''' 分布式计算之中的远端调用的堆栈协议 ''' Public Module Protocols ''' ''' Task remotes protocols ''' Public Enum TaskProtocols As Long ''' ''' Free a object pointer on the remote machine.(释放掉某一个资源) ''' Free = -1000L #Region "Task" ''' ''' Invoke a function remotely ''' Invoke = 0L ''' ''' Invoke a function as a linq data source. ''' InvokeLinq ''' ''' Gets the portal of the remote FileSystem ''' RemoteFileSystem #End Region #Region "LINQ supports" ''' ''' Linq data source move next ''' MoveNext ''' ''' Resets the iterator of the remote linq source ''' Reset ''' ''' The remote linq source reads done! Exit the iterator function. ''' ReadsDone = -1000L #End Region End Enum Public ReadOnly Property ProtocolEntry As Long = New Protocol(GetType(TaskProtocols)).EntryPoint ''' ''' Resets remote data source by ''' ''' Public Function LinqReset() As RequestStream Return New RequestStream(ProtocolEntry, TaskProtocols.Reset) End Function Public Function GetPortal(Of Tsvr As IServicesSocket)(master As IMasterBase(Of Tsvr)) As IPEndPoint Dim ip As String = If(EnvironmentLocal, AsynInvoke.LocalIPAddress, GetMyIPAddress()) Dim port As Integer = master.__host.LocalPort Return New IPEndPoint(ip, port) End Function Public Function Shell(exe As String, args As String) As Integer Dim proc As New IORedirect(exe, args) Return proc.Run End Function End Module End Namespace