|
@@ -74,14 +74,17 @@ instance AttrNamed Attr where
|
|
class AttrReadable p where
|
|
class AttrReadable p where
|
|
attrState :: (IvoryArea a, IvoryZero a) => p a -> Monitor e (Ref Global a)
|
|
attrState :: (IvoryArea a, IvoryZero a) => p a -> Monitor e (Ref Global a)
|
|
attrHandler :: (IvoryArea a, IvoryZero a) => p a -> Handler a e () -> Monitor e ()
|
|
attrHandler :: (IvoryArea a, IvoryZero a) => p a -> Handler a e () -> Monitor e ()
|
|
|
|
+ attrReaderChan :: p a -> ChanOutput a
|
|
|
|
|
|
instance AttrReadable AttrReader where
|
|
instance AttrReadable AttrReader where
|
|
attrState = attrReaderState
|
|
attrState = attrReaderState
|
|
attrHandler = attrReaderHandler
|
|
attrHandler = attrReaderHandler
|
|
|
|
+ attrReaderChan = ar_chan
|
|
|
|
|
|
instance AttrReadable Attr where
|
|
instance AttrReadable Attr where
|
|
attrState = attrReaderState . attr_reader
|
|
attrState = attrReaderState . attr_reader
|
|
attrHandler p k = attrReaderHandler (attr_reader p) k
|
|
attrHandler p k = attrReaderHandler (attr_reader p) k
|
|
|
|
+ attrReaderChan = attrReaderChan . attr_reader
|
|
|
|
|
|
class AttrWritable p where
|
|
class AttrWritable p where
|
|
attrEmitter :: (IvoryArea a, IvoryZero a) => p a -> Handler b e (Emitter a)
|
|
attrEmitter :: (IvoryArea a, IvoryZero a) => p a -> Handler b e (Emitter a)
|