예제 #1
0
static net_message_t* receive(void* handle, net_message_t* msg, void* payload, uint8_t len)
{
    DEBUGOUT("receive__receive(%p, %p, %p, %u)", handle, msg, payload, len);
	DEBUGOUT("receive__receive: state = %d", state);
	assert (state == WAIT_RECEIVE);
	assert (handle == receive_handle);
	assert (len == 2 * sizeof(uint32_t));

	cur_payload = payload;
	cur_len = len;

	error_t error = logw_append(logw_handle, payload, len);
	assert (error == SUCCESS); (void)error;

	state = WAIT_LOG;

	net_message_t* res = my_msg;
	my_msg = msg;
    return res;
}
예제 #2
0
파일: log-test.c 프로젝트: Fleurer/nessDB
CTEST(log, write) {
	int i;
	char kbuf[KEY_SIZE];
	char vbuf[VAL_SIZE];

	uint32_t tbn = 0U;
	uint64_t lsn = 112;
	struct options *opts = options_new();
	struct logw *lgw = logw_open(opts, lsn);

	for (i = 0; i < R; i++) {
		memset(kbuf, 0 , KEY_SIZE);
		memset(vbuf, 0 , VAL_SIZE);
		snprintf(kbuf, KEY_SIZE, "key-%d", i);
		snprintf(vbuf, VAL_SIZE, "val-%d", i);

		struct msg k = {.data = kbuf, .size = KEY_SIZE};
		struct msg v = {.data = vbuf, .size = VAL_SIZE};

		logw_append(lgw, &k, &v, MSG_PUT, tbn);
	}

	uint32_t all_size;
	uint32_t one_size = 4	/* first length */
		+ 4		/* tid */
		+ 2		/* type */
		+ 4		/* key length */
		+ KEY_SIZE	/* key */
		+ 4		/*val length */
		+ VAL_SIZE	/* val */
		+ 4;		/* crc */

	all_size = R * one_size;
	ASSERT_EQUAL(all_size, lgw->size);

	logw_close(lgw);
	options_free(opts);
}