def superClasses(softpkg):
     if softpkg.type() == ComponentTypes.RESOURCE:
         name = 'Resource'
         package = 'ossie.resource'
     elif softpkg.type() == ComponentTypes.DEVICE:
         name = 'Device'
         package = 'ossie.device'
         for port in softpkg.providesPorts():
             idl = IDLInterface(port.repid())
             if idl.namespace() == 'FRONTEND':
                 if idl.interface().find('DigitalTuner') != -1 or \
                    idl.interface().find('AnalogTuner') != -1 or \
                    idl.interface().find('FrontendTuner') != -1:
                     name = 'frontend.FrontendTunerDevice'
     elif softpkg.type() == ComponentTypes.LOADABLEDEVICE:
         name = 'LoadableDevice'
         package = 'ossie.device'
     elif softpkg.type() == ComponentTypes.EXECUTABLEDEVICE:
         name = 'ExecutableDevice'
         package = 'ossie.device'
     else:
         raise ValueError, 'Unsupported software component type', softpkg.type()
     classes = [{'name': name, 'package': package}]
     if softpkg.descriptor().supports('IDL:CF/AggregateDevice:1.0'):
         classes.append({'name': 'AggregateDevice', 'package': 'ossie.device'})
     return classes
 def _mapComponent(self, softpkg):
     pycomp = {}
     pycomp['userclass'] = self.userClass(softpkg)
     idl = IDLInterface(softpkg.descriptor().repid().repid)
     pycomp['interface'] = idl.interface()
     pycomp['operations'] = idl.operations()
     pycomp['attributes'] = idl.attributes()
     module = python.idlModule(idl.namespace())
     poamod = python.poaModule(idl.namespace())
     pycomp['imports'] = (module, poamod)
     pycomp['baseclass'] = poamod.split('.')[-1] + '.' + idl.interface()
     
     return pycomp
 def hasAnalogTunerProvidesPorts(self, softpkg):
     for port in softpkg.providesPorts():
         idl = IDLInterface(port.repid())
         if idl.namespace() == 'FRONTEND':
             if idl.interface().find('AnalogTuner') != -1:
                 return True
     return False
    def getImplementedInterfaces(softpkg):
        deviceinfo = set()

        # Ensure that parent interfaces also gets added (so, e.g., a device
        # with a DigitalTuner should also report that it's an AnalogTuner
        # and FrontendTuner)
        inherits = {
            'DigitalScanningTuner':
            ('ScanningTuner', 'DigitalTuner', 'AnalogTuner', 'FrontendTuner'),
            'AnalogScanningTuner':
            ('ScanningTuner', 'AnalogTuner', 'FrontendTuner'),
            'DigitalTuner': ('AnalogTuner', 'FrontendTuner'),
            'AnalogTuner': ('FrontendTuner', )
        }

        for port in softpkg.providesPorts():
            idl = IDLInterface(port.repid())
            # Ignore non-FRONTEND intefaces
            if idl.namespace() != 'FRONTEND':
                continue
            interface = idl.interface()
            deviceinfo.add(interface)
            for parent in inherits.get(interface, []):
                deviceinfo.add(parent)

        return deviceinfo
    def setComponentRepid(self, repid):
        self.scd.get_componentrepid().set_repid(repid)
        self._addInterface(repid)

        supportsinterface = []

        idl = IDLInterface(repid)
        supports = scd.supportsInterface(repid=idl.repid(),
                                         supportsname=idl.interface())
        supportsinterface.append(supports)

        for parent in idl.idl().inherits:
            idl = IDLInterface(parent)
            supports = scd.supportsInterface(repid=idl.repid(),
                                             supportsname=idl.interface())
            supportsinterface.append(supports)

        self.scd.componentfeatures.set_supportsinterface(supportsinterface)
 def _mapComponent(self, softpkg):
     pycomp = {}
     pycomp['userclass'] = self.userClass(softpkg)
     idl = IDLInterface(softpkg.descriptor().repid().repid)
     pycomp['interface'] = idl.interface()
     pycomp['operations'] = idl.operations()
     pycomp['attributes'] = idl.attributes()
     pycomp.update(self.getNamespace(idl))
     
     return pycomp
    def _addInterface(self, repid):
        for inf in self.scd.interfaces.get_interface():
            if inf.repid == repid:
                return
        idl = IDLInterface(repid)
        interface = scd.interface(repid=idl.repid(), name=idl.interface())
        self.scd.interfaces.add_interface(interface)

        for parent in idl.idl().inherits:
            self._addInterface(parent)
            inherits = scd.inheritsInterface(repid=parent)
            interface.add_inheritsinterface(inherits)
 def _mapComponent(self, softpkg):
     cppcomp = {}
     idl = IDLInterface(softpkg.descriptor().repid().repid)
     cppcomp['baseclass'] = self.baseClass(softpkg)
     cppcomp['userclass'] = self.userClass(softpkg)
     cppcomp['superclass'] = self.superClass(softpkg)
     cppcomp['interfacedeps'] = tuple(self.getInterfaceDependencies(softpkg))
     idl = IDLInterface(softpkg.descriptor().repid().repid)
     cppcomp['namespace'] = self.getNamespace(idl)
     cppcomp['interface'] = idl.interface()
     cppcomp['operations'] = self.getOperations(idl)
     cppcomp['header'] = self.getHeader(idl)
     return cppcomp
    def getImplementedInterfaces(softpkg):
        additionalinfo = set()
        inherits = { 'DigitalScanningTuner': ('ScanningTuner', 'DigitalTuner', 'AnalogTuner', 'FrontendTuner'),
                     'AnalogScanningTuner': ('ScanningTuner', 'AnalogTuner', 'FrontendTuner'),
                     'DigitalTuner': ('AnalogTuner', 'FrontendTuner'),
                     'AnalogTuner': ('FrontendTuner',) }

        for port in softpkg.providesPorts():
            idl = IDLInterface(port.repid())
            # Ignore non-FRONTEND intefaces
            if idl.namespace() != 'FRONTEND':
                continue
            interface = idl.interface()
            additionalinfo.add(interface)
            for parent in inherits.get(interface, []):
                additionalinfo.add(parent)

        return additionalinfo
    def getImplementedInterfaces(softpkg):
        deviceinfo = set()

        # Ensure that parent interfaces also gets added (so, e.g., a device
        # with a DigitalTuner should also report that it's an AnalogTuner
        # and FrontendTuner)
        inherits = { 'DigitalTuner': ('AnalogTuner', 'FrontendTuner'),
                     'AnalogTuner': ('FrontendTuner',) }

        for port in softpkg.providesPorts():
            idl = IDLInterface(port.repid())
            # Ignore non-FRONTEND intefaces
            if idl.namespace() != 'FRONTEND':
                continue
            interface = idl.interface()
            deviceinfo.add(interface)
            for parent in inherits.get(interface, []):
                deviceinfo.add(parent)
        
        return deviceinfo
 def _mapComponent(self, softpkg):
     javacomp = {}
     idl = IDLInterface(softpkg.descriptor().repid().repid)
     javacomp['interface'] = idl.interface()
     javacomp['operations'] = self.operations(idl)
     javacomp['attributes'] = self.attributes(idl)
     javacomp.update(self.getNamespace(idl))
    
     javacomp['package'] = self.package
     userclass = softpkg.name()
     baseclass = userclass + '_base'
     javacomp['baseclass'] = {'name': baseclass,
                              'file': baseclass+'.java'}
     javacomp['userclass'] = {'name': userclass,
                              'file': userclass+'.java'}
     javacomp['superclass'] = self.superclass(softpkg)
     javacomp['mainclass'] = java.qualifiedName(userclass, self.package)
     javacomp['jarfile'] = softpkg.name() + '.jar'
     javacomp['interfacedeps'] = list(self.getInterfaceDependencies(softpkg))
     javacomp['interfacejars'] = self.getInterfaceJars(softpkg)
     return javacomp
Exemple #12
0
class PortGenerator(object):
    @classmethod
    def match(cls, port):
        return False

    @classmethod
    def generator(cls, port):
        return cls(port)

    def __init__(self, port):
        self.idl = IDLInterface(port.repid())
        self.namespace = self.idl.namespace()
        self.interface = self.idl.interface()
        if port.isProvides():
            self.direction = 'provides'
        else:
            self.direction = 'uses'

    def get_template(self, template):
        loader = self.loader()
        env = CodegenEnvironment(loader=loader, **template.options())
        env.filters.update(template.filters())
        return env.get_template(template.template)

    def loader(self):
        raise NotImplementedError, self.__class__.__name__+'.loader'

    def hasImplementation(self):
        return self._implementation() is not None
    
    def implementation(self):
        template = self._implementation()
        return self.get_template(template)

    def _implementation(self):
        return None
Exemple #13
0
 def _mapComponent(self, softpkg):
     javacomp = {}
     idl = IDLInterface(softpkg.descriptor().repid().repid)
     javacomp['interface'] = idl.interface()
     javacomp['operations'] = self.operations(idl)
     javacomp['attributes'] = self.attributes(idl)
     javacomp.update(self.getNamespace(idl))
    
     if self.package == '':
         javacomp['package'] = softpkg.basename()+'.java'
     else:
         javacomp['package'] = self.package
     userclass = softpkg.basename()
     baseclass = userclass + '_base'
     javacomp['baseclass'] = {'name': baseclass,
                              'file': baseclass+'.java'}
     javacomp['userclass'] = {'name': userclass,
                              'file': userclass+'.java'}
     javacomp['superclass'] = self.superclass(softpkg)
     javacomp['mainclass'] = java.qualifiedName(userclass, javacomp['package'])
     javacomp['jarfile'] = softpkg.basename() + '.jar'
     javacomp['interfacedeps'] = list(self.getInterfaceDependencies(softpkg))
     javacomp['interfacejars'] = self.getInterfaceJars(softpkg)
     return javacomp
Exemple #14
0
 def match(self, port):
     interface = IDLInterface(port.repid())
     if interface.namespace() != self.NAMESPACE:
         return False
     return interface.interface().startswith('data')
 def match(self, port):
     interface = IDLInterface(port.repid())
     if interface.namespace() != self.NAMESPACE:
         return False
     return interface.interface().startswith('data')
 def hasProvidesPushPacket(self, softpkg):
     for port in softpkg.providesPorts():
         idl = IDLInterface(port.repid())
         if idl.namespace() == 'BULKIO' and idl.interface().startswith('data'):
             return True
     return False