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