xmlBlaster 2.2.0 API

org.xmlBlaster.protocol.xmlrpc
Class XmlBlasterImpl

java.lang.Object
  extended by org.xmlBlaster.protocol.xmlrpc.XmlBlasterImpl

public class XmlBlasterImpl
extends java.lang.Object

Implements the xmlBlaster server XMLRPC interface. Because the xml-rpc protocol does not recognize user-defined classes, these must be converted to something which xml-rpc does understand. That's why following transformations will take place:

 MsgUnitRaw are converted to Vector
 MsgUnitRaw[] are converted to Vector (of Vector)
 String[] are converted to Vector (of String)
 boolean are converted to int
 void return is not allowed so we return an empty string instead
 

Author:
"Michele Laghi" (michele@laghi.eu)

Field Summary
private  AddressServer addressServer
           
private  I_XmlBlaster blasterNative
           
private  java.util.Map<java.lang.String,java.lang.ref.WeakReference<CallbackXmlRpcDriverSingleChannel>> cbMap
           
private  Global glob
           
private static java.util.logging.Logger log
           
private static java.lang.String ME
           
private  long waitTime
           
 
Constructor Summary
XmlBlasterImpl(Global glob, XmlRpcDriver driver, I_XmlBlaster blasterNative)
          Constructor.
 
Method Summary
 java.util.Vector erase(java.lang.String sessionId, java.lang.String xmlKey_literal, java.lang.String qos_literal)
           
 java.util.Vector get(java.lang.String sessionId, java.lang.String xmlKey_literal, java.lang.String qos_literal)
           
 java.util.Vector get(java.lang.String sessionId, java.lang.String xmlKey_literal, java.lang.String qos_literal, java.lang.String asString)
          Synchronous access
 CallbackXmlRpcDriverSingleChannel getCb(java.lang.String sessionId)
           
 void interrupt(java.lang.String sessionId)
           
 java.lang.String ping(java.lang.String qos)
          Test the xml-rpc connection and if xmlBlaster is available for requests.
 java.lang.String publish(java.lang.String sessionId, java.lang.String xmlKey_literal, byte[] content, java.lang.String publishQos_literal)
           
 java.lang.String publish(java.lang.String sessionId, java.lang.String xmlKey_literal, java.lang.String content, java.lang.String publishQos_literal)
          This variant allows to publish simple string based messages (the content is a string).
 java.lang.String publish(java.lang.String sessionId, java.util.Vector msgUnitWrap)
           
 java.util.Vector publishArr(java.lang.String sessionId, java.lang.Object[] msgUnitArrWrap)
           
 void publishOneway(java.lang.String sessionId, java.util.Vector msgUnitArrWrap)
           
 void registerSessionId(java.lang.String sessionId, boolean singleChannel, boolean useCDATA)
           
 void removeCallback(java.lang.String sessionId, java.lang.String reason)
           
 java.lang.String shutdownCb(java.lang.String sessionId)
           
 java.lang.String subscribe(java.lang.String sessionId, java.lang.String xmlKey_literal, java.lang.String qos_literal)
          Subscribe to messages.
 java.lang.String toXml(java.lang.String extraOffset)
           
 java.util.Vector unSubscribe(java.lang.String sessionId, java.lang.String xmlKey_literal, java.lang.String qos_literal)
          void return is not allowed so we return an empty string instead
 java.lang.String updateAckOrException(java.lang.String sessionId, java.lang.String reqId, java.lang.Object[] ack, java.lang.String ex)
          Synchronous request for updates (simulates an asynchronous update)
 java.lang.Object[] updateRequest(java.lang.String sessionId, java.lang.String waitTimeTxt, java.lang.String asString)
          Synchronous request for updates (simulates an asynchronous update)
 java.lang.Object xmlScriptInvoke(java.lang.String literal)
          invokeSubscribe to messages.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ME

private static final java.lang.String ME

log

private static java.util.logging.Logger log

blasterNative

private final I_XmlBlaster blasterNative

addressServer

private final AddressServer addressServer

glob

private final Global glob

cbMap

private java.util.Map<java.lang.String,java.lang.ref.WeakReference<CallbackXmlRpcDriverSingleChannel>> cbMap

waitTime

private long waitTime
Constructor Detail

XmlBlasterImpl

public XmlBlasterImpl(Global glob,
                      XmlRpcDriver driver,
                      I_XmlBlaster blasterNative)
               throws XmlBlasterException
Constructor.

Throws:
XmlBlasterException
Method Detail

subscribe

public java.lang.String subscribe(java.lang.String sessionId,
                                  java.lang.String xmlKey_literal,
                                  java.lang.String qos_literal)
                           throws XmlBlasterException
Subscribe to messages.

Throws:
XmlBlasterException
See Also:
The interface.subscribe requirement

xmlScriptInvoke

public java.lang.Object xmlScriptInvoke(java.lang.String literal)
                                 throws XmlBlasterException
invokeSubscribe to messages.

Throws:
XmlBlasterException
See Also:
The interface.subscribe requirement

unSubscribe

public java.util.Vector unSubscribe(java.lang.String sessionId,
                                    java.lang.String xmlKey_literal,
                                    java.lang.String qos_literal)
                             throws XmlBlasterException
void return is not allowed so we return an empty string instead

Throws:
XmlBlasterException
See Also:
CORBA xmlBlaster.idl, The interface.unSubscribe requirement

publish

public java.lang.String publish(java.lang.String sessionId,
                                java.lang.String xmlKey_literal,
                                byte[] content,
                                java.lang.String publishQos_literal)
                         throws XmlBlasterException
Throws:
XmlBlasterException
See Also:
CORBA xmlBlaster.idl, The interface.publish requirement

publish

public java.lang.String publish(java.lang.String sessionId,
                                java.lang.String xmlKey_literal,
                                java.lang.String content,
                                java.lang.String publishQos_literal)
                         throws XmlBlasterException
This variant allows to publish simple string based messages (the content is a string).

Throws:
XmlBlasterException
See Also:
CORBA xmlBlaster.idl, The interface.publish requirement

publish

public java.lang.String publish(java.lang.String sessionId,
                                java.util.Vector msgUnitWrap)
                         throws XmlBlasterException
Throws:
XmlBlasterException
See Also:
CORBA xmlBlaster.idl, The interface.publish requirement

publishArr

public java.util.Vector publishArr(java.lang.String sessionId,
                                   java.lang.Object[] msgUnitArrWrap)
                            throws XmlBlasterException
Throws:
XmlBlasterException
See Also:
CORBA xmlBlaster.idl, The interface.publish requirement

publishOneway

public void publishOneway(java.lang.String sessionId,
                          java.util.Vector msgUnitArrWrap)
See Also:
CORBA xmlBlaster.idl, The interface.publish requirement

erase

public java.util.Vector erase(java.lang.String sessionId,
                              java.lang.String xmlKey_literal,
                              java.lang.String qos_literal)
                       throws XmlBlasterException
Throws:
XmlBlasterException
See Also:
CORBA xmlBlaster.idl, The interface.erase requirement

get

public java.util.Vector get(java.lang.String sessionId,
                            java.lang.String xmlKey_literal,
                            java.lang.String qos_literal)
                     throws XmlBlasterException
Throws:
XmlBlasterException

get

public java.util.Vector get(java.lang.String sessionId,
                            java.lang.String xmlKey_literal,
                            java.lang.String qos_literal,
                            java.lang.String asString)
                     throws XmlBlasterException
Synchronous access

Returns:
content
Throws:
XmlBlasterException
See Also:
CORBA xmlBlaster.idl, The interface.get requirement

updateRequest

public java.lang.Object[] updateRequest(java.lang.String sessionId,
                                        java.lang.String waitTimeTxt,
                                        java.lang.String asString)
                                 throws XmlBlasterException
Synchronous request for updates (simulates an asynchronous update)

Returns:
content
Throws:
XmlBlasterException

interrupt

public void interrupt(java.lang.String sessionId)

shutdownCb

public java.lang.String shutdownCb(java.lang.String sessionId)

updateAckOrException

public java.lang.String updateAckOrException(java.lang.String sessionId,
                                             java.lang.String reqId,
                                             java.lang.Object[] ack,
                                             java.lang.String ex)
Synchronous request for updates (simulates an asynchronous update)

Returns:
dummy to make the xmlrpc happy (if it where null it would not be registered).

ping

public java.lang.String ping(java.lang.String qos)
                      throws XmlBlasterException
Test the xml-rpc connection and if xmlBlaster is available for requests.

Throws:
XmlBlasterException
See Also:
org.xmlBlaster.protocol.I_XmlBlaster#ping(String)

toXml

public java.lang.String toXml(java.lang.String extraOffset)
                       throws XmlBlasterException
Throws:
XmlBlasterException

registerSessionId

public void registerSessionId(java.lang.String sessionId,
                              boolean singleChannel,
                              boolean useCDATA)
                       throws XmlBlasterException
Throws:
XmlBlasterException

removeCallback

public void removeCallback(java.lang.String sessionId,
                           java.lang.String reason)

getCb

public CallbackXmlRpcDriverSingleChannel getCb(java.lang.String sessionId)

xmlBlaster 2.2.0 API

Copyright © 1999-2014 The xmlBlaster.org contributers.