Exemplo n.º 1
0
 def resolveInterfacePath(self, decl_or_type):
     name = builtin_plugin.getJavaBuiltinType(self.target_info,
                                              decl_or_type.pointeeType)
     cname = 'Const' + name[0].upper() + name[1:]
     vname = 'C' + name[0].upper() + name[1:]
     cpath = jpath.JPath(("primitives", cname, 'Ptr'))
     vpath = jpath.JPath(("primitives", vname, 'Ptr'))
     if decl_or_type.pointeeType.isConstQualified:
         name = cname
         klass = jclass.Interface
         self.creator.setNamespace(jclass.Class, vpath)
     else:
         name = vname
         klass = jclass.Class
         self.creator.setNamespace(jclass.Interface,
                                   jpath.JPath((
                                       "primitives",
                                       cname,
                                   )))
         self.creator.setNamespace(jclass.Interface, cpath)
     if decl_or_type.pointeeType.spelling != "void":
         self.creator.getClass(
             bc.LValueReferenceType(
                 bc.BuiltinType(decl_or_type.pointeeType.spelling)))
         self.creator.resolveInterfacePath(
             bc.PointerType(bc.BuiltinType("void")))
         self.creator.getClass(bc.PointerType(bc.BuiltinType("void")))
     self.creator.setNamespace(jclass.Interface,
                               jpath.JPath((
                                   "primitives",
                                   name,
                               )))
     pjp = jpath.JPath(("primitives", name, 'Ptr'))
     self.classes[decl_or_type.pointeeType.spelling] = cpath, vpath
     return klass, pjp
Exemplo n.º 2
0
 def importsSys(self):
     jtype = builtin_plugin.getJavaBuiltinType(self.creator.target_info,
                                               self.arg.type.pointeeType)
     Jtype = jtype[0].upper() + jtype[1:]
     bb = jpath.JPath((
         'java',
         'nio',
         '%sBuffer' % Jtype,
     ), True, ('java', 'nio'), ('%sBuffer' % Jtype, ))
     return [bb, jpath.ByteOrder]
Exemplo n.º 3
0
 def dumpJavaPrivCallPre(self, source):
     jtype = builtin_plugin.getJavaBuiltinType(self.creator.target_info,
                                               self.arg.type.pointeeType)
     bits = builtin_plugin.getJavaBuiltinTypeBits(self.creator.target_info,
                                                  self.arg.type.pointeeType)
     bn = int(math.ceil(bits / 8.0))
     Jtype = jtype[0].upper() + jtype[1:]
     # print jtype, bits
     source << (
         'ByteBuffer _bb_ = ByteBuffer.allocateDirect(%d * %s.length);' %
         (bn, self.getArgName()))
     source << '_bb_.order(ByteOrder.nativeOrder());'
     source << '%sBuffer _tmp_bb = _bb_.as%sBuffer();' % (Jtype, Jtype)
     source << '_tmp_bb.put(%s);' % self.getArgName()
Exemplo n.º 4
0
 def getJavaPubType(self):
     return '%s []' % (builtin_plugin.getJavaBuiltinType(
         self.creator.target_info, self.arg.type.pointeeType), )
Exemplo n.º 5
0
 def __init__(self, creator, arg, func_conv):
     self.prim = builtin_plugin.getJavaBuiltinType(
         creator.target_info, self._getBuiltinType(arg.type))
     self.aprim = self.prim[0].upper() + self.prim[1:]
     super(VectorArgConverter, self).__init__(creator, arg, func_conv)