Пример #1
0
        public void setPoint(string name, Point val)
        {
            MessageField field = getCreateOrReplaceField(name, B_POINT_TYPE);

            Point [] array = (Point[])field.getData();
            if ((array == null) || (field.size() != 1))
            {
                array = new Point[1];
            }
            array[0] = val;
            field.setPayload(array, 1);
        }
Пример #2
0
        public void setRect(string name, Rect val)
        {
            MessageField field = getCreateOrReplaceField(name, B_RECT_TYPE);

            Rect [] array = (Rect[])field.getData();
            if ((array == null) || (field.size() != 1))
            {
                array = new Rect[1];
            }
            array[0] = val;
            field.setPayload(array, 1);
        }
Пример #3
0
        public void setString(string name, string val)
        {
            MessageField field = getCreateOrReplaceField(name, B_STRING_TYPE);

            string [] array = (string[])field.getData();
            if ((array == null) || (field.size() != 1))
            {
                array = new string[1];
            }
            array[0] = val;
            field.setPayload(array, 1);
        }
Пример #4
0
        /// Sets the given field name to contain a single Message value.
        /// Any previous field contents are replaced.
        /// Note that a copy of (val) is NOT made; the passed-in mesage
        /// object becomes part of this Message.
        ///
        /// <param name="name"/>
        /// <param name="val/>
        public void setMessage(string name, Message val)
        {
            MessageField field = getCreateOrReplaceField(name, B_MESSAGE_TYPE);

            Message [] array = (Message[])field.getData();
            if ((array == null) || (field.size() != 1))
            {
                array = new Message[1];
            }
            array[0] = val;
            field.setPayload(array, 1);
        }
Пример #5
0
        public void setFloat(string name, float val)
        {
            MessageField field = getCreateOrReplaceField(name, B_FLOAT_TYPE);

            float [] array = (float[])field.getData();
            if ((array == null) || (field.size() != 1))
            {
                array = new float[1];
            }
            array[0] = val;
            field.setPayload(array, 1);
        }
Пример #6
0
        public void setDouble(string name, double val)
        {
            MessageField field = getCreateOrReplaceField(name, B_DOUBLE_TYPE);

            double [] array = (double[])field.getData();
            if ((array == null) || (field.size() != 1))
            {
                array = new double[1];
            }
            array[0] = val;
            field.setPayload(array, 1);
        }
Пример #7
0
        public void setShort(string name, short val)
        {
            MessageField field = getCreateOrReplaceField(name, B_INT16_TYPE);

            short [] array = (short[])field.getData();
            if ((array == null) || (field.size() != 1))
            {
                array = new short[1];
            }
            array[0] = val;
            field.setPayload(array, 1);
        }
Пример #8
0
        public void setByte(string name, byte val)
        {
            MessageField field = getCreateOrReplaceField(name, B_INT8_TYPE);

            byte [] array = (byte[])field.getData();
            if ((array == null) || (field.size() != 1))
            {
                array = new byte[1];
            }
            array[0] = val;
            field.setPayload(array, 1);
        }
Пример #9
0
        /// Sets the given field name to contain a single boolean value.
        /// Any previous field contents are replaced.
        /// <param name="Name"/>
        /// <param name="val"/>
        ///
        public void setBoolean(string name, bool val)
        {
            MessageField field = getCreateOrReplaceField(name, B_BOOL_TYPE);

            bool [] array = (bool[])field.getData();
            if ((array == null) || (field.size() != 1))
            {
                array = new bool[1];
            }
            array[0] = val;
            field.setPayload(array, 1);
        }
Пример #10
0
        /// Sets the given field name to contain a single byte buffer value.  Any previous field contents are replaced.
        /// <param name="name"/>
        /// <param name="type">The type code to give the field.
        /// May not be a B_*_TYPE that contains non-byte-buffer
        /// data (e.g. B_STRING_TYPE or B_INT32_TYPE)
        /// </param>
        /// <param name="val">Value that will become the sole value in the
        /// specified field.</param>
        /// <exception cref="FieldTypeMismatchException"/>
        ///
        public void setByteBuffer(string name, int type, byte[] val)
        {
            checkByteBuffersOkay(type);
            MessageField field = getCreateOrReplaceField(name, type);

            byte [][] array = (byte[][])field.getData();
            if ((array == null) || (field.size() != 1))
            {
                array = new byte[1][];
            }
            array[0] = val;
            field.setPayload(array, 1);
        }
Пример #11
0
        /// Sets the given field name to contain the given Flattenable values.
        /// Any previous field contents are replaced.
        /// Note that if the objects are Messages, Points, or Rects,
        /// they will be cloned rather than flattened.
        /// <param name="name"/>
        /// <param name="val">
        /// Array of Flattenable objects to assign to the field.
        /// The objects are all flattened and
        /// the flattened data is put into the Message;
        /// the objects themselves do not become part of the message.
        /// </param>
        public void setFlats(string name, Flattenable [] vals)
        {
            int          type  = vals[0].typeCode();
            int          len   = vals.Length;
            MessageField field = getCreateOrReplaceField(name, type);

            // For these types, we have explicit support for holding
            // the objects in memory, so we'll just clone them
            switch (type)
            {
            case B_MESSAGE_TYPE:
            {
                Message [] array = new Message[len];
                for (int i = 0; i < len; i++)
                {
                    array[i] = (Message)vals[i].cloneFlat();
                }
                field.setPayload(array, len);
            }
            break;

            case B_POINT_TYPE:
            {
                Point [] array = new Point[len];
                for (int i = 0; i < len; i++)
                {
                    array[i] = (Point)vals[i].cloneFlat();
                }
                field.setPayload(array, len);
            }
            break;

            case B_RECT_TYPE:
            {
                Rect [] array = new Rect[len];
                for (int i = 0; i < len; i++)
                {
                    array[i] = (Rect)vals[i].cloneFlat();
                }
                field.setPayload(array, len);
            }
            break;

            default:
            {
                byte [][] array = (byte[][])field.getData();
                if ((array == null) || (field.size() != len))
                {
                    array = new byte[len][];
                }

                for (int i = 0; i < len; i++)
                {
                    array[i] =
                        flattenToArray(vals[i], array[i]);
                }
                field.setPayload(array, len);
            }
            break;
            }
        }
Пример #12
0
        /// Returns the number of items present in the given field, or
        /// zero if the field isn't present or is of the wrong type.
        /// <exception cref="FieldNotFound"/>
        public int countItemsInField(string name, int type)
        {
            MessageField field = getFieldIfExists(name, type);

            return((field != null) ? field.size() : 0);
        }