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