| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- //
- // MonoTests.Remoting.ServerObject.cs
- //
- // Author: Lluis Sanchez Gual ([email protected])
- //
- // 2003 (C) Copyright, Ximian, Inc.
- //
- using System;
- using System.Runtime.Remoting;
- using System.Runtime.Remoting.Lifetime;
- using System.Collections;
- using NUnit.Framework;
- namespace MonoTests.Remoting
- {
- // A list of ServerObject instances
- [ContextHook("x", false)]
- public class ServerList:
- ContextBoundObject,
- IDisposable
- {
- ArrayList values = new ArrayList();
- public int NumVal = 0;
- public string StrVal = "val";
- public ServerList()
- {
- Assert.IsTrue (RemotingServices.IsTransparentProxy(this));
- CallSeq.Add ("List created");
- }
- public void Dispose()
- {
- Assert.IsTrue (RemotingServices.IsTransparentProxy(this));
- CallSeq.Add ("List disposed");
- }
- public void Add (ServerObject v)
- {
- Assert.IsTrue (RemotingServices.IsTransparentProxy(this));
- values.Add (v);
- CallSeq.Add ("Added " + v.Name);
- }
- public void ProcessItems ()
- {
- Assert.IsTrue (RemotingServices.IsTransparentProxy(this));
- CallSeq.Add ("Processing");
- int total = 0;
- foreach (ServerObject ob in values)
- total += ob.GetValue();
- CallSeq.Add ("Total: " + total);
- }
- public void Clear()
- {
- Assert.IsTrue (RemotingServices.IsTransparentProxy(this));
- CallSeq.Add ("Clearing");
- values.Clear();
- }
- public void ParameterTest1 (int a, out string b)
- {
- Assert.IsTrue (RemotingServices.IsTransparentProxy(this));
- b = "adeu " + a;
- }
-
- public void ParameterTest2 (int a, out int b)
- {
- Assert.IsTrue (RemotingServices.IsTransparentProxy(this));
- b = a+1;
- }
-
- public ServerObject NewItem(string name)
- {
- Assert.IsTrue (RemotingServices.IsTransparentProxy(this));
- ServerObject obj = new ServerObject(name);
- Add (obj);
- return obj;
- }
- public ServerObject CreateItem(string name, int val)
- {
- Assert.IsTrue (RemotingServices.IsTransparentProxy(this));
- ServerObject obj = new ServerObject(name);
- obj.SetValue (val);
- return obj;
- }
- public ComplexData SetComplexData (ComplexData data)
- {
- Assert.IsTrue (RemotingServices.IsTransparentProxy(this));
- CallSeq.Add ("Showing content of ComplexData");
- data.Dump ();
- return data;
- }
- public override ObjRef CreateObjRef (Type type)
- {
- Assert.IsTrue (RemotingServices.IsTransparentProxy(this));
- CallSeq.Add ("### ServerList.CreateObjRef");
- return base.CreateObjRef (type);
- }
- }
-
- // A remotable object
- public class ServerObject:
- // ContextBoundObject
- MarshalByRefObject
- {
- int _value;
- string _name;
- public ServerObject (string name)
- {
- _name = name;
- }
- public string Name
- {
- get { return _name; }
- }
- public void SetValue (int v)
- {
- CallSeq.Add ("ServerObject " + _name + ": setting " + v);
- _value = v;
- }
- public int GetValue ()
- {
- CallSeq.Add ("ServerObject " + _name + ": getting " + _value);
- return _value;
- }
- public override ObjRef CreateObjRef (Type type)
- {
- CallSeq.Add ("### ServerObject.CreateObjRef");
- return base.CreateObjRef (type);
- }
- }
- // Some complex data for testing serialization
- public enum AnEnum { a,b,c,d,e };
- [Serializable]
- public class ComplexData
- {
- public AnEnum Val = AnEnum.a;
- public object[] Info;
- public ComplexData (AnEnum va, object[] info)
- {
- Info = info;
- Val = va;
- }
- public void Dump ()
- {
- CallSeq.Add ("Content:");
- CallSeq.Add ("Val: " + Val);
- foreach (object ob in Info)
- CallSeq.Add ("Array item: " + ob);
- }
- }
- }
|