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 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 getInterfaceNamespaces(self, softpkg):
     # The CF interfaces are already assumed as part of REDHAWK
     seen = set(['CF', 'ExtendedCF', 'ExtendedEvent'])
     for interface in softpkg.descriptor().interfaces():
         namespace = IDLInterface(interface.repid).namespace()
         # Assume that omg.org interfaces are available as part of the ORB.
         if namespace in seen or namespace.startswith('omg.org/Cos'):
             continue
         seen.add(namespace)
         yield namespace
 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 _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 __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 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
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
 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 match(self, port):
     interface = IDLInterface(port.repid())
     if interface.namespace() != self.NAMESPACE:
         return False
     return interface.interface().startswith('data')
Exemple #12
0
 def generator(self, port):
     interface = IDLInterface(port.repid()).interface()
     return FrontendPortGenerator(port)
Exemple #13
0
 def match(self, port):
     return IDLInterface(port.repid()).namespace() == self.NAMESPACE
Exemple #14
0
 def generator(self, port):
     interface = IDLInterface(port.repid()).interface()
     if port.isUses():
         return GenericUsesPortGenerator(port)
     return FrontendPortGenerator(port)
 def match(self, port):
     return IDLInterface(port.repid()).namespace() == self.NAMESPACE and (
         not port.isProvides())
 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