обертывание списка структур с помощью boost.python

У меня есть функция C ++, которая возвращает список структур. Внутри структуры есть еще списки структур.

struct CameraInfo {
    CamName                     name;
    std::list  lImgFormats;
    std::list      lCamControls;
};

std::list getCameraInfo()
{
    std::list lCamerasInfo;
    // fill lCamerasInfo
    return lCamerasInfo; 
}

тогда для ее экспорта я использовал:

class_ >("CameraNode", no_init)
...
...
.def("listCameraInfo", make_function(&CameraNode::listCameraInfo))
        .staticmethod("listCameraInfo")
...
;

И все было нормально, так как я использовал cout для вывода данных на экран ... Теперь я хотел бы использовать возвращаемое значение и его содержимое из свойств типа Python, таким образом:

cameras = []
cameras = CameraNode.getCameraInfo()
print cameras[0].name
print cameras[0].lImgFormats[0]
and so on...

Возможно ли это вообще ?? Должен ли я использовать вместо этого add_property? Не думаю, что смогу создать класс для каждой структуры. Этот дизайн имел смысл, пока я работал только над C ++, но теперь, когда мне придется его обернуть, я все больше и больше запутываюсь.

Любой совет по обертыванию std :: list с помощью boost.python в целом будет буду очень хорошо принят.

Изменить:

Я добавлю сюда ссылки, которые считаю полезными: Итераторы StlContainers

5
задан Robert Parcus 21 July 2011 в 14:29
поделиться