NDesk.DBus.MessageWriter.Write C# (CSharp) Method

Write() public method

public Write ( DType dtype, object val ) : void
dtype DType
val object
return void
        public void Write(DType dtype, object val)
        {
            switch (dtype)
            {
                case DType.Byte:
                {
                    Write ((byte)val);
                }
                break;
                case DType.Boolean:
                {
                    Write ((bool)val);
                }
                break;
                case DType.Int16:
                {
                    Write ((short)val);
                }
                break;
                case DType.UInt16:
                {
                    Write ((ushort)val);
                }
                break;
                case DType.Int32:
                {
                    Write ((int)val);
                }
                break;
                case DType.UInt32:
                {
                    Write ((uint)val);
                }
                break;
                case DType.Int64:
                {
                    Write ((long)val);
                }
                break;
                case DType.UInt64:
                {
                    Write ((ulong)val);
                }
                break;
            #if !DISABLE_SINGLE
                case DType.Single:
                {
                    Write ((float)val);
                }
                break;
            #endif
                case DType.Double:
                {
                    Write ((double)val);
                }
                break;
                case DType.String:
                {
                    Write ((string)val);
                }
                break;
                case DType.ObjectPath:
                {
                    Write ((ObjectPath)val);
                }
                break;
                case DType.Signature:
                {
                    Write ((Signature)val);
                }
                break;
                case DType.Variant:
                {
                    Write ((object)val);
                }
                break;
                default:
                throw new Exception ("Unhandled D-Bus type: " + dtype);
            }
        }

Same methods

MessageWriter::Write ( NDesk.DBus.ObjectPath val ) : void
MessageWriter::Write ( Signature val ) : void
MessageWriter::Write ( Type type, object val ) : void
MessageWriter::Write ( bool val ) : void
MessageWriter::Write ( byte val ) : void
MessageWriter::Write ( double val ) : void
MessageWriter::Write ( float val ) : void
MessageWriter::Write ( int val ) : void
MessageWriter::Write ( long val ) : void
MessageWriter::Write ( object val ) : void
MessageWriter::Write ( short val ) : void
MessageWriter::Write ( string val ) : void
MessageWriter::Write ( uint val ) : void
MessageWriter::Write ( ulong val ) : void
MessageWriter::Write ( ushort val ) : void

Usage Example

		public void HandleMethodCall (MethodCall method_call)
		{
			Type type = obj.GetType ();
			//object retObj = type.InvokeMember (msg.Member, BindingFlags.InvokeMethod, null, obj, MessageHelper.GetDynamicValues (msg));

			//TODO: there is no member name mapping for properties etc. yet
			MethodInfo mi = Mapper.GetMethod (type, method_call);

			if (mi == null) {
				conn.MaybeSendUnknownMethodError (method_call);
				return;
			}

			object retObj = null;
			try {
				object[] inArgs = MessageHelper.GetDynamicValues (method_call.message, mi.GetParameters ());
				retObj = mi.Invoke (obj, inArgs);
			} catch (TargetInvocationException e) {
				if (!method_call.message.ReplyExpected)
					return;

				Exception ie = e.InnerException;
				//TODO: complete exception sending support

				Error error = new Error (Mapper.GetInterfaceName (ie.GetType ()), method_call.message.Header.Serial);
				error.message.Signature = new Signature (DType.String);

				MessageWriter writer = new MessageWriter (Connection.NativeEndianness);
				writer.connection = conn;
				writer.Write (ie.Message);
				error.message.Body = writer.ToArray ();

				//TODO: we should be more strict here, but this fallback was added as a quick fix for p2p
				if (method_call.Sender != null)
					error.message.Header.Fields[FieldCode.Destination] = method_call.Sender;

				conn.Send (error.message);
				return;
			}

			if (method_call.message.ReplyExpected) {
				/*
				object[] retObjs;

				if (retObj == null) {
					retObjs = new object[0];
				} else {
					retObjs = new object[1];
					retObjs[0] = retObj;
				}

				Message reply = ConstructReplyFor (method_call, retObjs);
				*/
				Message reply = MessageHelper.ConstructReplyFor (method_call, mi.ReturnType, retObj);
				conn.Send (reply);
			}
		}
All Usage Examples Of NDesk.DBus.MessageWriter::Write