Package ptolemy.actor

Examples of ptolemy.actor.CompositeActor


     *  the weighted graph.
     *  @param args The name of the MoML file.
     */
    public static void main(String[] args) {
        TestGraphReader tester = new TestGraphReader();
        CompositeActor toplevel = tester._readGraph(args);
        GraphReader graphReader = new GraphReader();
        DirectedGraph graph = (DirectedGraph) (graphReader.convert(toplevel));
        tester._printGraph(graph);
    }
View Full Code Here


        //parser.setErrorHandler(new StreamErrorHandler());
        // We use parse(URL, URL) here instead of parseFile(String)
        // because parseFile() works best on relative pathnames and
        // has problems finding resources like files specified in
        // parameters if the xml file was specified as an absolute path.
        CompositeActor toplevel = null;

        // First, we gc and then print the memory stats
        // BTW to get more info about gc,
        // use java -verbose:gc -Xloggc:filename . . .
        System.gc();
        Thread.sleep(1000);

        Runtime runtime = Runtime.getRuntime();

        try {
            URL url = new URL(null, xmlFilename);
            toplevel = (CompositeActor) parser.parse(url, url.openStream());
        } catch (Exception ex) {
            File f = new File(xmlFilename);
            URL url = f.toURI().toURL();
            System.err.println("Warning: Parsing '" + xmlFilename
                    + "' failed: ");
            ex.printStackTrace();
            System.err.println(" Trying '" + url + "'");

            toplevel = (CompositeActor) parser.parse(null, url);
        }

        // FIXME: nearly duplicate code in kernel/KernelMain.java
        SDFDirector director = (SDFDirector) toplevel.getDirector();

        if (director != null) {
            Parameter iterations = (Parameter) director
                    .getAttribute("iterations");
            Parameter copernicus_iterations = (Parameter) director
                    .getAttribute("copernicus_iterations");

            // Set to be a large number of iterations, unless
            // copernicus_iterations is set.
            if (copernicus_iterations != null) {
                iterations.setToken(copernicus_iterations.getToken());
            } else {
                iterations.setToken(new IntToken(100000));
            }

            System.out.println("TestApplication: Setting Iterations to "
                    + iterations.getToken());
        }

        Manager manager = new Manager(toplevel.workspace(), "TestApplication");
        toplevel.setManager(manager);
        toplevel.addChangeListener(this);

        String modelName = toplevel.getName();

        long startTime = System.currentTimeMillis();
        long totalMemory1 = runtime.totalMemory() / 1024;
        long freeMemory1 = runtime.freeMemory() / 1024;
        System.out.println("Spent " + (startTime - _parseStartTime)
View Full Code Here

     *  new, blank composite actor.
     *  @return False if the user cancels the clear.
     */
    protected boolean _clear() {
        if (super._clear()) {
            setModel(new CompositeActor());
            return true;
        } else {
            return false;
        }
    }
View Full Code Here

            // If necessary, create a manager.
            Actor container = ((Actor) getContainer());
            Manager manager = container.getManager();

            if (manager == null) {
                CompositeActor toplevel = (CompositeActor) ((NamedObj) container)
                        .toplevel();
                manager = new Manager(toplevel.workspace(), "Manager");
                toplevel.setManager(manager);
            }

            try {
                manager.preinitializeAndResolveTypes();
                returnValue = _generateCode(code);
View Full Code Here

                } catch (Exception ex) {
                    throw new Exception("Could not open \"" + args[i] + "\"",
                            ex);
                }

                CompositeActor toplevel = null;

                try {
                    try {
                        // Reset the parser and reload so that if
                        // we run the model and then generate code,
                        // we get the same results when generating code.
                        // If we don't do this, then the nightly tests
                        // fail because the results don't match.
                        parser.reset();
                        MoMLParser.purgeModelRecord(modelURL);
                        toplevel = (CompositeActor) parser
                                .parse(null, modelURL);
                    } catch (Exception ex) {
                        throw new Exception("Failed to parse \"" + args[i]
                                + "\"", ex);
                    }

                    // Get all instances of this class contained in the model
                    List codeGenerators = toplevel
                            .attributeList(CodeGenerator.class);

                    if (codeGenerators.size() == 0) {
                        // Add a codeGenerator
                        // FIXME: This introduces a dependency to codegen.c
                        // We should fix this by having a way to choose languages.
//                        codeGenerator = new CCodeGenerator(toplevel,
//                                "CodeGenerator_AutoAdded");
                        // metroii
                        codeGenerator = new SystemCCodeGenerator(toplevel,
                        "CodeGenerator_AutoAdded");
                    } else {
                        // Get the last CodeGenerator in the list, maybe
                        // it was added last?
                        codeGenerator = (CodeGenerator) codeGenerators
                                .get(codeGenerators.size() - 1);
                    }

                    codeGenerator._updateParameters(toplevel);
                    codeGenerator.generateJNI.setExpression("false");

                    try {
                        codeGenerator.generateCode();
                    } catch (KernelException ex) {
                        throw new Exception("Failed to generate code for \""
                                + args[i] + "\"", ex);
                    }
                } finally {
                    // Destroy the top level so that we avoid
                    // problems with running the model after generating code
                    if (toplevel != null) {
                        toplevel.setContainer(null);
                    }
                }
            }
            if (codeGenerator != null) {
                return codeGenerator.getExecuteCommands()
View Full Code Here

    }

    ///////////////////////////////////////////////////////////////////
    ////                         public methods                    ////
    public TestUnboxingMain() {
        _toplevel = new CompositeActor();
    }
View Full Code Here

        //parser.setErrorHandler(new StreamErrorHandler());
        // We use parse(URL, URL) here instead of parseFile(String)
        // because parseFile() works best on relative pathnames and
        // has problems finding resources like files specified in
        // parameters if the xml file was specified as an absolute path.
        CompositeActor toplevel = (CompositeActor) parser.parse(null, new File(
                xmlFileName).toURI().toURL());

        _manager = new Manager(toplevel.workspace(), "MoMLSimpleApplication");
        toplevel.setManager(_manager);
        toplevel.addChangeListener(this);
        _manager.addExecutionListener(this);
        _manager.execute();

        // PtExecuteApplication uses _activeCount to determine when
        // the models are done.  We can't do that here because
View Full Code Here

        while (models.hasNext()) {
            NamedObj model = (NamedObj) models.next();

            if (model instanceof CompositeActor) {
                CompositeActor actor = (CompositeActor) model;

                // Create a manager if necessary.
                Manager manager = actor.getManager();

                if (manager == null) {
                    manager = new Manager(actor.workspace(), "manager");
                    actor.setManager(manager);
                }

                manager.addExecutionListener(this);
                _activeCount++;
View Full Code Here

    public String generatePreinitializeCode() throws IllegalActionException {
        StringBuffer code = new StringBuffer();
        code.append(super.generatePreinitializeCode());

        ptolemy.domains.fsm.kernel.MultirateFSMDirector director = (ptolemy.domains.fsm.kernel.MultirateFSMDirector) getComponent();
        CompositeActor container = (CompositeActor) director.getContainer();
        ptolemy.domains.fsm.kernel.FSMActor controller = director
                .getController();
        ptolemy.codegen.c.actor.TypedCompositeActor containerHelper = (ptolemy.codegen.c.actor.TypedCompositeActor) _getHelper(container);
        code.append(containerHelper.processCode("static int "
                + "$actorSymbol(currentConfiguration);" + _eol));
View Full Code Here

    public void generateTransferInputsCode(IOPort inputPort, StringBuffer code)
            throws IllegalActionException {
        code.append(_codeGenerator.comment(1, "MultirateFSMDirector: "
                + "Transfer tokens to the inside."));

        CompositeActor container = (CompositeActor) getComponent()
                .getContainer();

        ptolemy.codegen.c.actor.TypedCompositeActor containerHelper = (ptolemy.codegen.c.actor.TypedCompositeActor) _getHelper(container);

        ptolemy.domains.fsm.kernel.MultirateFSMDirector director = (ptolemy.domains.fsm.kernel.MultirateFSMDirector) getComponent();

        ptolemy.domains.fsm.kernel.FSMActor controller = director
                .getController();

        // Find the port number corresponding to the given input port.
        // Ports are numbered in the order as in the list returned by
        // portList().
        Iterator containerPorts = container.portList().iterator();
        int portNumber = 0;
        while (containerPorts.hasNext()) {
            if (containerPorts.next() == inputPort) {
                break;
            }
View Full Code Here

TOP

Related Classes of ptolemy.actor.CompositeActor

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.