All pastes #934989 Raw Edit

More about generators in glib

public c v1 · immutable
·published 2008-03-09 07:09 UTC
rendered paste body
#include <glib-object.h>#include "generator.h"void generate(Generator *gen, va_list args){	int number = va_arg(args, int);	int exponent = va_arg(args, int);	GValue value = {0};	g_value_init(&value, G_TYPE_INT);	int result = 1;	int counter = 0;	while(counter++ < exponent)	{		result *= number;		g_value_set_int(&value, result);		generator_yield(gen, &value);	}}int main(){	g_type_init();	Generator *gen = generator_new();	GValue value = {0};	generator_init(gen, generate, 2, 8);	while(generator_next(gen, &value))	{		gchar *repr = g_strdup_value_contents(&value);		g_print("Value = %s\n", repr);		g_free(repr);	}	generator_free(gen);	return 0;}