[omniORB] Python mapping for IDL typedef and arrar

ondrej@frcatel.fri.utc.sk ondrej@frcatel.fri.utc.sk
Tue Mar 11 08:47:02 2003


> You get the error because IPAddress is defined with typedef.

  omniORBPy does not support typedefs (in connection with arrays) ?? why ?

>
> You can write in the IDL:
>         typedef sequence<long,4> IPAddress;
> and use in python:
>         ip=[192,168,123,1]
>         print ip[0]
>
> or as a second choice:
> IDL:
>         struct IPAddress {
>             long  _1;
>             long  _2;
>             long  _3;
>             long  _4;
>           };
> python:
>         ip=IPAddress(192,168,123,1)
>         print ip._1
>
> I hope I missed nothing :-)
>
> Adam

Thank you for the workarounds. Does anybody know, why I cannot construct
object of that type ?

               Ondrej
>
> -----Original Message-----
> From: omniorb-list-admin@omniorb-support.com
> [mailto:omniorb-list-admin@omniorb-support.com]On Behalf Of
> ondrej@frcatel.fri.utc.sk
> Sent: Monday, 2003 March 10. 3:03 PM
> To: omniorb-list@omniorb-support.com
> Subject: [omniORB] Python mapping for IDL struct
>
>
> Hi everybody,
>
>  I am writing a small content management system and at this moment I am
> developing a session manager. I have an IDL like
>
> module Open1to1 {
>
>   typedef long IPAddress[4];
>
>  interface SessionManager {
>         string enterSession(in long time,in IPAddress ip);
>  };
> };
>
> I would like to write a Python client to server implementing this
> interface (SessionManager).
>
> I do standard stuff in startup (proved to work). The issue is, that when I
> try to create a variable to hold input data for enterSession() call, I get
> error.
>
> ip = Open1to1.IPAddress()
>
> Traceback (most recent call last):
>   File "./create_session.py", line 34, in ?
>     ip = Open1to1.IPAddress();
>   File "./session_manager_idl.py", line 49, in __init__
>     raise RuntimeError("Cannot construct objects of this type.")
> RuntimeError: Cannot construct objects of this type.
>
> Why am I receiving that error message ?
>
>                                 Ondrej
>
> _______________________________________________
> omniORB-list mailing list
> omniORB-list@omniorb-support.com
> http://www.omniorb-support.com/mailman/listinfo/omniorb-list
>
> _______________________________________________
> omniORB-list mailing list
> omniORB-list@omniorb-support.com
> http://www.omniorb-support.com/mailman/listinfo/omniorb-list
>