New test.
[mono.git] / mcs / class / corlib / System.Runtime.Remoting.Messaging / ChangeLog
1 2006-08-04  Lluis Sanchez Gual  <lluis@novell.com>
2
3         * MethodCall.cs, CADMessages.cs: Added missing unmarshalling case
4           for IntPtr. When getting the method from the CAD message,
5           check that the same declaring type is loaded in the target domain
6           from the same assembly. If it is not, get the correct type and
7           method for the domain.
8
9 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
10
11         * AsyncResult.cs: Add an 'object_data' field which has GC tracking.
12         
13         * AsyncResult.cs: Revert the last change.
14         
15         * AsyncResult.cs: Make 'data' field an object to allow GC tracking.
16
17 2006-02-06  Lluis Sanchez Gual  <lluis@novell.com>
18
19         * LogicalCallContext.cs, MethodCall.cs, ReturnMessage.cs,
20           MethodResponse.cs: Create a new LogicalCallContext for
21           every message. Fixes #77364 again.
22
23 2006-01-31  Lluis Sanchez Gual  <lluis@novell.com>
24
25         * LogicalCallContext.cs: Added shared empty call context.
26         * MethodCall.cs: Added better error checking and reporting in
27         the code that resolves methods.
28         
29         * ReturnMessage.cs, MethodResponse.cs, MethodCall.cs: Never return null in 
30         LogicalCallContext. If it's null, return an empty context. Based
31         on a patch by Dominic Ullmann that fixes bug #77364.
32
33 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
34
35         * MethodReturnMessageWrapper.cs: ArgCount now returns the count
36         from the internal arg array, since it may change.
37         * MonoMethodMessage.cs: Added NeedsOutProcessing helper method.
38
39 2005-05-31  Lluis Sanchez Gual  <lluis@novell.com>
40
41         * ReturnMessage.cs: Added some null checks.
42         * MethodReturnMessageWrapper.cs: Added some null checks. Fixed
43         incorrect cast in the constructor.
44
45 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
46
47         * AsyncResult.cs: Added new fields (required for stack propagation) to
48         match runtime structure.
49
50 2005-05-09  Lluis Sanchez Gual  <lluis@novell.com>
51
52         * MethodCall.cs: Fix warning.
53
54 2004-10-26  Lluis Sanchez Gual  <lluis@novell.com>
55
56         * CallContext.cs: In CreateLogicalCallContext, added parameter which
57         specifies if an empty LogicalCallContext needs to be created if there are
58         no context values.
59
60 2004-09-27  Lluis Sanchez Gual  <lluis@novell.com>
61
62         * MethodCallMessageWrapper.cs: The wrapper has to modify the wrapped
63           message. MS does it.
64         * ReturnMessage.cs: Use TypeName instead of _typeName since now name is
65           lazely constructed.
66
67 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
68
69         * ConstructionCall.cs: Added a Proxy property (which is the proxy that
70           will reference the object being created).
71         * StackBuilderSink.cs: Take into account the forceInternalExecute
72           parameter.
73
74 2004-09-11 Ben Maurer  <bmaurer@users.sourceforge.net>
75
76         * CallContext.cs: Use [ThreadStatic], it is much faster than the
77         Thread.[Get/Set]Data functions
78
79 2004-09-11 Ben Maurer  <bmaurer@users.sourceforge.net>
80
81         * CADMessages.cs: get rid of method / type name, it is not needed
82         * MethodCall.cs: lazily init method / type name.
83         * ReturnMessage.cs: lazily init method / type name, sig.
84
85 2004-09-11 Ben Maurer  <bmaurer@users.sourceforge.net>
86
87         * CADMessages.cs, MethodCall.cs: When doing an x-appdomain
88         call, store the method in a RuntimeMethodHandle. This allows
89         us to avoid the expensive lookup operations that must be done
90         to resolve the method. This makes xsp go from 250 r/s to 450 r/s
91         for me.
92
93 2004-09-05 Ben Maurer  <bmaurer@users.sourceforge.net>
94
95         * MethodCall.cs, CADMessages.cs: String.Copy (x) is the same
96         thing as new string (x.ToCharArray ()), however it involves
97         half the memory allocation
98
99 2004-07-22  Lluis Sanchez Gual  <lluis@novell.com>
100
101         * MethodCall.cs: Use RemotingServices.GetMethodBaseFromName to get the
102           MethodBase from the method name. This fixes bug #61774.
103
104 2004-06-18  Sebastien Pouliot  <sebastien@ximian.com>
105
106         * ReturnMessage.cs: Added IMessage interface to class definition.
107
108 2004-06-17  Gert Driesen <drieseng@users.sourceforge.net>
109
110         * ReturnMessage.cs: remove serializable attribute to match MS.NET
111
112 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
113
114         * MethodResponse.cs: Only get the MethodBase from type and method name when
115           requested.
116
117 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
118
119         * MethodResponse.cs: In the serialization constructor, initialize MethodBase
120           using the method name and type name.
121
122 2004-05-03  Lluis Sanchez Gual  <lluis@ximian.com>
123
124         * MethodResponse.cs, ReturnMessage.cs: More null checks.
125
126 2004-04-30  Lluis Sanchez Gual  <lluis@ximian.com>
127
128         * MethodResponse.cs, ReturnMessage.cs: Added null checks.
129
130 2004-04-29  Raja R Harinath  <rharinath@novell.com>
131
132         * MethodResponse.cs (MethodResponse.OutArgCount)
133         (MethodResponse.GetOutArg): Make reference to _args null-safe.
134
135 2004-04-28  Lluis Sanchez Gual  <lluis@ximian.com>
136
137         * CADMessages.cs: Revert last change. It was ok.
138         * MethodResponse.cs, ReturnMessage.cs: Handle output parameters in a
139           different way. The message is constructed from an array that has all
140           parameters, including input parameters (which will be set to null).
141           The Args property returns all arguments. OutArgs returns only the
142           output arguments, which are taken from the provided args list.
143         
144 2004-04-26  Lluis Sanchez Gual  <lluis@ximian.com>
145
146         * CADMessages.cs: Marshal the correct return args for the return message.
147
148 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
149
150         * AsyncResult.cs:
151         (AsyncWaitHandle): create the handle if not done yet.
152
153 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
154
155         * AsyncResult.cs: Added async_callback field and fixed the callback call.
156         I thought that async_delegate was the callback, but it is not, it is the
157         delegate upon which the async call was invoked. This fixes bug #53020.
158         * StackBuilderSink.cs: If the target object is a proxy, make the call
159         using the Invoke method of the real proxy.
160
161 2003-12-23  Lluis Sanchez Gual  <lluis@ximian.com>
162
163         * ConstructionResponse.cs: Added constructor for exception response.
164
165 2003-12-22  Lluis Sanchez Gual  <lluis@ximian.com>
166
167         * MethodCall.cs: Do not try to resolve the method in the serialization
168           constructor, since the type array may not be yet completely deserialized.
169           This fixes bug #52426.
170
171 2003-12-10  Lluis Sanchez Gual  <lluis@ximian.com>
172
173         * AsyncResult.cs: Call delegate on async call completion.
174         * CADMessages.cs: Removed TODO.
175
176 2003-11-28  Dick Porter  <dick@ximian.com>
177
178         * MethodCall.cs: Use the char form of IndexOf, so that the
179         comparison is done with the Invariant culture.
180
181 2003-11-26  Lluis Sanchez Gual <lluis@ximian.com>
182
183         * MethodCall.cs, MethodResponse.cs, ReturnMessage.cs: Implemented
184           HasVarArgs property.
185
186 2003-11-25  Lluis Sanchez Gual <lluis@ximian.com>
187
188         * AsyncResult.cs, CallContext.cs: Added private constructor.
189         * ReturnMessage.cs: Added parameter array length check.
190
191 2003-11-18  Lluis Sanchez Gual <lluis@ximian.com>
192
193         * ArgInfo.cs, ClientContextTerminatorSink.cs, ErrorMessage.cs, MethodCall.cs,
194           MethodResponse.cs, MonoMethodMessage.cs, ServerContextTerminatorSink.cs,
195           StackBuilderSink.cs: Fixed class visibility.
196         * CADMessages.cs: Added null reference check in SaveLogicalCallContext.
197         * ISerializationRootObject.cs: Added.
198
199 2003-11-17  Lluis Sanchez Gual <lluis@ximian.com>
200
201         * StackBuilderSink.cs: Implemented AsyncProcessMessage().
202         
203 2003-11-16  Lluis Sanchez Gual <lluis@ximian.com>
204
205         * CADMessages.cs: Added methods for setting and getting the logical call
206           context.
207         * ConstructionCall.cs: Fixed signature of some methods.
208         * ConstructionResponse.cs: Fixed signature of constructor and added missing
209           property.
210         * LogicalCallContext.cs: Removed TODO.
211         * MethodCall.cs, MethodResponse.cs: Added support for LogicalCallContext in
212           consturctor.
213         * MethodReturnMessageWrapper.cs: Removed some unneded methods.
214
215 2003-11-11  Lluis Sanchez Gual  <lluis@ximian.com>
216
217         * ConstructionCall.cs, ReturnMessage.cs: minor fixes.
218
219 2003-10-23  Lluis Sanchez Gual  <lluis@ximian.com>
220
221         * MethodCall.cs: In the constructor that takes a CADMethodCallMessage
222           object, make sure strings are not reused across domains.
223
224 2003-10-08  Lluis Sanchez Gual  <lluis@ximian.com>
225
226         * CADMessages.cs: added smuggeling argument support for some instances
227           of MarshalByRefObject. This should make the cross-appdomain channel 
228           even faster. Some other minor fixes.
229
230 2003-10-07  Lluis Sanchez Gual  <lluis@ximian.com>
231
232         * CADMessages.cs: improved argument smuggeling. Now it supports strings,
233           datetime and arrays of primitive types. This makes CAD much faster.
234         * AsyncResult.cs: Added property to store the call message.
235
236 2003-09-11  Lluis Sanchez Gual  <lluis@ximian.com>
237
238         * ArgInfo.cs: Include parameters with the Out flag in the out parameters list.
239         * CallContext.cs: SetCurrentCallContext now returns the old context, so it
240           can be later restored with new new method RestoreCallContext().
241         * ReturnMessage.cs: Some fixes in the way the class deals with output parameters,
242           to match MS.NET behavior.
243
244 2003-08-28  Lluis Sanchez Gual  <lluis@ximian.com>
245
246         * MonoMethodMessage.cs: Moved CallType into namespace declaration.
247
248 2003-08-25  Lluis Sanchez Gual <lluis@ximian.com>
249
250         * AsyncResult.cs: Added method EndInvoke(). Fixed SyncProcessMessage().
251         * CallContext.cs: Clean current logical context before setting the new
252           values form LogicalCallContext (SetCurrentCallContext).
253         * MonoMethodMessage.cs: Added new CallType field and enum.
254         * StackBuilderSink.cs: Improved error message.
255
256 2003-08-20  Lluis Sanchez Gual <lluis@ximian.com>
257
258         * MethodCall.cs: Changed exception text to match MS.NET (more or less).
259         * AsyncResult.cs: Added new fields to store async calls results.
260
261 2003-08-17  Lluis Sanchez Gual <lluis@ximian.com>
262
263         * MethodCall.cs: Throw the right exception if the target object is not
264           found when resolving the target method.
265
266 2003-08-17  Lluis Sanchez Gual <lluis@ximian.com>
267
268         * CallContext.cs: Fixed bug #47686.
269
270 2003-08-14  Lluis Sanchez Gual <lluis@ximian.com>
271
272         * CADMessages.cs: Enabled smuggeling of primitive type parameters (as suggested
273           by Patrik).
274         * CallContext.cs: Impplemented.
275         * LogicalCallContext.cs: Implemented.
276         * MonoMethodMessage.cs: Added setter for LogicalCallContext property.
277
278 2003-07-25  Lluis Sanchez Gual <lluis@ximian.com>
279
280         * ArgInfo.cs: Use Type.IsByRef to check if a parameter is a ref or
281           out parameter.
282         * MethodCall.cs: Improved checking if the requested client type for the target
283           object can be casted to the server type. Now not only checks type name,
284           but also the type hierarchy and implemented interfaces. Also implemented
285           method ToString().
286         * MethodResponse.cs: Imlemented ToString().
287         * ReturnMessage.cs: In the exception constructor, allow the request to be null.
288           Implemented ToString().
289         * StackBuilderSink.cs: Check type of parameters before calling the target method.
290           (a wrong type would make the runtime to crash).
291
292 2003-07-23  Lluis Sanchez Gual <lluis@ximian.com>
293
294         * MethodDictionary.cs: Fixed Add method. If the property is method
295           property, then there is no need it to the internal properties table.
296
297 2003-07-21  Lluis Sanchez Gual <lluis@ximian.com>
298
299         * MethodCall.cs: Fixed copy constructor, when the message to copy does not
300           implement IMethodMessage.
301
302 2003-07-09  Jean-Marc AndrĂ© <jean-marc.andre@polymtl.ca>
303
304         * ReturnMessage.cs: Bug fix. GetOutArgName didn't return the right Name for the given out parameter.
305
306 2003-05-13  Lluis Sanchez Gual <lluis@ideary.com>
307         
308         * MethodCall.cs: ResolveMethod now uses the type of the target object (identified
309           by the uri) instead of the type specified by TypeName (only if both types have
310           the same name).
311
312 2003-04-10  Lluis Sanchez Gual <lluis@ideary.com>
313         
314         * AsyncResult.cs: implemented some methods.
315         * ClientContextTerminatorSink.cs: Improved support for Async and OneWay messages.
316         * MonoMethodMessage.cs: Added member needed to support Async messages.
317         * ServerObjectTerminatorSink.cs: Improved support for Async and OneWay messages.
318
319 2003-03-21  Lluis Sanchez Gual <lluis@ideary.com>
320         
321         * CADMessages.cs: removed some warnings.
322         * ClientContextTerminatorSink.cs: added support for dynamic sinks.
323         * ConstructionCall.cs: added internal property IsContextOK.
324         * MethodResponse.cs: fixed management of output parameters.
325         * ServerObjectTerminatorSink.cs: added support for dynamic sinks.
326
327 2003-03-03  Lluis Sanchez Gual <lluis@ideary.com>
328
329         * ConstructionCall.cs: Added internal constructor. Added setter for activation attributes.
330           Some other minor corrections.
331         * EnvoyTerminatorSink.cs: Message now redirected to current context's client sink chain.
332         * MethodCall.cs: Added method for copying messages.
333
334 2003-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
335
336         * MethodCall.cs:
337         (MethodBase): resolve the method if it's not already done.
338
339 2003-02-18  Lluis Sanchez Gual <lluis@ideary.com>
340
341         * IInternalMessage.cs: Added. Provides some useful methods for method messages.
342         * ServerContextTerminatorSink.cs: Added support for construction messages.
343         * MethodCall.cs: Implemented serialization support. Added support for IInternalMessage.
344         * MethodDictionary.cs: Added support for IInternalMessage.
345         * MethodResponse.cs: Added serialization support. Added support for IInternalMessage.
346         * MonoMethodMessage.cs: Added support for IInternalMessage.
347         * ReturnMessage.cs: Added support for IInternalMessage.
348         * ClientContextTerminatorSink.cs: Added.
349         * ConstructionCall.cs: Added.
350         * ConstructionCallDictionary.cs: Added.
351         * ConstructionResponse.cs: Added.
352         * EnvoyTerminatorSink.cs: Added.
353         
354 2003-02-07  Patrik Torstensson
355
356         * CADMessages.cs: Disable smuggeling of objects cross domain, still issues casing remoting
357           to fail. (fixed formating)
358
359 2003-02-07  Lluis Sanchez Gual <lluis@ideary.com>
360
361         * CADMessages.cs: Some minor changes that allow reuse of ObjRef methods.
362         
363 2003-02-05  Lluis Sanchez Gual <lluis@ideary.com>
364         
365         * ReturnMessage.cs, MethodResponse.cs: OutArgs initialized to an empty array
366           when the the message returns an exception.
367
368 2003-02-04  Lluis Sanchez Gual <lluis@ideary.com>
369         
370         * ServerContextTerminatorSink.cs: Modified to work with new types of identities.
371         * ReturnMessage.cs: Removed internal dependence to MonoMethodMessage. It is not needed now.
372         * MonoMethodMessage.cs: Now only has method call keys in the dictionary. 
373         * MethodReturnDictionary.cs, MethodCallDictionary.cs: Made public the list of 
374           method keys. This list is used in MessageFormatter.
375         * MethodDictionary.cs: Corrected some minor bugs.
376         * MethodCall.cs: minor correction on constructor.
377
378 2003-02-03 Patrik Torstensson
379
380         * MethodResponse.cs: Implemented
381         * MethodCall.cs: added support for Cross appdomain messages, implemented some
382         missing methods.
383         * MethodDictionary.cs: made serializible and added methods to get internal properties.
384         * MonoMethodMessage.cs: internal dictionary is now serializible
385         * ReturnMessage.cs: made serializible
386         * ErrorMessage.cs: typo fix
387         
388         * CADMessage.cs: new file, implements cross appdomain messages, both call and return. 
389         Princip of this classes is to move unmutable objects and primitivs between appdomains
390         without marshalling. This increase performance a lot of the cross appdomain channel.
391         
392 2003-01-29  Lluis Sanchez Gual <lluis@ideary.com>
393         
394         * ServerContextTerminatorSink.cs: now it forwards messages to the target identity,
395           which knows how to manage each type of service.
396         * StackBuilderSink.cs: added a reference to the target object.
397
398 2002-12-28  Patrik Torstensson
399
400         * RemotingSurrogateSelector.cs: Added serialization support for MBR's.
401         * RemotingSurrogate.cs: Moved ObjRefSurrogate and MBRSurrogate to new file.
402         * ErrorMessage.cs: Dummy used when an exception occours.
403         * MonoMethodMessage.cs: Added Serializable and support for be created with null methods
404
405 2002-12-26  Lluis Sanchez Gual <lluis@ideary.com>
406
407         * ReturnMessage.cs: Implemented property Properties
408         * RemotingSurrogateSelector.cs: Implemented serialization support for ObjRef.
409         * MonoMethodMessage.cs: Implemented Properties and MethodSignature properties.
410         * MethodReturnMessageWrapper.cs: Implemented.
411         * MethodCallMessageWrapper.cs: Implemented.
412         * MethodCall.cs: Implemented.
413         * Header.cs: Small corrections to make it work.
414         * MethodDictionary.cs: Added.
415         * MethodCallDictionary.cs: Added.
416         * MethodReturnDictionary.cs: Added.
417         * ArgInfo.cs: Added.
418
419 2002-12-20  Lluis Sanchez Gual <lluis@ideary.com>
420
421         * MonoMethodMessage.cs: Implemented property Uri
422
423 2002-12-20  Lluis Sanchez Gual <lluis@ideary.com>
424
425         * ServerContextTerminatorSink.cs: Added
426         * ServerObjectTerminatorSink.cs: Added
427         * StackBuilderSink.cs: Added
428
429 2002-12-10  Jaime Anguiano Olarra <jaime@gnome.org>
430
431         * CallContext.c: Added to the CVS.
432
433 2002-08-22  Nick Drochak  <ndrochak@gol.com>
434
435         * RemotingSurrogateSelector.cs (SetRootObject): Function should return
436         void, not object.
437
438 2002-08-03  Duncan Mak  <duncan@ximian.com>
439
440         * MethodCall.cs: 
441         * MethodResponse.cs: More visibility fixes. Hopefully this is the
442         last of it.
443
444 2002-08-02  Duncan Mak  <duncan@ximian.com>
445
446         * MethodCall.cs: 
447         * MethodCallMessageWrapper.cs: 
448         * MethodReturnMessageWrapper.cs: Various visibility fixes.
449
450         * RemotingSurrogateSelector.cs: Added, replaced RemoteSurrogateSelector.
451
452 2002-07-31  Duncan Mak  <duncan@ximian.com>
453         
454         * MethodCallMessageWrapper.cs:
455         * MethodReturnMessageWrapper.cs: Revert the last patch and made it
456         work. Thanks to Gonzalo for reminding me to chain the constructors.
457
458 2002-07-31  Duncan Mak  <duncan@ximian.com>
459
460         * MethodCallMessageWrapper.cs:
461         * MethodReturnMessageWrapper.cs: Remove reference to
462         InternalMessageWrapper. It's probably an MS private class, even
463         though it's visible in the documentation.
464
465 2002-07-31  Duncan Mak  <duncan@ximian.com>
466
467         * InternalMessageWrapper.cs: 
468         * MessageSurrogateFilter.cs: 
469         * MethodCall.cs: 
470         * MethodCallMessageWrapper.cs: 
471         * MethodResponse.cs: 
472         * MethodReturnMessageWrapper.cs: 
473
474         * RemoteSurrogateSelector.cs: Added to CVS. 
475
476         * MonoMethodMessage.cs: 
477         * ReturnMessage.cs: Add set in the Uri property.
478
479 2002-07-24  Duncan Mak  <duncan@ximian.com>
480
481         * OneWayAttribute.cs: Added to CVS.
482
483 2002-07-23  Duncan Mak  <duncan@ximian.com>
484
485         * HeaderHandler.cs: Added.
486
487         * IRemotingFormatter.cs: Added to CVS.
488
489         * IMethodMessage.cs: IMethodMessage inherits from IMessage.
490
491 Thu Apr 4 13:13:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
492
493         * IMethodReturnMessage.cs: added IMethodMessage, IMessage interfaces.
494         * ReturnMessage.cs: stubbed out Properties property.
495
496 2002-03-21  Dietmar Maurer  <dietmar@ximian.com>
497
498         * AsyncResult.cs: impl.
499
500 2002/03/04  Nick Drochak  <ndrochak@gol.com>
501
502         * Header.cs: Change properties into fields where they should be.