void shdt_test_send_tuples() { Shdt::Writer w(&sender, buffer_, bufsize_, Shdt::write_callback_t::from_method<ExampleApplication, &ExampleApplication::shdt_test_receive_tuples>(this)); w.write_header(table_size_, 3); for(block_data_t** t = test_tuples_; t[0]; t += 3) { Tuple tuple; #if USE_CODEC block_data_t *s = Codec::encode(t[0]); tuple.set(0, s); cstr_size_ += strlen((char*)s) + 1; s = Codec::encode(t[1]); tuple.set(1, s); cstr_size_ += strlen((char*)s) + 1; s = Codec::encode(t[2]); tuple.set(2, s); cstr_size_ += strlen((char*)s) + 1; #else tuple.set(0, t[0]); cstr_size_ += strlen((char*)t[0]) + 1; tuple.set(1, t[1]); cstr_size_ += strlen((char*)t[1]) + 1; tuple.set(2, t[2]); cstr_size_ += strlen((char*)t[2]) + 1; #endif w.write_tuple(tuple); #if USE_CODEC ::get_allocator().free_array(tuple.get(0)); ::get_allocator().free_array(tuple.get(1)); ::get_allocator().free_array(tuple.get(2)); #endif } w.flush(); }
OOP MethodTable::methods(State& S) { Tuple* tup = new(S) Tuple(S, table_.size()); int idx = 0; for(Table::iterator i = table_.begin(); i != table_.end(); ++i) { String* s = (*i).first; tup->set(idx++, OOP(s)); } return OOP(tup); }