Search in sources :

Example 1 with SessionManager

use of org.eclipse.linuxtools.internal.oprofile.core.opxml.sessions.SessionManager in project linuxtools by eclipse.

the class OpxmlRunner method run.

/**
 * Runs opxml with the given arguments.
 *
 * @param args
 *            the arguments to pass to opxml
 * @param callData
 *            any callData to pass to the processor
 * @return boolean indicating the success/failure of opxml
 */
public boolean run(String[] args, Object callData) {
    XMLReader reader = null;
    OprofileSAXHandler handler = OprofileSAXHandler.getInstance(callData);
    // Create XMLReader
    SAXParserFactory factory = SAXParserFactory.newInstance();
    try {
        reader = factory.newSAXParser().getXMLReader();
    } catch (Exception e) {
        e.printStackTrace();
        return false;
    }
    // Set content/error handlers
    reader.setContentHandler(handler);
    reader.setErrorHandler(handler);
    // Check for timer support
    InfoAdapter.checkTimerSupport();
    // Run opxml
    try {
        File file = constructFile(args);
        // handle the opxml_session file
        if (args[0].equals(SessionManager.SESSIONS)) {
            SessionManager sessManNew = new SessionManager(SessionManager.SESSION_LOCATION);
            populateWithCurrentSession(sessManNew);
            sessManNew.write();
            FileReader fr = new FileReader(file);
            reader.parse(new InputSource(fr));
        // file has not been saved
        } else if (!file.exists()) {
            AbstractDataAdapter aea;
            if (args[0].equals(CheckEventAdapter.CHECK_EVENTS)) {
                aea = new CheckEventAdapter(args[1], args[2], args[3]);
                aea.process();
                BufferedReader bi = new BufferedReader(new InputStreamReader(aea.getInputStream()));
                reader.parse(new InputSource(bi));
            } else if (args[0].equals(InfoAdapter.INFO)) {
                aea = new InfoAdapter();
                aea.process();
                BufferedReader bi = new BufferedReader(new InputStreamReader(aea.getInputStream()));
                reader.parse(new InputSource(bi));
            } else if (args[0].equals(ModelDataAdapter.MODEL_DATA)) {
                // has not been generated
                if (!handleModelData(args)) {
                    return false;
                }
                FileReader fr = new FileReader(file);
                reader.parse(new InputSource(fr));
            } else {
                // $NON-NLS-1$
                throw new RuntimeException("Unrecognized argument encountered");
            }
        } else {
            // always regenerate the 'current' session file
            if (args.length == 3 && args[0].equals(SessionManager.MODEL_DATA) && args[2].equals(SessionManager.CURRENT)) {
                if (!handleModelData(args)) {
                    return false;
                }
            }
            FileReader fr = new FileReader(file);
            reader.parse(new InputSource(fr));
        }
        return true;
    } catch (SAXException e) {
        e.printStackTrace();
        // $NON-NLS-1$
        OprofileCorePlugin.showErrorDialog("opxmlSAXParseException", null);
    } catch (IOException e) {
        e.printStackTrace();
        // $NON-NLS-1$
        OprofileCorePlugin.showErrorDialog("opxmlParse", null);
    }
    return false;
}
Also used : InputSource(org.xml.sax.InputSource) InputStreamReader(java.io.InputStreamReader) SessionManager(org.eclipse.linuxtools.internal.oprofile.core.opxml.sessions.SessionManager) OprofileSAXHandler(org.eclipse.linuxtools.internal.oprofile.core.opxml.OprofileSAXHandler) IOException(java.io.IOException) CoreException(org.eclipse.core.runtime.CoreException) IOException(java.io.IOException) ParserConfigurationException(javax.xml.parsers.ParserConfigurationException) SAXException(org.xml.sax.SAXException) SAXException(org.xml.sax.SAXException) InfoAdapter(org.eclipse.linuxtools.internal.oprofile.core.opxml.info.InfoAdapter) CheckEventAdapter(org.eclipse.linuxtools.internal.oprofile.core.opxml.checkevent.CheckEventAdapter) BufferedReader(java.io.BufferedReader) FileReader(java.io.FileReader) AbstractDataAdapter(org.eclipse.linuxtools.internal.oprofile.core.opxml.AbstractDataAdapter) File(java.io.File) XMLReader(org.xml.sax.XMLReader) SAXParserFactory(javax.xml.parsers.SAXParserFactory)

Aggregations

BufferedReader (java.io.BufferedReader)1 File (java.io.File)1 FileReader (java.io.FileReader)1 IOException (java.io.IOException)1 InputStreamReader (java.io.InputStreamReader)1 ParserConfigurationException (javax.xml.parsers.ParserConfigurationException)1 SAXParserFactory (javax.xml.parsers.SAXParserFactory)1 CoreException (org.eclipse.core.runtime.CoreException)1 AbstractDataAdapter (org.eclipse.linuxtools.internal.oprofile.core.opxml.AbstractDataAdapter)1 OprofileSAXHandler (org.eclipse.linuxtools.internal.oprofile.core.opxml.OprofileSAXHandler)1 CheckEventAdapter (org.eclipse.linuxtools.internal.oprofile.core.opxml.checkevent.CheckEventAdapter)1 InfoAdapter (org.eclipse.linuxtools.internal.oprofile.core.opxml.info.InfoAdapter)1 SessionManager (org.eclipse.linuxtools.internal.oprofile.core.opxml.sessions.SessionManager)1 InputSource (org.xml.sax.InputSource)1 SAXException (org.xml.sax.SAXException)1 XMLReader (org.xml.sax.XMLReader)1