Страница 1 из 1
Обратная связь между обьектами

Добавлено:
24 мар 2009 11:05
Artem
Собственно задача: Получение обьекта который ссылается на другой( добавленный к первому как tk_specobject). Известен второй элемент - на который идет ссылка, как получить первый?
Добавить первый аналогичным образом ко второму нельзя - цикл при обновлении....Маппинг в левом обьекте? Или хранение, ну например, имени и поиск? - долго....Можно ли организовать двухстороннюю связь между обьектами ну или хотя бы такую, чтоб обновление не тянула за собой ...
Re: Обратная связь между обьектами

Добавлено:
24 мар 2009 12:57
booSter
Для случаев, когда необходимо узнать "кто" ссылается на данный объект используется
CATISpecObject.ListPointing- Код: Выделить всё
...
CATISpecObject_var spYourSpec = ...
...
CATLISTP(CATSpecPointing) lspPointings;
HRESULT hr = spYourSpec->ListPointing( lspPointings );
if ( SUCCEEDED( hr ) )
for ( int nPX=1; nPX<=lspPointings.Size(); ++nPX )
{
CATSpecPointing * pPointing = lspPointings[iPX];
// обрабатываем обратную ссылку...
...
}
...
Re: Обратная связь между обьектами

Добавлено:
24 мар 2009 14:13
booSter
Для случая же кросс-ссылки (оба объекта взаимно ссылаются друг на друга через атрибут типа tk_specobject) атрибуты должны иметь quality tk_NEUTRAL , а синхронизацию сделать "вручную".
Если проблема останется, то придется сделать "выделенный" объект-синхронизатор.
Re: Обратная связь между обьектами

Добавлено:
24 мар 2009 16:55
Artem
Как всегда огромное спасибо....Сорри что сразу не ответил - сейчас, скажем так, рейд больше хобби, так что не всегда все своевременно посмотреть получается......