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