]> SALOME platform Git repositories - modules/yacs.git/blob - src/runtime/CORBACppConv.cxx
Salome HOME
copy tag mergefrom_BR_V0_1_CC_Salome_04oct07
[modules/yacs.git] / src / runtime / CORBACppConv.cxx
1
2 #include "TypeConversions.hxx"
3 #include "CORBACppConv.hxx"
4
5 #include <iostream>
6
7 //#define _DEVDEBUG_
8 #include "YacsTrace.hxx"
9
10 using namespace std;
11
12 namespace YACS
13 {
14   namespace ENGINE
15   {
16     Any * convertCorbaCpp(const TypeCode *t, CORBA::Any *A)
17     {
18       return convertCorbaNeutral(t, A);
19     }
20
21     CorbaCpp::CorbaCpp(InputPort* p)
22       : ProxyPort(p), DataPort(p->getName(), p->getNode(), p->edGetType()), Port(p->getNode())
23     {
24     }
25
26     //!Convert a CORBA::Any that is convertible to a YACS::ENGINE::Any * and send it to proxy port
27     /*!
28      *   \param data : CORBA::Any object as a void * pointer
29      */
30
31     void CorbaCpp::put(const void *data) throw(ConversionException)
32     {
33       put((CORBA::Any *)data);
34     }
35
36     //!Convert a CORBA::Any that is convertible to a YACS::ENGINE::Any * and send it to proxy port
37     /*!
38      *   \param data : CORBA::Any object
39      */
40     void CorbaCpp::put(CORBA::Any *data) throw(ConversionException)
41     {
42       DEBTRACE("CorbaCpp::put");
43       YACS::ENGINE::Any *ob;
44       ob= convertCorbaCpp(edGetType(),data);
45       DEBTRACE("refcnt: " << ob->getRefCnt());
46       DEBTRACE(_port->getName());
47       _port->put(ob);
48       // ob has been created in convertCorbaNeutral. _port has normally called incrRef
49       ob->decrRef();
50       DEBTRACE("after put refcnt: " << ob->getRefCnt())
51     }
52
53     int isAdaptableCppCorba(const TypeCode *t1,const TypeCode *t2)
54     {
55       return isAdaptableNeutralCorba(t1, t2);
56     }
57   }
58 }
59