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 »

6. C++ ODL

ODL zapisany w skladni C++
extern const char _profesorowie[ ]; 
extern const char _opiekun[ ]; 
class Profesor : public d_Object { 
public: 
//własności: 
   d_UShort            wiek; 
   d_UShort            nr_ident; 
   d_String            nr_pokoju; 
   d_String            nazwisko;
   d_Rel_Ref<Wydział, _profesorowie> wydz;
   d_Rel_Set<Student, _opiekun>      doradza;
//operacje: 
   void                promuje(); 
   void                ustala_Kurs( Kurs & );
private:                 ... 
}; 

const char _profesorowie [ ]="profesorowie";
const char _opiekun[ ] = "opiekun";


 
Nazwa, zapisana jako ciąg znaków, ustalająca powiązanie odwrotne. Przesunięcie nazwy do pierwszej kategorii obywatelstwa, z fatalnymi skutkami dla mocnego typowania.

(1kB)
(1kB)
d_Rel_Ref -pojedynczy wskaźnik
d_Rel_Set-zbiór wskaźników
d_Rel_List-lista wskaźników

7. Jednokierunkowe związki

Możliwe jest zadeklarowanie związku “zdegenerowanego”, prowadzącego tylko w jednym kierunku. Związek taki niczym nie różni się od wskaźnika.
K.S. Aplikacja jest odpowiedzialna za spójne traktowanie takiego związku, tj. nie przewiduje się środków obrony przed zwisającymi wskaźnikami.

struct Odpowiedzialny { 
        d_String                dział; 
        d_Ref<Pracownik>        p; 
        d_Date                        od_kiedy; 
};
Wskaźnik/referencja do obiektu Pracownik
(1kB)
class Zamówienie { 
public: 
        d_Set<d_Ref<Klient>>        kto; 
        d_String                co; 
        Odpowiedzialny                kontakt; 
};
Zbiór wskaźnikow/referencji do obiektów Klient
(1kB)


« poprzedni punkt   następny punkt »