우선, 나는 가장 유능한 C++ 프로그래머는 아니지만, 배우고 있고, Thrift의 힘을 즐기고 있다고 말할 것입니다.Apache Thrift 처리하기 C++의 리턴 타입
void, i32 및 list를 반환하는 몇 가지 기본 함수를 사용하여 Thrift 서비스를 구현했습니다. 장고 웹 응용 프로그램에서 제어하는 Python 클라이언트를 사용하여 RPC 호출을 작성하고 있는데 꽤 잘 작동합니다.
.thrift 설명 파일 : Rcon.h에서
namespace cpp Remote
enum N_PROTO {
N_TCP,
N_UDP,
N_ANY
}
service Rcon {
i32 ping()
i32 KillFlows()
i32 RestartDispatch()
i32 PrintActiveFlows()
i32 PrintActiveListeners(1:i32 proto)
list<string> ListAllFlows()
}
생성 된 서명 :
int32_t ping();
int32_t KillFlows();
int32_t RestartDispatch();
int32_t PrintActiveFlows();
int32_t PrintActiveListeners(const int32_t proto);
int64_t ListenerBytesReceived(const int32_t id);
void ListAllFlows(std::vector<std::string> & _return);
당신의 ListAllFlows를 참조로 생성 된 코드는 목록 반환을 제외하고, 정직하고 예쁜() 함수는 문자열의 벡터에 대한 참조를 취합니다. 나는 그것이 기수 설명에 배치 된대로 문자열의 벡터를 반환 할 것으로 기대합니다.
수정하기위한 문자열 벡터를 함수에 제공하려는 경우, Thrift가 void를 반환하는 함수에도 불구하고이를 클라이언트에 반환하는 것을 처리하는지 궁금합니다.
C++에서 쓰레드 목록 <> 유형의 자원이나 예제 사용법을 찾을 수 없습니다. 모든 지침을 부탁드립니다.