Exemple #1
0
        public bool IsValid(out string errorMsg)
        {
            bool invalid = false;

            errorMsg = string.Empty;

            var path = "/proc/sys/fs/mqueue/";

            if (string.IsNullOrEmpty(QueueName))
            {
                invalid  |= true;
                errorMsg += "Queue Name is empty\r\n";
            }
            else if (QueueName.Contains(" "))
            {
                invalid  |= true;
                errorMsg += "Queue Name contains a space\r\n";
            }

            if (AccessModifier < 0 || AccessModifier > 511)
            {
                invalid  |= true;
                errorMsg += "Access Modifier not in valid range\r\n";
            }

            if (Type.GetType("Mono.Runtime") != null)
            {
                var lines = File.ReadAllLines(path + "msg_max");
                if (QueueSize <= 0 || int.Parse(lines[0]) < QueueSize)
                {
                    invalid  |= true;
                    errorMsg += "Queue Size not in valid range\r\n";
                }
            }
            else
            {
                if (QueueSize <= 0)
                {
                    invalid  |= true;
                    errorMsg += "Queue Size not in valid range\r\n";
                }
            }


            if (Type.GetType("Mono.Runtime") != null)
            {
                var lines = File.ReadAllLines(path + "msgsize_max");
                if (MessageSize <= 0 || int.Parse(lines[0]) < MessageSize)
                {
                    invalid  |= true;
                    errorMsg += "Message Size not in valid range\r\n";
                }
            }
            else
            {
                if (MessageSize <= 0)
                {
                    invalid  |= true;
                    errorMsg += "Message Size not in valid range\r\n";
                }
            }

            return(!invalid);
        }