00001 /*------------------------------------------------------------------------------ 00002 Name: xmlBlaster.idl 00003 Project: xmlBlaster.org 00004 Task: Server interface 00005 Copyright: xmlBlaster.org, see xmlBlaster-LICENSE file 00006 Comment: String arguments should never be null, use "" instead 00007 Compile: JacORB Java 1.2: 00008 $JacORB_HOME/bin/idl -p org.xmlBlaster -d ${XMLBLASTER_HOME}/src/java xmlBlaster.idl 00009 VisiBroker (no JacORB should be in CLASSPATH) Java 1.2: 00010 ${VBROKER_PATH}/bin/idl2java -root_dir ${XMLBLASTER_HOME}/src/java xmlBlaster.idl 00011 MICO C++: 00012 $CORBACPP_HOME/bin/idl --poa --no-boa xmlBlaster.idl 00013 COPE Perl: 00014 idl2perl -imp xmlBlaster.idl 00015 Author: xmlBlaster@marcelruff.info 00016 Version: $Id: xmlBlaster.idl 15026 2006-04-10 16:56:35Z ruff $ 00017 ------------------------------------------------------------------------------*/ 00018 00019 #ifndef _xmlBlaster_IDL_ 00020 #define _xmlBlaster_IDL_ 00021 00022 00023 #pragma prefix "org.xmlBlaster.protocol.corba" 00024 00025 00029 module serverIdl 00030 { 00031 //This ifdef works with jacorb, but is not added to build.xml for C++ idl compilers 00032 //#ifdef XBL_IDL_WSTRING 00033 // Works fine with Javaclient -> xmlBlaster 00034 // but failed with MicoC++Client -> xmlBlaster, the received ConnectQos wstring was empty, is not yet resolved 00035 // typedef wstring XmlType; 00036 //#else 00037 typedef string XmlType; 00038 //#endif 00039 typedef sequence<XmlType> XmlTypeArr; 00040 00041 typedef sequence<octet> ContentType; 00042 00051 struct MessageUnit { 00052 XmlType xmlKey; 00053 ContentType content; 00054 XmlType qos; 00055 }; 00056 typedef sequence<MessageUnit> MessageUnitArr; 00057 00058 00062 exception XmlBlasterException 00063 { 00064 string errorCodeStr; 00065 string node; 00066 string location; 00067 string lang; 00068 string message; 00069 string versionInfo; 00070 string timestampStr; 00071 string stackTrace; 00072 string embeddedMessage; 00073 string transactionInfo; 00074 string reserved; 00075 // TODO: boolean isServerSide; 00076 }; 00077 00078 }; // org::xmlBlaster::protocol::corba::serverIdl 00079 00080 00081 00082 00090 module clientIdl 00091 { 00098 interface BlasterCallback 00099 { 00112 serverIdl::XmlTypeArr update(in string sessionId, in serverIdl::MessageUnitArr msgUnitArr) 00113 raises(serverIdl::XmlBlasterException); 00114 00124 oneway void updateOneway(in string sessionId, in serverIdl::MessageUnitArr msgUnitArr); 00125 00132 string ping(in string qos); 00133 }; 00134 00135 }; // org::xmlBlaster::protocol::corba::clientIdl 00136 00137 00138 00142 module serverIdl 00143 { 00202 interface Server 00203 { 00226 XmlType subscribe(in XmlType xmlKey, in XmlType qos) 00227 raises(XmlBlasterException); 00228 00229 00241 MessageUnitArr get(in XmlType xmlKey, in XmlType qos) 00242 raises(XmlBlasterException); 00243 00244 00256 XmlTypeArr unSubscribe(in XmlType xmlKey, in XmlType qos) 00257 raises(XmlBlasterException); 00258 00259 00274 XmlType publish(in MessageUnit msgUnit) 00275 raises(XmlBlasterException); 00276 00295 XmlTypeArr publishArr(in MessageUnitArr msgUnitArr) 00296 raises(XmlBlasterException); 00297 00309 oneway void publishOneway(in MessageUnitArr msgUnitArr); 00310 00316 XmlTypeArr erase(in XmlType xmlKey, in XmlType qos) 00317 raises(XmlBlasterException); 00318 00319 00326 string ping(in string qos); 00327 00328 }; // interface server 00329 00330 }; // org::xmlBlaster::protocol::corba::serverIdl 00331 00332 00333 00341 module authenticateIdl 00342 { 00343 interface AuthServer 00344 { 00348 serverIdl::Server login(in string loginName, in string passwd, 00349 in serverIdl::XmlType qosClient) 00350 raises (serverIdl::XmlBlasterException); 00351 00366 serverIdl::XmlType connect(in serverIdl::XmlType qos) 00367 raises (serverIdl::XmlBlasterException); 00368 00372 void logout(in serverIdl::Server xmlBlaster) 00373 raises (serverIdl::XmlBlasterException); 00374 00382 void disconnect(in string sessionId, in serverIdl::XmlType qos) 00383 raises (serverIdl::XmlBlasterException); 00384 00391 string ping(in string qos); 00392 }; 00393 }; // org::xmlBlaster::protocol::corba::authenticateIdl 00394 00395 00396 00397 #endif // _xmlBlaster_IDL_