home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 2005 June (DVD) / DPPRO0605DVD.iso / dotNETSDK / SETUP.EXE / netfxsd1.cab / FL_CAOLibrary_vb________.3643236F_FC70_11D3_A536_0090278A1BB8 < prev    next >
Encoding:
Text File  |  2001-08-21  |  2.4 KB  |  75 lines

  1. 
  2. Imports System
  3. Imports System.Runtime.Remoting
  4.  
  5.  
  6. Namespace CAOLibrary
  7.     
  8.     ' Counter is a Client Activated Object that:
  9.     ' * Is exported in the remoting configuration file
  10.     ' * Has a Constructor with parameters
  11.     ' * Has a public Property that can set and get
  12.     ' * has fields in which state is stored between calls
  13.     ' * Has methods that can be called to change the state
  14.     ' * Has overloaded methods
  15.     ' * The above elements of the CAO are remoted over SOAP
  16.     Public Class Counter
  17.         Inherits MarshalByRefObject
  18.         Public name As String = ""
  19.         Private totalNumberField As Integer = 0
  20.         
  21.         
  22.         Public Sub New(_name As String)
  23.             Console.WriteLine("Zap({0})", _name)
  24.             name = _name
  25.         End Sub 'New
  26.         
  27.         ' public property
  28.         Public Property TotalNumber() As Integer
  29.             Get
  30.                 Console.WriteLine("TotalNumber: {0}", totalNumberField)
  31.                 Return totalNumberField
  32.             End Get
  33.             
  34.             Set
  35.                 SyncLock Me
  36.                     totalNumberField = value
  37.                     Console.WriteLine("TotalNumber: {0}", totalNumberField)
  38.                 End SyncLock
  39.             End Set
  40.         End Property
  41.         
  42.         
  43.         ' Changes the in memory state
  44.         Public Function DoWorkWithNumber(number As Integer) As Boolean
  45.             SyncLock Me
  46.                 Console.WriteLine("Change: {0}", number)
  47.                 totalNumberField += number
  48.                 Console.WriteLine("Total:  {0}", totalNumberField)
  49.             End SyncLock
  50.             
  51.             Return True
  52.         End Function 'DoWorkWithNumber
  53.         
  54.         
  55.         Public Function DoWorkWithNumbers(numbers() As Integer) As Boolean
  56.             Dim num As Integer
  57.             For Each num In  numbers
  58.                 DoWorkWithNumber(num)
  59.             Next num
  60.             
  61.             Return True
  62.         End Function 'DoWorkWithNumbers
  63.         
  64.         
  65.         Public Function DoWorkWithNumbers(numbers() As [String]) As Boolean
  66.             Dim str As [String]
  67.             For Each str In  numbers
  68.                 Dim num As Integer = Convert.ToInt32(str)
  69.                 DoWorkWithNumber(num)
  70.             Next str
  71.             
  72.             Return True
  73.         End Function 'DoWorkWithNumbers
  74.     End Class 'Counter 
  75. End Namespace 'CAOLibrary