diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/bindings/mono/eldbus_mono/eldbus_message.cs | 474 |
1 files changed, 472 insertions, 2 deletions
diff --git a/src/bindings/mono/eldbus_mono/eldbus_message.cs b/src/bindings/mono/eldbus_mono/eldbus_message.cs index 2bd7431..56fa30b 100644 --- a/src/bindings/mono/eldbus_mono/eldbus_message.cs +++ b/src/bindings/mono/eldbus_mono/eldbus_message.cs | |||
@@ -2,12 +2,14 @@ | |||
2 | 2 | ||
3 | using System; | 3 | using System; |
4 | using System.Runtime.InteropServices; | 4 | using System.Runtime.InteropServices; |
5 | using System.ComponentModel; | ||
5 | 6 | ||
6 | using static eldbus.EldbusMessageNativeFunctions; | 7 | using static eldbus.EldbusMessageNativeFunctions; |
7 | 8 | ||
8 | namespace eldbus | 9 | namespace eldbus |
9 | { | 10 | { |
10 | 11 | ||
12 | [EditorBrowsable(EditorBrowsableState.Never)] | ||
11 | public static class EldbusMessageNativeFunctions | 13 | public static class EldbusMessageNativeFunctions |
12 | { | 14 | { |
13 | [DllImport(efl.Libs.Eldbus)] public static extern IntPtr | 15 | [DllImport(efl.Libs.Eldbus)] public static extern IntPtr |
@@ -190,11 +192,11 @@ public static class EldbusMessageNativeFunctions | |||
190 | 192 | ||
191 | 193 | ||
192 | /// <summary>Represents a DBus message. | 194 | /// <summary>Represents a DBus message. |
193 | /// | 195 | /// <para>Since EFL 1.23.</para> |
194 | /// Since EFL 1.23. | ||
195 | /// </summary> | 196 | /// </summary> |
196 | public class Message : IDisposable | 197 | public class Message : IDisposable |
197 | { | 198 | { |
199 | [EditorBrowsable(EditorBrowsableState.Never)] | ||
198 | public IntPtr Handle {get;set;} = IntPtr.Zero; | 200 | public IntPtr Handle {get;set;} = IntPtr.Zero; |
199 | public bool Own {get;set;} = true; | 201 | public bool Own {get;set;} = true; |
200 | 202 | ||
@@ -213,16 +215,26 @@ public class Message : IDisposable | |||
213 | } | 215 | } |
214 | } | 216 | } |
215 | 217 | ||
218 | [EditorBrowsable(EditorBrowsableState.Never)] | ||
216 | public Message(IntPtr handle, bool own) | 219 | public Message(IntPtr handle, bool own) |
217 | { | 220 | { |
218 | InitNew(handle, own); | 221 | InitNew(handle, own); |
219 | } | 222 | } |
220 | 223 | ||
224 | /// <summary>Finalizes with garbage collector. | ||
225 | /// <para>Since EFL 1.23.</para> | ||
226 | /// </summary> | ||
221 | ~Message() | 227 | ~Message() |
222 | { | 228 | { |
223 | Dispose(false); | 229 | Dispose(false); |
224 | } | 230 | } |
225 | 231 | ||
232 | |||
233 | /// <summary>Disposes of this wrapper, releasing the native if owned. | ||
234 | /// <para>Since EFL 1.23.</para> | ||
235 | /// </summary> | ||
236 | /// <param name="disposing">True if this was called from <see cref="Dispose()"/> public method. False if | ||
237 | /// called from the C# finalizer.</param> | ||
226 | protected virtual void Dispose(bool disposing) | 238 | protected virtual void Dispose(bool disposing) |
227 | { | 239 | { |
228 | IntPtr h = Handle; | 240 | IntPtr h = Handle; |
@@ -245,17 +257,28 @@ public class Message : IDisposable | |||
245 | } | 257 | } |
246 | } | 258 | } |
247 | 259 | ||
260 | /// <summary>Releases the native resources held by this instance. | ||
261 | /// <para>Since EFL 1.23.</para> | ||
262 | /// </summary> | ||
248 | public void Dispose() | 263 | public void Dispose() |
249 | { | 264 | { |
250 | Dispose(true); | 265 | Dispose(true); |
251 | GC.SuppressFinalize(this); | 266 | GC.SuppressFinalize(this); |
252 | } | 267 | } |
253 | 268 | ||
269 | /// <summary>Releases the native resources held by this instance. | ||
270 | /// <para>Since EFL 1.23.</para> | ||
271 | /// </summary> | ||
254 | public void Free() | 272 | public void Free() |
255 | { | 273 | { |
256 | Dispose(); | 274 | Dispose(); |
257 | } | 275 | } |
258 | 276 | ||
277 | /// <summary> | ||
278 | /// Releases the native handler. | ||
279 | /// <para>Since EFL 1.23.</para> | ||
280 | /// </summary> | ||
281 | /// <returns>The native handler.</returns> | ||
259 | public IntPtr Release() | 282 | public IntPtr Release() |
260 | { | 283 | { |
261 | IntPtr h = Handle; | 284 | IntPtr h = Handle; |
@@ -263,6 +286,15 @@ public class Message : IDisposable | |||
263 | return h; | 286 | return h; |
264 | } | 287 | } |
265 | 288 | ||
289 | /// <summary> | ||
290 | /// Create a new message to invoke a method on a remote object. | ||
291 | /// <para>Since EFL 1.23.</para> | ||
292 | /// </summary> | ||
293 | /// <param name="dest">The bus name or unique id of the remote application.</param> | ||
294 | /// <param name="path">The object path.</param> | ||
295 | /// <param name="iface">The interface name.</param> | ||
296 | /// <param name="method">The name of the method to be called.</param> | ||
297 | /// <returns>A new <see cref="eldbus.Message" />.</returns> | ||
266 | public static eldbus.Message NewMethodCall(string dest, string path, string iface, string method) | 298 | public static eldbus.Message NewMethodCall(string dest, string path, string iface, string method) |
267 | { | 299 | { |
268 | var ptr = eldbus_message_method_call_new(dest, path, iface, method); | 300 | var ptr = eldbus_message_method_call_new(dest, path, iface, method); |
@@ -274,6 +306,14 @@ public class Message : IDisposable | |||
274 | return new eldbus.Message(ptr, true); | 306 | return new eldbus.Message(ptr, true); |
275 | } | 307 | } |
276 | 308 | ||
309 | /// <summary> | ||
310 | /// Create a new signal message. | ||
311 | /// <para>Since EFL 1.23.</para> | ||
312 | /// </summary> | ||
313 | /// <param name="path">The object path.</param> | ||
314 | /// <param name="_interface">The interface name.</param> | ||
315 | /// <param name="name">The name of the signal to be broadcasted.</param> | ||
316 | /// <returns>A new <see cref="eldbus.Message" />.</returns> | ||
277 | public static eldbus.Message NewSignal(string path, string _interface, string name) | 317 | public static eldbus.Message NewSignal(string path, string _interface, string name) |
278 | { | 318 | { |
279 | var ptr = eldbus_message_signal_new(path, _interface, name); | 319 | var ptr = eldbus_message_signal_new(path, _interface, name); |
@@ -285,18 +325,31 @@ public class Message : IDisposable | |||
285 | return new eldbus.Message(ptr, true); | 325 | return new eldbus.Message(ptr, true); |
286 | } | 326 | } |
287 | 327 | ||
328 | /// <summary> | ||
329 | /// Increase message reference. | ||
330 | /// <para>Since EFL 1.23.</para> | ||
331 | /// </summary> | ||
288 | public void Ref() | 332 | public void Ref() |
289 | { | 333 | { |
290 | CheckHandle(); | 334 | CheckHandle(); |
291 | eldbus_message_ref(Handle); | 335 | eldbus_message_ref(Handle); |
292 | } | 336 | } |
293 | 337 | ||
338 | /// <summary> | ||
339 | /// Decrease message reference. | ||
340 | /// <para>Since EFL 1.23.</para> | ||
341 | /// </summary> | ||
294 | public void Unref() | 342 | public void Unref() |
295 | { | 343 | { |
296 | CheckHandle(); | 344 | CheckHandle(); |
297 | eldbus_message_unref(Handle); | 345 | eldbus_message_unref(Handle); |
298 | } | 346 | } |
299 | 347 | ||
348 | /// <summary> | ||
349 | /// Get the eldbus message path. | ||
350 | /// <para>Since EFL 1.23.</para> | ||
351 | /// </summary> | ||
352 | /// <returns>A string containing the dbus message path.</returns> | ||
300 | public string GetPath() | 353 | public string GetPath() |
301 | { | 354 | { |
302 | CheckHandle(); | 355 | CheckHandle(); |
@@ -304,6 +357,11 @@ public class Message : IDisposable | |||
304 | return Eina.StringConversion.NativeUtf8ToManagedString(ptr); | 357 | return Eina.StringConversion.NativeUtf8ToManagedString(ptr); |
305 | } | 358 | } |
306 | 359 | ||
360 | /// <summary> | ||
361 | /// The eldbus message interface. | ||
362 | /// <para>Since EFL 1.23.</para> | ||
363 | /// </summary> | ||
364 | /// <returns>A string containing the dbus message interface.</returns> | ||
307 | public string GetInterface() | 365 | public string GetInterface() |
308 | { | 366 | { |
309 | CheckHandle(); | 367 | CheckHandle(); |
@@ -311,6 +369,11 @@ public class Message : IDisposable | |||
311 | return Eina.StringConversion.NativeUtf8ToManagedString(ptr); | 369 | return Eina.StringConversion.NativeUtf8ToManagedString(ptr); |
312 | } | 370 | } |
313 | 371 | ||
372 | /// <summary> | ||
373 | /// Get the eldbus message member. | ||
374 | /// <para>Since EFL 1.23.</para> | ||
375 | /// </summary> | ||
376 | /// <returns>A string containing the dbus message destination.</returns> | ||
314 | public string GetMember() | 377 | public string GetMember() |
315 | { | 378 | { |
316 | CheckHandle(); | 379 | CheckHandle(); |
@@ -318,6 +381,11 @@ public class Message : IDisposable | |||
318 | return Eina.StringConversion.NativeUtf8ToManagedString(ptr); | 381 | return Eina.StringConversion.NativeUtf8ToManagedString(ptr); |
319 | } | 382 | } |
320 | 383 | ||
384 | /// <summary> | ||
385 | /// Get the eldbus message destination. | ||
386 | /// <para>Since EFL 1.23.</para> | ||
387 | /// </summary> | ||
388 | /// <returns>A string containing the dbus message destination.</returns> | ||
321 | public string GetDestination() | 389 | public string GetDestination() |
322 | { | 390 | { |
323 | CheckHandle(); | 391 | CheckHandle(); |
@@ -325,6 +393,11 @@ public class Message : IDisposable | |||
325 | return Eina.StringConversion.NativeUtf8ToManagedString(ptr); | 393 | return Eina.StringConversion.NativeUtf8ToManagedString(ptr); |
326 | } | 394 | } |
327 | 395 | ||
396 | /// <summary> | ||
397 | /// Get the eldbus message sender. | ||
398 | /// <para>Since EFL 1.23.</para> | ||
399 | /// </summary> | ||
400 | /// <returns>A string containing the dbus message sender.</returns> | ||
328 | public string GetSender() | 401 | public string GetSender() |
329 | { | 402 | { |
330 | CheckHandle(); | 403 | CheckHandle(); |
@@ -332,6 +405,11 @@ public class Message : IDisposable | |||
332 | return Eina.StringConversion.NativeUtf8ToManagedString(ptr); | 405 | return Eina.StringConversion.NativeUtf8ToManagedString(ptr); |
333 | } | 406 | } |
334 | 407 | ||
408 | /// <summary> | ||
409 | /// Get the eldbus message signature. | ||
410 | /// <para>Since EFL 1.23.</para> | ||
411 | /// </summary> | ||
412 | /// <returns>A string containing the dbus message signature.</returns> | ||
335 | public string GetSignature() | 413 | public string GetSignature() |
336 | { | 414 | { |
337 | CheckHandle(); | 415 | CheckHandle(); |
@@ -339,6 +417,13 @@ public class Message : IDisposable | |||
339 | return Eina.StringConversion.NativeUtf8ToManagedString(ptr); | 417 | return Eina.StringConversion.NativeUtf8ToManagedString(ptr); |
340 | } | 418 | } |
341 | 419 | ||
420 | /// <summary> | ||
421 | /// Create a new message that is an error reply to another message. | ||
422 | /// <para>Since EFL 1.23.</para> | ||
423 | /// </summary> | ||
424 | /// <param name="error_name">The error name.</param> | ||
425 | /// <param name="error_msg">The error message string.</param> | ||
426 | /// <returns>A new <see cref="eldbus.Message" />.</returns> | ||
342 | public eldbus.Message NewError(string error_name, string error_msg) | 427 | public eldbus.Message NewError(string error_name, string error_msg) |
343 | { | 428 | { |
344 | CheckHandle(); | 429 | CheckHandle(); |
@@ -351,6 +436,11 @@ public class Message : IDisposable | |||
351 | return new eldbus.Message(ptr, false); | 436 | return new eldbus.Message(ptr, false); |
352 | } | 437 | } |
353 | 438 | ||
439 | /// <summary> | ||
440 | /// Create a message that is a reply to a method call. | ||
441 | /// <para>Since EFL 1.23.</para> | ||
442 | /// </summary> | ||
443 | /// <returns>A new <see cref="eldbus.Message" />.</returns> | ||
354 | public eldbus.Message NewMethodReturn() | 444 | public eldbus.Message NewMethodReturn() |
355 | { | 445 | { |
356 | CheckHandle(); | 446 | CheckHandle(); |
@@ -363,6 +453,13 @@ public class Message : IDisposable | |||
363 | return new eldbus.Message(ptr, false); | 453 | return new eldbus.Message(ptr, false); |
364 | } | 454 | } |
365 | 455 | ||
456 | /// <summary> | ||
457 | /// Get the error text and name from a <see cref="eldbus.Message" />. | ||
458 | /// <para>Since EFL 1.23.</para> | ||
459 | /// </summary> | ||
460 | /// <param name="name">Store the error name.</param> | ||
461 | /// <param name="text">Store the error text..</param> | ||
462 | /// <returns>true on success, false otherwise.</returns> | ||
366 | public bool GetError(out string name, out string text) | 463 | public bool GetError(out string name, out string text) |
367 | { | 464 | { |
368 | CheckHandle(); | 465 | CheckHandle(); |
@@ -374,12 +471,24 @@ public class Message : IDisposable | |||
374 | return r; | 471 | return r; |
375 | } | 472 | } |
376 | 473 | ||
474 | /// <summary> | ||
475 | /// Get the arguments from an <see cref="eldbus.Message" />. | ||
476 | /// <para>Since EFL 1.23.</para> | ||
477 | /// </summary> | ||
478 | /// <param name="val">A byte that store the message arguments.</param> | ||
479 | /// <returns>true if the arguments were read successfully.</returns> | ||
377 | public bool Get(out byte val) | 480 | public bool Get(out byte val) |
378 | { | 481 | { |
379 | CheckHandle(); | 482 | CheckHandle(); |
380 | return eldbus_message_arguments_get(Handle, Argument.ByteType.Signature, out val); | 483 | return eldbus_message_arguments_get(Handle, Argument.ByteType.Signature, out val); |
381 | } | 484 | } |
382 | 485 | ||
486 | /// <summary> | ||
487 | /// Get the arguments from an <see cref="eldbus.Message" />. | ||
488 | /// <para>Since EFL 1.23.</para> | ||
489 | /// </summary> | ||
490 | /// <param name="val">A bool that store the message arguments.</param> | ||
491 | /// <returns>true if the arguments were read successfully.</returns> | ||
383 | public bool Get(out bool val) | 492 | public bool Get(out bool val) |
384 | { | 493 | { |
385 | CheckHandle(); | 494 | CheckHandle(); |
@@ -389,48 +498,96 @@ public class Message : IDisposable | |||
389 | return r; | 498 | return r; |
390 | } | 499 | } |
391 | 500 | ||
501 | /// <summary> | ||
502 | /// Get the arguments from an <see cref="eldbus.Message" />. | ||
503 | /// <para>Since EFL 1.23.</para> | ||
504 | /// </summary> | ||
505 | /// <param name="val">A int16 that store the message arguments.</param> | ||
506 | /// <returns>true if the arguments were read successfully.</returns> | ||
392 | public bool Get(out Int16 val) | 507 | public bool Get(out Int16 val) |
393 | { | 508 | { |
394 | CheckHandle(); | 509 | CheckHandle(); |
395 | return eldbus_message_arguments_get(Handle, Argument.Int16Type.Signature, out val); | 510 | return eldbus_message_arguments_get(Handle, Argument.Int16Type.Signature, out val); |
396 | } | 511 | } |
397 | 512 | ||
513 | /// <summary> | ||
514 | /// Get the arguments from an <see cref="eldbus.Message" />. | ||
515 | /// <para>Since EFL 1.23.</para> | ||
516 | /// </summary> | ||
517 | /// <param name="val">A unsigned int16 that store the message arguments.</param> | ||
518 | /// <returns>true if the arguments were read successfully.</returns> | ||
398 | public bool Get(out UInt16 val) | 519 | public bool Get(out UInt16 val) |
399 | { | 520 | { |
400 | CheckHandle(); | 521 | CheckHandle(); |
401 | return eldbus_message_arguments_get(Handle, Argument.UInt16Type.Signature, out val); | 522 | return eldbus_message_arguments_get(Handle, Argument.UInt16Type.Signature, out val); |
402 | } | 523 | } |
403 | 524 | ||
525 | /// <summary> | ||
526 | /// Get the arguments from an <see cref="eldbus.Message" />. | ||
527 | /// <para>Since EFL 1.23.</para> | ||
528 | /// </summary> | ||
529 | /// <param name="val">A int32 that store the message arguments.</param> | ||
530 | /// <returns>true if the arguments were read successfully.</returns> | ||
404 | public bool Get(out Int32 val) | 531 | public bool Get(out Int32 val) |
405 | { | 532 | { |
406 | CheckHandle(); | 533 | CheckHandle(); |
407 | return eldbus_message_arguments_get(Handle, Argument.Int32Type.Signature, out val); | 534 | return eldbus_message_arguments_get(Handle, Argument.Int32Type.Signature, out val); |
408 | } | 535 | } |
409 | 536 | ||
537 | /// <summary> | ||
538 | /// Get the arguments from an <see cref="eldbus.Message" />. | ||
539 | /// <para>Since EFL 1.23.</para> | ||
540 | /// </summary> | ||
541 | /// <param name="val">A unsigned int32 that store the message arguments.</param> | ||
542 | /// <returns>true if the arguments were read successfully.</returns> | ||
410 | public bool Get(out UInt32 val) | 543 | public bool Get(out UInt32 val) |
411 | { | 544 | { |
412 | CheckHandle(); | 545 | CheckHandle(); |
413 | return eldbus_message_arguments_get(Handle, Argument.UInt32Type.Signature, out val); | 546 | return eldbus_message_arguments_get(Handle, Argument.UInt32Type.Signature, out val); |
414 | } | 547 | } |
415 | 548 | ||
549 | /// <summary> | ||
550 | /// Get the arguments from an <see cref="eldbus.Message" />. | ||
551 | /// <para>Since EFL 1.23.</para> | ||
552 | /// </summary> | ||
553 | /// <param name="val">A int64 that store the message arguments.</param> | ||
554 | /// <returns>true if the arguments were read successfully.</returns> | ||
416 | public bool Get(out Int64 val) | 555 | public bool Get(out Int64 val) |
417 | { | 556 | { |
418 | CheckHandle(); | 557 | CheckHandle(); |
419 | return eldbus_message_arguments_get(Handle, Argument.Int64Type.Signature, out val); | 558 | return eldbus_message_arguments_get(Handle, Argument.Int64Type.Signature, out val); |
420 | } | 559 | } |
421 | 560 | ||
561 | /// <summary> | ||
562 | /// Get the arguments from an <see cref="eldbus.Message" />. | ||
563 | /// <para>Since EFL 1.23.</para> | ||
564 | /// </summary> | ||
565 | /// <param name="val">A unsigned int64 that store the message arguments.</param> | ||
566 | /// <returns>true if the arguments were read successfully.</returns> | ||
422 | public bool Get(out UInt64 val) | 567 | public bool Get(out UInt64 val) |
423 | { | 568 | { |
424 | CheckHandle(); | 569 | CheckHandle(); |
425 | return eldbus_message_arguments_get(Handle, Argument.UInt64Type.Signature, out val); | 570 | return eldbus_message_arguments_get(Handle, Argument.UInt64Type.Signature, out val); |
426 | } | 571 | } |
427 | 572 | ||
573 | /// <summary> | ||
574 | /// Get the arguments from an <see cref="eldbus.Message" />. | ||
575 | /// <para>Since EFL 1.23.</para> | ||
576 | /// </summary> | ||
577 | /// <param name="val">A double that store the message arguments.</param> | ||
578 | /// <returns>true if the arguments were read successfully.</returns> | ||
428 | public bool Get(out double val) | 579 | public bool Get(out double val) |
429 | { | 580 | { |
430 | CheckHandle(); | 581 | CheckHandle(); |
431 | return eldbus_message_arguments_get(Handle, Argument.DoubleType.Signature, out val); | 582 | return eldbus_message_arguments_get(Handle, Argument.DoubleType.Signature, out val); |
432 | } | 583 | } |
433 | 584 | ||
585 | /// <summary> | ||
586 | /// Get the arguments from an <see cref="eldbus.Message" />. | ||
587 | /// <para>Since EFL 1.23.</para> | ||
588 | /// </summary> | ||
589 | /// <param name="val">A string that store the message arguments.</param> | ||
590 | /// <returns>true if the arguments were read successfully.</returns> | ||
434 | public bool Get(out string val) | 591 | public bool Get(out string val) |
435 | { | 592 | { |
436 | CheckHandle(); | 593 | CheckHandle(); |
@@ -440,6 +597,12 @@ public class Message : IDisposable | |||
440 | return r; | 597 | return r; |
441 | } | 598 | } |
442 | 599 | ||
600 | /// <summary> | ||
601 | /// Get the arguments from an <see cref="eldbus.Message" />. | ||
602 | /// <para>Since EFL 1.23.</para> | ||
603 | /// </summary> | ||
604 | /// <param name="val">A <see cref="eldbus.ObjectPath" /> that store the message arguments.</param> | ||
605 | /// <returns>true if the arguments were read successfully.</returns> | ||
443 | public bool Get(out eldbus.ObjectPath val) | 606 | public bool Get(out eldbus.ObjectPath val) |
444 | { | 607 | { |
445 | CheckHandle(); | 608 | CheckHandle(); |
@@ -449,6 +612,12 @@ public class Message : IDisposable | |||
449 | return r; | 612 | return r; |
450 | } | 613 | } |
451 | 614 | ||
615 | /// <summary> | ||
616 | /// Get the arguments from an <see cref="eldbus.Message" />. | ||
617 | /// <para>Since EFL 1.23.</para> | ||
618 | /// </summary> | ||
619 | /// <param name="val">A <see cref="eldbus.SignatureString" /> that store the message arguments.</param> | ||
620 | /// <returns>true if the arguments were read successfully.</returns> | ||
452 | public bool Get(out eldbus.SignatureString val) | 621 | public bool Get(out eldbus.SignatureString val) |
453 | { | 622 | { |
454 | CheckHandle(); | 623 | CheckHandle(); |
@@ -458,6 +627,12 @@ public class Message : IDisposable | |||
458 | return r; | 627 | return r; |
459 | } | 628 | } |
460 | 629 | ||
630 | /// <summary> | ||
631 | /// Get the arguments from an <see cref="eldbus.Message" />. | ||
632 | /// <para>Since EFL 1.23.</para> | ||
633 | /// </summary> | ||
634 | /// <param name="val">A <see cref="eldbus.UnixFd" /> that store the message arguments.</param> | ||
635 | /// <returns>true if the arguments were read successfully.</returns> | ||
461 | public bool Get(out eldbus.UnixFd val) | 636 | public bool Get(out eldbus.UnixFd val) |
462 | { | 637 | { |
463 | CheckHandle(); | 638 | CheckHandle(); |
@@ -467,6 +642,11 @@ public class Message : IDisposable | |||
467 | return r; | 642 | return r; |
468 | } | 643 | } |
469 | 644 | ||
645 | /// <summary> | ||
646 | /// Appends the arguments. | ||
647 | /// <para>Since EFL 1.23.</para> | ||
648 | /// </summary> | ||
649 | /// <param name="args">The arguments to be appended.</param> | ||
470 | public void Append(params BasicMessageArgument[] args) | 650 | public void Append(params BasicMessageArgument[] args) |
471 | { | 651 | { |
472 | CheckHandle(); | 652 | CheckHandle(); |
@@ -476,12 +656,23 @@ public class Message : IDisposable | |||
476 | } | 656 | } |
477 | } | 657 | } |
478 | 658 | ||
659 | /// <summary> | ||
660 | /// Create and append a typed iterator to another iterator. | ||
661 | /// <para>Since EFL 1.23.</para> | ||
662 | /// </summary> | ||
663 | /// <param name="signature">The signature to be appended.</param> | ||
664 | /// <returns>A <see cref="eldbus.MessageIterator" />.</returns> | ||
479 | public eldbus.MessageIterator AppendOpenContainer(string signature) | 665 | public eldbus.MessageIterator AppendOpenContainer(string signature) |
480 | { | 666 | { |
481 | var iter = GetMessageIterator(); | 667 | var iter = GetMessageIterator(); |
482 | return iter.AppendOpenContainer(signature); | 668 | return iter.AppendOpenContainer(signature); |
483 | } | 669 | } |
484 | 670 | ||
671 | /// <summary> | ||
672 | /// Get the main <see cref="eldbus.MessageIterator" /> from the <see cref="eldbus.Message" />. | ||
673 | /// <para>Since EFL 1.23.</para> | ||
674 | /// </summary> | ||
675 | /// <returns>A <see cref="eldbus.MessageIterator" /></returns> | ||
485 | public eldbus.MessageIterator GetMessageIterator() | 676 | public eldbus.MessageIterator GetMessageIterator() |
486 | { | 677 | { |
487 | CheckHandle(); | 678 | CheckHandle(); |
@@ -495,9 +686,19 @@ public class Message : IDisposable | |||
495 | } | 686 | } |
496 | } | 687 | } |
497 | 688 | ||
689 | /// <summary> | ||
690 | /// Iterator to a <see cref="eldbus.Message" />. | ||
691 | /// <para>Since EFL 1.23.</para> | ||
692 | /// </summary> | ||
498 | public class MessageIterator | 693 | public class MessageIterator |
499 | { | 694 | { |
695 | [EditorBrowsable(EditorBrowsableState.Never)] | ||
500 | public IntPtr Handle {get;set;} = IntPtr.Zero; | 696 | public IntPtr Handle {get;set;} = IntPtr.Zero; |
697 | |||
698 | /// <summary> | ||
699 | /// The parent of the iterator. | ||
700 | /// <para>Since EFL 1.23.</para> | ||
701 | /// </summary> | ||
501 | public IntPtr Parent {get;set;} = IntPtr.Zero; | 702 | public IntPtr Parent {get;set;} = IntPtr.Zero; |
502 | 703 | ||
503 | private void InitNew(IntPtr handle, IntPtr parent) | 704 | private void InitNew(IntPtr handle, IntPtr parent) |
@@ -515,11 +716,17 @@ public class MessageIterator | |||
515 | } | 716 | } |
516 | } | 717 | } |
517 | 718 | ||
719 | [EditorBrowsable(EditorBrowsableState.Never)] | ||
518 | public MessageIterator(IntPtr handle, IntPtr parent) | 720 | public MessageIterator(IntPtr handle, IntPtr parent) |
519 | { | 721 | { |
520 | InitNew(handle, parent); | 722 | InitNew(handle, parent); |
521 | } | 723 | } |
522 | 724 | ||
725 | /// <summary> | ||
726 | /// Releases the native handler. | ||
727 | /// <para>Since EFL 1.23.</para> | ||
728 | /// </summary> | ||
729 | /// <returns>The native handler.</returns> | ||
523 | public IntPtr Release() | 730 | public IntPtr Release() |
524 | { | 731 | { |
525 | IntPtr h = Handle; | 732 | IntPtr h = Handle; |
@@ -528,6 +735,11 @@ public class MessageIterator | |||
528 | return h; | 735 | return h; |
529 | } | 736 | } |
530 | 737 | ||
738 | /// <summary> | ||
739 | /// Appends the arguments. | ||
740 | /// <para>Since EFL 1.23.</para> | ||
741 | /// </summary> | ||
742 | /// <param name="args">The arguments to be appended.</param> | ||
531 | public void Append(params BasicMessageArgument[] args) | 743 | public void Append(params BasicMessageArgument[] args) |
532 | { | 744 | { |
533 | CheckHandle(); | 745 | CheckHandle(); |
@@ -538,6 +750,12 @@ public class MessageIterator | |||
538 | } | 750 | } |
539 | } | 751 | } |
540 | 752 | ||
753 | /// <summary> | ||
754 | /// Create and append a typed iterator to another iterator. | ||
755 | /// <para>Since EFL 1.23.</para> | ||
756 | /// </summary> | ||
757 | /// <param name="signature">The signature to be appended.</param> | ||
758 | /// <returns>A <see cref="eldbus.MessageIterator" />.</returns> | ||
541 | public eldbus.MessageIterator AppendOpenContainer(string signature) | 759 | public eldbus.MessageIterator AppendOpenContainer(string signature) |
542 | { | 760 | { |
543 | CheckHandle(); | 761 | CheckHandle(); |
@@ -561,6 +779,13 @@ public class MessageIterator | |||
561 | return new eldbus.MessageIterator(new_iter, Handle); | 779 | return new eldbus.MessageIterator(new_iter, Handle); |
562 | } | 780 | } |
563 | 781 | ||
782 | /// <summary> | ||
783 | /// Appends a signature to a container. | ||
784 | /// <para>Since EFL 1.23.</para> | ||
785 | /// </summary> | ||
786 | /// <param name="type">The type of the iterator.</param> | ||
787 | /// <param name="contained_signature">The signature to be appended.</param> | ||
788 | /// <returns>A <see cref="eldbus.MessageIterator" />.</returns> | ||
564 | public eldbus.MessageIterator AppendOpenContainer(char type, string contained_signature) | 789 | public eldbus.MessageIterator AppendOpenContainer(char type, string contained_signature) |
565 | { | 790 | { |
566 | CheckHandle(); | 791 | CheckHandle(); |
@@ -575,6 +800,10 @@ public class MessageIterator | |||
575 | return new eldbus.MessageIterator(new_iter, Handle); | 800 | return new eldbus.MessageIterator(new_iter, Handle); |
576 | } | 801 | } |
577 | 802 | ||
803 | /// <summary> | ||
804 | /// Closes a container-typed value appended to the message. | ||
805 | /// <para>Since EFL 1.23.</para> | ||
806 | /// </summary> | ||
578 | public void CloseContainer() | 807 | public void CloseContainer() |
579 | { | 808 | { |
580 | CheckHandle(); | 809 | CheckHandle(); |
@@ -593,17 +822,38 @@ public class MessageIterator | |||
593 | Parent = IntPtr.Zero; | 822 | Parent = IntPtr.Zero; |
594 | } | 823 | } |
595 | 824 | ||
825 | /// <summary> | ||
826 | /// Returns the current signature of a message iterator. | ||
827 | /// <para>Since EFL 1.23.</para> | ||
828 | /// </summary> | ||
829 | /// <returns>A string containing the message iterator signature.</returns> | ||
596 | public string GetSignature() | 830 | public string GetSignature() |
597 | { | 831 | { |
598 | return eldbus_message_iter_signature_get(Handle); | 832 | return eldbus_message_iter_signature_get(Handle); |
599 | } | 833 | } |
600 | 834 | ||
835 | /// <summary> | ||
836 | /// Get a complete type from <see cref="eldbus.MessageIterator" /> if is | ||
837 | /// not at the end of iterator and move to next field. | ||
838 | /// <para>Since EFL 1.23.</para> | ||
839 | /// </summary> | ||
840 | /// <param name="val">A byte that store the data.</param> | ||
841 | /// <returns>if iterator was reach to end or if the type different of the | ||
842 | /// type that iterator pointes return false.</returns> | ||
601 | public bool GetAndNext(out byte val) | 843 | public bool GetAndNext(out byte val) |
602 | { | 844 | { |
603 | CheckHandle(); | 845 | CheckHandle(); |
604 | return eldbus_message_iter_get_and_next(Handle, Argument.ByteType.Code, out val); | 846 | return eldbus_message_iter_get_and_next(Handle, Argument.ByteType.Code, out val); |
605 | } | 847 | } |
606 | 848 | ||
849 | /// <summary> | ||
850 | /// Get a complete type from <see cref="eldbus.MessageIterator" /> if is | ||
851 | /// not at the end of iterator and move to next field. | ||
852 | /// <para>Since EFL 1.23.</para> | ||
853 | /// </summary> | ||
854 | /// <param name="val">A bool that store the data.</param> | ||
855 | /// <returns>if iterator was reach to end or if the type different of the | ||
856 | /// type that iterator pointes return false.</returns> | ||
607 | public bool GetAndNext(out bool val) | 857 | public bool GetAndNext(out bool val) |
608 | { | 858 | { |
609 | CheckHandle(); | 859 | CheckHandle(); |
@@ -613,48 +863,112 @@ public class MessageIterator | |||
613 | return r; | 863 | return r; |
614 | } | 864 | } |
615 | 865 | ||
866 | /// <summary> | ||
867 | /// Get a complete type from <see cref="eldbus.MessageIterator" /> if is | ||
868 | /// not at the end of iterator and move to next field. | ||
869 | /// <para>Since EFL 1.23.</para> | ||
870 | /// </summary> | ||
871 | /// <param name="val">A int16 that store the data.</param> | ||
872 | /// <returns>if iterator was reach to end or if the type different of the | ||
873 | /// type that iterator pointes return false.</returns> | ||
616 | public bool GetAndNext(out Int16 val) | 874 | public bool GetAndNext(out Int16 val) |
617 | { | 875 | { |
618 | CheckHandle(); | 876 | CheckHandle(); |
619 | return eldbus_message_iter_get_and_next(Handle, Argument.Int16Type.Code, out val); | 877 | return eldbus_message_iter_get_and_next(Handle, Argument.Int16Type.Code, out val); |
620 | } | 878 | } |
621 | 879 | ||
880 | /// <summary> | ||
881 | /// Get a complete type from <see cref="eldbus.MessageIterator" /> if is | ||
882 | /// not at the end of iterator and move to next field. | ||
883 | /// <para>Since EFL 1.23.</para> | ||
884 | /// </summary> | ||
885 | /// <param name="val">A unsigned int16 that store the data.</param> | ||
886 | /// <returns>if iterator was reach to end or if the type different of the | ||
887 | /// type that iterator pointes return false.</returns> | ||
622 | public bool GetAndNext(out UInt16 val) | 888 | public bool GetAndNext(out UInt16 val) |
623 | { | 889 | { |
624 | CheckHandle(); | 890 | CheckHandle(); |
625 | return eldbus_message_iter_get_and_next(Handle, Argument.UInt16Type.Code, out val); | 891 | return eldbus_message_iter_get_and_next(Handle, Argument.UInt16Type.Code, out val); |
626 | } | 892 | } |
627 | 893 | ||
894 | /// <summary> | ||
895 | /// Get a complete type from <see cref="eldbus.MessageIterator" /> if is | ||
896 | /// not at the end of iterator and move to next field. | ||
897 | /// <para>Since EFL 1.23.</para> | ||
898 | /// </summary> | ||
899 | /// <param name="val">A int32 that store the data.</param> | ||
900 | /// <returns>if iterator was reach to end or if the type different of the | ||
901 | /// type that iterator pointes return false.</returns> | ||
628 | public bool GetAndNext(out Int32 val) | 902 | public bool GetAndNext(out Int32 val) |
629 | { | 903 | { |
630 | CheckHandle(); | 904 | CheckHandle(); |
631 | return eldbus_message_iter_get_and_next(Handle, Argument.Int32Type.Code, out val); | 905 | return eldbus_message_iter_get_and_next(Handle, Argument.Int32Type.Code, out val); |
632 | } | 906 | } |
633 | 907 | ||
908 | /// <summary> | ||
909 | /// Get a complete type from <see cref="eldbus.MessageIterator" /> if is | ||
910 | /// not at the end of iterator and move to next field. | ||
911 | /// <para>Since EFL 1.23.</para> | ||
912 | /// </summary> | ||
913 | /// <param name="val">A unsigned int32 that store the data.</param> | ||
914 | /// <returns>if iterator was reach to end or if the type different of the | ||
915 | /// type that iterator pointes return false.</returns> | ||
634 | public bool GetAndNext(out UInt32 val) | 916 | public bool GetAndNext(out UInt32 val) |
635 | { | 917 | { |
636 | CheckHandle(); | 918 | CheckHandle(); |
637 | return eldbus_message_iter_get_and_next(Handle, Argument.UInt32Type.Code, out val); | 919 | return eldbus_message_iter_get_and_next(Handle, Argument.UInt32Type.Code, out val); |
638 | } | 920 | } |
639 | 921 | ||
922 | /// <summary> | ||
923 | /// Get a complete type from <see cref="eldbus.MessageIterator" /> if is | ||
924 | /// not at the end of iterator and move to next field. | ||
925 | /// <para>Since EFL 1.23.</para> | ||
926 | /// </summary> | ||
927 | /// <param name="val">A int64 that store the data.</param> | ||
928 | /// <returns>if iterator was reach to end or if the type different of the | ||
929 | /// type that iterator pointes return false.</returns> | ||
640 | public bool GetAndNext(out Int64 val) | 930 | public bool GetAndNext(out Int64 val) |
641 | { | 931 | { |
642 | CheckHandle(); | 932 | CheckHandle(); |
643 | return eldbus_message_iter_get_and_next(Handle, Argument.Int64Type.Code, out val); | 933 | return eldbus_message_iter_get_and_next(Handle, Argument.Int64Type.Code, out val); |
644 | } | 934 | } |
645 | 935 | ||
936 | /// <summary> | ||
937 | /// Get a complete type from <see cref="eldbus.MessageIterator" /> if is | ||
938 | /// not at the end of iterator and move to next field. | ||
939 | /// <para>Since EFL 1.23.</para> | ||
940 | /// </summary> | ||
941 | /// <param name="val">A unsigned int64 that store the data.</param> | ||
942 | /// <returns>if iterator was reach to end or if the type different of the | ||
943 | /// type that iterator pointes return false.</returns> | ||
646 | public bool GetAndNext(out UInt64 val) | 944 | public bool GetAndNext(out UInt64 val) |
647 | { | 945 | { |
648 | CheckHandle(); | 946 | CheckHandle(); |
649 | return eldbus_message_iter_get_and_next(Handle, Argument.UInt64Type.Code, out val); | 947 | return eldbus_message_iter_get_and_next(Handle, Argument.UInt64Type.Code, out val); |
650 | } | 948 | } |
651 | 949 | ||
950 | /// <summary> | ||
951 | /// Get a complete type from <see cref="eldbus.MessageIterator" /> if is | ||
952 | /// not at the end of iterator and move to next field. | ||
953 | /// <para>Since EFL 1.23.</para> | ||
954 | /// </summary> | ||
955 | /// <param name="val">A double that store the data.</param> | ||
956 | /// <returns>if iterator was reach to end or if the type different of the | ||
957 | /// type that iterator pointes return false.</returns> | ||
652 | public bool GetAndNext(out double val) | 958 | public bool GetAndNext(out double val) |
653 | { | 959 | { |
654 | CheckHandle(); | 960 | CheckHandle(); |
655 | return eldbus_message_iter_get_and_next(Handle, Argument.DoubleType.Code, out val); | 961 | return eldbus_message_iter_get_and_next(Handle, Argument.DoubleType.Code, out val); |
656 | } | 962 | } |
657 | 963 | ||
964 | /// <summary> | ||
965 | /// Get a complete type from <see cref="eldbus.MessageIterator" /> if is | ||
966 | /// not at the end of iterator and move to next field. | ||
967 | /// <para>Since EFL 1.23.</para> | ||
968 | /// </summary> | ||
969 | /// <param name="val">A string that store the data.</param> | ||
970 | /// <returns>if iterator was reach to end or if the type different of the | ||
971 | /// type that iterator pointes return false.</returns> | ||
658 | public bool GetAndNext(out string val) | 972 | public bool GetAndNext(out string val) |
659 | { | 973 | { |
660 | CheckHandle(); | 974 | CheckHandle(); |
@@ -664,6 +978,14 @@ public class MessageIterator | |||
664 | return r; | 978 | return r; |
665 | } | 979 | } |
666 | 980 | ||
981 | /// <summary> | ||
982 | /// Get a complete type from <see cref="eldbus.MessageIterator" /> if is | ||
983 | /// not at the end of iterator and move to next field. | ||
984 | /// <para>Since EFL 1.23.</para> | ||
985 | /// </summary> | ||
986 | /// <param name="val">A <see cref="eldbus.ObjectPath" /> that store the data.</param> | ||
987 | /// <returns>if iterator was reach to end or if the type different of the | ||
988 | /// type that iterator pointes return false.</returns> | ||
667 | public bool GetAndNext(out eldbus.ObjectPath val) | 989 | public bool GetAndNext(out eldbus.ObjectPath val) |
668 | { | 990 | { |
669 | CheckHandle(); | 991 | CheckHandle(); |
@@ -673,6 +995,14 @@ public class MessageIterator | |||
673 | return r; | 995 | return r; |
674 | } | 996 | } |
675 | 997 | ||
998 | /// <summary> | ||
999 | /// Get a complete type from <see cref="eldbus.MessageIterator" /> if is | ||
1000 | /// not at the end of iterator and move to next field. | ||
1001 | /// <para>Since EFL 1.23.</para> | ||
1002 | /// </summary> | ||
1003 | /// <param name="val">A <see cref="eldbus.SignatureString" /> that store the data.</param> | ||
1004 | /// <returns>if iterator was reach to end or if the type different of the | ||
1005 | /// type that iterator pointes return false.</returns> | ||
676 | public bool GetAndNext(out eldbus.SignatureString val) | 1006 | public bool GetAndNext(out eldbus.SignatureString val) |
677 | { | 1007 | { |
678 | CheckHandle(); | 1008 | CheckHandle(); |
@@ -682,6 +1012,14 @@ public class MessageIterator | |||
682 | return r; | 1012 | return r; |
683 | } | 1013 | } |
684 | 1014 | ||
1015 | /// <summary> | ||
1016 | /// Get a complete type from <see cref="eldbus.MessageIterator" /> if is | ||
1017 | /// not at the end of iterator and move to next field. | ||
1018 | /// <para>Since EFL 1.23.</para> | ||
1019 | /// </summary> | ||
1020 | /// <param name="val">A <see cref="eldbus.UnixFd" /> that store the data.</param> | ||
1021 | /// <returns>if iterator was reach to end or if the type different of the | ||
1022 | /// type that iterator pointes return false.</returns> | ||
685 | public bool GetAndNext(out eldbus.UnixFd val) | 1023 | public bool GetAndNext(out eldbus.UnixFd val) |
686 | { | 1024 | { |
687 | CheckHandle(); | 1025 | CheckHandle(); |
@@ -691,6 +1029,17 @@ public class MessageIterator | |||
691 | return r; | 1029 | return r; |
692 | } | 1030 | } |
693 | 1031 | ||
1032 | /// <summary> | ||
1033 | /// Get a complete type from <see cref="eldbus.MessageIterator" /> if is | ||
1034 | /// not at the end of iterator and move to next field. | ||
1035 | /// <para>Since EFL 1.23.</para> | ||
1036 | /// </summary> | ||
1037 | /// <param name="iter">A <see cref="eldbus.MessageIterator" /> that store | ||
1038 | /// the data.</param> | ||
1039 | /// <param name="typecode">The type of the | ||
1040 | /// <see cref="eldbus.MessageIterator" />.</param> | ||
1041 | /// <returns>if iterator was reach to end or if the type different of the | ||
1042 | /// type that iterator pointes return false.</returns> | ||
694 | public bool GetAndNext(out eldbus.MessageIterator iter, char typecode) | 1043 | public bool GetAndNext(out eldbus.MessageIterator iter, char typecode) |
695 | { | 1044 | { |
696 | CheckHandle(); | 1045 | CheckHandle(); |
@@ -706,6 +1055,17 @@ public class MessageIterator | |||
706 | return r; | 1055 | return r; |
707 | } | 1056 | } |
708 | 1057 | ||
1058 | /// <summary> | ||
1059 | /// Get a complete type from <see cref="eldbus.MessageIterator" /> if is | ||
1060 | /// not at the end of iterator and move to next field. | ||
1061 | /// <para>Since EFL 1.23.</para> | ||
1062 | /// </summary> | ||
1063 | /// <param name="iter">A <see cref="eldbus.MessageIterator" /> that store | ||
1064 | /// the data.</param> | ||
1065 | /// <param name="signatue">The signatue of the | ||
1066 | /// <see cref="eldbus.MessageIterator" />.</param> | ||
1067 | /// <returns>if iterator was reach to end or if the type different of the | ||
1068 | /// type that iterator pointes return false.</returns> | ||
709 | public bool GetAndNext(out eldbus.MessageIterator iter, string signatue) | 1069 | public bool GetAndNext(out eldbus.MessageIterator iter, string signatue) |
710 | { | 1070 | { |
711 | CheckHandle(); | 1071 | CheckHandle(); |
@@ -720,12 +1080,22 @@ public class MessageIterator | |||
720 | return Next(); | 1080 | return Next(); |
721 | } | 1081 | } |
722 | 1082 | ||
1083 | /// <summary> | ||
1084 | /// Get a basic type from <see cref="eldbus.MessageIterator" />. | ||
1085 | /// <para>Since EFL 1.23.</para> | ||
1086 | /// </summary> | ||
1087 | /// <param name="val">The basic type of the iterator.</param> | ||
723 | public void Get(out byte val) | 1088 | public void Get(out byte val) |
724 | { | 1089 | { |
725 | CheckHandle(); | 1090 | CheckHandle(); |
726 | eldbus_message_iter_basic_get(Handle, out val); | 1091 | eldbus_message_iter_basic_get(Handle, out val); |
727 | } | 1092 | } |
728 | 1093 | ||
1094 | /// <summary> | ||
1095 | /// Get a basic type from <see cref="eldbus.MessageIterator" />. | ||
1096 | /// <para>Since EFL 1.23.</para> | ||
1097 | /// </summary> | ||
1098 | /// <param name="val">The basic type of the iterator.</param> | ||
729 | public void Get(out bool val) | 1099 | public void Get(out bool val) |
730 | { | 1100 | { |
731 | CheckHandle(); | 1101 | CheckHandle(); |
@@ -734,48 +1104,88 @@ public class MessageIterator | |||
734 | val = (aux != 0); | 1104 | val = (aux != 0); |
735 | } | 1105 | } |
736 | 1106 | ||
1107 | /// <summary> | ||
1108 | /// Get a basic type from <see cref="eldbus.MessageIterator" />. | ||
1109 | /// <para>Since EFL 1.23.</para> | ||
1110 | /// </summary> | ||
1111 | /// <param name="val">The basic type of the iterator.</param> | ||
737 | public void Get(out Int16 val) | 1112 | public void Get(out Int16 val) |
738 | { | 1113 | { |
739 | CheckHandle(); | 1114 | CheckHandle(); |
740 | eldbus_message_iter_basic_get(Handle, out val); | 1115 | eldbus_message_iter_basic_get(Handle, out val); |
741 | } | 1116 | } |
742 | 1117 | ||
1118 | /// <summary> | ||
1119 | /// Get a basic type from <see cref="eldbus.MessageIterator" />. | ||
1120 | /// <para>Since EFL 1.23.</para> | ||
1121 | /// </summary> | ||
1122 | /// <param name="val">The basic type of the iterator.</param> | ||
743 | public void Get(out UInt16 val) | 1123 | public void Get(out UInt16 val) |
744 | { | 1124 | { |
745 | CheckHandle(); | 1125 | CheckHandle(); |
746 | eldbus_message_iter_basic_get(Handle, out val); | 1126 | eldbus_message_iter_basic_get(Handle, out val); |
747 | } | 1127 | } |
748 | 1128 | ||
1129 | /// <summary> | ||
1130 | /// Get a basic type from <see cref="eldbus.MessageIterator" />. | ||
1131 | /// <para>Since EFL 1.23.</para> | ||
1132 | /// </summary> | ||
1133 | /// <param name="val">The basic type of the iterator.</param> | ||
749 | public void Get(out Int32 val) | 1134 | public void Get(out Int32 val) |
750 | { | 1135 | { |
751 | CheckHandle(); | 1136 | CheckHandle(); |
752 | eldbus_message_iter_basic_get(Handle, out val); | 1137 | eldbus_message_iter_basic_get(Handle, out val); |
753 | } | 1138 | } |
754 | 1139 | ||
1140 | /// <summary> | ||
1141 | /// Get a basic type from <see cref="eldbus.MessageIterator" />. | ||
1142 | /// <para>Since EFL 1.23.</para> | ||
1143 | /// </summary> | ||
1144 | /// <param name="val">The basic type of the iterator.</param> | ||
755 | public void Get(out UInt32 val) | 1145 | public void Get(out UInt32 val) |
756 | { | 1146 | { |
757 | CheckHandle(); | 1147 | CheckHandle(); |
758 | eldbus_message_iter_basic_get(Handle, out val); | 1148 | eldbus_message_iter_basic_get(Handle, out val); |
759 | } | 1149 | } |
760 | 1150 | ||
1151 | /// <summary> | ||
1152 | /// Get a basic type from <see cref="eldbus.MessageIterator" />. | ||
1153 | /// <para>Since EFL 1.23.</para> | ||
1154 | /// </summary> | ||
1155 | /// <param name="val">The basic type of the iterator.</param> | ||
761 | public void Get(out Int64 val) | 1156 | public void Get(out Int64 val) |
762 | { | 1157 | { |
763 | CheckHandle(); | 1158 | CheckHandle(); |
764 | eldbus_message_iter_basic_get(Handle, out val); | 1159 | eldbus_message_iter_basic_get(Handle, out val); |
765 | } | 1160 | } |
766 | 1161 | ||
1162 | /// <summary> | ||
1163 | /// Get a basic type from <see cref="eldbus.MessageIterator" />. | ||
1164 | /// <para>Since EFL 1.23.</para> | ||
1165 | /// </summary> | ||
1166 | /// <param name="val">The basic type of the iterator.</param> | ||
767 | public void Get(out UInt64 val) | 1167 | public void Get(out UInt64 val) |
768 | { | 1168 | { |
769 | CheckHandle(); | 1169 | CheckHandle(); |
770 | eldbus_message_iter_basic_get(Handle, out val); | 1170 | eldbus_message_iter_basic_get(Handle, out val); |
771 | } | 1171 | } |
772 | 1172 | ||
1173 | /// <summary> | ||
1174 | /// Get a basic type from <see cref="eldbus.MessageIterator" />. | ||
1175 | /// <para>Since EFL 1.23.</para> | ||
1176 | /// </summary> | ||
1177 | /// <param name="val">The basic type of the iterator.</param> | ||
773 | public void Get(out double val) | 1178 | public void Get(out double val) |
774 | { | 1179 | { |
775 | CheckHandle(); | 1180 | CheckHandle(); |
776 | eldbus_message_iter_basic_get(Handle, out val); | 1181 | eldbus_message_iter_basic_get(Handle, out val); |
777 | } | 1182 | } |
778 | 1183 | ||
1184 | /// <summary> | ||
1185 | /// Get a basic type from <see cref="eldbus.MessageIterator" />. | ||
1186 | /// <para>Since EFL 1.23.</para> | ||
1187 | /// </summary> | ||
1188 | /// <param name="val">The basic type of the iterator.</param> | ||
779 | public void Get(out string val) | 1189 | public void Get(out string val) |
780 | { | 1190 | { |
781 | CheckHandle(); | 1191 | CheckHandle(); |
@@ -784,6 +1194,11 @@ public class MessageIterator | |||
784 | val = Eina.StringConversion.NativeUtf8ToManagedString(aux); | 1194 | val = Eina.StringConversion.NativeUtf8ToManagedString(aux); |
785 | } | 1195 | } |
786 | 1196 | ||
1197 | /// <summary> | ||
1198 | /// Get a basic type from <see cref="eldbus.MessageIterator" />. | ||
1199 | /// <para>Since EFL 1.23.</para> | ||
1200 | /// </summary> | ||
1201 | /// <param name="val">The basic type of the iterator.</param> | ||
787 | public void Get(out eldbus.ObjectPath val) | 1202 | public void Get(out eldbus.ObjectPath val) |
788 | { | 1203 | { |
789 | CheckHandle(); | 1204 | CheckHandle(); |
@@ -792,6 +1207,11 @@ public class MessageIterator | |||
792 | val = Eina.StringConversion.NativeUtf8ToManagedString(aux); | 1207 | val = Eina.StringConversion.NativeUtf8ToManagedString(aux); |
793 | } | 1208 | } |
794 | 1209 | ||
1210 | /// <summary> | ||
1211 | /// Get a basic type from <see cref="eldbus.MessageIterator" />. | ||
1212 | /// <para>Since EFL 1.23.</para> | ||
1213 | /// </summary> | ||
1214 | /// <param name="val">The basic type of the iterator.</param> | ||
795 | public void Get(out eldbus.SignatureString val) | 1215 | public void Get(out eldbus.SignatureString val) |
796 | { | 1216 | { |
797 | CheckHandle(); | 1217 | CheckHandle(); |
@@ -800,6 +1220,11 @@ public class MessageIterator | |||
800 | val = Eina.StringConversion.NativeUtf8ToManagedString(aux); | 1220 | val = Eina.StringConversion.NativeUtf8ToManagedString(aux); |
801 | } | 1221 | } |
802 | 1222 | ||
1223 | /// <summary> | ||
1224 | /// Get a basic type from <see cref="eldbus.MessageIterator" />. | ||
1225 | /// <para>Since EFL 1.23.</para> | ||
1226 | /// </summary> | ||
1227 | /// <param name="val">The basic type of the iterator.</param> | ||
803 | public void Get(out eldbus.UnixFd val) | 1228 | public void Get(out eldbus.UnixFd val) |
804 | { | 1229 | { |
805 | CheckHandle(); | 1230 | CheckHandle(); |
@@ -808,6 +1233,12 @@ public class MessageIterator | |||
808 | val = aux; | 1233 | val = aux; |
809 | } | 1234 | } |
810 | 1235 | ||
1236 | /// <summary> | ||
1237 | /// Get a basic type from <see cref="eldbus.MessageIterator" />. | ||
1238 | /// <para>Since EFL 1.23.</para> | ||
1239 | /// </summary> | ||
1240 | /// <param name="iter">The basic type of the iterator.</param> | ||
1241 | /// <param name="signatue">The signatue of the <see cref="eldbus.MessageIterator" />.</param> | ||
811 | public void Get(out eldbus.MessageIterator iter, string signatue) | 1242 | public void Get(out eldbus.MessageIterator iter, string signatue) |
812 | { | 1243 | { |
813 | CheckHandle(); | 1244 | CheckHandle(); |
@@ -820,12 +1251,21 @@ public class MessageIterator | |||
820 | iter = new eldbus.MessageIterator(hdl, Handle); | 1251 | iter = new eldbus.MessageIterator(hdl, Handle); |
821 | } | 1252 | } |
822 | 1253 | ||
1254 | /// <summary> | ||
1255 | /// Moves the iterator to the next field, if any. | ||
1256 | /// <para>Since EFL 1.23.</para> | ||
1257 | /// </summary> | ||
1258 | /// <returns>If iterator was reach to end return false.</returns> | ||
823 | public bool Next() | 1259 | public bool Next() |
824 | { | 1260 | { |
825 | CheckHandle(); | 1261 | CheckHandle(); |
826 | return eldbus_message_iter_next(Handle); | 1262 | return eldbus_message_iter_next(Handle); |
827 | } | 1263 | } |
828 | 1264 | ||
1265 | /// <summary> | ||
1266 | /// Manually delete the iterator. | ||
1267 | /// <para>Since EFL 1.23.</para> | ||
1268 | /// </summary> | ||
829 | public void Del() | 1269 | public void Del() |
830 | { | 1270 | { |
831 | CheckHandle(); | 1271 | CheckHandle(); |
@@ -846,6 +1286,11 @@ public class MessageIterator | |||
846 | } | 1286 | } |
847 | } | 1287 | } |
848 | 1288 | ||
1289 | /// <summary> | ||
1290 | /// Copy the iterator to a given array. | ||
1291 | /// <para>Since EFL 1.23.</para> | ||
1292 | /// </summary> | ||
1293 | /// <param name="array">The array to receive the copy.</param> | ||
849 | public void GetFixedArray(out byte[] array) | 1294 | public void GetFixedArray(out byte[] array) |
850 | { | 1295 | { |
851 | IntPtr value; | 1296 | IntPtr value; |
@@ -855,6 +1300,11 @@ public class MessageIterator | |||
855 | Marshal.Copy(value, array, 0, n_elements); | 1300 | Marshal.Copy(value, array, 0, n_elements); |
856 | } | 1301 | } |
857 | 1302 | ||
1303 | /// <summary> | ||
1304 | /// Copy the iterator to a given array. | ||
1305 | /// <para>Since EFL 1.23.</para> | ||
1306 | /// </summary> | ||
1307 | /// <param name="array">The array to receive the copy.</param> | ||
858 | public void GetFixedArray(out bool[] array) | 1308 | public void GetFixedArray(out bool[] array) |
859 | { | 1309 | { |
860 | IntPtr value; | 1310 | IntPtr value; |
@@ -867,6 +1317,11 @@ public class MessageIterator | |||
867 | array = Array.ConvertAll(aux, Convert.ToBoolean); | 1317 | array = Array.ConvertAll(aux, Convert.ToBoolean); |
868 | } | 1318 | } |
869 | 1319 | ||
1320 | /// <summary> | ||
1321 | /// Copy the iterator to a given array. | ||
1322 | /// <para>Since EFL 1.23.</para> | ||
1323 | /// </summary> | ||
1324 | /// <param name="array">The array to receive the copy.</param> | ||
870 | public void GetFixedArray(out Int16[] array) | 1325 | public void GetFixedArray(out Int16[] array) |
871 | { | 1326 | { |
872 | IntPtr value; | 1327 | IntPtr value; |
@@ -885,6 +1340,11 @@ public class MessageIterator | |||
885 | // Marshal.Copy(value, array, 0, n_elements); | 1340 | // Marshal.Copy(value, array, 0, n_elements); |
886 | // } | 1341 | // } |
887 | 1342 | ||
1343 | /// <summary> | ||
1344 | /// Copy the iterator to a given array. | ||
1345 | /// <para>Since EFL 1.23.</para> | ||
1346 | /// </summary> | ||
1347 | /// <param name="array">The array to receive the copy.</param> | ||
888 | public void GetFixedArray(out Int32[] array) | 1348 | public void GetFixedArray(out Int32[] array) |
889 | { | 1349 | { |
890 | IntPtr value; | 1350 | IntPtr value; |
@@ -903,6 +1363,11 @@ public class MessageIterator | |||
903 | // Marshal.Copy(value, array, 0, n_elements); | 1363 | // Marshal.Copy(value, array, 0, n_elements); |
904 | // } | 1364 | // } |
905 | 1365 | ||
1366 | /// <summary> | ||
1367 | /// Copy the iterator to a given array. | ||
1368 | /// <para>Since EFL 1.23.</para> | ||
1369 | /// </summary> | ||
1370 | /// <param name="array">The array to receive the copy.</param> | ||
906 | public void GetFixedArray(out Int64[] array) | 1371 | public void GetFixedArray(out Int64[] array) |
907 | { | 1372 | { |
908 | IntPtr value; | 1373 | IntPtr value; |
@@ -921,6 +1386,11 @@ public class MessageIterator | |||
921 | // Marshal.Copy(value, array, 0, n_elements); | 1386 | // Marshal.Copy(value, array, 0, n_elements); |
922 | // } | 1387 | // } |
923 | 1388 | ||
1389 | /// <summary> | ||
1390 | /// Copy the iterator to a given array. | ||
1391 | /// <para>Since EFL 1.23.</para> | ||
1392 | /// </summary> | ||
1393 | /// <param name="array">The array to receive the copy.</param> | ||
924 | public void GetFixedArray(out eldbus.UnixFd[] array) | 1394 | public void GetFixedArray(out eldbus.UnixFd[] array) |
925 | { | 1395 | { |
926 | IntPtr value; | 1396 | IntPtr value; |