Elosztott rendszerek labor — CORBA

A VIK Wikiből
A lap korábbi változatát látod, amilyen (vitalap) 2012. október 21., 20:30-kor történt szerkesztése után volt. (Új oldal, tartalma: „{{GlobalTemplate|Infoszak|ElosztottLaborCORBA}} <style> code.pre { white-space: no-wrap; display: block; line-height: 15px; } </style> ==Előkészületek== * Rizsa…”)
(eltér) ← Régebbi változat | Aktuális változat (eltér) | Újabb változat→ (eltér)
Ugrás a navigációhoz Ugrás a kereséshez

Ez az oldal a korábbi SCH wiki-ről lett áthozva. Az eredeti változata itt érhető el.

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

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;
}


-- Peti - 2006.03.31. -- palacsint - 2007.04.06.