CreateDescriptor() публичный Метод

Creates a new descriptor for an object
public CreateDescriptor ( ushort vendorId, uint deviceInstance, ObjectId objectIdentifier ) : ObjectInfo
vendorId ushort The vendor id of the object
deviceInstance uint
objectIdentifier ObjectId
Результат ObjectInfo
Пример #1
0
        /// <summary>
        /// Executes the command
        /// </summary>
        /// <param name="registrar">The registrar of descriptor types</param>
        /// <param name="query">The descriptor query</param>
        /// <returns>The descriptors that match the query</returns>
        public List<ObjectInfo> Execute(DescriptorRegistrar registrar, DescriptorQuery query)
        {
            List<ObjectInfo> ret = new List<ObjectInfo>();

            lock(this)
            {
                _deviceInstance.Value = query.DeviceInstance;
                _objectType.Value = query.ObjectType;

                using (var reader = _command.ExecuteReader())
                {
                    int deviceInstanceOrdinal = reader.GetOrdinal("device_instance");
                    int objectTypeOrdinal = reader.GetOrdinal("object_type");
                    int instanceOrdinal = reader.GetOrdinal("instance");
                    int vendorIdOrdinal = reader.GetOrdinal("vendor_id");
                    int nameOrdinal = reader.GetOrdinal("name");
                    int propsOrdinal = reader.GetOrdinal("props");

                    while (reader.Read())
                    {
                        uint deviceInstance = (uint)reader.GetInt32(deviceInstanceOrdinal);
                        ushort objectType = (ushort)reader.GetInt32(objectTypeOrdinal);
                        uint instance = (uint)reader.GetInt32(instanceOrdinal);
                        ushort vendorId = (ushort)reader.GetInt32(vendorIdOrdinal);
                        string name = reader.IsDBNull(nameOrdinal) ? null :  reader.GetString(nameOrdinal);

                        if (query.NameRegex == null || (name != null && Regex.IsMatch(name, query.NameRegex, RegexOptions.IgnoreCase)))
                        {
                            var info = registrar.CreateDescriptor(
                                vendorId,
                                deviceInstance,
                                new ObjectId(objectType, instance));
                            info.Name = name;

                            if (!reader.IsDBNull(propsOrdinal))
                            {
                                var props = reader.GetString(propsOrdinal);
                                info.LoadProperties(props);
                            }

                            ret.Add(info);
                        }
                    }
                }
            }

            return ret;
        }
Пример #2
0
        /// <summary>
        /// Executes the command
        /// </summary>
        /// <param name="registrar">The registrar of descriptor types</param>
        /// <param name="deviceInstance">The device instance of the object to get</param>
        /// <param name="objectIdentifier">The object identifier of the object to get</param>
        /// <returns>The descriptors that match the query</returns>
        public ObjectInfo Execute(DescriptorRegistrar registrar, uint deviceInstance, ObjectId objectIdentifier)
        {
            ObjectInfo info = null;

            lock (this)
            {
                _deviceInstance.Value = deviceInstance;
                _objectType.Value = objectIdentifier.Type;
                _instance.Value = objectIdentifier.Instance;

                using (var reader = _command.ExecuteReader())
                {
                    int vendorIdOrdinal = reader.GetOrdinal("vendor_id");
                    int nameOrdinal = reader.GetOrdinal("name");
                    int propsOrdinal = reader.GetOrdinal("props");

                    if (reader.Read())
                    {
                        ushort vendorId = (ushort)reader.GetInt32(vendorIdOrdinal);
                        string name = reader.IsDBNull(nameOrdinal) ? null : reader.GetString(nameOrdinal);

                        info = registrar.CreateDescriptor(
                                vendorId,
                                deviceInstance,
                                objectIdentifier);
                        info.Name = name;

                        if (!reader.IsDBNull(propsOrdinal))
                        {
                            var props = reader.GetString(propsOrdinal);
                            info.LoadProperties(props);
                        }
                    }
                }
            }

            return info;
        }