2017-01-07 3 views
0

을 호출 한 후 flatbuffers::FlatBufferBuilder에서 생성 된 '하위'빌더 인스턴스를 재사용 할 수 있습니까? 서브 빌더에 대한 builder.Clear()의 효과는 무엇입니까? 테이블 계층 용 flatbuffer 빌더를 효율적으로 지움

는 같은 flatbuffers 스키마를 생성 데 다음

table FB_mytable1{ 
myshort::ushort = 0; 
} 
table FB_table2{ 
nestedTable1::FB_mytable1; 
nestedTable1::FB_mytable1; 
} 
root_type FB_table2; 

나는이 나를 호출하지 않고 새로운 시리얼 데이터를 생성 할 수 builder.clear()를 사용하여 빌더, 'flatbuffers :: FlatBufferBuilder'내 인스턴스를 재설정하면 재설정 함수 또는 FB_mytable1Builder myFB_mytable1Builder(builder)의 인스턴스화와 같은 개별 테이블 직렬 자 중 하나를 갱신합니까? 아니면 개별 빌더 객체가 다시 사용할 수 없음을 의미하는 범위를 갖고 있는지 확인해야합니까?

답변

1

clear()은 방금 구성한 것처럼 FlatBufferBuilder을 재설정하고 여러 테이블 버퍼 인스턴스 또는 여러 테이블에서 재사용해서는 안됩니다.

참고로, FlatBufferBuilder은 (버퍼를 소유하고 있기 때문에) 다소 중량 구조로되어 있으므로 가능하면 재사용하는 것이 좋습니다. 그러나 테이블 빌더는 초경량이기 때문에 단일 테이블을 작성하는 데 사용되는 로컬 변수 만 사용해야하며 재사용 할 수는 없습니다.

+0

제 질문을 이해해 주셔서 감사합니다. 나는 당신이 나를 위해 대답 해 준 질문을 더 잘 설명하기 위해 그것을 업데이트 할 것이다. 그것은 실제로 내가 알 필요가있는 것이다. – user3235290

+0

좋아, "내 대답에서"당신이 무엇을 요구하고 있는지 확실하지 않습니다. " – Aardappel