Next Prev Up Top Contents Index

foreign-slot-value

Function
Summary

Returns the value of a slot in a foreign object.

Package

fli

Signature
foreign-slot-value object
 slot-name
 &key type
 copy-foreign-object
 => value
Arguments

object

Either an instance of or a pointer to an FLI structure.

slot-name

The name of the slot of object to be accessed.

type

The type of object . Specifying type makes accessing the object faster. If the specified type is different to the actual type, foreign-slot-value returns the value of the object in the format of type where possible.

copy-foreign-object

This option is only important when dealing with slots which are aggregate FLI types, and cannot be returned by value.

If set to t , foreign-slot-value makes a copy of the aggregate slot of the object pointed to by pointer and returns the copy.

If set to nil , foreign-slot-value returns the aggregate slot of the object directly.

If set to error then foreign-slot-value signals an error. This is the default value for copy-foreign-object .

Value

value

The value of the slot slot-name in the FLI object object is returned.

Description

The function foreign-slot-value returns the value of a slot in a specified object. An error is signaled if the slot is an aggregate type and copy-foreign-object is not set accordingly

The function foreign-slot-value can be used with setf to set the value of a slot in a structure, as shown in the example below.

Example

In the following example a foreign structure is defined, an instance of the structure is made with my-pos pointing to the instance, and foreign-slot-value is used to set the y slot of the object to 10.

(fli:define-c-struct POS
  (x :int)
  (y :int)
  (z :int))
(setq my-pos (fli:allocate-foreign-object :type 'POS)) (setf (fli:foreign-slot-value my-pos 'y) 10)

The next line returns the value of the y slot at my-pos , which is 10.

(fli:foreign-slot-value my-pos 'y)
See Also

dereference


LispWorks Foreign Language Interface User Guide and Reference Manual - 14 Dec 2001

Next Prev Up Top Contents Index