INFO
Sylabus
Standard ODMG, część 6
1. ODMG 2.0: Wiązanie do C++ - charakterystyka
2. Co to jest “niezgodność impedancji”?
3. Założenia projektowe wiązania do C++
4. Podstawowa architektura wiązania
5. Odwzorowanie elementów modelu ODMG na C++
6. C++ ODL
7. Jednokierunkowe związki
8. C++ OML
9. Związki
10. Klasy do obsługi kolekcji
11. C++ OQL
12. ODMG 2.0: przykład w C++
13. ODMG-93 C++: Schowek aplikacji
14 Związki ze środowiskiem OMG ORB
Skorowidz
Wyście:
Wyklad XII. Wprowadzenie do standardu ODMG, część 6:
Wiązanie do C++ (KURS SSR)
I II III IV V VI VII VIII IX X XI XII XIII XIV
« poprzedni punkt   następny punkt »

9. Związki

extern const char _ra[ ], _rb[ ];
class A{..d_Rel_Ref<B, _ra> rb;..};
class B{..d_rel_Ref<A, _rb> ra;..};
const char _ra[] = "ra";
const char _rb[] = "rb";
(3kB)
Na razie obiekty a i b nie są powiązane.

a.rb = &b;
Po takim podstawieniu powstaje związek oraz jego “bliźniak” (3kB)

a.rb = &bb;
Referencja z a prowadzi do
bb, ale automatycznie przestawiony zostaje także “bliźniak”
(5kB)

a.rb.clear();
Obydwie referencje znikają, sytuacja wraca do poczatkowej.
Sprawa się nieco komplikuje dla powiązań 1:n i m:n



10. Klasy do obsługi kolekcji

Szereg operatorów, zapisanych wojskowym szyfrem C++, których przeznaczeniem jest umożliwienie dowolnych zleceń dotyczących kolekcji

Przykłady:
template <class T> class d_Collection : public d_Object { 
public 
  ... 
  friend int operator==( const d_Collection<T> &cL, 
                             const d_Collection<T> &cR ); 
  ... 
  unsigned long cardinality() const; 
  int                 is_empty() const; 
  ... 
  void                  insert_element( const T &elem); 
  void                  remove_element( const T &elem); 
  .... 
  const T & select_element(const char *OQL_predicate) const;
  ... 
};


« poprzedni punkt   następny punkt »