Beispiel #1
0
		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();
		}
Beispiel #2
0
  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);
  }