Per richiesta si intende un operazione da eseguire sul back end per conto dell'utente che usa la midlet cliet e che si autentica al sistema JAEBI er le operazioni che esegue questa classe sono sostanzialmente queste:
Nota: è necessario che questa classe implementi Runnable perchè all'interno di una midlet le operazioni bloccanti, quali quelle relative al networking, devono essere eseguite in un thread differente, al fine di evitare deadlock
Definizione alla linea 45 del file RequestProcessor.java.
Membri pubblici | |
void | processRequest (ServiceResponseHandler handler, DataInputStream streamFromServer, DataOutputStream streamToServer) |
lancia in esecuzione il thread | |
Membri protetti | |
void | sendRequest (String toSend) throws BtIOException |
inoltra la richiesta alla midlet server | |
String | getResponseContent (String beginMarker, String endMarker) throws BtIOException |
Attributi protetti | |
ServiceResponseHandler | handler = null |
DataOutputStream | streamToServer = null |
DataInputStream | streamFromServer = null |
Membri privati | |
String | getResponse (String endOfResponseMarker) throws BtIOException |
riceve il response di una richiesta dalla midlet server | |
Attributi privati | |
Thread | processorThread |
|
riceve il response di una richiesta dalla midlet server
Definizione alla linea 73 del file RequestProcessor.java. Referenziato da org.jaebi.midlet.bt.requestProcessing.RequestProcessor.getResponseContent(). 00073 { 00074 //TODO fare anche qui il giochetto dei marker 00075 String received = ""; 00076 try{ 00077 DataInputStream input = this.streamFromServer; 00078 byte buffer[] = new byte[endOfResponseMarker.length()]; 00079 int byteReaded; 00080 String temp; 00081 boolean isEnded = false; 00082 00083 do{ 00084 byteReaded = input.read(buffer); 00085 temp = new String(buffer); 00086 System.out.println("RequestProcessor::sto ascoltando"); 00087 00088 //TODO debug 00089 System.out.println("REquest processor:: " + byteReaded); 00090 00091 received += temp.substring(0, byteReaded); 00092 00093 System.out.println("REquest processor:: received " + received); 00094 00095 /* 00096 * quando è stata ricevuta la stringa che marca la fine del 00097 * response (endOfResponseMarker) non devo fare più alcuna read 00098 */ 00099 if (received.length()> endOfResponseMarker.length() ){ 00100 int startIndex = received.length()- endOfResponseMarker.length(); 00101 00102 //TODO se received contiene l'endMarker ma a dop questo ci sono dei whitespaces l'if di sotto non funziona, cioè, non si rileva la ricezione dell'endmarker 00103 if (received.substring(startIndex, received.length()).equalsIgnoreCase(endOfResponseMarker)) 00104 isEnded = true; 00105 } 00106 } 00107 00108 while( !isEnded); 00109 00110 } catch (IOException e){ 00111 throw new BtIOException(e.getMessage()); 00112 } 00113 00114 //TODO debug 00115 System.out.println("REquest processor:: " + received); 00116 //TODO debug 00117 System.out.println("REquest processor:: stampa!" ); 00118 00119 return received; 00120 00121 }
|
|
Definizione alla linea 123 del file RequestProcessor.java. Riferimenti org.jaebi.midlet.bt.requestProcessing.RequestProcessor.getResponse(). 00123 { 00124 String out = getResponse(endMarker); 00125 00126 out = out.substring(beginMarker.length(),out.length()); 00127 int endIndex = out.length() - endMarker.length(); 00128 out = out.substring(0, endIndex); 00129 return out; 00130 }
Questo è il grafo delle chiamate per questa funzione: ![]() |
|
lancia in esecuzione il thread
Definizione alla linea 136 del file RequestProcessor.java. Riferimenti org.jaebi.midlet.bt.requestProcessing.RequestProcessor.processorThread. Referenziato da ClientMidlet.commandAction(). 00136 { 00137 this.handler = handler; 00138 this.streamFromServer = streamFromServer; 00139 this.streamToServer = streamToServer; 00140 this.processorThread = new Thread(this); 00141 processorThread.start(); 00142 }
|
|
inoltra la richiesta alla midlet server
Definizione alla linea 58 del file RequestProcessor.java. 00058 { 00059 //TODO debug 00060 System.out.println("RequestProcessor::sendRequest toSend = " + toSend); 00061 00062 try{ 00063 OutputStream out = this.streamToServer; 00064 out.write(toSend.getBytes()); 00065 } catch (IOException e){ 00066 throw new BtIOException(e.getMessage()); 00067 } 00068 }
|
|
Definizione alla linea 48 del file RequestProcessor.java. Referenziato da LoginRequestProcessor.run(). |
|
Definizione alla linea 47 del file RequestProcessor.java. Referenziato da org.jaebi.midlet.bt.requestProcessing.RequestProcessor.processRequest(). |
|
Definizione alla linea 50 del file RequestProcessor.java. |
|
Definizione alla linea 49 del file RequestProcessor.java. |