1
/********************************************************************************
2
* Copyright (c) 2008 Motorola Inc. All rights reserved.
3
* This program and the accompanying materials are made available under the terms
4
* of the Eclipse Public License v1.0 which accompanies this distribution, and is
5
* available at http://www.eclipse.org/legal/epl-v10.html
8
* Otavio Ferranti (Motorola)
11
* Otavio Ferranti - Eldorado Research Institute - Bug 255255 [tml][proctools] Add extension points
12
********************************************************************************/
14
package org.eclipse.linuxtools.sequoyah.device.tools.memorymap;
16
import java.io.IOException;
17
import java.util.List;
19
import org.eclipse.linuxtools.sequoyah.device.network.IConnectionProvider;
20
import org.eclipse.linuxtools.sequoyah.device.network.IConstants.EventCode;
21
import org.eclipse.linuxtools.sequoyah.device.network.IConstants.OperationCode;
22
import org.eclipse.linuxtools.sequoyah.device.tools.AbstractNotifier;
23
import org.eclipse.linuxtools.sequoyah.device.tools.IListener;
24
import org.eclipse.linuxtools.sequoyah.device.tools.INotifier;
25
import org.eclipse.linuxtools.sequoyah.device.tools.ITool;
26
import org.eclipse.linuxtools.sequoyah.device.utilities.Extensions;
27
import org.eclipse.linuxtools.sequoyah.device.utilities.ProtocolDescriptor;
30
* @author Otavio Ferranti
32
public class MemoryMapTool extends AbstractNotifier implements IListener, ITool {
34
private IConnectionProvider connectionProvider = null;
35
private MemoryMapProcessor processor = null;
37
private String[] requiredCapabilities = {"GET_FILE"}; //$NON-NLS-1$
40
* @see org.eclipse.linuxtools.sequoyah.device.tools.memorymap.iTool#createInstance(java.lang.String, int, java.lang.String)
42
public void connect (String host,
44
ProtocolDescriptor protocol) {
46
Class<IConnectionProvider> connectionProviderClass =
47
protocol.getConnectionProviderClass();
50
Object aux = connectionProviderClass.newInstance();
51
connectionProvider = (IConnectionProvider) aux;
52
} catch (InstantiationException ie) {
53
} catch (IllegalAccessException iae) {
54
} catch (ClassCastException cce) {
57
connectionProvider.addListener(this);
59
connectionProvider.connect(host, port);
60
} catch (IOException ie) { }
61
processor = new MemoryMapProcessor(connectionProvider);
63
processor.addListener(this);
67
* @see org.eclipse.linuxtools.sequoyah.device.tools.ITool#closeConnection()
69
public void disconnect() {
70
if (null != connectionProvider) {
72
connectionProvider.disconnect();
73
} catch (IOException ie) {
75
connectionProvider = null;
80
* @see org.eclipse.linuxtools.sequoyah.device.tools.memorymap.iTool#login(java.lang.String, java.lang.String)
82
public void login (String user, String password) {
84
connectionProvider.login(user, password);
85
} catch (IOException ie) {
90
public List<ProtocolDescriptor> getProtocolsDescriptors() {
91
List <ProtocolDescriptor> pdList = Extensions.findProcotols(requiredCapabilities);
96
* @see org.eclipse.linuxtools.sequoyah.device.tools.IListener#notify(org.eclipse.linuxtools.sequoyah.device.tools.INotifier, org.eclipse.linuxtools.sequoyah.device.network.IConstants.EventCode, java.lang.Object)
98
public void notify(INotifier notifier, EventCode event, Object result) {
100
if (notifier == connectionProvider) {
102
case EVT_PROVIDER_CONNECT_FINISHED:
103
if (OperationCode.SUCCESS == result) {
104
processor.gatherData();
106
this.notifyListeners(
107
EventCode.EVT_TOOL_CONNECT_FINISHED,
110
case EVT_PROVIDER_CONNECT_ERROR:
112
case EVT_PROVIDER_LOGIN_FINISHED:
113
if (OperationCode.SUCCESS == result) {
114
processor.gatherData();
116
this.notifyListeners(
117
EventCode.EVT_TOOL_LOGIN_FINISHED,
120
case EVT_PROVIDER_SENDCOMMAND_FINISHED:
122
case EVT_PROVIDER_SENDCOMMAND_ERROR:
124
case EVT_PROVIDER_SENDDATA_FINISHED:
126
case EVT_PROVIDER_SENDDATA_ERROR:
128
case EVT_PROVIDER_DISCONNECT_FINISHED:
129
this.notifyListeners(
130
EventCode.EVT_TOOL_DISCONNECT_FINISHED,
135
if (notifier == processor) {
137
case EVT_PROCESSOR_GATHERDATA_FINISHED:
138
notifyListeners(EventCode.EVT_TOOL_REFRESH_VIEW,
141
case EVT_PROCESSOR_GATHERDATA_ERROR:
145
} catch (IOException ie) {
152
public void refresh() {
154
if (null != processor) {
155
processor.gatherData();
157
} catch (IOException ie) {
163
* @see org.eclipse.linuxtools.sequoyah.device.tools.ITool#getRefreshDelay()
165
public int getRefreshDelay() {
166
// TODO Auto-generated method stub
171
* @see org.eclipse.linuxtools.sequoyah.device.tools.ITool#setRefreshDelay(int)
173
public void setRefreshDelay(int delay) {
174
// TODO Auto-generated method stub
177
public void start() {
178
// TODO Auto-generated method stub
182
// TODO Auto-generated method stub