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