.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "MESSAGE-PASS 1p" .TH MESSAGE-PASS 1p "2012-08-22" "perl v5.18.1" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" message\-pass \- command line Message::Passing runner script .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& message\-pass [options] \& \& Options: \& \-\-input \- Input short name (required) \& \-\-output \- Output short name (required) \& \-\-filter \- Filter short name (default Null) \& \-\-decoder \- Decoder short name (default JSON) \& \-\-encoder \- Encoder short name (default JSON) \& \-\-input_options \- JSON options string for input \& \-\-output_options \- JSON options string for output \& \-\-filter_options \- JSON options string for filter \& \-\-decoder_options \- JSON options string for decoder \& \-\-encoder_options \- JSON options string for encoder \& \& OR: \& \& \-\-configfile \- Config file (to load with Config::Any) \& supplying the above options .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" Builds a simple chain of Message::Passing components, looking like this: .PP .Vb 1 \& Input => Decoder => Filter => Encoder => Output .Ve .PP This allows you to input a message from one protocol, decode it, process it and then output it again having encoded it. .PP The simplest example of doing this is: .PP .Vb 1 \& message\-pass \-\-input STDIN \-\-output STDOUT .Ve .PP Which will echo \s-1JSON\s0 strings you type back to the terminal. .SH "CLASS NAME EXPANSION" .IX Header "CLASS NAME EXPANSION" All short class names undergo expansion as detailed below, except for names which are prefixed with a '+', which implies a full class name. .PP E.g. .PP .Vb 1 \& message\-pass \-\-input \*(Aq+My::Example::Input\*(Aq \-\-output STDOUT .Ve .PP The expansions are: .IP "input" 4 .IX Item "input" Message::Passing::Input::XXX .IP "output" 4 .IX Item "output" Message::Passing::Output::XXX .IP "filter" 4 .IX Item "filter" Message::Passing::Filter::XXX .IP "encoder" 4 .IX Item "encoder" Message::Passing::Filter::Encoder::XXX .IP "decoder" 4 .IX Item "decoder" Message::Passing::Filter::Decoder::XXX .SH "CONFIG FILE" .IX Header "CONFIG FILE" If the \f(CW\*(C`\-\-configfile\*(C'\fR option is supplied, then a config file will be used. .PP The format of data in this config file matches that required of the command line options, e.g. .PP .Vb 12 \& { \& "input":"XXX", \& "input_options":{}, \& "output":"XXX", \& "output_options":{}, \& "filter":"XXX", \& "filter_options":{}, \& "encoder":"XXX", \& "encoder_options":{}, \& "decoder":"XXX", \& "decoder_options":{} \& } .Ve .PP Any config format supported by Config::Any can be used, however \s-1JSON\s0 is the only format which is certain to work without additional dependencies which are not required by this module. .SH "SEE ALSO" .IX Header "SEE ALSO" .IP "Message::Passing" 4 .IX Item "Message::Passing" .PD 0 .IP "Message::Passing::Manual" 4 .IX Item "Message::Passing::Manual" .PD .SH "SPONSORSHIP" .IX Header "SPONSORSHIP" This module exists due to the wonderful people at Suretec Systems Ltd. who sponsored its development for its VoIP division called SureVoIP for use with the SureVoIP \s-1API \- \s0 .SH "AUTHOR, COPYRIGHT AND LICENSE" .IX Header "AUTHOR, COPYRIGHT AND LICENSE" See Message::Passing.