$ od -c -N 50000 [Erinyes]<LispManual>etherns.im!6
0000000 \r { B e g i n S u b S e c H
0000020 i g h e r - l e v e l N S P
0000040 r o t o c o l F u n c t i o n
0000060 s } \r { T i t l e H i g h e r
0000100 - l e v e l N S P r o t o c
0000120 o l F u n c t i o n s } \r { T
0000140 e x t \r \r T h e f o l l o w i
0000160 n g i s a d e s c r i p t
0000200 i o n o f t h e I n t e r
0000220 l i s p - D f a c i l i t i e
0000240 s f o r u s i n g X e r o
0000260 x S P P a n d C o u r i e
0000300 r p r o t o c o l s a n d
0000320 t h e s e r v i c e s b a s
0000340 e d o n t h e m . T h e
0000360 s e c t i o n s o n n a m
0000400 i n g c o n v e n t i o n s ,
0000420 P r i n t i n g , a n d F
0000440 i l i n g a r e o f g e n
0000460 e r a l i n t e r e s t t o
0000500 u s e r s o f N e t w o r
0000520 k S y s t e m s s e r v e r
0000540 s . T h e r e m a i n i n
0000560 g s e c t i o n s d e s c r
0000600 i b e i n t e r f a c e s o
0000620 f i n t e r e s t t o t h
0000640 o s e w h o w i s h t o
0000660 p r o g r a m o t h e r a p
0000700 p l i c a t i o n s o n t o
0000720 p o f e i t h e r C o u r
0000740 i e r o r S P P . \r \r { b e
0000760 g i n s u b s e c N a m e
0001000 a n d A d d r e s s C o n v
0001020 e n t i o n s } \r { t i t l e
0001040 N a m e a n d A d d r e s s
0001060 C o n v e n t i o n s } \r { t
0001100 e x t \r \r A d d r e s s e s o
0001120 f h o s t s i n t h e N
0001140 S w o r l d c o n s i s t
0001160 o f t h r e e p a r t s ,
0001200 a n e t w o r k n u m b e r
0001220 , a m a c h i n e n u m b
0001240 e r , a n d a s o c k e t
0001260 n u m b e r . T h e s e
0001300 t h r e e p a r t s a r e
0001320 e m b o d i e d i n t h e
0001340 I n t e r l i s p - D d a t a
0001360 t y p e { l i s p N S A D
0001400 D R E S S } . { i n d e x * P
0001420 R I M A R Y * N S A D D R E S
0001440 S ( D a t a t y p e ) }
0001460 O b j e c t s o f t y p e
0001500 { L i s p N S A D D R E S S }
0001520 p r i n t a s " n e t # h
0001540 1 . h 2 . h 3 # s o c k e t " ,
0001560 w h e r e a l l t h e n
0001600 u m b e r s a r e p r i n t
0001620 e d i n o c t a l r a d i
0001640 x , a n d t h e 4 8 - b i
0001660 t h o s t n u m b e r i s
0001700 b r o k e n i n t o t h r
0001720 e e 1 6 - b i t f i e l d s
0001740 . M o s t f u n c t i o n
0001760 s t h a t a c c e p t a n
0002000 a d d r e s s a r g u m e n
0002020 t w i l l a c c e p t e i
0002040 t h e r a n { L i s p N S
0002060 A D D R E S S } o b j e c t
0002100 o r a s t r i n g t h a t
0002120 i s t h e p r i n t e d
0002140 r e p r e s e n t a t i o n o
0002160 f t h e a d d r e s s . \r \r
0002200 H i g h e r - l e v e l f u n
0002220 c t i o n s a c c e p t h o
0002240 s t a r g u m e n t s i n
0002260 t h e f o r m o f a s y
0002300 m b o l i c n a m e f o r
0002320 t h e h o s t . T h e N
0002340 S w o r l d h a s a h i
0002360 e r a r c h i c a l n a m e
0002400 s p a c e . E a c h o b j
0002420 e c t n a m e i s i n t
0002440 h r e e p a r t s : t h e
0002460 { i t O r g a n i z a t i o n
0002500 } , t h e { i t D o m a i
0002520 n } , a n d t h e { i t
0002540 O b j e c t } p a r t s .
0002560 T h e r e c a n b e m a n
0002600 y d o m a i n s i n a s
0002620 i n g l e o r g a n i z a t i
0002640 o n , a n d m a n y o b j
0002660 e c t s i n a s i n g l e
0002700 d o m a i n . T h e n a
0002720 m e s p a c e i s m a i n
0002740 t a i n e d b y t h e { t
0002760 e r m { i t C l e a r i n g
0003000 h o u s e } } , a d i s t r
0003020 i b u t e d n e t w o r k d
0003040 a t a b a s e s e r v i c e .
0003060 \r \r A C l e a r i n g h o u s
0003100 e n a m e i s s t a n d a
0003120 r d l y n o t a t e d a s
0003140 { i t o b j e c t } : { i t
0003160 d o m a i n } : { i t o r g a
0003200 n i z a t i o n } . T h e
0003220 p a r t s { i t o r g a n i
0003240 z a t i o n } o r { i t d
0003260 o m a i n } : { i t o r g a n
0003300 i z a t i o n } m a y b e
0003320 o m i t t e d i f t h e y
0003340 a r e t h e d e f a u l t
0003360 ( s e e b e l o w ) . A l
0003400 p h a b e t i c c a s e i s
0003420 n o t s i g n i f i c a n t
0003440 . I n t e r n a l l y , n
0003460 a m e s a r e r e p r e s e
0003500 n t e d a s o b j e c t s
0003520 o f d a t a t y p e { l i
0003540 s p N S N A M E } , { i n d e
0003560 x * P R I M A R Y * N S N A
0003600 M E ( D a t a t y p e ) }
0003620 b u t m o s t f u n c t i o
0003640 n s a c c e p t t h e t e
0003660 x t u a l r e p r e s e n t a
0003700 t i o n a s w e l l , e i
0003720 t h e r a s a l i t a t o
0003740 m o r a s t r i n g .
0003760 O b j e c t s o f t y p e
0004000 { l i s p N S N A M E } p r
0004020 i n t a s { i t o b j e c
0004040 t } : { i t d o m a i n } : {
0004060 i t o r g a n i z a t i o n }
0004100 , w i t h f i e l d s o m
0004120 i t t e d w h e n t h e y
0004140 a r e e q u a l t o t h e
0004160 d e f a u l t . A { i t
0004200 D o m a i n } i s s t a n
0004220 d a r d l y r e p r e s e n t
0004240 e d a s a n { l i s p N
0004260 S N A M E } i n w h i c h
0004300 t h e o b j e c t p a r t
0004320 i s n u l l . I f f r e
0004340 q u e n t u s e i s t o
0004360 b e m a d e o f a n N S
0004400 n a m e , i t i s g e n
0004420 e r a l l y p r e f e r a b l
0004440 e t o c o n v e r t i t
0004460 t o a n { l i s p N S N A
0004500 M E } o n c e , b y c a l
0004520 l i n g { f n P A R S E . N
0004540 S N A M E } , t h e n p a s
0004560 s i n g t h e r e s u l t a
0004600 n t o b j e c t t o a l l
0004620 f u n c t i o n s d e s i r
0004640 i n g i t . \r \r { v a r d e f
0004660 { n a m e C H . D E F A U L
0004700 T . O R G A N I Z A T I O N } \r
0004720 { t e x t \r T h i s i s a
0004740 s t r i n g s p e c i f y i n
0004760 g t h e d e f a u l t C l
0005000 e a r i n g h o u s e o r g a
0005020 n i z a t i o n . \r } } \r \r { v
0005040 a r d e f { n a m e C H . D
0005060 E F A U L T . D O M A I N } \r {
0005100 t e x t \r T h i s i s a s
0005120 t r i n g s p e c i f y i n g
0005140 t h e d e f a u l t C l e
0005160 a r i n g h o u s e d o m a i
0005200 n . I f i t o r t h e
0005220 v a r i a b l e { v a r C H
0005240 . D E F A U L T . O R G A N I Z
0005260 A T I O N } i s { l i s p
0005300 N I L } , t h e y a r e s
0005320 e t b y L i s p s y s t e
0005340 m c o d e ( w h e n t h e
0005360 y a r e n e e d e d ) t o
0005400 b e t h e f i r s t d o
0005420 m a i n s e r v e d b y t
0005440 h e n e a r e s t C l e a r
0005460 i n g h o u s e s e r v e r .
0005500 \r } } \r \r I n s m a l l o r
0005520 g a n i z a t i o n s w i t h
0005540 j u s t o n e d o m a i n
0005560 , i t i s r e a s o n a b
0005600 l e t o j u s t l e a v e
0005620 t h e s e v a r i a b l e s
0005640 { l i s p N I L } a n d
0005660 h a v e t h e s y s t e m
0005700 s e t t h e m a p p r o p r
0005720 i a t e l y . I n o r g a
0005740 n i z a t i o n s w i t h m
0005760 o r e t h a n o n e d o m
0006000 a i n , i t i s w i s e
0006020 t o s e t t h e m i n t
0006040 h e s i t e i n i t i a l i
0006060 z a t i o n f i l e , s o
0006100 a s n o t t o b e d e p
0006120 e n d e n t o n e x a c t l
0006140 y w h i c h C l e a r i n g
0006160 h o u s e s e r v e r s a r
0006200 e u p a t a n y t i m e
0006220 . \r \r { f n D e f { n a m e
0006240 P A R S E . N S N A M E } { a r
0006260 g s N A M E # P A R T S D
0006300 E F A U L T D O M A I N } \r { t
0006320 e x t \r W h e n { a r g # P
0006340 A R T S } i s 3 ( o r {
0006360 l i s p N I L } ) , p a r s
0006400 e s { a r g N A M E } , a
0006420 l i t a t o m o r s t r i
0006440 n g , i n t o i t s t h r
0006460 e e p a r t s , r e t u r n
0006500 i n g a n o b j e c t o f
0006520 t y p e { l i s p N S N A
0006540 M E } . I f t h e d o m
0006560 a i n o r o r g a n i z a t
0006600 i o n i s o m i t t e d ,
0006620 d e f a u l t s a r e s u p
0006640 p l i e d , e i t h e r f r
0006660 o m { a r g D E F A U L T D
0006700 O M A I N } ( a n { l i s p
0006720 N S N A M E } w h o s e d
0006740 o m a i n a n d o r g a n i
0006760 z a t i o n f i e l d s o n
0007000 l y a r e u s e d ) o r
0007020 f r o m t h e v a r i a b l
0007040 e s { v a r C H . D E F A U
0007060 L T . D O M A I N } a n d {
0007100 v a r C H . D E F A U L T . O
0007120 R G A N I Z A T I O N } . \r \r I
0007140 f { a r g # P A R T S } i
0007160 s 2 , { a r g N A M E }
0007200 i s i n t e r p r e t e d a
0007220 s a d o m a i n n a m e ,
0007240 a n d a n { l i s p N S
0007260 N A M E } w i t h n u l l
0007300 o b j e c t i s r e t u r n
0007320 e d . I n t h i s c a s
0007340 e , i f { a r g N A M E }
0007360 i s a f u l l 3 - p a r
0007400 t n a m e , t h e o b j e
0007420 c t p a r t i s s t r i p
0007440 p e d o f f . \r \r I f { a r
0007460 g # P A R T S } i s 1 ,
0007500 { a r g N A M E } i s i n
0007520 t e r p r e t e d a s a n
0007540 o r g a n i z a t i o n n a m
0007560 e , a n d a s i m p l e
0007600 s t r i n g i s r e t u r n
0007620 e d . I n t h i s c a s
0007640 e , i f { a r g N A M E }
0007660 i s a 2 - o r 3 - p a
0007700 r t n a m e , t h e o r g
0007720 a n i z a t i o n i s e x t
0007740 r a c t e d f r o m i t . \r
0007760 \r I f { a r g N A M E } i
0010000 s a l r e a d y a n o b j
0010020 e c t o f t y p e { l i s
0010040 p N S N A M E } , t h e n
0010060 i t i s r e t u r n e d a
0010100 s i s ( i f { a r g # P
0010120 A R T S } i s 3 ) , o r
0010140 i t s d o m a i n a n d / o
0010160 r o r g a n i z a t i o n p
0010200 a r t s a r e e x t r a c t
0010220 e d ( i f { a r g # P A R
0010240 T S } i s 1 o r 2 ) . \r
0010260 } } \r \r { f n d e f { n a m e
0010300 N S N A M E . T O . S T R I N
0010320 G } { a r g s N S N A M E
0010340 F U L L N A M E F L G } \r { t e
0010360 x t \r C o n v e r t s { a r g
0010400 N S N A M E } , a n o b j
0010420 e c t o f t y p e { l i s
0010440 p N S N A M E } , t o i t
0010460 s s t r i n g r e p r e s e
0010500 n t a t i o n . I f { a r
0010520 g F U L L N A M E F L G } i
0010540 s t r u e , t h e f u l l
0010560 p r i n t e d n a m e i s
0010600 r e t u r n e d ; o t h e r
0010620 w i s e , f i e l d s t h a
0010640 t a r e e q u a l t o t
0010660 h e d e f a u l t a r e o
0010700 m i t t e d . \r } } \r \r P r o g
0010720 r a m m e r s w h o w i s h
0010740 t o m a n i p u l a t e {
0010760 l i s p N S A D D R E S S }
0011000 a n d { l i s p N S N A M E
0011020 } o b j e c t s d i r e c t
0011040 l y s h o u l d l o a d t
0011060 h e L i b r a r y p a c k a
0011100 g e { l i s p E T H E R R E
0011120 C O R D S } . \r \r } { e n d s
0011140 u b s e c N a m e a n d A
0011160 d d r e s s C o n v e n t i o
0011200 n s } \r \r \r { b e g i n s u b
0011220 s e c C l e a r i n g h o u s
0011240 e F u n c t i o n s } \r { t i
0011260 t l e C l e a r i n g h o u s
0011300 e F u n c t i o n s } \r { t e
0011320 x t \r \r T h i s s e c t i o n
0011340 d e s c r i b e s f u n c t
0011360 i o n s t h a t m a y b e
0011400 u s e d t o a c c e s s
0011420 i n f o r m a t i o n i n t
0011440 h e C l e a r i n g h o u s e
0011460 . \r \r { f n d e f { n a m e
0011500 S T A R T . C L E A R I N G H O
0011520 U S E } { a r g s R E S T A
0011540 R T F L G } \r { t e x t \r P e r
0011560 f o r m s a n e x p a n d i
0011600 n g r i n g b r o a d c a s
0011620 t i n o r d e r t o f i
0011640 n d t h e n e a r e s t C
0011660 l e a r i n g h o u s e s e r
0011700 v e r , w h o s e a d d r e
0011720 s s i t r e t u r n s .
0011740 I f a C l e a r i n g h o u
0011760 s e h a s a l r e a d y b
0012000 e e n l o c a t e d , t h i
0012020 s f u n c t i o n s i m p l
0012040 y r e t u r n s i t s a d
0012060 d r e s s i m m e d i a t e l
0012100 y , u n l e s s { a r g R
0012120 E S T A R T F L G } i s t r
0012140 u e , i n w h i c h c a s
0012160 e t h e c a c h e o f C
0012200 l e a r i n g h o u s e i n f
0012220 o r m a t i o n i s i n v a
0012240 l i d a t e d a n d a n e
0012260 w b r o a d c a s t i s p
0012300 e r f o r m e d . { f n S
0012320 T A R T . C L E A R I N G H O U
0012340 S E } i s n o r m a l l y
0012360 p e r f o r m e d a u t o m a
0012400 t i c a l l y b y t h e s
0012420 y s t e m t h e f i r s t
0012440 t i m e i t n e e d s C l
0012460 e a r i n g h o u s e i n f o
0012500 r m a t i o n ; h o w e v e r
0012520 , i t m a y b e n e c e
0012540 s s a r y t o c a l l i t
0012560 e x p l i c i t l y ( w i t
0012600 h { a r g R E S T A R T F L
0012620 G } s e t ) i f t h e l
0012640 o c a l C l e a r i n g h o u
0012660 s e s e r v e r g o e s d
0012700 o w n . \r } } \r \r \r { v a r d e
0012720 f { n a m e C H . N E T . H
0012740 I N T } \r { t e x t \r A n u m
0012760 b e r o r l i s t o f n
0013000 u m b e r s , g i v i n g a
0013020 h i n t a s t o w h i c
0013040 h n e t w o r k t h e n e
0013060 a r e s t C l e a r i n g h o
0013100 u s e s e r v e r i s o n
0013120 . W h e n { f n S T A R
0013140 T . C L E A R I N G H O U S E }
0013160 l o o k s f o r a C l e
0013200 a r i n g h o u s e s e r v e
0013220 r , i t p r o b e s t h e
0013240 n e t w o r k ( s ) g i v e
0013260 n b y { v a r C H . N E T
0013300 . H I N T } f i r s t , p e
0013320 r f o r m i n g t h e e x p
0013340 a n d i n g r i n g b r o a
0013360 d c a s t o n l y i f i t
0013400 f a i l s t h e r e . I f
0013420 t h e n e a r e s t C l e
0013440 a r i n g h o u s e s e r v e
0013460 r i s n o t o n t h e
0013500 d i r e c t l y c o n n e c t
0013520 e d n e t w o r k , s e t t
0013540 i n g { v a r C H . N E T .
0013560 H I N T } t o t h e p r o
0013600 p e r n e t w o r k n u m b
0013620 e r i n t h e l o c a l
0013640 s i t e i n i t f i l e (
0013660 { P a g e R e f T e r m S i
0013700 t e i n i t f i l e } ) c
0013720 a n s p e e d u p { f n
0013740 S T A R T . C L E A R I N G H O
0013760 U S E } c o n s i d e r a b l
0014000 y . \r } } \r \r { f n d e f { n
0014020 a m e S H O W . C L E A R I N
0014040 G H O U S E } { a r g s E N
0014060 T I R E . C L E A R I N G H O U
0014100 S E ? D O N T . G R A P H } \r
0014120 { t e x t \r T h i s f u n c t
0014140 i o n d i s p l a y s t h e
0014160 s t r u c t u r e o f t h
0014200 e c a c h e d C l e a r i n
0014220 g h o u s e i n f o r m a t i
0014240 o n i n a w i n d o w .
0014260 O n c e c r e a t e d , i
0014300 t w i l l b e r e d i s p
0014320 l a y e d w h e n e v e r t
0014340 h e c a c h e i s u p d a
0014360 t e d , u n t i l t h e w
0014400 i n d o w i s c l o s e d .
0014420 T h e s t r u c t u r e
0014440 i s s h o w n u s i n g t
0014460 h e L i b r a r y p a c k a
0014500 g e { l i s p G R A P H E R
0014520 } . \r \r I f { a r g E N T I
0014540 R E . C L E A R I N G H O U S E
0014560 ? } i s t r u e , t h e n
0014600 t h i s f u n c t i o n p
0014620 r o b e s t h e C l e a r i
0014640 n g h o u s e t o d i s c o
0014660 v e r t h e e n t i r e d
0014700 o m a i n : o r g a n i z a t i
0014720 o n s t r u c t u r e o f
0014740 t h e I n t e r n e t , a n
0014760 d g r a p h s t h e r e s
0015000 u l t . I f { a r g D O
0015020 N T . G R A P H } i s t r u
0015040 e , t h e s t r u c t u r e
0015060 i s n o t g r a p h e d ,
0015100 b u t r a t h e r t h e
0015120 r e s u l t s a r e r e t u
0015140 r n e d a s a n e s t e d
0015160 l i s t i n d i c a t i n g
0015200 t h e s t r u c t u r e . \r
0015220 } } \r \r { f n d e f { n a m e
0015240 L O O K U P . N S . S E R V E
0015260 R } { a r g s N A M E T Y
0015300 P E F U L L F L G } \r { t e x
0015320 t \r R e t u r n s t h e a d
0015340 d r e s s , a s a n { l i
0015360 s p N S A D D R E S S } , f
0015400 o r t h e o b j e c t { a
0015420 r g N A M E } . { a r g
0015440 T Y P E } i s t h e p r
0015460 o p e r t y u n d e r w h i
0015500 c h t h e a d d r e s s i
0015520 s s t o r e d , w h i c h
0015540 d e f a u l t s t o { l i s
0015560 p A D D R E S S . L I S T } .
0015600 T h e i n f o r m a t i o
0015620 n i s c a c h e d s o t
0015640 h a t i t n e e d n o t
0015660 b e r e c o m p u t e d o n
0015700 e a c h c a l l ; t h e
0015720 c a c h e i s c l e a r e d
0015740 b y r e s t a r t i n g t
0015760 h e C l e a r i n g h o u s e
0016000 . I f { a r g F U L L F
0016020 L G } i s t r u e , r e t
0016040 u r n s a l i s t w h o s
0016060 e f i r s t e l e m e n t
0016100 i s t h e c a n o n i c a l
0016120 n a m e o f { a r g N A
0016140 M E } a n d w h o s e t a
0016160 i l i s t h e a d d r e s
0016200 s l i s t . \r } } \r \r T h e
0016220 f o l l o w i n g f u n c t i
0016240 o n s p e r f o r m v a r i
0016260 o u s s o r t s o f r e t
0016300 r i e v a l o p e r a t i o n
0016320 s o n d a t a b a s e e n
0016340 t r i e s i n t h e C l e
0016360 a r i n g h o u s e . H e r
0016400 e , " T h e C l e a r i n g
0016420 h o u s e " r e f e r s t o
0016440 t h e c o l l e c t i v e
0016460 s e r v i c e o f f e r e d
0016500 b y a l l t h e C l e a r
0016520 i n g h o u s e s e r v e r s
0016540 o n a n i n t e r n e t ;
0016560 L i s p i n t e r n a l l y
0016600 d e a l s w i t h w h i c
0016620 h a c t u a l s e r v e r (
0016640 s ) i t n e e d s t o c
0016660 o n t a c t t o o b t a i n
0016700 t h e d e s r i e d i n f
0016720 o r m a t i o n . T h e a
0016740 r g u m e n t ( s ) d e s c r
0016760 i b i n g t h e o b j e c t
0017000 s u n d e r c o n s i d e r
0017020 a t i o n c a n b e s t r
0017040 i n g s o r { l i s p N S
0017060 N A M E } ' s , a n d i n
0017100 m o s t c a s e s c a n c
0017120 o n t a i n t h e w i l d
0017140 c a r d " { l i s p * } " ,
0017160 w h i c h m a t c h e s a
0017200 s u b s e q u e n c e o f
0017220 z e r o o r m o r e c h a
0017240 r a c t e r s . W i l d c a
0017260 r d s a r e p e r m i t t e
0017300 d o n l y i n t h e m o
0017320 s t s p e c i f i c f i e l
0017340 d o f a n a m e ( e . g
0017360 . , i n t h e o b j e c t
0017400 p a r t o f a f u l l
0017420 t h r e e - p a r t n a m e )
0017440 . W h e n a n o p e r a
0017460 t i o n i n t e n d e d f o
0017500 r a s i n g l e o b j e c
0017520 t i s i n s t e a d g i v
0017540 e n a p a t t e r n , t h
0017560 e o p e r a t i o n i s u
0017600 s u a l l y p e r f o r m e d
0017620 o n t h e f i r s t m a
0017640 t c h i n g o b j e c t i n
0017660 t h e d a t a b a s e , w
0017700 h i c h m a y o r m a y
0017720 n o t b e i n t e r e s t i
0017740 n g . \r \r { f n d e f { n a m
0017760 e C H . L O O K U P . O B J E
0020000 C T } { a r g s O B J E C T
0020020 P A T T E R N } \r { t e x t \r L
0020040 o o k s u p { a r g O B J
0020060 E C T P A T T E R N } i n t
0020100 h e C l e a r i n g h o u s e
0020120 d a t a b a s e , r e t u r
0020140 n i n g i t s c a n o n i c
0020160 a l n a m e ( a s a n {
0020200 l i s p N S N A M E } ) i f
0020220 f o u n d , { l i s p N I
0020240 L } o t h e r w i s e . I
0020260 f { a r g O B J E C T P A T
0020300 T E R N } c o n t a i n s a
0020320 " { l i s p * } " , r e t
0020340 u r n s t h e f i r s t m
0020360 a t c h i n g n a m e . \r } }
0020400 \r \r { f n d e f { n a m e C
0020420 H . L I S T . O R G A N I Z A T
0020440 I O N S } { a r g s O R G A
0020460 N I Z A T I O N P A T T E R N }
0020500 \r { t e x t \r R e t u r n s a
0020520 l i s t o f o r g a n i z
0020540 a t i o n n a m e s i n t
0020560 h e C l e a r i n g h o u s e
0020600 d a t a b a s e m a t c h i
0020620 n g { a r g O R G A N I Z A
0020640 T I O N P A T T E R N } . \r T h
0020660 e d e f a u l t p a t t e r
0020700 n i s " { l i s p * } " ,
0020720 w h i c h m a t c h e s a
0020740 n y t h i n g . \r } } \r \r { f n
0020760 d e f { n a m e C H . L I S
0021000 T . D O M A I N S } { a r g s
0021020 D O M A I N P A T T E R N } \r
0021040 { t e x t \r R e t u r n s a
0021060 l i s t o f d o m a i n n
0021100 a m e s ( t w o - p a r t {
0021120 l i s p N S N A M E } ' s ) \r
0021140 i n t h e C l e a r i n g h
0021160 o u s e d a t a b a s e m a
0021200 t c h i n g { a r g D O M A
0021220 I N P A T T E R N } . \r T h e
0021240 d e f a u l t p a t t e r n
0021260 i s " { l i s p * } " , w
0021300 h i c h m a t c h e s a n y
0021320 t h i n g i n t h e d e f
0021340 a u l t o r g a n i z a t i o
0021360 n . \r } } \r \r { f n d e f { n
0021400 a m e C H . L I S T . O B J E
0021420 C T S } { a r g s O B J E C
0021440 T P A T T E R N P R O P E R T
0021460 Y } \r { t e x t \r R e t u r n s
0021500 a l i s t o f o b j e c
0021520 t n a m e s m a t c h i n g
0021540 { a r g O B J E C T P A T T
0021560 E R N } \r a n d h a v i n g
0021600 t h e p r o p e r t y { a r
0021620 g P R O P E R T Y } . \r { a r
0021640 g P R O P E R T Y } i s a
0021660 n u m b e r o r a s y m
0021700 b o l i c n a m e f o r a
0021720 C l e a r i n g h o u s e p
0021740 r o p e r t y ; t h e l a t
0021760 t e r i n c l u d e { l i s
0022000 p U S E R } , { l i s p P
0022020 R I N T . S E R V I C E } , {
0022040 l i s p F I L E . S E R V I C
0022060 E } , { l i s p M E M B E R
0022100 S } , { l i s p A D D R E S
0022120 S . L I S T } a n d { l i s
0022140 p A L L } . \r \r F o r e x a
0022160 m p l e , \r \r { l i s p ( C H
0022200 . L I S T . O B J E C T S " *
0022220 : P A R C : X e r o x " ( Q U
0022240 O T E U S E R ) ) } \r \r r e t
0022260 u r n s a l i s t o f t
0022300 h e n a m e s o f u s e r
0022320 s i n t h e d o m a i n
0022340 P A R C : X e r o x . \r \r { l i
0022360 s p ( C H . L I S T . O B J E
0022400 C T S " * l i s p * : P A R C
0022420 : X e r o x " ( Q U O T E M
0022440 E M B E R S ) ) } \r \r r e t u r
0022460 n s a l i s t o f a l l
0022500 g r o u p n a m e s i n
0022520 P A R C : X e r o x c o n t a
0022540 i n i n g t h e s u b s t r
0022560 i n g " l i s p " . \r } } \r \r
0022600 { f n d e f { n a m e C H .
0022620 L I S T . A L I A S E S } { a
0022640 r g s O B J E C T N A M E P A
0022660 T T E R N } \r { t e x t \r R e t
0022700 u r n s a l i s t o f a
0022720 l l o b j e c t s i n t h
0022740 e C l e a r i n g h o u s e
0022760 d a t a b a s e t h a t a r
0023000 e a l i a s e s a n d m a
0023020 t c h { a r g O B J E C T N
0023040 A M E P A T T E R N } . \r } } \r
0023060 \r { f n d e f { n a m e C H
0023100 . L I S T . A L I A S E S . O F
0023120 } { a r g s O B J E C T P A
0023140 T T E R N } \r { t e x t \r R e t
0023160 u r n s a l i s t o f a
0023200 l l o b j e c t s i n t h
0023220 e C l e a r i n g h o u s e
0023240 d a t a b a s e t h a t a r
0023260 e a l i a s e s o f { a r
0023300 g O B J E C T P A T T E R N }
0023320 . \r } } \r \r { f n d e f { n a
0023340 m e C H . R E T R I E V E . I
0023360 T E M } { a r g s O B J E C
0023400 T P A T T E R N P R O P E R T
0023420 Y I N T E R P R E T A T I O N
0023440 } \r { t e x t \r R e t r i e v e
0023460 s t h e v a l u e o f t
0023500 h e { a r g P R O P E R T Y
0023520 } p r o p e r t y o f { a
0023540 r g O B J E C T P A T T E R N
0023560 } . R e t u r n s a l i
0023600 s t o f t w o e l e m e n
0023620 t s , t h e c a n o n i c a
0023640 l n a m e o f t h e o b
0023660 j e c t a n d t h e v a l
0023700 u e . I f { a r g I N T
0023720 E R P R E T A T I O N } i s
0023740 g i v e n , i t i s a C
0023760 l e a r i n g h o u s e t y p
0024000 e ( s e e { P a g e R e f
0024020 ( P r o p e r t y N a m e )
0024040 C O U R I E R D E F } ) w i t
0024060 h w h i c h t o i n t e r
0024100 p r e t t h e b i t s t h
0024120 a t c o m e b a c k ; o t
0024140 h e r w i s e , t h e v a l
0024160 u e i s s i m p l y o f
0024200 t h e f o r m { l i s p (
0024220 S E Q U E N C E U N S P E C I
0024240 F I E D ) } , a l i s t o
0024260 f 1 6 - b i t i n t e g e r
0024300 s r e p r e s e n t i n g t
0024320 h e v a l u e . \r } } \r \r { f
0024340 n d e f { n a m e C H . R E
0024360 T R I E V E . M E M B E R S }
0024400 { a r g s O B J E C T P A T T
0024420 E R N P R O P E R T Y { a n
0024440 o n a r g } } \r { t e x t \r R e
0024460 t r i e v e s t h e m e m b
0024500 e r s o f t h e g r o u p
0024520 { a r g O B J E C T P A T T
0024540 E R N } , a s a l i s t
0024560 o f { l i s p N S N A M E }
0024600 s . { a r g P R O P E R T
0024620 Y } i s t h e C l e a r i
0024640 n g h o u s e G r o u p p r
0024660 o p e r t y u n d e r w h i
0024700 c h t h e m e m b e r s a
0024720 r e s t o r e d ; t h e u
0024740 s u a l p r o p e r t y u s
0024760 e d f o r t h i s p u r p
0025000 o s e i s { l i s p M E M
0025020 B E R S } . { i n d e x M E M
0025040 B E R S ( C l e a r i n g h o
0025060 u s e G r o u p p r o p e r
0025100 t y ) } \r } } \r \r { f n d e f
0025120 { n a m e C H . I S M E M B E
0025140 R } { a r g s G R O U P N A
0025160 M E P R O P E R T Y S E C O
0025200 N D A R Y P R O P E R T Y N A
0025220 M E } \r { t e x t \r T e s t s
0025240 w h e t h e r { a r g N A M
0025260 E } i s a m e m b e r o
0025300 f { a r g G R O U P N A M E
0025320 } ' s { a r g P R O P E R T
0025340 Y } p r o p e r t y . T h
0025360 i s i s a p o t e n t i a
0025400 l l y c o m p l e x o p e r
0025420 a t i o n ; s e e t h e d
0025440 e s c r i p t i o n o f p r
0025460 o c e d u r e { l i s p I s
0025500 M e m b e r } i n t h e C
0025520 l e a r i n g h o u s e P r o
0025540 t o c o l d o c u m e n t a t
0025560 i o n f o r d e t a i l s .
0025600 \r } } \r \r \r \r } { e n d s u b
0025620 s e c C l e a r i n g h o u s
0025640 e F u n c t i o n s } \r \r { B
0025660 e g i n N o t e } \r T h i s
0025700 s e c t i o n [ N S P r i n
0025720 t i n g ] n o l o n g e r
0025740 n e e d e d . \r [ b v m : I
0025760 d i s a g r e e , i s s t i
0026000 l l i n t e r e s t i n g ] \r
0026020 { E n d N o t e } \r \r \r { b e
0026040 g i n s u b s e c N S P r
0026060 i n t i n g } \r { t i t l e N
0026100 S P r i n t i n g } \r { t e x
0026120 t \r T h i s s e c t i o n d
0026140 e s c r i b e s t h e f a c
0026160 i l i t i e s t h a t a r e
0026200 a v a i l a b l e f o r p
0026220 r i n t i n g I n t e r p r e
0026240 s s m a s t e r s o n N S
0026260 P r i n t s e r v e r s . \r
0026300 \r { B e g i n N o t e } \r [ b
0026320 v m : L e t ' s d e d o c u
0026340 m e n t t h i s . ] \r N S . D
0026360 E F A U L T . P R I N T E R \r T
0026400 h e v a l u e o f t h i s
0026420 v a r i a b l e i s u s e
0026440 d w h e n e v e r n o p r
0026460 i n t s e r v e r i s s p e
0026500 c i f i e d f o r t h e f
0026520 u n c t i o n s d e s c r i b
0026540 e d b e l o w . I t s v
0026560 a l u e i s a C l e a r i
0026600 n g h o u s e n a m e , a s
0026620 a n a t o m , s t r i n g
0026640 o r N S N A M E . I f
0026660 i t s v a l u e i s N I L
0026700 , i t w i l l b e s e t
0026720 a u t o m a t i c a l l y t
0026740 o s o m e p r i n t s e r v
0026760 e r i n t h e l o c a l
0027000 C l e a r i n g h o u s e d o
0027020 m a i n . I n e n v i r o
0027040 n m e n t s w h e r e t h e
0027060 r e i s n o C l e a r i n
0027100 g h o u s e , t h e v a l u
0027120 e o f \r N S . D E F A U L T .
0027140 P R I N T E R m u s t b e
0027160 a n a p p r o p r i a t e N
0027200 S A D D R E S S r e c o r d .
0027220 \r { E n d N o t e } \r \r \r { F
0027240 n D e f { N a m e N S P R I
0027260 N T } { A r g s P R I N T E
0027300 R F I L E O P T I O N S } \r
0027320 { t e x t \r T h i s f u n c t
0027340 i o n p r i n t s a n I n
0027360 t e r p r e s s m a s t e r
0027400 o n { a r g P R I N T E R }
0027420 , w h i c h i s a C l e
0027440 a r i n g h o u s e n a m e
0027460 r e p r e s e n t e d a s a
0027500 s t r i n g o r { l i s p
0027520 N S N A M E } . I f { a
0027540 r g P R I N T E R } i s {
0027560 l i s p N I L } , { f n N
0027600 S P R I N T } u s e s t h e
0027620 f i r s t p r i n t s e r
0027640 v e r r e g i s t e r e d i
0027660 n t h e d e f a u l t d o
0027700 m a i n . { a r g F I L E
0027720 } i s t h e n a m e o f
0027740 a n I n t e r p r e s s f
0027760 i l e t o b e p r i n t e
0030000 d . { a r g O P T I O N S
0030020 } i s a l i s t i n p
0030040 r o p e r t y l i s t f o r
0030060 m a t t h a t c o n t r o l
0030100 s d e t a i l s o f t h e
0030120 p r i n t i n g ( s e e {
0030140 f n S E N D . F I L E . T O .
0030160 P R I N T E R } , { P a g e R
0030200 e f F n S E N D . F I L E .
0030220 T O . P R I N T E R } ) . \r } }
0030240 \r \r \r { F n D e f { N a m e
0030260 N S P R I N T E R . S T A T U S
0030300 } { A r g s P R I N T E R }
0030320 \r { t e x t \r T h i s f u n c
0030340 t i o n r e t u r n s a l
0030360 i s t d e s c r i b i n g t
0030400 h e p r i n t e r ' s c u r
0030420 r e n t s t a t u s ; w h e
0030440 t h e r i t i s a v a i l
0030460 a b l e o r b u s y , a n
0030500 d w h a t k i n d o f p
0030520 a p e r i s l o a d e d . \r
0030540 } } \r \r \r { F n D e f { N a m
0030560 e N S P R I N T E R . P R O P
0030600 E R T I E S } { A r g s P R
0030620 I N T E R } \r { t e x t \r T h i
0030640 s f u n c t i o n r e t u r
0030660 n s a l i s t d e s c r i
0030700 b i n g t h e p r i n t e r
0030720 ' s c a p a b i l i t i e s
0030740 a t t h e m o m e n t ; t
0030760 h e t y p e o f p a p e r
0031000 l o a d e d , w h e t h e r
0031020 i t c a n p r i n t t w
0031040 o - s i d e d , e t c . \r } }
0031060 \r \r } { e n d s u b s e c N
0031100 S P r i n t i n g } \r \r \r \r \r
0031120 { b e g i n s u b s e c S P
0031140 P S t r e a m I n t e r f a
0031160 c e } \r { t i t l e S P P S
0031200 t r e a m I n t e r f a c e }
0031220 \r { t e x t \r T h i s s e c t
0031240 i o n d e s c r i b e s t h
0031260 e s t r e a m i n t e r f a
0031300 c e t o t h e S e q u e n
0031320 c e d P a c k e t P r o t o
0031340 c o l . S P P i s t h e
0031360 t r a n s p o r t p r o t o
0031400 c o l f o r C o u r i e r ,
0031420 w h i c h i n t u r n i
0031440 s t h e t r a n s p o r t
0031460 l a y e r f o r F i l i n g
0031500 a n d P r i n t i n g . \r \r
0031520 { f n d e f { n a m e S P P
0031540 . O P E N } { a r g s H O S
0031560 T S O C K E T P R O B E P
0031600 N A M E P R O P S } \r { t e x
0031620 t \r T h i s f u n c t i o n
0031640 i s u s e d t o o p e n
0031660 a b i d i r e c t i o n a l
0031700 S P P s t r e a m . T h e
0031720 r e a r e t w o c a s e s
0031740 : u s e r a n d s e r v e
0031760 r . \r \r U s e r : I f { a
0032000 r g H O S T } i s s p e c
0032020 i f i e d , a n S P P c o
0032040 n n e c t i o n i s i n i t
0032060 i a t e d t o { a r g H O
0032100 S T } , a n { l i s p N S
0032120 A D D R E S S } o r s t r i
0032140 n g r e p r e s e n t i n g
0032160 a n N S a d d r e s s .
0032200 I f t h e s o c k e t p a
0032220 r t o f t h e a d d r e s
0032240 s i s n u l l ( z e r o )
0032260 , i t i s d e f a u l t e
0032300 d t o { a r g S O C K E T
0032320 } . I f b o t h { a r g
0032340 H O S T } a n d { a r g P
0032360 R O B E P } a r e s p e c i
0032400 f i e d , t h e n t h e c
0032420 o n n e c t i o n i s p r o
0032440 b e d f o r a r e s p o n
0032460 s e b e f o r e r e t u r n
0032500 i n g t h e s t r e a m ;
0032520 { l i s p N I L } i s r e
0032540 t u r n e d i f { a r g H
0032560 O S T } d o e s n ' t r e s
0032600 p o n d . \r \r S e r v e r : I
0032620 f { a r g H O S T } i s
0032640 { l i s p N I L } , a p a
0032660 s s i v e c o n n e c t i o n
0032700 i s c r e a t e d w h i c
0032720 h l i s t e n s f o r a n
0032740 i n c o m i n g c o n n e c
0032760 t i o n t o l o c a l s o
0033000 c k e t { a r g S O C K E T
0033020 } . \r \r { f n S P P . O P E N
0033040 } r e t u r n s t h e i n
0033060 p u t s i d e o f t h e
0033100 b i d i r e c t i o n a l s t
0033120 r e a m ; t h e f u n c t i
0033140 o n { f n S P P O U T P U T
0033160 S T R E A M } i s u s e d
0033200 t o o b t a i n t h e o u
0033220 t p u t s i d e . T h e
0033240 s t a n d a r d s t r e a m
0033260 o p e r a t i o n s { f n B
0033300 I N } , { f n R E A D P } ,
0033320 { f n E O F P } ( o n t
0033340 h e i n p u t s i d e ) ,
0033360 a n d { f n B O U T } , {
0033400 f n F O R C E O U T P U T }
0033420 ( o n t h e o u t p u t s
0033440 i d e ) , a r e d e f i n e
0033460 d o n t h e s e s t r e a
0033500 m s , a s i s { f n C L
0033520 O S E F } , w h i c h c a n
0033540 b e a p p l i e d t o e
0033560 i t h e r s t r e a m t o
0033600 c l o s e t h e c o n n e c
0033620 t i o n . \r \r { a r g N A M E
0033640 } i s a m n e m o n i c
0033660 n a m e f o r t h e c o n
0033700 n e c t i o n p r o c e s s ,
0033720 m a i n l y u s e f u l f
0033740 o r d e b u g g i n g . \r \r {
0033760 a r g P R O P S } i s a n
0034000 o p t i o n a l p r o p e r
0034020 t y l i s t , u s e d t o
0034040 s e t t h e p r o p e r t
0034060 i e s t h a t d e t e r m i
0034100 n e t h e b e h a v i o r
0034120 o f t h e S P P s t r e a
0034140 m w h e n c e r t a i n e
0034160 v e n t s o c c u r . T h
0034200 e f o l l o w i n g p r o p
0034220 e r t i e s c a n b e s p
0034240 e c i f i e d : \r \r { B e g i n
0034260 L a b e l e d L i s t S P P
0034300 . O P E N p r o p e r t i e s
0034320 } \r \r { L a b e l { l i s p
0034340 C L O S E F N } } \r { T e x t \r
0034360 A f u n c t i o n o r l i
0034400 s t o f f u n c t i o n s
0034420 c a l l e d ( w i t h t h e
0034440 s t r e a m a s a r g u m
0034460 e n t ) w h e n a n S P P
0034500 c o n n e c t i o n i s c
0034520 l o s e d . \r } \r \r { L a b e l
0034540 { l i s p A T T E N T I O N
0034560 F N } } \r { T e x t \r A f u n
0034600 c t i o n c a l l e d ( w i
0034620 t h t h e s t r e a m a s
0034640 a r g u m e n t ) w h e n
0034660 a n A T T E N T I O N p a c
0034700 k e t i s r e c e i v e d
0034720 o n t h e S P P c o n n e
0034740 c t i o n . \r } \r \r { L a b e l
0034760 { l i s p E R R O R H A N D
0035000 L E R } } \r { T e x t \r A f u
0035020 n c t i o n c a l l e d ( w
0035040 i t h t h e s t r e a m a
0035060 s a r g u m e n t ) w h e n
0035100 a n e r r o r ( s u c h
0035120 a s e n d - o f - s t r e a m
0035140 ) o c c u r s o n t h e
0035160 S P P c o n n e c t i o n . \r
0035200 } \r \r { L a b e l { l i s p
0035220 O T H E R X I P H A N D L E R }
0035240 } \r { T e x t \r A f u n c t i
0035260 o n c a l l e d ( w i t h
0035300 t h e s t r e a m a s a r
0035320 g u m e n t ) w h e n a n
0035340 o n - S P P , n o n - e r r o
0035360 r p a c k e t i s r e c e
0035400 i v e d o n t h e s o c k
0035420 e t a s s o c i a t e d w i
0035440 t h t h e S P P c o n n e
0035460 c t i o n . \r } \r \r { L a b e l
0035500 { l i s p E O M . O N . F O
0035520 R C E O U T P U T } } \r { T e x
0035540 t \r T h e v a l u e o f t
0035560 h i s p r o p e r t y s h o
0035600 u l d b e e i t h e r { l
0035620 i s p T } o r { l i s p
0035640 N I L } ( t h e d e f a u l
0035660 t ) . I f { l i s p T }
0035700 , t h e n t h e e n d - o
0035720 f - m e s s a g e b i t i s
0035740 s e t w h e n t h e c u
0035760 r r e n t c o l l e c t i o n
0036000 o f b y t e s b u f f e r
0036020 e d f o r t r a n s m i s s
0036040 i o n i s f o r c i b l y
0036060 s e n t ( e . g . b y { f
0036100 n F O R C E O U T P U T } ,
0036120 { P a g e R e f F n F O R C
0036140 E O U T P U T } ) . \r } \r \r { L
0036160 a b e l { l i s p S E R V E
0036200 R . F U N C T I O N } } \r { T e
0036220 x t \r T h i s p r o p e r t y
0036240 c a n b e u s e d f o r
0036260 c r e a t i n g S P P s e
0036300 r v e r s . N o r m a l l y
0036320 , w h e n a c o n n e c t
0036340 i o n i s o p e n e d w i
0036360 t h t h e { a r g H O S T
0036400 } a r g u m e n t s e t t
0036420 o { l i s p N I L } , a
0036440 p a s s i v e " l i s t e n e
0036460 r " c o n n e c t i o n i s
0036500 c r e a t e d . { f n S
0036520 P P . O P E N } w i l l n o
0036540 t r e t u r n u n t i l s
0036560 o m e o t h e r h o s t a
0036600 t t e m p t s t o c o n n e
0036620 c t t o s o c k e t s p e
0036640 c i f i e d i n t h e { f
0036660 n S P P . O P E N } c a l l
0036700 . \r \r I f t h e { l i s p
0036720 S E R V E R . F U N C T I O N }
0036740 p r o p e r t y i s s p e
0036760 c i f i e d , a n e w l i
0037000 s t e n e r ( a n d l i s t
0037020 e n e r p r o c e s s ) i s
0037040 c r e a t e d . { f n S
0037060 P P . O P E N } w i l l r e
0037100 t u r n i m m e d i a t e l y
0037120 . W h e n e v e r a n o t
0037140 h e r h o s t a t t e m p t
0037160 s t o c o n n e c t t o
0037200 t h e s p e c i f i e d s o
0037220 c k e t , a n e w p r o c
0037240 e s s a n d u n i q u e S
0037260 P P c o n n e c t i o n a r
0037300 e c r e a t e d . T h e
0037320 f u n c t i o n s p e c i f i
0037340 e d b y t h e { l i s p
0037360 S E R V E R . F U N C T I O N }
0037400 p r o p e r t y i s r u n
0037420 i n t h e t o p l e v e
0037440 l o f t h e n e w p r o
0037460 c e s s . T h e s e r v e
0037500 r f u n c t i o n s h o u l
0037520 d b e a f u n c t i o n
0037540 o f t w o a r g u m e n t s
0037560 : t h e f i r s t a r g u
0037600 m e n t i s t h e S P P
0037620 i n p u t s t r e a m a s s
0037640 o c i a t e d w i t h t h e
0037660 c o n n e c t i o n ; t h e
0037700 s e c o n d a r g u m e n t
0037720 i s t h e S P P o u t p
0037740 u t s t r e a m a s s o c i
0037760 a t e d w i t h t h e c o
0040000 n n e c t i o n . \r } \r \r { E n
0040020 d L a b e l e d L i s t S P
0040040 P . O P E N p r o p e r t i e
0040060 s } \r } } \r \r { f n d e f { n
0040100 a m e S P P O U T P U T S T R
0040120 E A M } { a r g s S T R E A
0040140 M } \r { t e x t \r A p p l i e d
0040160 t o t h e i n p u t s t
0040200 r e a m o f a n S P P c
0040220 o n n e c t i o n , t h i s
0040240 f u n c t i o n r e t u r n s
0040260 t h e c o r r e s p o n d i
0040300 n g o u t p u t s t r e a m
0040320 . \r } } \r \r { v a r d e f { n
0040340 a m e S P P . U S E R . T I M
0040360 E O U T } \r { t e x t \r S p e c
0040400 i f i e s t h e t i m e ,
0040420 i n m i l l i s e c o n d s ,
0040440 t o w a i t b e f o r e
0040460 d e c i d i n g t h a t a
0040500 h o s t i s n ' t r e s p o
0040520 n d i n g . \r } } \r \r \r { f n d
0040540 e f { n a m e S P P . D S T
0040560 Y P E } { a r g s S T R E A
0040600 M D S T Y P E } \r { t e x t \r
0040620 A c c e s s e s t h e c u r
0040640 r e n t d a t a s t r e a m
0040660 t y p e o f t h e c o n n
0040700 e c t i o n . I f { a r g
0040720 D S T Y P E } i s { l i s
0040740 p N I L } , r e t u r n s
0040760 t h e d a t a s t r e a m t
0041000 y p e o f t h e c u r r e
0041020 n t p a c k e t b e i n g
0041040 r e a d . I f { a r g D
0041060 S T Y P E } i s n o n - { l
0041100 i s p N I L } , s e t s
0041120 t h e d a t a s t r e a m t
0041140 y p e o f a l l s u b s e
0041160 q u e n t p a c k e t s s e
0041200 n t o n t h i s c o n n e
0041220 c t i o n , u n t i l t h e
0041240 n e x t c a l l t o { f
0041260 n S P P . D S T Y P E } .
0041300 S i n c e t h i s a f f e c
0041320 t s t h e c u r r e n t p
0041340 a r t i a l l y - f i l l e d
0041360 p a c k e t , t h e s t r e
0041400 a m s h o u l d p r o b a b
0041420 l y b e f l u s h e d ( v
0041440 i a { f n F O R C E O U T P
0041460 U T } ) b e f o r e t h i s
0041500 f u n c t i o n i s c a l
0041520 l e d . \r } } \r \r \r { f n d e f
0041540 { n a m e S P P . S E N D E
0041560 O M } { a r g s S T R E A M
0041600 } \r { t e x t \r T r a n s m i t
0041620 s t h e d a t a b u f f e
0041640 r e d s o f a r o n t h
0041660 e o u t p u t s t r e a m
0041700 { a r g S T R E A M } , i f
0041720 a n y , w i t h t h e E
0041740 n d o f M e s s a g e b i
0041760 t s e t . I f t h e r e
0042000 i s n o t h i n g b u f f
0042020 e r e d , s e n d s a z e
0042040 r o - l e n g t h p a c k e t
0042060 w i t h t h e E n d o f
0042100 M e s s a g e b i t s e t
0042120 . \r } } \r \r \r { f n d e f { n
0042140 a m e S P P . S E N D A T T E
0042160 N T I O N } { a r g s S T R
0042200 E A M A T T E N T I O N B Y T
0042220 E { a n o n a r g } } \r { t e
0042240 x t \r S e n d s a n S P P
0042260 " a t t e n t i o n " p a c k
0042300 e t o n t h e o u t p u t
0042320 s t r e a m { a r g S T R
0042340 E A M } , w i t h t h e A
0042360 t t e n t i o n b i t s e t
0042400 a n d c o n t a i n i n g
0042420 t h e s i n g l e b y t e
0042440 o f d a t a { a r g A T T
0042460 E N T I O N B Y T E } . \r } } \r
0042500 \r \r N o t e : T h e a p p
0042520 r o p r i a t e w a y t o
0042540 d e t e r m i n e w h e t h e
0042560 r a n S P P s t r e a m
0042600 i s o p e n , o r w h e t
0042620 h e r a n E n d o f M e
0042640 s s a g e o r A t t e n t i
0042660 o n i n d i c a t i o n h a
0042700 s b e e n r e a c h e d (
0042720 f o r i n p u t s t r e a m
0042740 s ) i s t o u s e t h e
0042760 { i n d e x E O F P F n }
0043000 { f n E O F P } f u n c t i
0043020 o n ( { P a g e R e f F n
0043040 E O F P } ) . W h e n { f
0043060 n E O F P } i s a p p l i
0043100 e d t o a n S P P s t r
0043120 e a m , i t r e t u r n s
0043140 o n e o f t h e f o l l o
0043160 w i n g v a l u e s : \r \r { B
0043200 e g i n L a b e l e d l i s t
0043220 E O F P r e t u r n s t h
0043240 e f o l l o w i n g o n E
0043260 O F P } \r \r { L a b e l { l i
0043300 s p N I L } } \r { T e x t
0043320 T h e c o n n e c t i o n i
0043340 s o p e n a n d r e a d a
0043360 b l e o r w r i t a b l e .
0043400 } \r \r { L a b e l { l i s p
0043420 T } } \r { T e x t T h e c
0043440 o n n e c t i o n i s c l o
0043460 s e d . } \r \r { L a b e l { l
0043500 i s p E O M } } \r { T e x t
0043520 ( I n p u t s t r e a m s o
0043540 n l y ) T h e E n d o f
0043560 M e s s a g e b i t w a s
0043600 s e t i n t h e l a s t
0043620 p a c k e t r e c e i v e d ,
0043640 a n d a l l b y t e s f
0043660 r o m t h e p a c k e t h
0043700 a v e b e e n r e a d .
0043720 T h e f u n c t i o n { f n
0043740 S P P . C L E A R E O M } (
0043760 b e l o w ) m u s t b e c
0044000 a l l e d t o c l e a r t
0044020 h i s c o n d i t i o n . } \r
0044040 \r { L a b e l { l i s p A T
0044060 T E N T I O N } } \r { T e x t
0044100 ( I n p u t s t r e a m s o
0044120 n l y ) A n a t t e n t i
0044140 o n p a c k e t i s w a i
0044160 t i n g . { f n S P P . C
0044200 L E A R A T T E N T I O N } (
0044220 b e l o w ) m u s t b e c
0044240 a l l e d b e f o r e t h e
0044260 s i n g l e b y t e o f
0044300 d a t a a s s o c i a t e d
0044320 w i t h t h e a t t e n t i
0044340 o n p a c k e t c a n b e
0044360 r e a d . } \r \r { E n d L a
0044400 b e l e d l i s t E O F P r
0044420 e t u r n s t h e f o l l o
0044440 w i n g o n E O F P } \r \r \r
0044460 \r { f n d e f { n a m e S P
0044500 P . C L E A R E O M } { a r g
0044520 s S T R E A M N O E R R O R
0044540 F L G } \r { t e x t \r C l e a r
0044560 s t h e E n d o f M e s
0044600 s a g e i n d i c a t i o n
0044620 o n { a r g S T R E A M } .
0044640 T h i s i s n e c e s s
0044660 a r y i n o r d e r t o
0044700 r e a d b e y o n d t h e
0044720 E O M . C a u s e s a n
0044740 e r r o r i f t h e s t r
0044760 e a m i s n o t c u r r e
0045000 n t l y a t t h e E n d
0045020 o f M e s s a g e , u n l e
0045040 s s { a r g N O E R R O R F
0045060 L G } i s n o n - { l i s p
0045100 N I L } . \r } } \r \r \r \r { f n
0045120 d e f { n a m e S P P . C L
0045140 E A R A T T E N T I O N } { a
0045160 r g s S T R E A M N O E R R
0045200 O R F L G } \r { t e x t \r C l e
0045220 a r s t h e A t t e n t i o
0045240 n p a c k e t i n d i c a t
0045260 i o n o n { a r g S T R E
0045300 A M } . T h i s m u s t
0045320 b e c a l l e d b e f o r e
0045340 t h e s i n g l e b y t e
0045360 o f d a t a a s s o c i a
0045400 t e d w i t h t h e a t t
0045420 e n t i o n p a c k e t c a
0045440 n b e r e a d . C a u s
0045460 e s a n e r r o r i f t
0045500 h e s t r e a m d o e s n
0045520 o t h a v e a n a t t e n
0045540 t i o n p a c k e t w a i t
0045560 i n g , u n l e s s { a r g
0045600 N O E R R O R F L G } i s
0045620 n o n - { l i s p N I L } . \r
0045640 } } \r \r \r } { e n d s u b s e
0045660 c S P P S t r e a m I n t
0045700 e r f a c e } \r \r \r \r \r { b e g
0045720 i n s u b s e c C o u r i e
0045740 r R e m o t e P r o c e d u
0045760 r e C a l l P r o t o c o l
0046000 } \r { t i t l e C o u r i e r
0046020 R e m o t e P r o c e d u r
0046040 e C a l l P r o t o c o l }
0046060 \r { t e x t \r \r { i n d e x *
0046100 P R I M A R Y * C o u r i e r
0046120 } \r \r C o u r i e r i s t h
0046140 e X e r o x N e t w o r k
0046160 S y s t e m s R e m o t e P
0046200 r o c e d u r e C a l l p r
0046220 o t o c o l . I t u s e s
0046240 t h e S e q u e n c e d P
0046260 a c k e t P r o t o c o l f
0046300 o r r e l i a b l e t r a n
0046320 s p o r t . C o u r i e r
0046340 u s e s p r o c e d u r e c
0046360 a l l a s a m e t a p h o
0046400 r f o r t h e e x c h a n
0046420 g e o f a r e q u e s t
0046440 f r o m a u s e r p r o c
0046460 e s s a n d i t s p o s i
0046500 t i v e r e p l y f r o m
0046520 a s e r v e r p r o c e s s
0046540 ; e x c e p t i o n s o r
0046560 e r r o r c o n d i t i o n s
0046600 a r e t h e m e t a p h o
0046620 r f o r a n e g a t i v e
0046640 r e p l y . A f a m i l
0046660 y o f r e m o t e p r o c
0046700 e d u r e s a n d t h e e
0046720 r r o r s t h e y c a n r
0046740 a i s e c o n s t i t u t e
0046760 a r e m o t e p r o g r a m
0047000 . A r e m o t e p r o g
0047020 r a m g e n e r a l l y r e
0047040 p r e s e n t s a c o m p l
0047060 e t e s e r v i c e , s u c
0047100 h a s t h e F i l i n g
0047120 o r P r i n t i n g p r o g
0047140 r a m s d e s c r i b e d e
0047160 a r l i e r i n t h i s c
0047200 h a p t e r . \r \r F o r m o r
0047220 e d e t a i l a b o u t C
0047240 o u r i e r , t h e r e a d
0047260 e r i s r e f e r r e d t
0047300 o t h e p u b l i s h e d
0047320 s p e c i f i c a t i o n o f
0047340 t h e C o u r i e r p r o
0047360 t o c o l . T h e f o l l
0047400 o w i n g d o c u m e n t a t
0047420 i o n a s s u m e s s o m e
0047440 f a m i l i a r i t y w i t
0047460 h t h e p r o t o c o l .
0047500 I t d e s c r i b e s h o
0047520 w t o d e f i n e a C o
0047540 u r i e r p r o g r a m a n
0047560 d u s e i t t o c o m m
0047600 u n i c a t e w i t h a r
0047620 e m o t e s y s t e m e l e
0047640 m e n t t h a t i m p l e m
0047660 e n t s a s e r v e r f o
0047700 r t h a t p r o g r a m .
0047720 T h i s s e c t i o n d o
0047740 e s n o t d i s c u s s h
0047760 o w t o c o n s t r u c t
0050000 s u c h a s e r v e r . \r \r
0050020 { b e g i n s u b s e c D e
0050040 f i n i n g C o u r i e r P
0050060 r o g r a m s } \r { t i t l e
0050100 D e f i n i n g C o u r i e r
0050120 P r o g r a m s } \r { t e x t
0050140 \r \r { i n d e x * P R I M A R
0050160 Y * C o u r i e r p r o g r
0050200 a m s } \r \r A C o u r i e r
0050220 p r o g r a m d e f i n i t i
0050240 o n i s a c c e s s e d u
0050260 s i n g t h e f i l e p a
0050300 c k a g e t y p e { i n d e
0050320 x C O U R I E R P R O G R A M
0050340 S ( F i l e P a c k a g e
0050360 T y p e ) } { l i s p C O U R
0050400 I E R P R O G R A M S } , s o
0050420 { f n G E T D E F } , { f
0050440 n P U T D E F } , a n d {
0050460 f n E D I T D E F } c a n
0050500 b e u s e d t o m a n i p
0050520 u l a t e C o u r i e r p r
0050540 o g r a m s . T h e f i l
0050560 e p a c k a g e c o m m a n
0050600 d { i n d e x C O U R I E R
0050620 P R O G R A M S F i l e c o m
0050640 } { f i l e c o m C O U R I E
0050660 R P R O G R A M S } ( { P a g
0050700 e R e f F i l e c o m C O U
0050720 R I E R P R O G R A M S } ) c
0050740 a n b e u s e d t o s a
0050760 v e C o u r i e r p r o g r
0051000 a m s o n f i l e s . C
0051020 o u r i e r p r o g r a m a
0051040 r e i n i t i a l l y d e f
0051060 i n e d u s i n g t h e f
0051100 o l l o w i n g f u n c t i o
0051120 n : \r \r { f n d e f { n a m e
0051140 C O U R I E R P R O G R A M }
0051160 { a r g s N A M E { e l l
0051200 i p s i s } } \r { t y p e N L
0051220 A M B D A N O S P R E A D } \r
0051240 { t e x t \r T h i s f u n c t
0051260 i o n i s u s e d t o d
0051300 e f i n e C o u r i e r p r
0051320 o g r a m s . T h e s y n
0051340 t a x i s \r \r { l i s p c o d
0051360 e \r ( C O U R I E R P R O G R A
0051400 M { a r g N A M E } \r
0051420 ( { a r g P R O G R A M
0051440 N U M B E R } { a r g V E R
0051460 S I O N N U M B E R } ) \r
0051500 . { a r g D E F I N I
0051520 T I O N S } ) } \r \r T h e t a
0051540 i l { a r g D E F I N I T I
0051560 O N S } i s a p r o p e r
0051600 t y l i s t w h e r e t h
0051620 e p r o p e r t i e s a r e
0051640 s e l e c t e d f r o m {
0051660 l i s p T Y P E S } , { l i
0051700 s p P R O C E D U R E S } ,
0051720 { l i s p E R R O R S } a n
0051740 d { l i s p I N H E R I T S
0051760 } ; t h e v a l u e s a r
0052000 e l i s t s o f p a i r s
0052020 o f t h e f o r m ( { a
0052040 r g L A B E L } . { a r g
0052060 D E F I N I T I O N } ) .
0052100 T h e s e a r e d e s c r i
0052120 b e d i n m o r e d e t a
0052140 i l a s f o l l o w s : \r \r
0052160 T h e { l i s p T Y P E S }
0052200 s e c t i o n l i s t s t
0052220 h e s y m b o l i c a l l y -
0052240 d e f i n e d t y p e s u s
0052260 e d t o r e p r e s e n t
0052300 t h e a r g u m e n t s a n
0052320 d r e s u l t s o f p r o
0052340 c e d u r e s a n d e r r o
0052360 r s i n t h i s C o u r i
0052400 e r p r o g r a m . E a c
0052420 h e l e m e n t i n t h i
0052440 s s e c t i o n i s o f
0052460 t h e f o r m ( { a r g T
0052500 Y P E N A M E } { a r g T Y
0052520 P E D E F I N I T I O N } ) ,
0052540 e . g . , { l i s p ( P R I
0052560 O R I T Y I N T E G E R ) } .
0052600 T h e { a r g T Y P E D
0052620 E F I N I T I O N } c a n b
0052640 e a p r e d e f i n e d t
0052660 y p e ( s e e n e x t s e
0052700 c t i o n ) , a n o t h e r
0052720 t y p e d e f i n e d i n
0052740 t h i s { l i s p T Y P E S
0052760 } s e c t i o n , o r a
0053000 q u a l i f i e d t y p e n a
0053020 m e t a k e n f r o m a n
0053040 o t h e r C o u r i e r p r
0053060 o g r a m ; t h e s e l a t
0053100 t e r a r e w r i t t e n
0053120 a s a d o t t e d p a i r
0053140 ( { a r g P R O G R A M N A
0053160 M E } . { a r g T Y P E N
0053200 A M E } ) . \r \r T h e { l i s
0053220 p P R O C E D U R E S } s e
0053240 c t i o n l i s t s t h e
0053260 r e m o t e p r o c e d u r e
0053300 s d e f i n e d b y t h i
0053320 s C o u r i e r p r o g r a
0053340 m . A p r o c e d u r e
0053360 d e f i n i t i o n i s a
0053400 s t y l i z e d r e d u c t i
0053420 o n o f t h e C o u r i e
0053440 r d e f i n i t i o n s y n
0053460 t a x d e f i n e d i n t
0053500 h e C o u r i e r P r o t o
0053520 c o l s p e c i f i c a t i o
0053540 n : \r \r { l i s p c o d e ( {
0053560 a r g P R O C E D U R E N A M
0053600 E } { a r g N U M B E R }
0053620 { a r g A R G U M E N T S } \r
0053640 R E T U R
0053660 N S { a r g R E S U L T T Y
0053700 P E S } R E P O R T S { a r
0053720 g E R R O R N A M E S } ) } \r
0053740 \r { a r g A R G U M E N T S }
0053760 i s a l i s t o f t y
0054000 p e n a m e s , o n e p e
0054020 r a r g u m e n t t o t h
0054040 e r e m o t e p r o c e d u
0054060 r e , o r { l i s p N I L
0054100 } i f t h e p r o c e d u
0054120 r e t a k e s n o a r g u
0054140 m e n t s . { a r g R E S
0054160 U L T T Y P E S } i s a l
0054200 i s t o f t y p e n a m e
0054220 s , o n e f o r e a c h
0054240 v a l u e t o b e r e t u
0054260 r n e d . { a r g E R R O
0054300 R N A M E S } i s a l i s
0054320 t o f n a m e s o f e r
0054340 r o r s t h a t c a n b e
0054360 r a i s e d b y t h i s
0054400 p r o c e d u r e ; e a c h
0054420 s u c h e r r o r m u s t
0054440 b e l i s t e d i n t h e
0054460 p r o g r a m ' s { l i s p
0054500 E R R O R S } s e c t i o n
0054520 . T h e a t o m s { l i
0054540 s p R E T U R N S } a n d
0054560 { l i s p R E P O R T S } a
0054600 r e n o i s e w o r d s t
0054620 o a i d r e a d a b i l i t
0054640 y . \r \r T h e { l i s p E R
0054660 R O R S } s e c t i o n l i
0054700 s t s t h e e r r o r s t
0054720 h a t c a n b e r a i s e
0054740 d b y p r o c e d u r e s
0054760 i n t h i s p r o g r a m .
0055000 A n e r r o r d e f i n
0055020 i t i o n i s o f t h e
0055040 f o r m \r \r { l i s p ( { a r
0055060 g E R R O R N A M E } { a r
0055100 g N U M B E R } { a r g A
0055120 R G U M E N T S } ) } , \r \r w h
0055140 e r e { a r g A R G U M E N
0055160 T S } i s a l i s t o f
0055200 t y p e n a m e s , o n e
0055220 f o r e a c h a r g u m e
0055240 n t , i f a n y , r e p o
0055260 r t e d b y t h e e r r o
0055300 r . \r \r T h e { l i s p I N
0055320 H E R I T S } s e c t i o n
0055340 i s a n o p t i o n a l l
0055360 i s t o f o t h e r C o u
0055400 r i e r p r o g r a m s , s
0055420 o m e o f w h o s e d e f
0055440 i n i t i o n s a r e " i n
0055460 h e r i t e d " b y t h i s
0055500 p r o g r a m . M o r e
0055520 s p e c i f i c a l l y , i f
0055540 a t y p e , p r o c e d u
0055560 r e o r e r r o r r e f e
0055600 r e n c e d i n t h e c u
0055620 r r e n t p r o g r a m d e
0055640 f i n i t i o n i s n o t
0055660 d e f i n e d i n t h i s
0055700 p r o g r a m , t h e s y s
0055720 t e m s e a r c h e s f o r
0055740 a d e f i n i t i o n o f
0055760 i t i n e a c h o f t
0056000 h e i n h e r i t e d p r o
0056020 g r a m s i n t u r n , a
0056040 n d u s e s t h e f i r s
0056060 t s u c h d e f i n i t i o
0056100 n f o u n d . \r \r T h e { l
0056120 i s p I N H E R I T S } s e
0056140 c t i o n i s u s e f u l
0056160 w h e n d e f i n i n g v a
0056200 r i a n t s o f a g i v e
0056220 n C o u r i e r p r o g r a
0056240 m . F o r e x a m p l e ,
0056260 i f o n e w a n t e d t
0056300 o t r y o u t v e r s i o
0056320 n 4 o f C o u r i e r p
0056340 r o g r a m { l i s p B A R
0056360 } , a n d v e r s i o n 4
0056400 d i f f e r e d f r o m v
0056420 e r s i o n 3 o f p r o g
0056440 r a m { l i s p B A R } o
0056460 n l y i n a s m a l l n
0056500 u m b e r o f p r o c e d u
0056520 r e o r t y p e d e f i n
0056540 i t i o n s , o n e c o u l
0056560 d d e f i n e a p r o g r
0056600 a m { L i s p N E W B A R }
0056620 w i t h a n { l i s p I
0056640 N H E R I T S } s e c t i o n
0056660 o f { l i s p ( B A R ) }
0056700 a n d o n l y n e e d t
0056720 o l i s t t h e f e w c
0056740 h a n g e d d e f i n i t i o
0056760 n s i n s i d e { L i s p
0057000 N E W B A R } . \r } } \r \r } { e
0057020 n d s u b s e c D e f i n i
0057040 n g C o u r i e r P r o g r
0057060 a m s } \r \r \r \r { b e g i n s
0057100 u b s e c C o u r i e r T y
0057120 p e D e f i n i t i o n s } \r
0057140 { t i t l e C o u r i e r T
0057160 y p e D e f i n i t i o n s }
0057200 \r { t e x t \r \r T h i s s e c
0057220 t i o n d e s c r i b e s h
0057240 o w t h e C o u r i e r t
0057260 y p e s d e s c r i b e d i
0057300 n t h e C o u r i e r P r
0057320 o t o c o l d o c u m e n t
0057340 a r e e x p r e s s e d i n
0057360 a L i s p C o u r i e r
0057400 p r o g r a m d e f i n i t i
0057420 o n , a n d h o w v a l u
0057440 e s o f e a c h t y p e
0057460 a r e r e p r e s e n t e d .
0057500 E a c h t y p e i n a
0057520 C o u r i e r p r o g r a m
0057540 ' s { l i s p T Y P E S }
0057560 s e c t i o n m u s t u l t
0057600 i m a t e l y b e d e f i n
0057620 e d i n t e r m s o f o
0057640 n e o f t h e f o l l o w
0057660 i n g " b a s e " t y p e s
0057700 , a l t h o u g h t h e d
0057720 e f i n i t i o n c a n b e
0057740 i n d i r e c t t h r o u g
0057760 h a r b i t r a r i l y m a
0060000 n y l e v e l s . T h a t
0060020 i s , a t y p e c a n
0060040 b e d e f i n e d i n t e
0060060 r m s o f a n y o t h e r
0060100 t y p e k n o w n b y a
0060120 n e x t a n t C o u r i e r
0060140 d e f i n i t i o n . T h
0060160 e n a m e s o f t h e b
0060200 a s e t y p e s a r e " g
0060220 l o b a l " ; t h e y n e e
0060240 d n o q u a l i f i c a t i
0060260 o n , n o r d o t y p e
0060300 n a m e s m e n t i o n e d
0060320 i n t h e s a m e C o u r
0060340 i e r p r o g r a m . T o
0060360 r e f e r t o a t y p e
0060400 n o t d e f i n e d i n
0060420 t h e s a m e C o u r i e r
0060440 p r o g r a m ( o r t o
0060460 a n y n o n - b a s e t y p
0060500 e w h e n t h e r e i s
0060520 n o p r o g r a m c o n t e
0060540 x t ) , o n e w r i t e s
0060560 a { i t Q u a l i f i e d
0060600 n a m e } , i n t h e f o
0060620 r m ( { a r g P R O G R A M
0060640 . T Y P E } ) . I n g
0060660 e n e r a l , a Q u a l i f
0060700 i e d n a m e i s l e g a
0060720 l i n a n y p l a c e t
0060740 h a t c a l l s f o r a
0060760 C o u r i e r t y p e . \r \r {
0061000 b e g i n s u b s e c P r e
0061020 - d e f i n e d T y p e s } \r
0061040 { t i t l e P r e - d e f i n
0061060 e d T y p e s } \r { t e x t \r
0061100 \r P r e - d e f i n e d ( a t
0061120 o m i c ) t y p e s a r e
0061140 e x p r e s s e d a s u p p
0061160 e r c a s e l i t a t o m s
0061200 f r o m t h e f o l l o w i
0061220 n g s e t : \r \r { l a b e l e
0061240 d l i s t \r \r { n a m e { l i
0061260 s p B O O L E A N } } { i t
0061300 e m V a l u e s a r e r e
0061320 p r e s e n t e d b y { l i
0061340 s p T } a n d { l i s p
0061360 N I L } . } \r { n a m e { l i
0061400 s p I N T E G E R } } { i t
0061420 e m V a l u e s a r e r e
0061440 p r e s e n t e d a s s m a
0061460 l l i n t e g e r s i n t
0061500 h e r a n g e [ - 3 2 7 6 8
0061520 . . 3 2 7 6 7 ] . } \r { n a m e
0061540 { l i s p C A R D I N A L }
0061560 } { i t e m V a l u e s a
0061600 r e r e p r e s e n t e d a
0061620 s s m a l l i n t e g e r s
0061640 i n t h e r a n g e [ 0
0061660 . . 6 5 5 3 5 ] . } \r { n a m e
0061700 { l i s p U N S P E C I F I
0061720 E D } } { i t e m S a m e
0061740 a s { l i s p C A R D I N A
0061760 L } . } \r { n a m e { l i s p
0062000 L O N G I N T E G E R } } {
0062020 i t e m V a l u e s a r e
0062040 r e p r e s e n t e d a s {
0062060 l i s p F I X P } ' s . } \r {
0062100 n a m e { l i s p L O N G C
0062120 A R D I N A L } } { i t e m
0062140 S a m e a s { l i s p L O
0062160 N G I N T E G E R } . N o t
0062200 e t h a t I n t e r l i s p
0062220 - D d o e s n o t ( c u r
0062240 r e n t l y ) h a v e a d
0062260 a t a t y p e t h a t t r u
0062300 l y r e p r e s e n t s a
0062320 3 2 - b i t { i t u n s i g
0062340 n e d } i n t e g e r . } \r {
0062360 n a m e { l i s p S T R I N
0062400 G } } { i t e m V a l u e s
0062420 a r e r e p r e s e n t e d
0062440 a s L i s p s t r i n g s
0062460 . } \r } \r \r I n a d d i t i o
0062500 n , t h e f o l l o w i n g
0062520 t y p e s n o t i n t h
0062540 e d o c u m e n t h a v e
0062560 b e e n a d d e d f o r c
0062600 o n v e n i e n c e : \r \r { l a
0062620 b e l e d l i s t \r \r { n a m e
0062640 { l i s p T I M E } } { i
0062660 t e m R e p r e s e n t s a
0062700 d a t e a n d t i m e i
0062720 n a c c o r d a n c e w i t
0062740 h t h e N e t w o r k T i
0062760 m e S t a n d a r d . T h
0063000 e v a l u e i s a { l i
0063020 s p F I X P } s u c h a s
0063040 r e t u r n e d b y t h e
0063060 f u n c t i o n { f n I D
0063100 A T E } , a n d i s e n c
0063120 o d e d a s a { l i s p
0063140 L O N G C A R D I N A L } . } \r
0063160 \r { n a m e { l i s p N S A
0063200 D D R E S S } } { i t e m R
0063220 e p r e s e n t s a n e t w
0063240 o r k a d d r e s s . T h
0063260 e v a l u e i s a n o b
0063300 j e c t o f t y p e { L i
0063320 s p N S A D D R E S S } { i n
0063340 d e x N S A D D R E S S ( D
0063360 a t a T y p e ) } ( { P a g
0063400 e R e f ( D a t a T y p e )
0063420 N S A D D R E S S } ) , a n
0063440 d i s e n c o d e d a s
0063460 s i x i t e m s o f t y p
0063500 e { l i s p U N S P E C I F
0063520 I E D } . } \r \r { n a m e { l
0063540 i s p N S N A M E } } { i t
0063560 e m R e p r e s e n t s a
0063600 t h r e e - p a r t C l e a r
0063620 i n g h o u s e n a m e .
0063640 T h e v a l u e i s a n
0063660 o b j e c t o f t y p e {
0063700 l i s p N S N A M E } { i n d
0063720 e x N S N A M E ( D a t a
0063740 T y p e ) } ( { P a g e R e f
0063760 ( D a t a T y p e ) N S N
0064000 A M E } ) , a n d i s e n
0064020 c o d e d a s t h r e e i
0064040 t e m s o f t y p e { l i
0064060 s p S T R I N G } . } \r \r { n
0064100 a m e { l i s p N S N A M E
0064120 2 } } { i t e m R e p r e s
0064140 e n t s a t w o - p a r t
0064160 C l e a r i n g h o u s e n a
0064200 m e , i . e . , a d o m a
0064220 i n . T h e v a l u e i
0064240 s a n o b j e c t o f t
0064260 y p e { l i s p N S N A M E
0064300 } { i n d e x N S N A M E (
0064320 D a t a T y p e ) } ( { P a
0064340 g e R e f ( D a t a T y p e
0064360 ) N S N A M E } ) , a n d
0064400 i s e n c o d e d a s t w
0064420 o i t e m s o f t y p e
0064440 { l i s p S T R I N G } . } \r
0064460 } \r } { e n d s u b s e c P
0064500 r e - d e f i n e d T y p e s
0064520 } \r \r \r { b e g i n s u b s e
0064540 c C o n s t r u c t e d T y
0064560 p e s } \r { t i t l e C o n s
0064600 t r u c t e d T y p e s } \r {
0064620 t e x t \r \r C o n s t r u c t e
0064640 d T y p e s a r e c o m p
0064660 o s i t e o b j e c t s m a
0064700 d e u p o f e l e m e n t
0064720 s o f o t h e r t y p e s
0064740 . T h e y a r e a l l
0064760 e x p r e s s e d a s a l
0065000 i s t w h o s e { f n C A
0065020 R } n a m e s t h e t y p
0065040 e a n d w h o s e r e m a
0065060 i n i n g e l e m e n t s g
0065100 i v e d e t a i l s . T h
0065120 e f o l l o w i n g a r e
0065140 a v a i l a b l e : \r \r { b e g
0065160 i n l a b e l e d l i s t E
0065200 n u m e r a t i o n o f C o
0065220 n s t r u c t e d T y p e s }
0065240 \r \r { L a b e l { l i s p (
0065260 E N U M E R A T I O N ( { a r
0065300 g N A M E I N D E X } ) .
0065320 . . ( { a r g N A M E I N
0065340 D E X } ) ) } } \r { L a b e l
0065360 } \r { i t e m E a c h { a r
0065400 g N A M E } i s a n a r
0065420 b i t r a r y l i t a t o m
0065440 o r s t r i n g ; t h e c
0065460 o r r e s p o n d i n g { a r
0065500 g I N D E X } i s i t s
0065520 C o u r i e r e n c o d i n g
0065540 ( a { l i s p C A R D I N
0065560 A L } ) . V a l u e s o f
0065600 t y p e { l i s p E N U M
0065620 E R A T I O N } a r e r e p
0065640 r e s e n t e d a s a { a
0065660 r g N A M E } f r o m t h
0065700 e l i s t o f c h o i c e
0065720 s . F o r e x a m p l e ,
0065740 a v a l u e o f t y p e
0065760 { l i s p ( E N U M E R A T
0066000 I O N ( U N K N O W N 0 )
0066020 ( R E D 1 ) ( B L U E 2 )
0066040 ) } m i g h t b e t h e
0066060 l i t a t o m { l i s p R E
0066100 D } . } \r \r { n a m e { l i s
0066120 p ( S E Q U E N C E { a r g
0066140 T Y P E } ) } } \r { i t e m
0066160 A { l i s p S E Q U E N C E
0066200 } v a l u e i s r e p r e
0066220 s e n t e d a s a l i s t
0066240 , e a c h e l e m e n t b
0066260 e i n g o f t y p e { a r
0066300 g T Y P E } . A { l i s
0066320 p S E Q U E N C E } o f l
0066340 e n g t h z e r o i s r e
0066360 p r e s e n t e d a s { l i
0066400 s p N I L } . N o t e t
0066420 h a t t h e r e i s n o
0066440 m a x i m u m l e n g t h f
0066460 o r a { l i s p S E Q U E
0066500 N C E } i n t h e L i s p
0066520 i m p l e m e n t a t i o n
0066540 o f C o u r i e r . } \r \r { n
0066560 a m e { l i s p ( A R R A Y
0066600 { a r g L E N G T H T Y P
0066620 E } ) } } \r { i t e m A n {
0066640 l i s p A R R A Y } v a l u
0066660 e i s r e p r e s e n t e d
0066700 a s a l i s t o f { a
0066720 r g L E N G T H } e l e m e
0066740 n t s , e a c h o f t y p
0066760 e { a r g T Y P E } . } \r \r
0067000 { n a m e { l i s p ( C H O
0067020 I C E ( { a r g N A M E I
0067040 N D E X T Y P E } ) . . .
0067060 ( { a r g N A M E I N D E X
0067100 T Y P E } ) ) } } \r { L a b e
0067120 l } \r { i t e m T h e { l
0067140 i s p C H O I C E } t y p e
0067160 a l l o w s o n e t o s
0067200 e l e c t a m o n g s e v e
0067220 r a l d i f f e r e n t t y
0067240 p e s a t r u n t i m e ;
0067260 t h e { a r g I N D E X }
0067300 i s u s e d i n t h e e
0067320 n c o d i n g t o d i s t i
0067340 n g u i s h t h e v a l u e
0067360 t y p e s . A v a l u e
0067400 o f t y p e { l i s p C
0067420 H O I C E } i s r e p r e s
0067440 e n t e d i n L i s p a s
0067460 a l i s t o f t w o e
0067500 l e m e n t s , ( { a r g N
0067520 A M E } { a r g V A L U E }
0067540 ) . F o r e x a m p l e ,
0067560 a v a l u e o f t y p e
0067600 \r \r { l i s p c o d e ( C H
0067620 O I C E ( S T A T U S 0 (
0067640 E N U M E R A T I O N ( B U S
0067660 Y 0 ) ( C O M P L E T E 1
0067700 ) ) ) \r ( M E
0067720 S S A G E 1 S T R I N G ) )
0067740 } \r \r c o u l d b e { l i s
0067760 p ( S T A T U S C O M P L E
0070000 T E ) } o r { l i s p ( M
0070020 E S S A G E " O u t o f p
0070040 a p e r . " ) } . } \r \r { n a m
0070060 e { l i s p ( R E C O R D
0070100 ( { a r g F I E L D N A M E
0070120 T Y P E } ) . . . ( { a r g
0070140 F I E L D N A M E T Y P E }
0070160 ) ) } } \r { L a b e l } \r { i
0070200 t e m V a l u e s o f t y
0070220 p e { l i s p R E C O R D }
0070240 a r e r e p r e s e n t e d
0070260 a s l i s t s , w i t h
0070300 o n e e l e m e n t f o r
0070320 e a c h f i e l d o f t h
0070340 e r e c o r d . T h e f
0070360 i e l d n a m e s a r e n
0070400 o t p a r t o f t h e v
0070420 a l u e , b u t a r e i n
0070440 c l u d e d f o r d o c u m
0070460 e n t a t i o n p u r p o s e
0070500 s . } \r \r { e n d l a b e l e
0070520 d l i s t E n u m e r a t i o
0070540 n o f C o n s t r u c t e d
0070560 T y p e s } \r \r F o r p r o
0070600 g r a m m e r c o n v e n i e
0070620 n c e , t h e r e a r e t
0070640 w o m a c r o s t h a t a
0070660 l l o w C o u r i e r r e c
0070700 o r d s t o b e c o n s t
0070720 r u c t e d a n d d i s s e
0070740 c t e d i n a m a n n e r
0070760 s i m i l a r t o L i s p
0071000 r e c o r d s . T h e s e
0071020 c o m p i l e i n t o t h
0071040 e a p p r o p r i a t e c o
0071060 m p o s i t e s o f { f n
0071100 C O N S } , { f n C A R }
0071120 a n d { f n C D R } . \r \r {
0071140 M a c D e f { n a m e C O U
0071160 R I E R . C R E A T E } { a r
0071200 g s T Y P E F I E L D N A M
0071220 E _ V A L U E { e l l i p
0071240 s i s } F I E L D N A M E _
0071260 V A L U E } \r { t e x t \r C r
0071300 e a t e s a v a l u e o f
0071320 t y p e { a r g T Y P E }
0071340 , w h i c h s h o u l d b
0071360 e a f u l l y - q u a l i f
0071400 i e d t y p e n a m e t h
0071420 a t d e s i g n a t e s a
0071440 { l i s p R E C O R D } t y
0071460 p e , e . g . , { l i s p
0071500 ( M A I L T R A N S P O R T .
0071520 P O S T M A R K ) } . E a
0071540 c h { a r g F I E L D N A M
0071560 E } s h o u l d c o r r e s
0071600 p o n d t o a f i e l d
0071620 o f t h e r e c o r d , a
0071640 n d a l l f i e l d s m u
0071660 s t b e i n c l u d e d .
0071700 E a c h { a r g V A L U E
0071720 } i s e v a l u a t e d ;
0071740 a l l o t h e r a r g u m e
0071760 n t s a r e n o t . T h
0072000 e a s s i g n m e n t a r r
0072020 o w s a r e f o r r e a d
0072040 a b i l i t y , a n d a r e
0072060 o p t i o n a l . \r } } \r \r {
0072100 M a c D e f { n a m e C O U
0072120 R I E R . F E T C H } { a r g
0072140 s T Y P E F I E L D O B J
0072160 E C T } \r { t e x t \r A n a l o
0072200 g o u s t o t h e R e c o
0072220 r d P a c k a g e o p e r a
0072240 t o r { l i s p f e t c h }
0072260 . A r g u m e n t { a r g
0072300 T Y P E } i s a s w i t
0072320 h { m a c C O U R I E R . C
0072340 R E A T E } ; { a r g F I E
0072360 L D } i s t h e n a m e
0072400 o f o n e o f i t s f i
0072420 e l d s . { m a c C O U R
0072440 I E R . F E T C H } e x t r a
0072460 c t s t h e i n d i c a t e
0072500 d f i e l d f r o m { a r
0072520 g O B J E C T } . F o r
0072540 r e a d a b i l i t y , t h e
0072560 n o i s e w o r d " { l i s
0072600 p o f } " m a y b e i n
0072620 s e r t e d b e t w e e n {
0072640 a r g F I E L D } a n d {
0072660 a r g O B J E C T } . O n
0072700 l y t h e a r g u m e n t
0072720 { a r g O B J E C T } i s
0072740 e v a l u a t e d . \r } } \r \r F
0072760 o r e x a m p l e , i f t
0073000 h e p r o g r a m { l i s p
0073020 C L E A R I N G H O U S E }
0073040 h a s a t y p e d e c l a
0073060 r a t i o n \r \r { l i s p c o d
0073100 e ( U S E R D A T A . V A L U
0073120 E ( R E C O R D ( L A S T .
0073140 N A M E . I N D E X C A R D I
0073160 N A L ) \r
0073200 ( F I
0073220 L E . S E R V I C E S T R I N
0073240 G ) ) ) , } \r \r t h e n t h e
0073260 e x p r e s s i o n \r \r { l i
0073300 s p c o d e \r ( S E T Q I N F
0073320 O ( C O U R I E R . C R E A T
0073340 E \r
0073360 ( C L E A R I N G H O U
0073400 S E . U S E R D A T A . V A
0073420 L U E ) \r
0073440 L A S T . N A M E
0073460 . I N D E X _ 1 2 \r
0073500 F I
0073520 L E . S E R V I C E _ " P h
0073540 y l e x : P A R C : X e r o x "
0073560 ) } \r \r w o u l d s e t t h
0073600 e v a r i a b l e { l i s p
0073620 I N F O } t o t h e l i
0073640 s t { l i s p ( 1 2 " P h
0073660 y l e x : P A R C : X e r o x "
0073700 ) } . T h e e x p r e s s
0073720 i o n \r \r { l i s p c o d e \r (
0073740 C O U R I E R . F E T C H ( C
0073760 L E A R I N G H O U S E . U
0074000 S E R D A T A . V A L U E ) \r
0074020 F I L E . S E R V I C E o
0074040 f I N F O ) } \r \r w o u l d
0074060 p r o d u c e { l i s p " P
0074100 h y l e x : P A R C : X e r o x
0074120 " } . \r \r } { e n d s u b s e
0074140 c C o n s t r u c t e d T y
0074160 p e s } \r \r { b e g i n s u b
0074200 s e c U s e r E x t e n s i
0074220 o n s t o t h e T y p e
0074240 L a n g u a g e } \r { t i t l e
0074260 U s e r E x t e n s i o n s
0074300 t o t h e T y p e L a n
0074320 g u a g e } \r { t e x t \r \r T h
0074340 e p r o g r a m m e r c a n
0074360 a d d n e w b a s e t y
0074400 p e s t o t h e C o u r i
0074420 e r l a n g u a g e b y t
0074440 e l l i n g t h e s y s t e
0074460 m h o w t o r e a d a n
0074500 d w r i t e v a l u e s o
0074520 f t h a t t y p e . T h
0074540 e p r o g r a m m e r c h o
0074560 o s e s a n a m e f o r
0074600 t h e t y p e , a n d g i
0074620 v e s t h e n a m e a {
0074640 p r o p C O U R I E R D E F }
0074660 p r o p e r t y . T h e
0074700 n e w n a m e c a n t h e
0074720 n b e u s e d a n y w h e
0074740 r e t h a t t h e t y p e
0074760 n a m e s l i s t e d i n
0075000 t h e p r e v i o u s s e
0075020 c t i o n s , s u c h a s
0075040 { l i s p C A R D I N A L } ,
0075060 c a n b e u s e d . S
0075100 u c h e x t e n s i o n s a
0075120 r e u s e f u l f o r u s
0075140 e r - d e f i n e d o b j e c
0075160 t s , s u c h a s d a t a
0075200 t y p e s , t h a t a r e
0075220 n o t n a t u r a l l y r e
0075240 p r e s e n t e d b y a n y
0075260 p r e d e f i n e d o r c
0075300 o n s t r u c t e d t y p e .
0075320 T h e { l i s p N S A D
0075340 D R E S S } a n d { l i s p
0075360 N S N A M E } C o u r i e r
0075400 t y p e s a r e d e f i n
0075420 e d b y t h i s m e c h a
0075440 n i s m . \r \r { P r o p D e f
0075460 { n a m e C O U R I E R D E F
0075500 } \r { t e x t \r T h e f o r m
0075520 a t o f t h e { p r o p
0075540 C O U R I E R D E F } p r o p
0075560 e r t y i s a l i s t o
0075600 f u p t o f o u r e l e
0075620 m e n t s , ( { a r g R E A
0075640 D F N W R I T E F N L E N G
0075660 T H F N W R I T E R E P F N }
0075700 ) . T h e f i r s t t w
0075720 o e l e m e n t s a r e r
0075740 e q u i r e d ; i f t h e
0075760 l a t t e r t w o a r e o
0076000 m i t t e d , t h e s y s t
0076020 e m w i l l s i m u l a t e
0076040 t h e m a s n e e d e d .
0076060 T h e e l e m e n t s a
0076100 r e a s f o l l o w s : \r \r
0076120 { b e g i n l a b e l e d l i
0076140 s t C O U R I E R D E F f i
0076160 e l d s } \r \r { l a b e l { a
0076200 r g R E A D F N } } \r { t e x
0076220 t T h i s i s a f u n c
0076240 t i o n o f t h r e e a r
0076260 g u m e n t s , ( { a r g S
0076300 T R E A M P R O G R A M T Y
0076320 P E } ) . T h e f u n c t
0076340 i o n i s c a l l e d b y
0076360 C o u r i e r w h e n i t
0076400 n e e d s t o r e a d a
0076420 v a l u e o f t h i s t
0076440 y p e f r o m { a r g S T
0076460 R E A M } a s p a r t o f
0076500 a C o u r i e r t r a n s
0076520 a c t i o n . T h e f u n
0076540 c t i o n r e a d s a n d
0076560 r e t u r n s t h e v a l u
0076600 e f r o m { a r g S T R E
0076620 A M } , p o s s i b l y u s
0076640 i n g f u n c t i o n s s u
0076660 c h a s { f n C O U R I E
0076700 R . R E A D } ( { P a g e R e
0076720 f f n C O U R I E R . R E A
0076740 D } ) . { a r g P R O G R
0076760 A M } a n d { a r g T Y P
0077000 E } a r e t h e n a m e
0077020 o f t h e C o u r i e r p
0077040 r o g r a m a n d t h e t
0077060 y p e . I n t h e c a s
0077100 e o f a t o m i c t y p e
0077120 s , { a r g T Y P E } i s
0077140 a l i t a t o m , a n d
0077160 i s p r o v i d e d f o r
0077200 t y p e d i s c r i m i n a t
0077220 i o n i n c a s e t h e
0077240 p r o g r a m m e r h a s s
0077260 u p p l i e d a s i n g l e
0077300 r e a d i n g f u n c t i o
0077320 n f o r s e v e r a l d i
0077340 f f e r e n t t y p e s .
0077360 I n t h e c a s e o f c
0077400 o n s t r u c t e d t y p e s
0077420 , { a r g T Y P E } i s
0077440 a l i s t , { f n C A R }
0077460 o f w h i c h i s t h e
0077500 t y p e n a m e . } \r \r { l
0077520 a b e l { a r g W R I T E F
0077540 N } } \r { t e x t T h i s i
0077560 s a f u n c t i o n o f
0077600 f o u r a r g u m e n t s ,
0077620 ( { a r g S T R E A M V A L
0077640 U E P R O G R A M T Y P E }
0077660 ) . T h e f u n c t i o n
0077700 i s c a l l e d b y C o
0077720 u r i e r w h e n i t n e
0077740 e d s t o w r i t e { a r
0077760 g V A L U E } t o { a r g
0100000 S T R E A M } . { a r g P
0100020 R O G R A M } a n d { a r g
0100040 T Y P E } a r e a s w i
0100060 t h t h e r e a d i n g f
0100100 u n c t i o n . T h e f u
0100120 n c t i o n s h o u l d w r
0100140 i t e { a r g V A L U E }
0100160 o n { a r g S T R E A M } .
0100200 T h e r e s u l t r e t
0100220 u r n e d f r o m t h i s
0100240 f u n c t i o n i s i g n o
0100260 r e d . } \r \r { l a b e l { a
0100300 r g L E N G T H F N } } \r { t
0100320 e x t T h i s f u n c t i o
0100340 n i s c a l l e d w h e n
0100360 C o u r i e r w a n t s t
0100400 o w r i t e a v a l u e
0100420 o f t h i s t y p e i n
0100440 t h e f o r m { l i s p (
0100460 S E Q U E N C E U N S P E C I
0100500 F I E D ) } , a n d t h e n
0100520 o n l y i f t h e { a r
0100540 g W R I T E R E P F N } i s
0100560 o m i t t e d . T h e f
0100600 u n c t i o n i s o f t h
0100620 r e e a r g u m e n t s , (
0100640 { a r g V A L U E P R O G R
0100660 A M T Y P E } ) . I t s
0100700 h o u l d r e t u r n , a s
0100720 a n i n t e g e r , t h e
0100740 n u m b e r o f 1 6 - b i
0100760 t w o r d s t h a t t h e
0101000 { a r g W R I T E F N } w
0101020 o u l d r e q u i r e t o
0101040 w r i t e o u t t h i s v
0101060 a l u e . I f v a l u e s
0101100 o f t h i s t y p e a r
0101120 e a l l t h e s a m e l
0101140 e n g t h , t h e { a r g
0101160 L E N G T H F N } c a n b e
0101200 a s i m p l e i n t e g e
0101220 r i n s t e a d o f a f
0101240 u n c t i o n . S e e d i
0101260 s c u s s i o n o f { f n
0101300 C O U R I E R . W R I T E . S E
0101320 Q U E N C E . U N S P E C I F I
0101340 E D } ( { P a g e R e f f n
0101360 C O U R I E R . W R I T E . S
0101400 E Q U E N C E . U N S P E C I F
0101420 I E D } . } \r \r { l a b e l {
0101440 a r g W R I T E R E P F N } }
0101460 \r { T e x t T h i s f u n c
0101500 t i o n i s c a l l e d w
0101520 h e n C o u r i e r w a n t
0101540 s t o w r i t e a v a l
0101560 u e o f t h i s t y p e
0101600 i n t h e f o r m { l i s
0101620 p ( S E Q U E N C E U N S P
0101640 E C I F I E D ) } . T h e
0101660 f u n c t i o n t a k e s t
0101700 h e s a m e a r g u m e n t
0101720 s a s t h e { a r g W R
0101740 I T E F N } , b u t m u s t
0101760 w r i t e t h e v a l u e
0102000 t o t h e s t r e a m p
0102020 r e c e d e d b y i t s l
0102040 e n g t h . I f t h i s
0102060 f u n c t i o n i s o m i t
0102100 t e d , C o u r i e r i n v
0102120 o k e s t h e { a r g L E
0102140 N G T H F N } t o f i n d
0102160 o u t h o w l o n g t h e
0102200 v a l u e i s , a n d t
0102220 h e n i n v o k e s t h e
0102240 { a r g W R I T E F N } .
0102260 I f t h e { a r g L E N G
0102300 T H F N } i s o m i t t e d
0102320 , C o u r i e r i n v o k e
0102340 s t h e { a r g W R I T E
0102360 F N } o n a s c r a t c h
0102400 s t r e a m t o f i n d
0102420 o u t h o w l o n g t h e
0102440 v a l u e i s . } \r \r { e n
0102460 d l a b e l e d l i s t C O
0102500 U R I E R D E F f i e l d s }
0102520 \r } } \r \r } { e n d s u b s e
0102540 c U s e r E x t e n s i o n
0102560 s t o t h e T y p e L a
0102600 n g u a g e } \r \r \r } { e n d
0102620 s u b s e c C o u r i e r T
0102640 y p e D e f i n i t i o n s }
0102660 \r \r \r { b e g i n s u b s e c
0102700 P e r f o r m i n g C o u r
0102720 i e r T r a n s a c t i o n s
0102740 } \r { t i t l e P e r f o r m
0102760 i n g C o u r i e r T r a n
0103000 s a c t i o n s } \r { t e x t \r
0103020 \r T h e n o r m a l u s e
0103040 o f C o u r i e r i s t o
0103060 o p e n a c o n n e c t i
0103100 o n w i t h a r e m o t e
0103120 s y s t e m e l e m e n t
0103140 u s i n g { f n C O U R I E
0103160 R . O P E N } , p e r f o r m
0103200 o n e o r m o r e r e m
0103220 o t e p r o c e d u r e c a
0103240 l l s u s i n g { f n C O
0103260 U R I E R . C A L L } , t h e
0103300 n c l o s e t h e c o n n
0103320 e c t i o n w i t h { f n
0103340 C L O S E F } . \r \r { f n d e f
0103360 { n a m e C O U R I E R . O
0103400 P E N } { a r g s H O S T N
0103420 A M E S E R V E R T Y P E N
0103440 O E R R O R F L G N A M E W
0103460 H E N C L O S E D F N O T H E
0103500 R P R O P S } \r { t e x t \r O p
0103520 e n s a C o u r i e r c o
0103540 n n e c t i o n t o t h e
0103560 C o u r i e r s o c k e t o
0103600 n { a r g H O S T } , a n
0103620 d r e t u r n s a n S P P
0103640 s t r e a m t h a t c a n
0103660 b e p a s s e d t o { f
0103700 n C O U R I E R . C A L L } .
0103720 { a r g H O S T N A M E }
0103740 c a n b e a n N S a d
0103760 d r e s s , o r a s y m b
0104000 o l i c C l e a r i n g h o u
0104020 s e n a m e i n t h e f
0104040 o r m o f a s t r i n g ,
0104060 l i t a t o m o r { l i s
0104100 p N S N A M E } . I n t
0104120 h e c a s e o f a s y m
0104140 b o l i c n a m e , { a r g
0104160 S E R V E R T Y P E } s p e
0104200 c i f i e s t h e C l e a r
0104220 i n g h o u s e p r o p e r t
0104240 y u n d e r w h i c h t h
0104260 e s e r v e r ' s a d d r e
0104300 s s m a y b e f o u n d ;
0104320 n o r m a l l y , t h i s
0104340 i s { l i s p N I L } , i
0104360 n w h i c h c a s e t h e
0104400 { l i s p A D D R E S S . L
0104420 I S T } p r o p e r t y i s
0104440 u s e d . \r \r N o r m a l l y
0104460 , i f a c o n n e c t i o
0104500 n c a n n o t b e m a d e
0104520 , o r t h e s e r v e r
0104540 s u p p o r t s t h e w r o
0104560 n g v e r s i o n o f C o
0104600 u r i e r , a n e r r o r
0104620 o c c u r s . I f { a r g
0104640 N O E R R O R F L G } i s
0104660 n o n - { l i s p N I L } ,
0104700 { f n C O U R I E R . O P E N
0104720 } r e t u r n s { l i s p
0104740 N I L } i n t h e s e c a
0104760 s e s . \r \r I f { a r g N A
0105000 M E } i s n o n - { l i s p
0105020 N I L } , i t i s u s e
0105040 d a s t h e n a m e o f
0105060 t h e C o u r i e r c o n
0105100 n e c t i o n p r o c e s s .
0105120 \r \r { a r g W H E N C L O S E
0105140 D F N } i s a f u n c t i
0105160 o n ( o r l i s t o f f
0105200 u n c t i o n s ) o f o n e
0105220 a r g u m e n t , t h e C
0105240 o u r i e r s t r e a m , t
0105260 h a t w i l l b e c a l l
0105300 e d w h e n t h e c o n n
0105320 e c t i o n i s c l o s e d
0105340 , e i t h e r b y u s e r
0105360 o r s e r v e r . \r \r I f
0105400 { a r g O T H E R P R O P S }
0105420 i s n o n - { l i s p N I
0105440 L } , i t s h o u l d b e
0105460 a p r o p e r t y l i s t
0105500 o f S P P s t r e a m p
0105520 r o p e r t i e s , a s a c
0105540 c e p t e d b y { f n S P
0105560 P . O P E N } ( { P a g e R e
0105600 f F n S P P . O P E N } ) .
0105620 A n y { l i s p C L O S
0105640 E F N } p r o p e r t y o n
0105660 t h i s l i s t i s o v
0105700 e r r i d d e n b y t h e
0105720 v a l u e o f { a r g W H
0105740 E N C L O S E D F N } . \r } } \r
0105760 \r \r { f n d e f { n a m e C
0106000 O U R I E R . C A L L } \r { a r
0106020 g s S T R E A M P R O G R A
0106040 M P R O C E D U R E A R G {
0106060 s u b 1 } { e l l i p s i s
0106100 } A R G { s u b N } N O E
0106120 R R O R F L G } \r { t y p e N
0106140 O S P R E A D } \r { t e x t \r T
0106160 h i s f u n c t i o n c a l
0106200 l s t h e r e m o t e p r
0106220 o c e d u r e { a r g P R O
0106240 C E D U R E } o f t h e C
0106260 o u r i e r p r o g r a m {
0106300 a r g P R O G R A M } . {
0106320 a r g S T R E A M } i s t
0106340 h e s t r e a m r e t u r n
0106360 e d b y { f n C O U R I E
0106400 R . O P E N } . T h e a r
0106420 g u m e n t s s h o u l d b
0106440 e L i s p v a l u e s a p
0106460 p r o p r i a t e f o r t h
0106500 e C o u r i e r t y p e s
0106520 o f t h e c o r r e s p o n
0106540 d i n g f o r m a l p a r a
0106560 m e t e r s o f t h e p r
0106600 o c e d u r e . T h e r e
0106620 m u s t b e t h e s a m e
0106640 n u m b e r o f a c t u a
0106660 l a n d f o r m a l a r g
0106700 u m e n t s . I f t h e
0106720 p r o c e d u r e c a l l i
0106740 s s u c c e s s f u l , C o
0106760 u r i e r r e t u r n s t h
0107000 e r e s u l t ( s ) o f t
0107020 h e c a l l a s s p e c i
0107040 f i e d i n t h e { l i s
0107060 p R E T U R N S } s e c t i
0107100 o n o f t h e p r o c e d
0107120 u r e d e f i n i t i o n .
0107140 I f t h e r e i s o n l
0107160 y a s i n g l e r e s u l
0107200 t , i t i s r e t u r n e
0107220 d d i r e c t l y , o t h e
0107240 r w i s e a l i s t o f
0107260 r e s u l t s i s r e t u r
0107300 n e d . \r \r P r o c e d u r e s
0107320 t h a t t a k e a B u l
0107340 k D a t a a r g u m e n t
0107360 ( s o u r c e o r s i n k )
0107400 a r e t r e a t e d s p e
0107420 c i a l l y ; s e e { P a g
0107440 e R e f T e r m B u l k D
0107460 a t a T r a n s f e r } . \r \r
0107500 I f t h e p r o c e d u r e
0107520 c a l l r e s u l t s i n
0107540 a n e r r o r , o n e o
0107560 f t h r e e p o s s i b l e
0107600 c o u r s e s i s a v a i
0107620 l a b l e . T h e d e f a
0107640 u l t b e h a v i o r i s
0107660 t o c a u s e a L i s p
0107700 e r r o r . T o s u p p r
0107720 e s s t h e e r r o r , a
0107740 n o p t i o n a l k e y w o
0107760 r d c a n b e a p p e n d
0110000 e d t o t h e a r g u m e
0110020 n t l i s t , a s i f a
0110040 n e x t r a a r g u m e n t
0110060 . T h i s { a r g N O E
0110100 R R O R F L G } a r g u m e n
0110120 t c a n b e t h e a t o
0110140 m { l i s p N O E R R O R }
0110160 , i n w h i c h c a s e
0110200 { l i s p N I L } i s r e
0110220 t u r n e d a s t h e r e
0110240 s u l t o f t h e c a l l
0110260 . I f { a r g N O E R R
0110300 O R F L G } i s { l i s p
0110320 R E T U R N E R R O R S } , t
0110340 h e r e s u l t o f t h e
0110360 c a l l i s a l i s t
0110400 { l i s p ( E R R O R { a r
0110420 g E R R O R N A M E . E R
0110440 R O R A R G S } ) } . I f
0110460 t h e f a i l u r e w a s
0110500 a C o u r i e r R e j e c t
0110520 , r a t h e r t h a n E r
0110540 r o r , t h e n { a r g E
0110560 R R O R N A M E } i s t h e
0110600 a t o m { l i s p R E J E
0110620 C T } . \r } } \r \r E x a m p l e
0110640 s : \r \r { l i s p c o d e \r ( C
0110660 O U R I E R P R O G R A M P E
0110700 R S O N N E L ( 1 7 1 ) \r
0110720 T Y P E S \r ( ( P E R
0110740 S O N . N A M E ( R E C O R D
0110760 ( F I R S T . N A M E S T R
0111000 I N G ) \r
0111020 (
0111040 M I D D L E M I D D L E . P A
0111060 R T ) \r
0111100 ( L A
0111120 S T . N A M E S T R I N G ) )
0111140 ) \r ( M I D D L E . P A
0111160 R T ( C H O I C E ( N A M E
0111200 0 S T R I N G ) \r
0111220
0111240 ( I N I T I A L 1 S
0111260 T R I N G ) ) ) \r ( B I
0111300 R T H D A Y ( R E C O R D (
0111320 Y E A R C A R D I N A L ) \r
0111340
0111360 ( M O N T H S T R
0111400 I N G ) \r
0111420 ( D A Y
0111440 C A R D I N A L ) ) ) ) \r
0111460 P R O C E D U R E S \r ( (
0111500 G E T B I R T H D A Y 3 ( P
0111520 E R S O N . N A M E ) \r
0111540 R E T U R N S
0111560 ( B I R T H D A Y ) R E P O R
0111600 T S ( N O . S U C H . P E R S
0111620 O N ) ) ) \r E R R O R S \r
0111640 ( ( N O . S U C H . P E R
0111660 S O N 1 ) ) \r ) } \r \r \r T h i
0111700 s e x p r e s s i o n d e f
0111720 i n e s { l i s p P E R S O
0111740 N N E L } t o b e C o u r
0111760 i e r p r o g r a m n u m b
0112000 e r 1 7 , v e r s i o n n
0112020 u m b e r 1 . T h e e x
0112040 a m p l e d e f i n e s t h
0112060 r e e t y p e s , { l i s p
0112100 P E R S O N . N A M E } , {
0112120 l i s p M I D D L E . P A R T
0112140 } a n d { l i s p B I R T
0112160 H D A Y } , a n d o n e p
0112200 r o c e d u r e , { l i s p
0112220 G E T B I R T H D A Y } , w h
0112240 o s e p r o c e d u r e n u
0112260 m b e r i s 3 . T h e
0112300 f o l l o w i n g c o d e c
0112320 o u l d b e u s e d t o
0112340 c a l l t h e r e m o t e
0112360 { l i s p G E T B I R T H D A
0112400 Y } p r o c e d u r e o n
0112420 t h e h o s t w i t h a d
0112440 d r e s s { l i s p H O S T
0112460 A D D R E S S } . \r \r { l i s p
0112500 c o d e \r ( S E T Q S T R E A
0112520 M ( C O U R I E R . O P E N
0112540 H O S T A D D R E S S ) ) \r ( P
0112560 R O G 1 ( C O U R I E R . C A
0112600 L L S T R E A M ' P E R S O
0112620 N N E L ' G E T B I R T H D A
0112640 Y \r
0112660 ( C O U R I E R .
0112700 C R E A T E ( P E R S O N N E
0112720 L . P E R S O N . N A M E )
0112740 \r \t
0112760 F I R S T .
0113000 N A M E _ " E r i c " \r
0113020
0113040 M I D D L
0113060 E _ ' ( I N I T I A L " C
0113100 " ) \r
0113120
0113140 L A S T . N A M E _ " C o
0113160 o p e r " ) ) \r (
0113200 C L O S E F S T R E A M ) ) \r
0113220 } \r \r { f n C O U R I E R . C
0113240 A L L } i n t h i s e x a
0113260 m p l e m i g h t r e t u r
0113300 n a v a l u e s u c h a
0113320 s { l i s p ( 1 9 5 9 " J
0113340 a n u a r y " 1 0 ) } . \r \r {
0113360 b e g i n s u b s e c E x p
0113400 e d i t e d P r o c e d u r e
0113420 C a l l } \r { t i t l e E x
0113440 p e d i t e d P r o c e d u r
0113460 e C a l l } \r { t e x t \r S o
0113500 m e C o u r i e r s e r v e
0113520 r s s u p p o r t " E x p e
0113540 d i t e d P r o c e d u r e
0113560 C a l l " , w h i c h i s
0113600 a w a y o f p e r f o r m
0113620 i n g a s i n g l e C o u
0113640 r i e r t r a n s a c t i o n
0113660 b y a P a c k e t E x c
0113700 h a n g e p r o t o c o l ,
0113720 r a t h e r t h a n g o i n
0113740 g t o t h e e x p e n s e
0113760 o f s e t t i n g u p a
0114000 f u l l C o u r i e r c o
0114020 n n e c t i o n . E x p e d
0114040 i t e d c a l l s m u s t
0114060 h a v e n o b u l k d a t
0114100 a a r g u m e n t s , a n d
0114120 t h e i r a r g u m e n t s
0114140 a n d r e s u l t s m u s
0114160 t e a c h f i t i n t o
0114200 a s i n g l e p a c k e t .
0114220 \r \r { f n d e f { n a m e C
0114240 O U R I E R . E X P E D I T E D
0114260 . C A L L } \r { a r g s A D D
0114300 R E S S S O C K E T # P R O
0114320 G R A M P R O C E D U R E A
0114340 R G { s u b 1 } { e l l i p
0114360 s i s } A R G { s u b N }
0114400 N O E R R O R F L G } \r { t y p
0114420 e N O S P R E A D } \r { t e x
0114440 t \r A t t e m p t s t o p e
0114460 r f o r m a C o u r i e r
0114500 c a l l u s i n g t h e E
0114520 x p e d i t e d P r o c e d u
0114540 r e C a l l . { a r g A
0114560 D D R E S S } i s t h e N
0114600 S a d d r e s s o f t h e
0114620 r e m o t e h o s t a n d
0114640 { a r g S O C K E T # } i
0114660 s t h e s o c k e t o n
0114700 w h i c h i t i s k n o w
0114720 n t o l i s t e n f o r
0114740 e x p e d i t e d c a l l s .
0114760 T h e r e m a i n i n g
0115000 a r g u m e n t s a r e e x
0115020 a c t l y a s w i t h { f
0115040 n C O U R I E R . C A L L } .
0115060 I f t h e a r g u m e n
0115100 t s t o t h e p r o c e d
0115120 u r e d o n o t f i t i
0115140 n o n e p a c k e t , o r
0115160 i f t h e r e i s n o
0115200 r e s p o n s e t o t h e
0115220 c a l l , o r i f t h e
0115240 c a l l r e t u r n s t h e
0115260 e r r o r { l i s p U S E
0115300 . C O U R I E R } ( w h i c h
0115320 m u s t b e d e f i n e d
0115340 b y e x a c t l y t h a t
0115360 n a m e i n { a r g P R
0115400 O G R A M } ) , t h e n t h
0115420 e c a l l i s a t t e m p
0115440 t e d i n s t e a d b y t
0115460 h e n o r m a l , n o n - e
0115500 x p e d i t e d m e t h o d {
0115520 e m d a s h } a C o u r i e r
0115540 c o n n e c t i o n i s o
0115560 p e n e d w i t h { a r g
0115600 A D D R E S S } , a n d { f
0115620 n C O U R I E R . C A L L }
0115640 i s i n v o k e d o n t h
0115660 e a r g u m e n t s g i v e
0115700 n . \r } } \r } { e n d s u b s
0115720 e c E x p e d i t e d P r o
0115740 c e d u r e C a l l } \r \r { b
0115760 e g i n s u b s e c E x p a
0116000 n d i n g R i n g B r o a d
0116020 c a s t } \r { t i t l e E x p
0116040 a n d i n g R i n g B r o a
0116060 d c a s t } \r { t e x t \r " E x
0116100 p a n d i n g R i n g B r o
0116120 a d c a s t " i s a m e t
0116140 h o d o f l o c a t i n g
0116160 a s e r v e r o f a p a
0116200 r t i c u l a r t y p e w h
0116220 o s e a d d r e s s i s n
0116240 o t k n o w n i n a d v a
0116260 n c e . T h e s y s t e m
0116300 b r o a d c a s t s s o m e
0116320 s o r t o f r e q u e s t
0116340 p a c k e t o n t h e d
0116360 i r e c t l y - c o n n e c t e
0116400 d n e t w o r k , t h e n
0116420 o n n e t w o r k s o n e
0116440 h o p a w a y , t h e n o
0116460 n n e t w o r k s t w o h
0116500 o p s a w a y , e t c . ,
0116520 u n t i l a p o s i t i v e
0116540 r e s p o n s e i s r e c
0116560 e i v e d . \r \r F o r u s e
0116600 i n l o c a t i n g a s e
0116620 r v e r f o r a p a r t i
0116640 c u l a r C o u r i e r p r
0116660 o g r a m , a s t y l i z e
0116700 d f o r m o f E x p a n d
0116720 i n g R i n g B r o a d c a
0116740 s t i s d e f i n e d .
0116760 T h e r e q u e s t p a c k
0117000 e t i s e s s e n t i a l l
0117020 y t h e c a l l p o r t i
0117040 o n o f a n E x p e d i t
0117060 e d P r o c e d u r e C a l
0117100 l f o r s o m e p r o c e
0117120 d u r e d e f i n e d i n
0117140 t h e p r o g r a m . T h
0117160 e r e s p o n s e p a c k e
0117200 t i s a C o u r i e r r
0117220 e s p o n s e , a n d t y p
0117240 i c a l l y c o n t a i n s
0117260 a t l e a s t t h e s e r
0117300 v e r ' s a d d r e s s a s
0117320 t h e r e s u l t o f t
0117340 h e c a l l . T h e d e
0117360 s i g n e r o f t h e p r
0117400 o t o c o l m u s t , o f
0117420 c o u r s e , s p e c i f y
0117440 w h i c h p r o c e d u r e
0117460 t o u s e i n t h e b r
0117500 o a d c a s t ( u s u a l l y
0117520 i t i s p r o c e d u r e
0117540 n u m b e r z e r o ) a n
0117560 d o n w h a t s o c k e t
0117600 t h e s e r v e r s h o u
0117620 l d l i s t e n f o r b r
0117640 o a d c a s t s . \r \r { f n S
0117660 T A R T . C L E A R I N G H O U
0117700 S E } u s e s t h i s p r
0117720 o c e d u r e t o l o c a t
0117740 e t h e n e a r e s t C l
0117760 e a r i n g h o u s e s e r v
0120000 e r . \r \r { f n d e f { n a m
0120020 e C O U R I E R . B R O A D C
0120040 A S T . C A L L } \r { a r g s
0120060 D E S T S O C K E T # P R O G
0120100 R A M P R O C E D U R E A R
0120120 G S R E S U L T F N N E T H
0120140 I N T M E S S A G E } \r { t e
0120160 x t \r P e r f o r m s a n e
0120200 x p a n d i n g r i n g b r
0120220 o a d c a s t f o r s e r v
0120240 e r s w i l l i n g t o i
0120260 m p l e m e n t { a r g P R
0120300 O C E D U R E } i n C o u r
0120320 i e r p r o g r a m { a r g
0120340 P R O G R A M } . { a r g
0120360 D E S T S O C K E T # } i s
0120400 t h e s o c k e t o n w
0120420 h i c h s u c h s e r v e r
0120440 s o f t h i s t y p e a
0120460 r e k n o w n t o l i s t
0120500 e n f o r b r o a d c a s t
0120520 s , t y p i c a l l y t h e
0120540 s a m e s o c k e t o n
0120560 w h i c h t h e y l i s t e
0120600 n f o r e x p e d i t e d
0120620 c a l l s . { a r g A R G
0120640 S } i s t h e a r g u m e
0120660 n t l i s t , i f a n y ,
0120700 t o t h e p r o c e d u r
0120720 e ( n o t e t h a t i t
0120740 i s n o t s p r e a d , u
0120760 n l i k e w i t h { f n C
0121000 O U R I E R . C A L L } ) . \r \r
0121020 I f a h o s t r e s p o n
0121040 d s p o s i t i v e l y , t
0121060 h e n t h e f u n c t i o n
0121100 { a r g R E S U L T F N }
0121120 i s c a l l e d w i t h o
0121140 n e a r g u m e n t , t h e
0121160 C o u r i e r r e s u l t s
0121200 o f t h e p r o c e d u r
0121220 e c a l l . I f { a r g
0121240 R E S U L T F N } r e t u r
0121260 n s a n o n - n u l l v a
0121300 l u e , t h e v a l u e i
0121320 s r e t u r n e d a s t h
0121340 e v a l u e o f { f n C
0121360 O U R I E R . B R O A D C A S T
0121400 . C A L L } a n d t h e s
0121420 e a r c h s t o p s t h e r
0121440 e ; o t h e r w i s e , t h
0121460 e s e a r c h f o r a r
0121500 e s p o n s i v e h o s t c
0121520 o n t i n u e s . I f { a
0121540 r g R E S U L T F N } i s
0121560 n o t s u p p l i e d ( o r
0121600 i s { l i s p N I L } ) ,
0121620 t h e n t h e r e s u l t
0121640 s o f t h e p r o c e d u
0121660 r e c a l l a r e r e t u
0121700 r n e d d i r e c t l y f r
0121720 o m { f n C O U R I E R . B
0121740 R O A D C A S T . C A L L } ;
0121760 i . e . , { a r g R E S U L
0122000 T F N } d e f a u l t s t o
0122020 t h e i d e n t i t y f u
0122040 n c t i o n . \r \r { a r g N E
0122060 T H I N T } , i f s u p p l
0122100 i e d , i s a n e t n u
0122120 m b e r o r l i s t o f
0122140 n e t n u m b e r s a s a
0122160 h i n t c o n c e r n i n g
0122200 w h i c h n e t ( s ) t o
0122220 t r y f i r s t b e f o r
0122240 e p e r f o r m i n g a p
0122260 u r e e x p a n d i n g - r i
0122300 n g b r o a d c a s t . I
0122320 f { a r g M E S S A G E }
0122340 i s n o n - N I L , i t i
0122360 s a d e s c r i p t i o n
0122400 ( s t r i n g ) o f w h a t
0122420 t h e b r o a d c a s t i
0122440 s l o o k i n g f o r , t
0122460 o b e p r i n t e d i n
0122500 t h e p r o m p t w i n d o
0122520 w t o i n f o r m t h e
0122540 u s e r o f w h a t i s
0122560 h a p p e n i n g . F o r
0122600 e x a m p l e , { f n S T A
0122620 R T . C L E A R I N G H O U S E
0122640 } p a s s e s i n t h e
0122660 m e s s a g e { l i s p " C
0122700 l e a r i n g h o u s e s e r
0122720 v e r s " } a n d t h e h
0122740 i n t { v a r C H . N E T .
0122760 H I N T } . \r } } \r \r } { e n d
0123000 s u b s e c E x p a n d i n
0123020 g R i n g B r o a d c a s t
0123040 } \r \r { b e g i n s u b s e c
0123060 U s i n g B u l k D a t a
0123100 T r a n s f e r } \r { t i t l
0123120 e U s i n g B u l k D a t
0123140 a T r a n s f e r } \r { t e x
0123160 t \r \r { i n d e x * P R I M A
0123200 R Y * B u l k D a t a T r
0123220 a n s f e r } \r \r W h e n a
0123240 C o u r i e r p r o g r a m
0123260 n e e d s t o t r a n s f e
0123300 r a n a r b i t r a r y a
0123320 m o u n t o f i n f o r m a
0123340 t i o n a s a n a r g u m
0123360 e n t o r r e s u l t o f
0123400 a C o u r i e r p r o c e
0123420 d u r e , t h e p r o c e d
0123440 u r e i s u s u a l l y d
0123460 e f i n e d t o h a v e o
0123500 n e a r g u m e n t o f t
0123520 y p e " B u l k D a t a " .
0123540 T h e a r g u m e n t i
0123560 s a " s o u r c e " i f
0123600 i t i s i n f o r m a t i o
0123620 n t r a n s f e r r e d f r
0123640 o m c a l l e r t o s e r
0123660 v e r ( a s t h o u g h a
0123700 p r o c e d u r e a r g u m
0123720 e n t ) , a " s i n k " i
0123740 f i t i s i n f o r m a t
0123760 i o n t r a n s f e r r e d
0124000 f r o m s e r v e r t o c
0124020 a l l e r ( a s t h o u g h
0124040 a p r o c e d u r e r e s
0124060 u l t ) . T h e s e t w o
0124100 " t y p e s " a r e i n d
0124120 i c a t e d i n a C o u r
0124140 i e r p r o c e d u r e ' s
0124160 f o r m a l a r g u m e n t
0124200 l i s t a s { l i s p B U
0124220 L K . D A T A . S O U R C E }
0124240 a n d { l i s p B U L K . D
0124260 A T A . S I N K } , r e s p e
0124300 c t i v e l y . A C o u r
0124320 i e r p r o c e d u r e m a
0124340 y h a v e a t m o s t o
0124360 n e s u c h a r g u m e n t
0124400 . \r \r I n a C o u r i e r
0124420 c a l l , t h e b u l k
0124440 d a t a i s t r a n s m i t
0124460 t e d i n a s p e c i a l
0124500 w a y , b e t w e e n t h
0124520 e a r g u m e n t s a n d
0124540 t h e r e s u l t s . T h
0124560 e r e a r e t w o b a s i
0124600 c w a y s t o h a n d l e
0124620 t h i s i n t h e c a l
0124640 l . T h e c a l l e r c
0124660 a n s p e c i f y h o w t
0124700 h e b u l k d a t a i s
0124720 t o b e i n t e r p r e t e
0124740 d ( h o w t o r e a d o
0124760 r w r i t e i t ) , o r
0125000 t h e c a l l e r c a n r
0125020 e q u e s t t o b e g i v
0125040 e n a b u l k d a t a s
0125060 t r e a m a s t h e r e s
0125100 u l t o f t h e C o u r i
0125120 e r c a l l . T h e f o
0125140 r m e r i s t h e p r e f
0125160 e r r e d w a y ; b o t h
0125200 a r e d e s c r i b e d b e
0125220 l o w . \r \r I n t h e f i r
0125240 s t m e t h o d , t h e c
0125260 a l l e r p a s s e s a s
0125300 t h e a c t u a l a r g u m
0125320 e n t t o t h e C o u r i
0125340 e r c a l l ( i . e . , i
0125360 n t h e p o s i t i o n i
0125400 n t h e a r g u m e n t l
0125420 i s t o c c u p i e d b y
0125440 { l i s p B U L K . D A T A .
0125460 S O U R C E } o r { l i s p
0125500 B U L K . D A T A . S I N K }
0125520 ) a f u n c t i o n t o
0125540 p e r f o r m t h e t r a n
0125560 s f e r . C o u r i e r s
0125600 e t s u p t h e t r a n s
0125620 a c t i o n , t h e n c a l
0125640 l s t h e s u p p l i e d
0125660 f u n c t i o n w i t h o n
0125700 e a r g u m e n t , a s t
0125720 r e a m o n w h i c h t o
0125740 w r i t e ( i f a s o u
0125760 r c e a r g u m e n t ) o r
0126000 r e a d ( i f a s i n k
0126020 ) t h e b u l k d a t a .
0126040 I f t h e f u n c t i o
0126060 n r e t u r n s n o r m a l
0126100 l y , t h e C o u r i e r
0126120 t r a n s a c t i o n p r o c
0126140 e e d s a s u s u a l ; i
0126160 f i t e r r o r s o u t ,
0126200 C o u r i e r s e n d s a
0126220 B u l k D a t a A b o r t
0126240 t o a b o r t t h e t r
0126260 a n s a c t i o n . \r \r I n t
0126300 h e c a s e o f a s i n
0126320 k a r g u m e n t , i f t
0126340 h e v a l u e r e t u r n e
0126360 d f r o m t h e s i n k
0126400 f u n c t i o n i s n o n -
0126420 { l i s p N I L } , i t i
0126440 s r e t u r n e d a s t h
0126460 e r e s u l t o f { f n
0126500 C O U R I E R . C A L L } ; o
0126520 t h e r w i s e , t h e r e
0126540 s u l t o f { f n C O U R
0126560 I E R . C A L L } i s t h e
0126600 u s u a l p r o c e d u r e
0126620 r e s u l t , a s d e c l
0126640 a r e d i n t h e C o u r
0126660 i e r p r o g r a m . \r \r F o
0126700 r c o n v e n i e n c e , a
0126720 B u l k D a t a s i n k
0126740 a r g u m e n t t o a C o
0126760 u r i e r c a l l c a n b
0127000 e s p e c i f i e d a s a
0127020 f u l l y q u a l i f i e d
0127040 C o u r i e r t y p e , e
0127060 . g . , { l i s p ( C L E A
0127100 R I N G H O U S E . N A M E
0127120 ) } , i n w h i c h c a s
0127140 e t h e B u l k D a t a
0127160 s t r e a m i s r e a d a
0127200 s a " s t r e a m o f "
0127220 t h a t t y p e ( s e e {
0127240 f n C O U R I E R . R E A D .
0127260 B U L K D A T A } , b e l o w
0127300 ) . \r \r T h e s e c o n d m
0127320 e t h o d f o r h a n d l i
0127340 n g b u l k d a t a i s
0127360 t o p a s s { l i s p N I
0127400 L } a s t h e b u l k d
0127420 a t a " a r g u m e n t " t
0127440 o { f n C O U R I E R . C A
0127460 L L } . I n t h i s c a
0127500 s e , C o u r i e r s e t s
0127520 u p t h e c a l l , t h
0127540 e n r e t u r n s a s t r
0127560 e a m t h a t i s o p e n
0127600 f o r { l i s p O U T P U
0127620 T } ( i f a s o u r c e
0127640 a r g u m e n t ) o r { l i
0127660 s p I N P U T } ( i f a
0127700 s i n k ) . T h e c a l l
0127720 e r i s r e s p o n s i b l
0127740 e f o r t r a n s f e r r i
0127760 n g t h e b u l k d a t a
0130000 o n t h e s t r e a m ,
0130020 t h e n c l o s i n g t h e
0130040 s t r e a m t o c o m p l
0130060 e t e t h e t r a n s a c t
0130100 i o n . T h e v a l u e
0130120 r e t u r n e d f r o m { f
0130140 n C L O S E F } i s t h e
0130160 C o u r i e r r e s u l t .
0130200 T h i s m e t h o d i s
0130220 r e q u i r e d i f t h e
0130240 c a l l e r ' s c o n t r o
0130260 l s t r u c t u r e i s o
0130300 p e n - e n d e d i n a w
0130320 a y s u c h t h a t t h e
0130340 b u l k d a t a c a n n o
0130360 t b e t r a n s f e r r e d
0130400 w i t h i n t h e s c o p
0130420 e o f t h e c a l l t o
0130440 { f n C O U R I E R . C A L
0130460 L } . \r \r I n e i t h e r m
0130500 e t h o d , t h e s t r e a
0130520 m o n w h i c h t h e b
0130540 u l k d a t a i s t r a n
0130560 s f e r r e d i s a s t a
0130600 n d a r d I n t e r l i s p
0130620 s t r e a m , s o { f n B
0130640 I N } , { f n B O U T } ,
0130660 { f n C O P Y B Y T E S } a
0130700 r e a l l a p p r o p r i a
0130720 t e . \r \r M a n y C o u r i e
0130740 r p r o g r a m s d e f i n
0130760 e a " S t r e a m o f <
0131000 t y p e > " a s a m e a n
0131020 s o f t r a n s f e r r i n
0131040 g a n a r b i t r a r y n
0131060 u m b e r o f o b j e c t s
0131100 , a l l o f t h e s a m
0131120 e t y p e . A l t h o u g
0131140 h t h i s i s t y p i c a
0131160 l l y s p e c i f i e d f o
0131200 r m a l l y i n t h e p r
0131220 i n t e d C o u r i e r d o
0131240 c u m e n t a t i o n a s a
0131260 r e c u r s i v e d e f i n
0131300 i t i o n , t h e r e c u r
0131320 s i o n i s i n p r a c t
0131340 i c e u n n e c e s s a r y
0131360 a n d u n w i e l d y ; i n
0131400 s t e a d , t h e f o l l o
0131420 w i n g f u n c t i o n s h
0131440 o u l d b e u s e d . \r \r {
0131460 f n d e f { n a m e C O U R
0131500 I E R . R E A D . B U L K D A T
0131520 A } { a r g s S T R E A M
0131540 P R O G R A M T Y P E D O N
0131560 T C L O S E } \r { t e x t \r R e
0131600 a d s f r o m { a r g S T
0131620 R E A M } a " S t r e a m
0131640 o f { a r g T Y P E } " f
0131660 o r C o u r i e r p r o g r
0131700 a m { a r g P R O G R A M }
0131720 , a n d r e t u r n s a
0131740 l i s t o f t h e o b j e
0131760 c t s r e a d . { a r g
0132000 S T R E A M } i s c l o s e
0132020 d o n e x i t , u n l e s
0132040 s { a r g D O N T C L O S E
0132060 } i s n o n - { l i s p N
0132100 I L } . \r \r P a s s i n g { l
0132120 i s p ( X . Y ) } a s
0132140 t h e b u l k a r g u m e n
0132160 t t o a C o u r i e r c
0132200 a l l i s t h u s e q u i
0132220 v a l e n t t o p a s s i n
0132240 g t h e f u n c t i o n {
0132260 l i s p ( L A M B D A ( S T
0132300 R E A M ) ( C O U R I E R . R
0132320 E A D . B U L K D A T A S T R
0132340 E A M X Y ) ) } . \r } } \r \r
0132360 \r } { e n d s u b s e c U s
0132400 i n g B u l k D a t a T r
0132420 a n s f e r } \r \r \r \r { b e g i
0132440 n s u b s e c C o u r i e r
0132460 S u b f u n c t i o n s f o
0132500 r D a t a T r a n s f e r }
0132520 \r { t i t l e C o u r i e r
0132540 S u b f u n c t i o n s f o r
0132560 D a t a T r a n s f e r } \r
0132600 { t e x t \r \r T h e f o l l o
0132620 w i n g f u n c t i o n s a
0132640 r e o f i n t e r e s t t
0132660 o t h o s e w h o t r a n
0132700 s f e r d a t a i n C o u
0132720 r i e r r e p r e s e n t a t
0132740 i o n s , e . g . , a s p
0132760 a r t o f a f u n c t i o
0133000 n t o i m p l e m e n t a
0133020 u s e r - d e f i n e d C o
0133040 u r i e r t y p e . \r \r { f n
0133060 d e f { n a m e C O U R I E
0133100 R . R E A D } { a r g s S T
0133120 R E A M P R O G R A M T Y P
0133140 E } \r { t e x t \r R e a d s f
0133160 r o m t h e s t r e a m {
0133200 a r g S T R E A M } a C o
0133220 u r i e r v a l u e o f t
0133240 y p e { a r g T Y P E } f
0133260 o r p r o g r a m { a r g
0133300 P R O G R A M } . I f { a
0133320 r g T Y P E } i s a p r
0133340 e d e f i n e d t y p e , t
0133360 h e n { a r g P R O G R A M
0133400 } i s i r r e l e v a n t ;
0133420 o t h e r w i s e , i t i
0133440 s r e q u i r e d i n o r
0133460 d e r t o q u a l i f y {
0133500 a r g T Y P E } . \r } } \r \r {
0133520 f n d e f { n a m e C O U R
0133540 I E R . W R I T E } { a r g s
0133560 S T R E A M I T E M P R O
0133600 G R A M T Y P E } \r { t e x t
0133620 \r W r i t e s { a r g I T E
0133640 M } t o t h e s t r e a m
0133660 { a r g S T R E A M } a s
0133700 a C o u r i e r v a l u e
0133720 o f t y p e { a r g T Y
0133740 P E } f o r p r o g r a m
0133760 { a r g P R O G R A M } . \r }
0134000 } \r \r { f n d e f { n a m e
0134020 C O U R I E R . R E A D . S E Q
0134040 U E N C E } { a r g s S T R
0134060 E A M P R O G R A M T Y P E
0134100 } \r { t e x t \r R e a d s f r
0134120 o m t h e s t r e a m { a
0134140 r g S T R E A M } a C o u
0134160 r i e r v a l u e { l i s p
0134200 S E Q U E N C E } o f v a
0134220 l u e s o f t y p e { a r
0134240 g T Y P E } f o r p r o g
0134260 r a m { a r g P R O G R A M
0134300 } . E q u i v a l e n t t
0134320 o { l i s p ( C O U R I E R
0134340 . R E A D { a r g S T R E A
0134360 M } { a r g P R O G R A M }
0134400 ( S E Q U E N C E { a r g
0134420 T Y P E } ) ) } . \r } } \r \r { f
0134440 n d e f { n a m e C O U R I
0134460 E R . W R I T E . S E Q U E N C
0134500 E } { a r g s S T R E A M
0134520 I T E M P R O G R A M T Y P
0134540 E } \r { t e x t \r E q u i v a l
0134560 e n t t o { l i s p ( C O
0134600 U R I E R . W R I T E { a r g
0134620 S T R E A M } { a r g I T
0134640 E M } { a r g P R O G R A M
0134660 } ( S E Q U E N C E { a r g
0134700 T Y P E } ) ) } . \r } } \r \r S
0134720 o m e C o u r i e r p r o g
0134740 r a m s t r a f f i c i n
0134760 v a l u e s w h o s e i n t
0135000 e r p r e t a t i o n i s l
0135020 e f t u p t o t h e c l
0135040 i e n t s o f t h e p r o
0135060 g r a m ; t h e v a l u e s
0135100 a r e t r a n s f e r r e d
0135120 i n C o u r i e r t r a n
0135140 s a c t i o n s a s v a l u
0135160 e s o f t y p e { l i s p
0135200 ( S E Q U E N C E U N S P E
0135220 C I F I E D ) } . F o r e
0135240 x a m p l e , t h e C l e a
0135260 r i n g h o u s e p r o g r a
0135300 m t r a n s f e r s t h e
0135320 v a l u e o f a d a t a b
0135340 a s e p r o p e r t y a s
0135360 a n u n i n t e r p r e t e d
0135400 s e q u e n c e , l e a v i
0135420 n g i t u p t o t h e
0135440 c a l l e r , w h o k n o w
0135460 s w h a t t y p e o f v
0135500 a l u e t h e p a r t i c u
0135520 l a r p r o p e r t y t a k
0135540 e s , t o i n t e r p r e t
0135560 t h e s e q u e n c e o f
0135600 r a w b i t s a s s o m
0135620 e o t h e r C o u r i e r
0135640 r e p r e s e n t a t i o n .
0135660 T h e f o l l o w i n g f
0135700 u n c t i o n s a r e u s e
0135720 f u l w h e n d e a l i n g
0135740 w i t h s u c h v a l u e
0135760 s . \r \r { f n d e f { n a m e
0136000 C O U R I E R . W R I T E . R
0136020 E P } { a r g s V A L U E
0136040 P R O G R A M T Y P E } \r { t
0136060 e x t \r P r o d u c e s a l
0136100 i s t o f 1 6 - b i t i n
0136120 t e g e r s , i . e . , a
0136140 v a l u e o f t y p e { l
0136160 i s p ( S E Q U E N C E U N
0136200 S P E C I F I E D ) } , t h a
0136220 t r e p r e s e n t s { a r
0136240 g V A L U E } w h e n i n
0136260 t e r p r e t e d a s a C
0136300 o u r i e r v a l u e o f
0136320 t y p e { a r g T Y P E }
0136340 i n { a r g P R O G R A M }
0136360 . E x a m p l e s : \r \r { l
0136400 i s p c o d e ( C O U R I E R
0136420 . W R I T E . R E P T N I L
0136440 ' B O O L E A N ) { r m =
0136460 > } ( 1 ) } \r { l i s p c o d
0136500 e ( C O U R I E R . W R I T E
0136520 . R E P " T h i n g " N I L
0136540 ' S T R I N G ) { r m = >
0136560 } \r \t \t ( 5 5 2 1 5 0 Q 6 4
0136600 5 5 6 Q 6 3 4 0 0 Q ) } \r { l
0136620 i s p c o d e ( C O U R I E R
0136640 . W R I T E . R E P ' ( 1 0
0136660 2 5 ) N I L ' ( S E Q U E N
0136700 C E I N T E G E R ) ) { r m
0136720 = > } \r \t \t ( 2 1 0 2
0136740 5 ) } \r } } \r \r { f n d e f {
0136760 n a m e C O U R I E R . R E A
0137000 D . R E P } { a r g s L I S
0137020 T . O F . W O R D S P R O G R
0137040 A M T Y P E } \r { t e x t \r I
0137060 n t e r p r e t s { a r g L
0137100 I S T . O F . W O R D S } , a
0137120 l i s t o f 1 6 - b i t
0137140 i n t e g e r s , a s a C
0137160 o u r i e r o b j e c t o f
0137200 t y p e { a r g T Y P E }
0137220 i n t h e C o u r i e r
0137240 p r o g r a m { a r g P R O
0137260 G R A M } . \r } } \r \r { f n d e
0137300 f { n a m e C O U R I E R .
0137320 W R I T E . S E Q U E N C E . U
0137340 N S P E C I F I E D } { a r g
0137360 s S T R E A M I T E M P R
0137400 O G R A M T Y P E } \r { t e x
0137420 t \r W r i t e s t o t h e
0137440 s t r e a m { a r g S T R E
0137460 A M } i n t h e f o r m
0137500 { l i s p ( S E Q U E N C E
0137520 U N S P E C I F I E D ) } t h
0137540 e o b j e c t { a r g I T
0137560 E M } , w h o s e v a l u e
0137600 i s r e a l l y a C o u
0137620 r i e r v a l u e o f t y
0137640 p e { a r g T Y P E } f o
0137660 r p r o g r a m { a r g P
0137700 R O G R A M } . E q u i v a
0137720 l e n t t o , b u t u s u
0137740 a l l y m u c h m o r e e
0137760 f f i c i e n t t h a n , {
0140000 l i s p ( C O U R I E R . W R
0140020 I T E { a r g S T R E A M }
0140040 ( C O U R I E R . W R I T E .
0140060 R E P { a r g I T E M } {
0140100 a r g P R O G R A M } { a r
0140120 g T Y P E } ) N I L ' ( S
0140140 E Q U E N C E U N S P E C I F
0140160 I E D ) ) } . \r } } \r \r } { e n
0140200 d s u b s e c C o u r i e r
0140220 S u b f u n c t i o n s f o
0140240 r D a t a T r a n s f e r }
0140260 \r \r \r } { e n d s u b s e c
0140300 P e r f o r m i n g C o u r
0140320 i e r T r a n s a c t i o n s
0140340 } \r \r { B e g i n N o t e } \r
0140360 w i l l n o t d o c u m e n
0140400 t t h i s b e c a u s e o
0140420 f p o s s i b l e s e n s i
0140440 t i v i t y : \r { f n d e f {
0140460 n a m e C O U R I E R T R A C
0140500 E } { a r g s F L G R E G
0140520 I O N } \r { t e x t \r T h i s
0140540 f u n c t i o n c o n t r o l
0140560 s t h e t r a c i n g o f
0140600 C o u r i e r r e m o t e
0140620 p r o c e d u r e c a l l s .
0140640 I t i s s i m i l a r t
0140660 o { f n P U P T R A C E }
0140700 a n d { f n X I P T R A C E
0140720 } , b u t o p e r a t e s
0140740 a t t h e c a l l / r e t u
0140760 r n l e v e l r a t h e r
0141000 t h a n t h e p a c k e t
0141020 l e v e l . \r } } \r { E n d
0141040 N o t e } \r \r } { e n d s u b
0141060 s e c C o u r i e r R e m o
0141100 t e P r o c e d u r e C a l
0141120 l P r o t o c o l } \r \r \r } {
0141140 E n d S u b S e c H i g h e
0141160 r - l e v e l N S P r o t o
0141200 c o l F u n c t i o n s } \r \r
0141220 \r \0 \0 \0 \0 \0 005 \0 002 \0 & \0 \0 \0 \0 \0
0141240 \0 \0 \0 \0 \0 \0 \0 002 001 \0 \0 \0 \0 \0 \0 \0
0141260 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0141300 & \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 002 001 \0
0141320 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0141340 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 004 \0 001 \0 ? \0
0141360 1 ( D E F A U L T F O N T 1
0141400 ( G A C H A 1 0 ) ( G A C H
0141420 A 8 ) ( T E R M I N A L 8
0141440 ) ) \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0141460 \0 002 \0 002 \0 \0 \0 001 \0 \0 \0 \0 001 \0 \0 \0
0141500 \0 \0 002 \0 002 \0 \0 \0 2 \0 \0 \0 \0 001 \0 \0
0141520