6 Appendix A: Full Definitions

For ease of implementation, the complete definitions of Remoting Types and Server Interfaces are provided below.

The following Primitive Types are defined in [MS-NRTP] section 2.2.5:

  • Int32

  • String

  • TimeSpan

The remainder of this appendix lists the definitions of the elements that constitute the .NET Remoting: Lifetime Services Extension.

 namespace System.Collections
 {
   class ArrayList
   {
     System.Object[]  _items;
     Int32            _size;
     Int32            _version;
   }   
 }
  
 namespace System.Runtime.Remoting.Lifetime
 {
   interface ILease
   {
     TimeSpan Renew(TimeSpan renewalTime);
     void     Register(System.Runtime.Remoting.ISponsor sponsor);
     void     Register(System.Runtime.Remoting.ISponsor sponsor, 
                       TimeSpan renewalTime);
     void     Unregister(System.Runtime.Remoting.ISponsor sponsor);
     TimeSpan get_InitialLeaseTime();
     void     set_InitialLeaseTime(TimeSpan value);
     TimeSpan get_RenewOnCallTime();
     void     set_RenewOnCallTime(TimeSpan value);
     TimeSpan get_SponsorshipTimeout();
     void     set_SponsorshipTimeout(System.Timespan value);
     TimeSpan get_CurrentLeaseTime();
     System.Runtime.Remoting.LeaseState get_CurrentState();
   }
  
   interface ISponsor
   {
     TimeSpan Renewal();
   }
  
   enum LeaseState : Int32
   {
     Null     = 0,
     Initial  = 1,
     Active   = 2,
     Renewing = 3,
     Expired  = 4
   }
 }
  
 namespace System.Runtime.Remoting.Messaging
 {
   class ConstructionCall
   {
     String                        __Uri;
     String                        __MethodName;
     System.Type[]                 __MethodSignature;
     String                        __TypeName;
     System.Object[]               __Args;
     System.Object                 __CallContext;
     System.Type                   __ActivationType;
     System.Object                 __Activator;
     String                        __ActivationTypeName;
     System.Collections.ArrayList  __ContextProperties;
     System.Object[]               __CallSiteActivationAttributes;
   }
  
   class ConstructionResponse
   {
     String                        __Uri;
     String                        __MethodName;
     String                        __TypeName;
     System.Object                 __Return;
     System.Object[]               __OutArgs;
     System.Object                 __CallContext;
   }
 }   
  
 namespace System.Runtime.Remoting.Activation
 {
   interface IActivator
   {
     System.Runtime.Remoting.Messaging.ConstructionResponse 
       Activate(
         System.Runtime.Remoting.Messaging.ConstructionCall callMessage);
   }
 }
  
 namespace System
 {
   interface MarshalByRefObject
   {
     System.Runtime.Remoting.ILease GetLifetimeService();
   }
  
   interface Object
   {
     void FieldGetter(String typeName, String fieldName, ref System.Object val);
     void FieldSetter(String typeName, String fieldName, System.Object val);
   }
 }