bdfgdfg

플랫버퍼 헤더 자동추가 본문

게임프로그래밍/C++서버

플랫버퍼 헤더 자동추가

marmelo12 2023. 1. 11. 22:15
반응형

플랫버퍼의 사용은 스키마작성 -> flatc를 통한 컴파일 -> 헤더생성 -> 해당 헤더파일 추가 -> 가져다 쓰기(?)..

등의 단계를 거친다.

 

적어도 가져다 쓰기 이전의 단계는 이전에 만들어둔 스키마 작성단계만 한 후 자동으로 헤더생성까지 해주는 역할 + 해당 헤더파일도 자동으로 추가까지 구현해보았다.

 

이제 매번 스키마 파일마다 추가되는 헤더를 추가할 필요는 없고 저 PacketHeader 하나만을 추가하면 된다.

 

이제는 잘 가져다가 쓰는것도 중요.

#include <iostream>
#include "files/GenPacket/PacketHeader.h"
#include "KPacketHelper.h"

int main( void )
{
	flatbuffers::FlatBufferBuilder builder;
	
	auto strNickName = builder.CreateString( "닉네임" );
	int iAccID = 1000;
	
	builder.Finish( CreateAccountInfo( builder, iAccID, strNickName ) );
	
	char* pBuffer  = KPacketHelper::SerializeFlatBuffer( 1, builder );
	uint8_t* pData = KPacketHelper::DeserializeFromFlatBuffer( pBuffer );

	auto Info = GetAccountInfo( pData );
	auto strParsingNickName = Info->NickName()->str();
	int iParsingAccID = Info->AccountID();

	std::cout << strParsingNickName << " " << iParsingAccID;

	return 0;
}

역직렬화된 데이터를 가져와 스키마 이름에 맞는 함수를 호출해주면 알아서 안의 내용물에 대한 호출이 가능.

(시리얼라이즈의 경우 TCP환경을 고려하여 플랫버퍼 앞단에 패킷헤더(프로토콜,버퍼크기)등을 넣어줬따.

 -> 물론 TCP특성상 덜 수신받는 경우를 고려하여 디시리얼라이즈를 호출..)

 

 

반응형

'게임프로그래밍 > C++서버' 카테고리의 다른 글

플랫버퍼 사용  (0) 2023.01.09
서버 구조 (쓰레드 모델,구조)  (1) 2022.06.11
Comments