コード例 #1
0
ファイル: test_addressbook.c プロジェクト: kelvinyu/pbc
int
main()
{
	struct pbc_slice slice;
	read_file("addressbook.pb", &slice);
	if (slice.buffer == NULL)
		return 1;
	struct pbc_env * env = pbc_new();
	pbc_register(env, &slice);

	free(slice.buffer);

	struct pbc_wmessage *msg = test_wmessage(env);

	pbc_wmessage_buffer(msg, &slice);

	dump(slice.buffer, slice.len);

	test_rmessage(env, &slice);

	pbc_wmessage_delete(msg);
	pbc_delete(env);

	return 0;
}
コード例 #2
0
ファイル: addressbook.c プロジェクト: fiskercui/lua
void testNewRead()
{
	struct pbc_slice slice;
	read_file("addressbooknew.pb", &slice); //ClientSvrMsg
	//read_file("ClientSvrMsg.pb", &slice); //ClientSvrMsg
	if (slice.buffer == NULL)
		return 1;

	struct pbc_env * env = pbc_new();
	int r = pbc_register(env, &slice);
	if (r) {
		printf("Error : %s", pbc_error(env));
		return 1;
	}
	free(slice.buffer);


	size_t* size = malloc(sizeof(size_t));
	FILE* fp = fopen("test.bin", "rb");
	fseek(fp, 0, SEEK_END);
	*size = ftell(fp);
	*((size_t *)&slice.len) = ftell(fp);
	fseek(fp, 0, SEEK_SET);
	slice.buffer = (unsigned char*)malloc(*size);
	fread(slice.buffer, slice.len, 1, fp);

	test_rmessage(env, &slice);

	pbc_delete(env);

}
コード例 #3
0
ファイル: addressbook.c プロジェクト: fiskercui/lua
void testOldWrite()
{
	struct pbc_slice slice;
	read_file("addressbooknew.pb", &slice); //ClientSvrMsg
	//read_file("ClientSvrMsg.pb", &slice); //ClientSvrMsg
	if (slice.buffer == NULL)
		return 1;
	struct pbc_env * env = pbc_new();
	int r = pbc_register(env, &slice);
	if (r) {
		printf("Error : %s", pbc_error(env));
		return 1;
	}

	free(slice.buffer);

	struct pbc_wmessage *msg = test_wmessage(env);
	//struct pbc_wmessage *msg = test_ClientSevermessage(env);
	pbc_wmessage_buffer(msg, &slice);
	dump(slice.buffer, slice.len);
	FILE* f = fopen("test.bin", "wb");
	fwrite(slice.buffer, slice.len, 1, f);
	fclose(f);
	f = NULL;
}
コード例 #4
0
ファイル: test.c プロジェクト: zhangjinde/z
int
main() {
	_pbcM_memory();
	struct pbc_env * env = pbc_new();
	struct pbc_slice slice;
	read_file("test.pb", &slice);
	int ret = pbc_register(env, &slice);
	assert(ret == 0);
	test(env);
	pbc_delete(env);
	_pbcM_memory();

	return 0;
}
コード例 #5
0
ファイル: pbc-lua53.c プロジェクト: doublefox1981/pbc
static int
_env_register(lua_State *L) {
	struct pbc_env * env = (struct pbc_env *)checkuserdata(L,1);
	size_t sz = 0;
	const char * buffer = luaL_checklstring(L, 2 , &sz);
	struct pbc_slice slice;
	slice.buffer = (void *)buffer;
	slice.len = (int)sz;
	int ret = pbc_register(env, &slice);

	if (ret) {
		return luaL_error(L, "register fail");
	}
	return 0;
}
コード例 #6
0
ファイル: dump.c プロジェクト: jimmycao/ompi-plugin
static void
dump(const char *proto, const char * message, struct pbc_slice *data) {
	struct pbc_env * env = pbc_new();
	struct pbc_slice pb;
	read_file(proto, &pb);
	int r = pbc_register(env, &pb);
	if (r!=0) {
		fprintf(stderr, "Can't register %s\n", proto);
		exit(1);
	}
	struct pbc_rmessage * m = pbc_rmessage_new(env , message , data);
	if (m == NULL) {
		fprintf(stderr, "Decode message %s fail\n",message);
		exit(1);
	}
	dump_message(m,0);
}
コード例 #7
0
ファイル: pattern.c プロジェクト: zhangjinde/z
int
main()
{
	struct pbc_slice slice;
	read_file("addressbook.pb", &slice);
	if (slice.buffer == NULL)
		return 1;
	struct pbc_env * env = pbc_new();
	pbc_register(env, &slice);

	free(slice.buffer);

	pat = pbc_pattern_new(env, "tutorial.Person" , 
		"name %s id %d email %s phone %a test %a",
		offsetof(struct person, name) , 
		offsetof(struct person, id) ,
		offsetof(struct person, email) ,
		offsetof(struct person, phone) ,
		offsetof(struct person, test));

	pat_phone = pbc_pattern_new(env, "tutorial.Person.PhoneNumber",
		"number %s type %d",
		offsetof(struct person_phone, number),
		offsetof(struct person_phone, type));


	char buffer[4096];
	struct pbc_slice message = { buffer, sizeof(buffer) };

	test_pattern_pack(env, &message);

	dump((uint8_t*)message.buffer, message.len);

	test_pattern_unpack(env, &message);

	pbc_pattern_delete(pat);
	pbc_pattern_delete(pat_phone);

	pbc_delete(env);

	return 0;
}
コード例 #8
0
ファイル: pbc_performance.c プロジェクト: changnet/MServer
int
main()
{
	struct pbc_slice slice;
	read_file("performance.pb", &slice);
	if (slice.buffer == NULL)
		return 1;
	struct pbc_env * env = pbc_new();
	int r = pbc_register(env, &slice);
	if (r) {
		printf("Error : %s", pbc_error(env));
		return 1;
	}

	free(slice.buffer);

	clock_t start = clock();
	int i;
	for ( i = 0;i < 1000000;i ++ )
	{
		struct pbc_wmessage *msg = test_wmessage(env);

		pbc_wmessage_buffer(msg, &slice);

		//dump(slice.buffer, slice.len);

		//test_rmessage(env, &slice);

		//if ( i == 100000 - 1) test_rmessage(env, &slice);
		pbc_wmessage_delete(msg);
	}

	clock_t t = clock() - start;
	printf( "time cost %f\n", ((float)t)/CLOCKS_PER_SEC );

	pbc_delete(env);

	return 0;
}