@@ -86,18 +86,30 @@ protected void callback(ThreadContext tc, AsyncTaskInstance task, SixModelObject
86
86
}
87
87
}
88
88
89
- public void writeStr (final ThreadContext tc , final AsyncTaskInstance task , String toWrite ) {
89
+ public void writeStr (ThreadContext tc , AsyncTaskInstance task , String toWrite ) {
90
90
try {
91
91
ByteBuffer buffer = enc .encode (CharBuffer .wrap (toWrite ));
92
+ writeByteBuffer (tc , task , buffer );
93
+ } catch (Throwable e ) {
94
+ throw ExceptionHandling .dieInternal (tc , e );
95
+ }
96
+ }
97
+
98
+ public void writeBytes (ThreadContext tc , AsyncTaskInstance task , SixModelObject toWrite ) {
99
+ ByteBuffer buffer = Ops .decode8 (toWrite , tc );
100
+ writeByteBuffer (tc , task , buffer );
101
+ }
92
102
103
+ protected void writeByteBuffer (final ThreadContext tc , final AsyncTaskInstance task , ByteBuffer buffer ) {
104
+ try {
93
105
HLLConfig hllConfig = tc .curFrame .codeRef .staticInfo .compUnit .hllConfig ;
94
106
final SixModelObject Array = hllConfig .listType ;
95
107
final SixModelObject Int = hllConfig .intBoxType ;
96
108
final SixModelObject Null = hllConfig .nullValue ;
97
109
final SixModelObject Str = hllConfig .strBoxType ;
98
110
99
111
CompletionHandler <Integer , AsyncTaskInstance > handler
100
- = new CompletionHandler <Integer , AsyncTaskInstance >() {
112
+ = new CompletionHandler <Integer , AsyncTaskInstance >() {
101
113
102
114
@ Override
103
115
public void completed (Integer bytesWritten , AsyncTaskInstance task ) {
@@ -126,10 +138,6 @@ protected void callback(ThreadContext tc, AsyncTaskInstance task, SixModelObject
126
138
}
127
139
}
128
140
129
- public void writeBytes (final ThreadContext tc , final AsyncTaskInstance task , SixModelObject toWrite ) {
130
-
131
- }
132
-
133
141
public void readChars (final ThreadContext tc , final AsyncTaskInstance task ) {
134
142
final ByteBuffer readBuffer = ByteBuffer .allocate (32768 );
135
143
final CharBuffer decodedBuffer = CharBuffer .allocate (32768 );
0 commit comments