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

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.