Changeset 68 for branches/home/psmith


Ignore:
Timestamp:
02/04/07 23:04:14 (18 years ago)
Author:
psmith
Message:

large packet server side OK.

Location:
branches/home/psmith/restructure/src
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified branches/home/psmith/restructure/src/buffer/buffer.lisp

    r67 r68  
    108108  (make-instance 'byte-buffer :capacity capacity :limit capacity :position 0 :buf (cffi:foreign-alloc :uint8 :count capacity)))
    109109
     110;Gets a pointer to the address in the native memory of the position index
     111(defmethod buffer-pointer ((bb byte-buffer))
     112  (cffi:make-pointer (+ (cffi:pointer-address (buffer-buf bb)) (buffer-position bb))))
     113
    110114(defmethod print-object ((byte-buffer byte-buffer) stream)
    111115  (with-slots (capacity position limit buf) byte-buffer
     
    177181; or an incomming packet doesn't have enough room to fit
    178182(define-condition buffer-too-small-error (error)
    179   ((recommended-size :initarg :recommended-size)))
     183  ((recommended-size :initarg :recommended-size
     184                     :accessor recommended-size)))
    180185
    181186(defun buffer-too-small-error(recommended-size)
  • TabularUnified branches/home/psmith/restructure/src/buffer/nio-buffer-package.lisp

    r67 r68  
    3333             bytebuffer-read-8 bytebuffer-read-32 bytebuffer-write-8 bytebuffer-write-32 bytebuffer-insert-8 bytebuffer-insert-32
    3434             flip unflip clear buffer-position copy-buffer buffer-capacity compact mark reset
    35              buffer-too-small-error
     35             buffer-too-small-error recommended-size buffer-pointer
    3636             ))
  • TabularUnified branches/home/psmith/restructure/src/io/async-fd.lisp

    r67 r68  
    8585#+nio-debug  (format t "read-more called with ~A~%" state-machine)
    8686#+nio-debug      (format t "read-more - calling read() into ~A~%" foreign-read-buffer)
    87     (let ((new-bytes (%read read-fd (buffer-buf foreign-read-buffer) (remaining foreign-read-buffer))))
     87    (let ((new-bytes (%read read-fd (buffer-pointer foreign-read-buffer) (remaining foreign-read-buffer))))
    8888#+nio-debug      (format t "read-more : Read ~A bytes into ~A~%" new-bytes foreign-read-buffer)
    8989      (cond
  • TabularUnified branches/home/psmith/restructure/src/statemachine/state-machine.lisp

    r67 r68  
    5757(defmethod process-read((sm state-machine))
    5858  (with-slots (foreign-read-buffer) sm
    59     (let ((incoming-packet (get-packet (get-packet-factory sm) foreign-read-buffer)))
     59    (let ((incoming-packet
     60           (handler-case
     61               (get-packet (get-packet-factory sm) foreign-read-buffer)
     62             (buffer-too-small-error (read-err)
     63               (if (recommend-buffer-size sm :read (recommended-size read-err))
     64                   (format-log t "resized incomming buffer ~A~%"foreign-read-buffer)
     65                   (error 'not-implemented-yet-read-resize-failure))))))
    6066      (format-log t "state-machine::process-read - incoming packet: ~A~%" incoming-packet)
    6167      (when incoming-packet
Note: See TracChangeset for help on using the changeset viewer.