1 package OpenSRF::Transport::SlimJabber::MessageWrapper;
6 $class = ref($class) || $class;
12 $doc = XML::LibXML->new->parse_string($xml);
13 $msg = $doc->documentElement;
15 $doc = XML::LibXML::Document->createDocument;
16 $msg = $doc->createElement( 'message' );
17 $doc->setDocumentElement( $msg );
21 my $self = { msg_node => $msg };
23 return bless $self => $class;
28 if( $self->{msg_node} ) {
29 return $self->{msg_node}->toString(@_);
36 my ($t_body) = grep {$_->nodeName eq 'body'} $self->{msg_node}->childNodes;
38 my $body = $t_body->textContent;
46 my ($t_node) = grep {$_->nodeName eq 'thread'} $self->{msg_node}->childNodes;
48 return $t_node->textContent;
55 $self->{msg_node}->getAttribute( 'type' );
62 my $rid = $self->{msg_node}->getAttribute( 'router_from' );
65 return $self->{msg_node}->getAttribute( 'from' );
70 $self->{msg_node}->setAttribute( type => shift );
75 $self->{msg_node}->setAttribute( to => shift );
80 $self->{msg_node}->appendTextChild( thread => shift );
86 $self->{msg_node}->appendTextChild( body => $body );
89 sub set_router_command {
90 my( $self, $router_command ) = @_;
91 if( $router_command ) {
92 $self->{msg_node}->setAttribute( router_command => $router_command );
95 sub set_router_class {
96 my( $self, $router_class ) = @_;
98 $self->{msg_node}->setAttribute( router_class => $router_class );