Thinking Different




Visual studio 를 열고 아래와 같이 코드를 작성해봅시다.

 

코드에 대한 별도 설명은 아래 코드에 주석에 포함되어 있으므로 생략하겠습니다.

 

#include <iostream>
using namespace std;

// 헤더 선언
#include "flatbuffers/flatbuffers.h"
#include "person_generated.h"


int main()
{
    // flatbuffer 빌더 객체 선언
    flatbuffers::FlatBufferBuilder builder;

    // ----------------------------------------------------------------
    // 직렬화할 객체 데이터를 작성하여 직렬화한다.

    auto name = builder.CreateString("홍길동");
    auto age = 25;

    // 직렬화 완료
    builder.Finish(CreatePerson(builder, name, age));

    // 직렬화된 버퍼를 가져온다. 이 버퍼값을 네트워크로 전송하거나 파일로 저장할 수 있다.
    auto data = builder.GetBufferPointer();
    

    // ----------------------------------------------------------------
    // 역직렬화를 진행한다.

    // 역직렬화하여 person 객체로 가져온다.
    auto person = GetPerson(data);

    // 객체 출력 확인
    cout << "이름 : " << person->name()->c_str() << endl;
    cout << "나이 : " << person->age() << endl;

    builder.ReleaseBufferPointer();
    builder.Clear();

    return 0;
}

 

 

 

flatbuffers에 대한 더 많은 내용을 보려면 

https://google.github.io/flatbuffers/flatbuffers_guide_writing_schema.html