module Ros.Internal.Log where
import qualified Prelude as P
import Prelude ((.))
import qualified Data.Typeable as T
import Control.Applicative
import Ros.Internal.RosBinary
import Ros.Internal.Msg.MsgInfo
import Ros.Internal.Msg.HeaderSupport
import qualified Data.Word as Word
import qualified Ros.Internal.Header as Header
data Log = Log { header :: Header.Header
, level :: Word.Word8
, name :: P.String
, msg :: P.String
, file :: P.String
, function :: P.String
, line :: Word.Word32
, topics :: [P.String]
} deriving (P.Show, P.Eq, P.Ord, T.Typeable)
instance RosBinary Log where
put obj' = put (header obj') *> put (level obj') *> put (name obj') *> put (msg obj') *> put (file obj') *> put (function obj') *> put (line obj') *> putList (topics obj')
get = Log <$> get <*> get <*> get <*> get <*> get <*> get <*> get <*> getList
putMsg = putStampedMsg
instance HasHeader Log where
getSequence = Header.seq . header
getFrame = Header.frame_id . header
getStamp = Header.stamp . header
setSequence seq x' = x' { header = (header x') { Header.seq = seq } }
instance MsgInfo Log where
sourceMD5 _ = "acffd30cd6b6de30f120938c17c593fb"
msgTypeName _ = "rosgraph_msgs/Log"
dEBUG :: Word.Word8
dEBUG = 1
iNFO :: Word.Word8
iNFO = 2
wARN :: Word.Word8
wARN = 4
eRROR :: Word.Word8
eRROR = 8
fATAL :: Word.Word8
fATAL = 16