DelegatedServer Class

Summary

Defines all of the properties needed to delegate a client's requests to another JPIP server.

Syntax
C#
VB
C++
public class DelegatedServer 
  
Public Class DelegatedServer  
public ref class DelegatedServer  

Remarks

You create an instance of this class with the properties you want and then you add it to the DelegatedServersCollection collection.

If multiple DelegatedServer are added into the DelegatedServersCollection collection the load is distributed based on a round-robin algorithm until each DelegatedServer receives its share.

Example
C#
VB
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.Jpip; 
using Leadtools.Jpip.Client.WinForms; 
using Leadtools.Jpip.Client.InteractiveDecoder; 
using Leadtools.Jpip.Server; 
using Leadtools.Jpip.Logging; 
 
private JpipServer _server; 
private const string LOCAL_IP_ADDRESS = "127.0.0.1"; 
private const int PORT_107 = 107; 
private string IMAGE_NAME = Path.Combine(LEAD_VARS.ImagesDir, "Earth8000_Precint_4_.j2k"); 
private string CACHE_DIRECTORY = Path.Combine(LEAD_VARS.ImagesDir, "jpeg2000"); 
 
public ServerDelegationExample() 
{ 
   _server = new JpipServer(); 
} 
 
public void SetServerDelegation() 
{ 
   Leadtools.Examples.Support.SetLicense(); 
   DelegatedServer delegatedServer1; 
   DelegatedServer delegatedServer2; 
   delegatedServer1 = new DelegatedServer("127.0.0.1", 108, 6); 
   delegatedServer2 = new DelegatedServer("127.0.0.1", 105, 3); 
   _server.Configuration.DelegateServers.Clear(); 
   _server.Configuration.DelegateServers.Add(delegatedServer1); 
   _server.Configuration.DelegateServers.Add(delegatedServer2); 
   Console.WriteLine("Server requests will be delegated to the following {0} servers:", 
                       _server.Configuration.DelegateServers.Count.ToString()); 
 
   foreach (DelegatedServer server in _server.Configuration.DelegateServers) 
   { 
      Console.WriteLine("Server: {0}:{1}", server.IpAddress, server.Port.ToString()); 
   } 
   _server.Start(); 
 
   /* client side */ 
   JpipRasterImageViewer jpipViewer = new JpipRasterImageViewer(); 
   jpipViewer.FileOpened += new EventHandler(jpipViewer_FileOpened); 
   SetViewer(jpipViewer); 
   jpipViewer.Open(IMAGE_NAME); 
} 
 
void jpipViewer_FileOpened(object sender, EventArgs e) 
{ 
   JpipRasterImageViewer jpipViewer = (JpipRasterImageViewer)sender; 
   jpipViewer.ZoomIn(); 
   jpipViewer.Close(); 
   _server.Stop(); 
 
} 
 
public void SetViewer(JpipRasterImageViewer viewer) 
{ 
   viewer.CacheDirectoryName = CACHE_DIRECTORY; 
   viewer.PortNumber = PORT_107; 
   viewer.IPAddress = LOCAL_IP_ADDRESS; 
   viewer.PacketSize = 16384; 
   viewer.ChannelType = JpipChannelTypes.HttpChannel; 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; 
} 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.Jpip 
Imports Leadtools.Jpip.Client.WinForms 
Imports Leadtools.Jpip.Client.InteractiveDecoder 
Imports Leadtools.Jpip.Server 
Imports Leadtools.Jpip.Logging 
 
<TestClass()> 
Public Class ServerDelegationExample 
   Private _server As JpipServer 
   Private Const LOCAL_IP_ADDRESS As String = "127.0.0.1" 
   Private Const PORT_107 As Integer = 107 
   Private IMAGE_NAME As String = Path.Combine(LEAD_VARS.ImagesDir, "Earth8000_Precint_4_.j2k") 
   Private CACHE_DIRECTORY As String = Path.Combine(LEAD_VARS.ImagesDir, "jpeg2000") 
 
   Public Sub New() 
      _server = New JpipServer() 
   End Sub 
 
      Public Sub SetServerDelegation() 
      Leadtools.Examples.Support.SetLicense() 
 
      Dim delegatedServer1 As DelegatedServer 
      Dim delegatedServer2 As DelegatedServer 
 
 
      delegatedServer1 = New DelegatedServer("127.0.0.1", 108, 6) 
      delegatedServer2 = New DelegatedServer("127.0.0.1", 105, 3) 
 
      _server.Configuration.DelegateServers.Clear() 
      _server.Configuration.DelegateServers.Add(delegatedServer1) 
      _server.Configuration.DelegateServers.Add(delegatedServer2) 
 
      Console.WriteLine("Server requests will be delegated to the following {0} servers:", _server.Configuration.DelegateServers.Count.ToString()) 
 
      For Each server As DelegatedServer In _server.Configuration.DelegateServers 
         Console.WriteLine("Server: {0}:{1}", server.IpAddress, server.Port.ToString()) 
      Next server 
 
      _server.Start() 
 
      ' client side  
      Dim jpipViewer As JpipRasterImageViewer = New JpipRasterImageViewer() 
      SetViewer(jpipViewer) 
      AddHandler jpipViewer.FileOpened, AddressOf jpipViewer_FileOpened 
      jpipViewer.Open(IMAGE_NAME) 
   End Sub 
   Private Sub jpipViewer_FileOpened(ByVal sender As Object, ByVal e As EventArgs) 
      Dim jpipViewer As JpipRasterImageViewer = DirectCast(sender, JpipRasterImageViewer) 
      jpipViewer.ZoomIn() 
      jpipViewer.Close() 
 
      _server.Stop() 
 
 
   End Sub 
 
   Public Sub SetViewer(ByVal viewer As JpipRasterImageViewer) 
      viewer.CacheDirectoryName = CACHE_DIRECTORY 
      viewer.PortNumber = PORT_107 
      viewer.IPAddress = LOCAL_IP_ADDRESS 
      viewer.PacketSize = 16384 
      viewer.ChannelType = JpipChannelTypes.HttpChannel 
   End Sub 
 
End Class 
 
Public NotInheritable Class LEAD_VARS 
   Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" 
End Class 

Requirements

Target Platforms

Help Version 20.0.2020.3.31
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2020 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Jpip.Server Assembly