Elosztott rendszerek labor — CORBA
A VIK Wikiből
Ez az oldal a korábbi SCH wikiről lett áthozva.
Ha úgy érzed, hogy bármilyen formázási vagy tartalmi probléma van vele, akkor, kérlek, javíts rajta egy rövid szerkesztéssel!
Ha nem tudod, hogyan indulj el, olvasd el a migrálási útmutatót.
<style>
code.pre { white-space: no-wrap; display: block; line-height: 15px; }
</style>
Előkészületek
- Rizsa: http://avalon.aut.bme.hu/~wizard/corbalab.htm, Ezen a helyen volt linkelve a(z) corbalab.htm nevű fájl ("mirror" link szöveggel) a régi wiki http://wiki-old.sch.bme.hu/bin/view/Infoszak/ElosztottLaborCORBA oldaláról. (Ha szükséged lenne a fájlra, akkor a pontos oldalmegnevezéssel együtt küldd el a wiki sch.bme.hu címre a kérésedet)
- CORBA fordító: http://avalon.aut.bme.hu/~wizard/OOC.zip
Kicsomagolni a =d:\ooc= könyvtárba
IDL interfész
- New project, Windows Console Application (Not using precompiled headers, empty project.)
- Add new item: math4.idl
- Bemásolni a html-ből a kódot
- math4.idl / Properties
- General / Tool: Custom Build Tool
- Custom build step / Command line: d:\ooc\bin\idl.exe Math4.idl (ooc.zip-ből)
- Custom build step / Outputs: Math4.h;Math4.cpp;Math4_skel.h;Math4_skel.cpp
- Az OOC/lib/ alól az =idl432.dll=, =jtc201.dll=, =ob432.dll= fájlokat bemásolni a projekt könyvtárába. (Mehetne path-ba is, de ahhoz nincs jogunk.)
- Fordítás, majd a generált file-okat hozzáadni: Add existing files
Szerver implementáció
- Létrehozni és bemásolni a Math4_impl.h-t, a Math4_impl.cpp-t és a server.cpp-t.
- server.cpp-ben ki kell cserélni 2 sort:
#include <fstream>
using namespace std; - Solution properties
- C/C++ / General / Additional Include Directories: .;d:\ooc\include
- C/C++ / Code Generation / Runtime Library: Multi-threaded DLL (/MD)
- C/C++ / Language / Enable Runtime Type Info: Yes
- Linker / General / Additional Library Directories: d:\ooc\lib
- Linker / Input / Additional Dependencies: ob.lib jtc.lib
Kliens implementáció
- Új projekt a solution-ön belül.
- A szervertől a =math4.h= és =math4.cpp= fájlokat átmásolni a math4client könyvtárába.
- Add existing items...
- Add new item: client.cpp
- =server.cpp= elejét =run()= -ig átmásolni a client-be.
- Az =#include <Math4_impl.h>= -t le kell cserélni =#include <Math4.h>= -ra.
- run() metódus másolása a mérési útmutatóból
- Project properties: ugyanaz, mint a szervernél.
Nullával való osztás
Kliens =run()= függvényébe az összeadás mellé:
cout << "3/0=" << math4->iDiv(3,0) << endl;
Majd elkapjuk a kivételt (még a =CORBA::Exception= előtt tegyük meg):
catch (Math4::MathException& ex) { cout << ex.reason << endl; }