omniORB 및 C++을 사용하고 있습니다.C++을 사용하여 CORBA 시퀀스를 추가하는 쉬운 방법
내 응용 프로그램에서 나는 작은 모듈을 몇 개의 작은 CORBA 형태로 만든다. 그리고 나는 더 많은 처리를 위해 그것들을 하나의 큰 순서에 결합 할 필요가있다. 쉬운 방법이 있나요? seq2.append(seq1)
또는 seq2.push_back(seq1)
과 같은 것입니다. 또는 일부 운영자입니까? (나는 STL- 물건에서 정말로 초보자 다).
내가 찾은 유일한 방법은 수동으로 작은 시퀀스의 모든 요소를 살펴보고 큰 시퀀스에 추가하는 것입니다.
//idl
struct Device;
typedef sequence<Device> DevicesList;
//c++
icore::DevicesList full_list;
foreach (const DStatusList &stlist, states_) {
icore::DevicesList list = convertList(stlist);
int newlength = full_list.length() + list.length();
int last_index = full_list.length();
full_list.length(newlength);
int j=0;
for(int i=last_index; i< last_index+list.length(); i++,j++) {
full_list[i] = list[j];
}
}
감사합니다.
제 경우에는 기본 목록 (CORBA가 아님)을 결합한 다음 결과를 CORBA 목록으로 변환 할 수 있습니다. 그러나 질문은 다른 방법을 알기를 요청했습니다. 나쁜 영어에 유감 스럽지만. – uni
나는 그런 식으로 사용하는 것이 좋습니다 : 가능하면 통신을 위해 CORBA 유형을 유지하고 처리를 위해 std (또는 자신의) 컨테이너를 사용하십시오. – stefaanv
새로운 IDL에서 C++ 11l 로의 언어 매핑은 특수 CORBA 유형 대신 표준 컨테이너를 사용합니다.이 새로운 매핑을 지원하는 CORBA 구현 인 TAOX11에 대해서는 http://swsupport.remedy.nl을 참조하십시오. –