r1584: *** empty log message ***
[uffi.git] / examples / array-2d.cl
diff --git a/examples/array-2d.cl b/examples/array-2d.cl
new file mode 100644 (file)
index 0000000..9e344db
--- /dev/null
@@ -0,0 +1,37 @@
+;;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Base: 10 -*-
+;;;; *************************************************************************
+;;;; FILE IDENTIFICATION
+;;;;
+;;;; Name:          array-2d.cl
+;;;; Purpose:       UFFI Example file use 2-dimensional arrays
+;;;; Programmer:    Kevin M. Rosenberg
+;;;; Date Started:  Mar 2002
+;;;;
+;;;; $Id: array-2d.cl,v 1.1 2002/03/18 02:27:32 kevin Exp $
+;;;;
+;;;; This file, part of UFFI, is Copyright (c) 2002 by Kevin M. Rosenberg
+;;;;
+;;;; UFFI users are granted the rights to distribute and use this software
+;;;; as governed by the terms of the Lisp Lesser GNU Public License
+;;;; (http://opensource.franz.com/preamble.html), also known as the LLGPL.
+;;;; *************************************************************************
+
+(in-package :cl-user)
+
+(uffi:def-constant +column-length+ 10)
+
+(uffi:def-array long-array (:long 10))
+
+(defun test-array-2d ()
+  "Tests 2d array"
+  (let ((a (uffi:allocate-foreign-object long-array)))
+    (dotimes (i +column-length+)
+      (setf (uffi:deref-array a :long i) (* i i)))
+    (dotimes (i +column-length+)
+      (format "~&~D => ~D" i (uffi:deref-array a 'long-array i)))
+    (uffi:free-foreign-object a)))
+
+#+test-uffi
+(test-array-2d)
+
+