Notice
Recent Posts
Recent Comments
Link
bdfgdfg
플랫버퍼 헤더 자동추가 본문
반응형
플랫버퍼의 사용은 스키마작성 -> 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