2 #include <CORBA-SMALL.h>
3 #ifdef HAVE_ANSI_CPLUSPLUS_HEADERS
13 class calc_impl : virtual public Calc2::calc_skel {
16 void copy(complex& dst, const complex& src) {
17 dst.r= src.r; dst.i= src.i; }
20 void setValue(const complex& z) {
23 complex add(const complex& z) {
28 void mult(const complex& z, complex& result) {
31 tmp.r= value.r*z.r - value.i*z.i;
32 tmp.i= value.r*z.i + value.i*z.r;
36 void div(complex& z) {
38 double d= z.r*z.r + z.i*z.i;
40 tmp.r= (value.r*z.r + value.i*z.i) / d;
41 tmp.i= (value.i*z.r - value.r*z.i) / d;
48 int main(int argc, char* argv[]) {
54 orb= CORBA::ORB_init(argc, argv, "mico-local-orb");
55 boa= orb->BOA_init(argc, argv, "mico-local-boa");
57 obj_impl= new calc_impl;
59 cout << "Objekt-Referenz dieser 'calc'-Implementation:\n";
60 cout << "\t" << orb->object_to_string(obj_impl) << "\n";
63 // Warten auf Klienten
64 boa->impl_is_ready (CORBA::ImplementationDef::_nil());