portal Michała Hanćkowiaka
Begin main content
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

uwaga: portal używa ciasteczek tylko do obsługi tzw. sesji...