public IncorrectTypeException(Udbus.Types.dbus_type expectedType, object providedValue, Udbus.Types.dbus_type[] providedTypes, string message)
     : base(message)
 {
     this.expectedType = expectedType;
     this.providedValue = providedValue;
     this.providedTypes = providedTypes;
 }
 public IncorrectTypeException(Udbus.Types.dbus_type expectedType, object providedValue, Udbus.Types.dbus_type[] providedTypes)
     : base(CreateMessage(expectedType, providedValue, providedTypes))
 {
     this.expectedType = expectedType;
     this.providedValue = providedValue;
     this.providedTypes = providedTypes;
 }
 public int ReadVariantBoolean(Udbus.Containers.dbus_union variant)
 {
     bool val;
     int result = this.ReadBoolean(out val);
     variant.DbusBoolean = val;
     return result;
 }
 public int ReadVariantObjectPath(Udbus.Containers.dbus_union variant)
 {
     Udbus.Types.UdbusObjectPath val;
     int result = this.ReadObjectPath(out val);
     variant.DbusObjectPath = val;
     return result;
 }
 //UdbusMessageSignalArgumentException.Create(1, "percent_free", typeof(Int32), this.result, "storage_space_low", messageData.Data, this.signalKey)
 public UdbusMessageSignalArgumentException(uint index, string argument, Type argumentType, int result,
     string signal, Udbus.Core.DbusSignalParams signalParams,
     Udbus.Serialization.NMessageStruct.UdbusMessageHandle msgStruct)
     : base(signal, signalParams, msgStruct)
 {
     this.index = index;
     this.argument = argument;
     this.argumentType = argumentType;
     this.result = result;
 }
示例#6
0
        public v4vConnection(Udbus.Serialization.UdbusDelegates.D_io_debug io_debug)
        {
            this.io_debug = io_debug;

            // Form the v4v connection.
            v4vConnectionHandle handle = v4vConnectionFunctions.connect_v4v_socket(this.io_debug);

            if (handle == null || handle.IsInvalid)
            {
                throw Udbus.Serialization.Exceptions.TransportFailureException.Create(this, "Error calling connect_v4v_socket");
            }

            this._handle = handle;
        }
示例#7
0
        public static void GetV4vConnection(out Udbus.v4v.v4vConnection connection, out Udbus.Core.ServiceConnectionParams serviceConnectionParams,
            Udbus.Serialization.UdbusDelegates.D_io_debug io_debug, System.Threading.ManualResetEvent stop,
            Udbus.Core.Logging.ILog log)
        {
            connection = null;
            serviceConnectionParams = null;

            while (serviceConnectionParams == null)
            {
                using (Udbus.v4v.v4vConnection connectionTemp = KeepTryingToConnectToV4V(io_debug, stop, log))
                {
                    if (connectionTemp != null) // If got v4v connection
                    {
                        Udbus.v4v.v4vConnection connectionTemp2 = connectionTemp.Release();
                        try
                        {
                            Udbus.Core.ServiceConnectionParams serviceConnectionParamsTemp = TryServiceConnectionParams(connectionTemp2, log);

                            if (serviceConnectionParamsTemp == null) // If failed to create service connection
                            {
                                connectionTemp.Swap(connectionTemp2);

                            } // Ends if failed to create service connection
                            else // Else created service connection
                            {
                                serviceConnectionParams = serviceConnectionParamsTemp;
                                connection = connectionTemp2;

                            } // Ends else created service connection
                        }
                        catch (Exception /*ex*/)
                        {
                            connectionTemp.Swap(connectionTemp2);
                            throw;
                        }

                    } // Ends if got v4v connection
                } // Ends using v4vConnection

                if (serviceConnectionParams == null) // If failed to create connection
                {
                    // Wait a while.
                    System.Threading.Thread.Sleep(ConnectionWaitMilliseconds);

                } // Ends if failed to create connection
            } // Ends while trying to setup service connection
        }
示例#8
0
        internal static com.citrix.xenclient.xenmgr.diag.diagService CreateDbusDiag(out Udbus.Core.ServiceConnectionParams serviceConnectionParams,
            Udbus.Core.Logging.ILog log, Udbus.Serialization.UdbusDelegates.D_io_debug io_debug)
        {
            // Create a V4V connection.
            Udbus.v4v.v4vConnection connection;
            System.Threading.ManualResetEvent stop = new System.Threading.ManualResetEvent(false);
            DbusHosts.GetV4vConnection(out connection, out serviceConnectionParams,
                io_debug, stop,
                log
            );

            // Use dbus interface to xenmgr.diag.
            Udbus.Serialization.DbusConnectionParameters dbusConnectionParameters = com.citrix.xenclient.xenmgr.diag.diagService.DefaultConnectionParameters;
            dbusConnectionParameters.Destination = "com.citrix.xenclient.xenmgr";
            com.citrix.xenclient.xenmgr.diag.diagService diag = com.citrix.xenclient.xenmgr.diag.diagService.Create(serviceConnectionParams, dbusConnectionParameters);

            return diag;
        }
        private XenClientGuestWCFService(Udbus.Core.Logging.ILog log)
        {
            this.log = log;

            // Initialize the uuid field from XenStore.
            XenStoreLib.XenStoreWrapper xenStoreWrapper = new XenStoreLib.XenStoreWrapper();
            string vm = xenStoreWrapper.ReadString("vm");
            string uuidPath = string.Format("{0}/uuid", vm);
            this.uuid_ = xenStoreWrapper.ReadString(uuidPath);

            // Work out the install directory.
            this.installDir = System.IO.Path.Combine(System.Environment.GetEnvironmentVariable("PROGRAMFILES") ?? "C:\\Program Files", "Citrix");
            this.installDir = System.IO.Path.Combine(installDir, "XenGuestPlugin");

            Microsoft.Win32.RegistryKey installKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(InstallRegkeyName);
            if (installKey != null)
            {
                string installVal = (string)installKey.GetValue(XcInstallDirName);
                if (!string.IsNullOrEmpty(installVal))
                {
                    this.installDir = installVal;
                }
            }
        }
示例#10
0
 public VisitorThreadInfo(Udbus.Core.ServiceConnectionParams serviceConnectionParams,
     System.Threading.EventWaitHandle stop)
     : this(serviceConnectionParams.SignalConnector, serviceConnectionParams.SignalVisitor, serviceConnectionParams.ReceiverPool, stop, DefaultTextWriter)
 {
 }
示例#11
0
 public VisitorThreadInfo(Udbus.Serialization.UdbusConnector connector,
     Udbus.Core.IUdbusMessageVisitor visitor,
     Udbus.Core.DbusMessageReceiverPool pool,
     System.Threading.EventWaitHandle stop,
     System.IO.TextWriter output)
 {
     this.connector = connector;
     this.visitor = visitor;
     this.pool = pool;
     this.stop = stop;
     this.output = output;
 }
示例#12
0
 protected static new string CreateMessage(string method, Udbus.Serialization.DbusConnectionParameters connectionParams,
     Udbus.Serialization.NMessageStruct.UdbusMessageHandle msgStruct)
 {
     string message = string.Format("dbus error: {0}. {1}. {2} - '{3}'", msgStruct.error_name, msgStruct.ToString(), connectionParams.ToString(), method);
     return message;
 }
示例#13
0
 public UdbusMessageMethodErrorException(string method, Udbus.Serialization.DbusConnectionParameters connectionParams,
     Udbus.Serialization.NMessageStruct.UdbusMessageHandle msgStruct, System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context)
     : base(method, connectionParams, msgStruct, info, context)
 {
 }
示例#14
0
 protected static string CreateMessage(uint index, string argument, Type argumentType, int result,
     string method,
     Udbus.Serialization.DbusConnectionParameters connectionParams,
     Udbus.Serialization.NMessageStruct.UdbusMessageHandle msgStruct)
 {
     return UdbusMessageMethodArgumentException.CreateMessage(FieldDirection.Out, index, argument, argumentType, result, method,
         connectionParams, msgStruct);
 }
示例#15
0
 public UdbusMessageMethodArgumentOutException(uint index, string argument, Type argumentType, int result,
     string method,
     Udbus.Serialization.DbusConnectionParameters connectionParams,
     Udbus.Serialization.NMessageStruct.UdbusMessageHandle msgStruct,
     System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context)
     : base(FieldDirection.Out, index, argument, argumentType, result, method, connectionParams, msgStruct, info, context)
 {
 }
示例#16
0
 protected static string CreateMessage(uint index, string argument, Type argumentType, int result,
     string method,
     Udbus.Serialization.DbusConnectionParameters connectionParams)
 {
     string message = string.Format("dbus {0} argument[{1}]: '{2} {3} {4}'. result={5}. {6}"
         , method, index, FieldDirection.In, argumentType.Name, argument, result
         , connectionParams.ToString()
     );
     return message;
 }
示例#17
0
 public UdbusMessageMethodArgumentOutException(uint index, string argument, Type argumentType, int result,
     string method,
     Udbus.Serialization.DbusConnectionParameters connectionParams,
     Udbus.Serialization.NMessageStruct.UdbusMessageHandle msgStruct,
     string message, Exception inner)
     : base(FieldDirection.Out, index, argument, argumentType, result, method, connectionParams, msgStruct, message, inner)
 {
 }
示例#18
0
 protected static string CreateMessage(Udbus.Serialization.NMessageStruct.UdbusMessageHandle msgStruct)
 {
     string message = string.Format("dbus message error: {0}", msgStruct.ToString());
     return message;
 }
示例#19
0
 public static UdbusMessageMethodArgumentOutException Create(uint index, string argument, Type argumentType, int result,
     string method,
     Udbus.Serialization.DbusConnectionParameters connectionParams,
     Udbus.Serialization.NMessageStruct.UdbusMessageHandle msgStruct,
     string message)
 {
     return new UdbusMessageMethodArgumentOutException(index, argument, argumentType, result, method, connectionParams, msgStruct,
         ExceptionFormatter.FormatExceptionMessage(message, CreateMessage(index, argument, argumentType, result, method, connectionParams, msgStruct)));
 }
示例#20
0
 public UdbusMessageMethodArgumentException(FieldDirection direction, uint index, string argument, Type argumentType, int result,
     string method, Udbus.Serialization.DbusConnectionParameters connectionParams,
     Udbus.Serialization.NMessageStruct.UdbusMessageHandle msgStruct,
     string message, Exception inner)
     : base(method, connectionParams, msgStruct, message, inner)
 {
     this.direction = direction;
     this.index = index;
     this.argument = argument;
     this.argumentType = argumentType;
     this.result = result;
 }
示例#21
0
 public UdbusMessageMethodErrorException(string method, Udbus.Serialization.DbusConnectionParameters connectionParams,
     Udbus.Serialization.NMessageStruct.UdbusMessageHandle msgStruct,
     string message, Exception inner)
     : base(method, connectionParams, msgStruct, message, inner)
 {
 }
示例#22
0
 public UdbusMessageMethodArgumentException(FieldDirection direction, uint index, string argument, Type argumentType, int result,
     string method, Udbus.Serialization.DbusConnectionParameters connectionParams,
     Udbus.Serialization.NMessageStruct.UdbusMessageHandle msgStruct, System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context)
     : base(method, connectionParams, msgStruct, info, context)
 {
     this.direction = direction;
     this.index = index;
     this.argument = argument;
     this.argumentType = argumentType;
     this.result = result;
 }
示例#23
0
 public static new UdbusMessageMethodErrorException Create(string method, Udbus.Serialization.DbusConnectionParameters connectionParams,
     Udbus.Serialization.NMessageStruct.UdbusMessageHandle msgStruct,
     string message)
 {
     return new UdbusMessageMethodErrorException(method, connectionParams, msgStruct,
         ExceptionFormatter.FormatExceptionMessage(message, CreateMessage(method, connectionParams, msgStruct)));
 }
示例#24
0
 /// Factory functions
 public static UdbusMessageMethodArgumentException Create(FieldDirection direction, uint index, string argument, Type argumentType, int result,
     string method,
     Udbus.Serialization.DbusConnectionParameters connectionParams,
     Udbus.Serialization.NMessageStruct.UdbusMessageHandle msgStruct)
 {
     return new UdbusMessageMethodArgumentException(direction, index, argument, argumentType, result, method, connectionParams, msgStruct,
         CreateMessage(direction, index, argument, argumentType, result, method, connectionParams, msgStruct));
 }
示例#25
0
 public UdbusMessageMethodException(string method, Udbus.Serialization.DbusConnectionParameters connectionParams,
     Udbus.Serialization.NMessageStruct.UdbusMessageHandle msgStruct,
     string message)
     : base(connectionParams, msgStruct, message)
 {
     this.method = method;
 }
示例#26
0
 protected static string CreateMessage(FieldDirection direction, uint index, string argument, Type argumentType, int result,
     string method, Udbus.Serialization.DbusConnectionParameters connectionParams,
     Udbus.Serialization.NMessageStruct.UdbusMessageHandle msgStruct)
 {
     string message = string.Format("dbus {0} argument[{1}]: '{2} {3} {4}'. result={5}. {6}. {7}"
         , method, index, direction, argumentType.Name, argument, result
         , msgStruct.ToString(), connectionParams.ToString()
     );
     return message;
 }
示例#27
0
 public VisitorThreadInfo(Udbus.Core.ServiceConnectionParams serviceConnectionParams)
     : this(serviceConnectionParams.SignalConnector, serviceConnectionParams.SignalVisitor, serviceConnectionParams.ReceiverPool, DefaultWaitHandle(), DefaultTextWriter)
 {
 }
示例#28
0
 public UdbusMessageMethodArgumentInException(uint index, string argument, Type argumentType, int result,
     string method,
     Udbus.Serialization.DbusConnectionParameters connectionParams, string message, Exception inner)
     : base(FieldDirection.In, index, argument, argumentType, result, method, connectionParams, DefaultMsgStruct, message, inner)
 {
 }
示例#29
0
 internal static Udbus.Core.IUdbusMessageVisitor DebugVisitor(Udbus.Core.IUdbusMessageVisitor visitor)
 {
     Udbus.Core.UdbusMessageVisitorDumpLog visitorDump = new Udbus.Core.UdbusMessageVisitorDumpLog();
     Udbus.Core.UdbusMessageVisitorMulti visitorMulti = new Udbus.Core.UdbusMessageVisitorMulti(visitorDump, visitor);
     return visitorMulti;
 }
示例#30
0
 /// Factory functions
 public static UdbusMessageMethodArgumentInException Create(uint index, string argument, Type argumentType, int result,
     string method,
     Udbus.Serialization.DbusConnectionParameters connectionParams)
 {
     return new UdbusMessageMethodArgumentInException(index, argument, argumentType, result, method, connectionParams,
         CreateMessage(index, argument, argumentType, result, method, connectionParams));
 }