Interface PVUnionArray

  • All Superinterfaces:
    PVArray, PVField, Serializable, SerializableArray
    All Known Implementing Classes:
    BasePVUnionArray

    public interface PVUnionArray
    extends PVArray
    Get/put a union array. The caller must be prepared to get/put the array in chunks. The return argument is always the number of elements that were transfered. It may be less than the number requested.
    Author:
    mrk
    • Method Detail

      • getUnionArray

        UnionArray getUnionArray()
        Get the introspection interface.
        Returns:
        The interface.
      • get

        int get​(int offset,
                int length,
                UnionArrayData data)
        Get values from a PVUnionArray and put them into PVUnion[]to.
        Parameters:
        offset - the offset to the first element to get
        length - the maximum number of elements to transfer
        data - the class containing the data and an offset into the data. Get sets these values. The caller must do the actual data transfer.
        Returns:
        the number of elements that can be transfered. This is always less than or equal to length. If the value is less then length then get should be called again. If the return value is greater than 0 then data.data is a reference to the array and data.offset is the offset into the array.
      • put

        int put​(int offset,
                int length,
                PVUnion[] from,
                int fromOffset)
        Put values into a PVUnionArray from PVUnion[]from
        Parameters:
        offset - the offset to the first element to put
        length - the maximum number of elements to transfer
        from - the array from which to get the data.
        fromOffset - the offset into from
        Returns:
        the number of elements transfered. This is always less than or equal to length. If the value is less than the length then put should be called again.
        Throws:
        IllegalStateException - if the field is not mutable
      • shareData

        void shareData​(PVUnion[] from)
        Share the data from caller. The capacity and length are taken from the array and this array is made immutable. This should only be used to share immutable data.
        Parameters:
        from - the data to share