wm withdraw .; wm withdraw .output; wm geom .konsola 829x629+183+7; kons_font 16 kons_font 13; # Morasko ## CDR: obsuga typu "wstring", 08.2016 # + potrzebny jakis konwerter... # to dziala: Combat::CONV_FRAME::getConverter 1 2 65801 # inne konwertery nie dzialaja... # widac takie sa std. ustawienia JavaIDL...??? # dlaczego nie trzeba podawac -cencoder ? # # ... proc e args {catch $args err; set err} lappend auto_path ../combat-tcl-0.7.4; package re combat #% 0.7 proc ii o {join [java::info meth $o] \n} proc narrow ob {java::cast [[$ob getClass] getName] $ob} proc e args {catch $args err; set err} lappend auto_path ~/tcl/mini-blend; package re java #% 1.3.3 set conv1 [Combat::CONV_FRAME::getConverter 1 2 65801] # + tylko 65801 dziala z JavaIDL !?!?!? Combat::CDR::Encoder e1 [e1 get_buffer] configure -byteorder 0 -wencoder $conv1 e1 Marshal wstring {A ku ku !!! ³³³ ¶¶¶ ñññ æææ ÆÆÆ} e1 Marshal string {tra la la !!!} set x5 [e1 get_data] itcl::delete object e1 set orb [java::call org.omg.CORBA.ORB \ {init {java.lang.String[]} java.util.Properties} \ [java::null] [java::null] ] binary scan $x5 c* xx5; set xx5 #% 0 0 0 64 -1 -2 65 0 32 0 107 0 117 0 32 0 107 0 117 0 32 0 33 0 33 0 33 0 32 0 66 1 66 1 66 1 32 0 91 1 91 1 91 1 32 0 68 1 68 1 68 1 32 0 7 1 7 1 7 1 32 0 6 1 6 1 6 1 0 0 0 14 116 114 97 32 108 97 32 108 97 32 33 33 33 0 set os [$orb create_output_stream] set b1 [java::new {byte[]} {} $xx5] $os write_octet_array $b1 0 [$b1 length] set is [$os create_input_stream] $is read_wstring #% A ku ku !!! ³³³ ¶¶¶ ñññ æææ ÆÆÆ $is read_string #% tra la la !!! set is2 [narrow $is] set os2 [narrow $os] [$os2 getGIOPVersion] toString #% 1.2 $os2 isLittleEndian #% 0 # + jak odczytac ten konwerter ?!?!?! ii $os2 #% _truncatable_ids alignOnBoundary int close create_input_stream end_block end_value equals java.lang.Object flush getBufferManager getByteBufferWithInfo getClass getGIOPVersion getMessageMediator hashCode isLittleEndian notify notifyAll orb putEndian setHeaderPadding boolean setMessageMediator com.sun.corba.se.pept.protocol.MessageMediator start_block start_value java.lang.String toByteArray write {byte[]} write {byte[]} int int write int writeIndirection int int writeOctetSequenceTo org.omg.CORBA.portable.OutputStream writeTo java.io.OutputStream ii $is2 #% _truncatable_ids alignOnBoundary int available close consumeEndian dup end_value getBufferLength getBufferManager getClass getCodeBase getGIOPVersion getMessageMediator getPosition isLittleEndian mark int markSupported orb orb org.omg.CORBA.ORB performORBVersionSpecificInit read read {byte[]} read {byte[]} int int reset resetCodeSetConverters setHeaderPadding boolean setMessageMediator com.sun.corba.se.pept.protocol.MessageMediator skip long start_value exit