def __init__(self, desc): if type(desc) is not types.IntType: raise CORBA.INTERNAL() if desc not in [ tv_null, tv_void, tv_short, tv_long, tv_ushort, tv_ulong, tv_float, tv_double, tv_boolean, tv_char, tv_octet, tv_any, tv_TypeCode, tv_Principal, tv_longlong, tv_ulonglong, tv_longdouble, tv_wchar ]: raise CORBA.INTERNAL() self._d = desc self._k = CORBA.TCKind._item(desc)
def __init__(self, desc, parent): if type(desc) is not types.TupleType or \ desc[0] != tv_value_box: raise CORBA.INTERNAL() self._d = desc self._k = CORBA.tk_value_box self._p = parent
def __init__(self, desc): if type(desc) is not types.TupleType or \ desc[0] not in [ tv_objref, tv_abstract_interface, tv_local_interface ]: raise CORBA.INTERNAL() self._d = desc self._k = CORBA.TCKind._items[desc[0]]
def __init__(self, desc): if type(desc) is not types.TupleType or \ desc[0] != tv_enum: raise CORBA.INTERNAL() self._d = desc self._k = CORBA.tk_enum
def createTypeCode(d, parent=None): try: r = basicTypeCodes.get(d) if r is not None: return r except TypeError: # Happens if d contains a mutable object pass if type(d) is not types.TupleType: raise CORBA.INTERNAL() k = d[0] if k == tv_string: return TypeCode_string(d) elif k == tv_wstring: return TypeCode_wstring(d) elif k == tv_fixed: return TypeCode_fixed(d) elif k in [tv_objref, tv_abstract_interface, tv_local_interface]: tc = typeCodeMapping.get(d[1]) if tc is None: tc = TypeCode_objref(d) return tc elif k == tv_struct: tc = typeCodeMapping.get(d[2]) if tc is None: tc = TypeCode_struct(d, parent) return tc elif k == tv_union: tc = typeCodeMapping.get(d[2]) if tc is None: tc = TypeCode_union(d, parent) return tc elif k == tv_enum: tc = typeCodeMapping.get(d[1]) if tc is None: tc = TypeCode_enum(d) return tc elif k == tv_sequence: return TypeCode_sequence(d, parent) elif k == tv_array: return TypeCode_array(d, parent) elif k == tv_alias: tc = typeCodeMapping.get(d[1]) if tc is None: tc = TypeCode_alias(d, parent) return tc elif k == tv_except: tc = typeCodeMapping.get(d[2]) if tc is None: tc = TypeCode_except(d, parent) return tc elif k == tv_value: tc = typeCodeMapping.get(d[2]) if tc is None: tc = TypeCode_value(d, parent) return tc elif k == tv_value_box: tc = typeCodeMapping.get(d[2]) if tc is None: tc = TypeCode_value_box(d, parent) return tc elif k == tv__indirect: if type(d[1][0]) == types.StringType: nd = omniORB.findType(d[1][0]) if nd is None: raise CORBA.BAD_TYPECODE( omniORB.BAD_TYPECODE_InvalidIndirection, CORBA.COMPLETED_NO) d[1][0] = nd return createTypeCode(d[1][0], parent) raise CORBA.INTERNAL()
def r_getCompactDescriptor(d, seen, ind): if type(d) is types.TupleType: k = d[0] else: k = d if k == tv_short: r = d elif k == tv_long: r = d elif k == tv_ushort: r = d elif k == tv_ulong: r = d elif k == tv_float: r = d elif k == tv_double: r = d elif k == tv_boolean: r = d elif k == tv_char: r = d elif k == tv_octet: r = d elif k == tv_any: r = d elif k == tv_TypeCode: r = d elif k == tv_Principal: r = d elif k == tv_string: r = d elif k == tv_objref: r = d elif k == tv_longlong: r = d elif k == tv_ulonglong: r = d elif k == tv_longdouble: r = d elif k == tv_struct: c = list(d) c[3] = "" for i in range(4, len(c), 2): c[i] = "" c[i + 1] = r_getCompactDescriptor(d[i + 1], seen, ind) r = tuple(c) seen[d[2]] = r seen[id(d)] = r elif k == tv_union: c = list(d) c[3] = "" c[4] = r_getCompactDescriptor(d[4], seen, ind) m = [] for u in d[6]: m.append((u[0], "", r_getCompactDescriptor(u[2], seen, ind))) c[6] = tuple(m) if d[7] is not None: c[7] = (d[7][0], "", r_getCompactDescriptor(d[7][2], seen, ind)) r = tuple(c) seen[d[2]] = r seen[id(d)] = r elif k == tv_enum: m = [] for e in d[3]: m.append(omniORB.AnonymousEnumItem(e._v)) r = (k, d[1], "", tuple(m)) elif k == tv_sequence: r = (k, r_getCompactDescriptor(d[1], seen, ind), d[2]) elif k == tv_array: r = (k, r_getCompactDescriptor(d[1], seen, ind), d[2]) elif k == tv_alias: r = (k, d[1], "", r_getCompactDescriptor(d[3], seen, ind)) elif k == tv_except: c = list(d) c[3] = "" for i in range(4, len(c), 2): c[i] = "" c[i + 1] = r_getCompactDescriptor(d[i + 1], seen, ind) r = tuple(c) elif k == tv_value: c = list(d) c[3] = "" for i in range(7, len(c), 3): c[i] = "" c[i + 1] = r_getCompactDescriptor(d[i + 1], seen, ind) r = tuple(c) seen[d[2]] = r seen[id(d)] = r elif k == tv_value_box: c = list(d) c[3] = "" c[4] = r_getCompactDescriptor(d[4], seen, ind) r = tuple(c) seen[d[2]] = r seen[id(d)] = r elif k == tv_abstract_interface: r = d elif k == tv_local_interface: r = d elif k == tv__indirect: l = [d[1][0]] ind.append(l) r = (k, l) else: raise CORBA.INTERNAL() return r