Riferimenti per la classe org.jaebi.midlet.bt.requestProcessing.RequestProcessor

Diagramma delle classi per org.jaebi.midlet.bt.requestProcessing.RequestProcessor

Inheritance graph
[legenda]
Diagramma di collaborazione per org.jaebi.midlet.bt.requestProcessing.RequestProcessor:

Collaboration graph
[legenda]
Lista di tutti i membri.

Descrizione Dettagliata

questa classe incapsula tutte le operazioni per necessarie affinchè una midlet client invii una richiesta alla midlet server e da quest'ultima ne ri- ceva il response.

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:

della richiesta in un opportuno envelop XML (che verrà inviato dalla midlet server al WS di JAEBI) della richiesta nel formato xml alla midlet Server del response relativo alla richiesta da parte della midlet server (che in sostanza forwarda quello che riceve dal WS) ed esecuzione dell'opportuna azione

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

Autore:
Antonio

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


Documentazione delle funzioni membro

String org.jaebi.midlet.bt.requestProcessing.RequestProcessor.getResponse String  endOfResponseMarker  )  throws BtIOException [private]
 

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     }

String org.jaebi.midlet.bt.requestProcessing.RequestProcessor.getResponseContent String  beginMarker,
String  endMarker
throws BtIOException [protected]
 

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:

void org.jaebi.midlet.bt.requestProcessing.RequestProcessor.processRequest ServiceResponseHandler  handler,
DataInputStream  streamFromServer,
DataOutputStream  streamToServer
 

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     }

void org.jaebi.midlet.bt.requestProcessing.RequestProcessor.sendRequest String  toSend  )  throws BtIOException [protected]
 

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     }


Documentazione dei dati membri

ServiceResponseHandler org.jaebi.midlet.bt.requestProcessing.RequestProcessor.handler = null [protected]
 

Definizione alla linea 48 del file RequestProcessor.java.

Referenziato da LoginRequestProcessor.run().

Thread org.jaebi.midlet.bt.requestProcessing.RequestProcessor.processorThread [private]
 

Definizione alla linea 47 del file RequestProcessor.java.

Referenziato da org.jaebi.midlet.bt.requestProcessing.RequestProcessor.processRequest().

DataInputStream org.jaebi.midlet.bt.requestProcessing.RequestProcessor.streamFromServer = null [protected]
 

Definizione alla linea 50 del file RequestProcessor.java.

DataOutputStream org.jaebi.midlet.bt.requestProcessing.RequestProcessor.streamToServer = null [protected]
 

Definizione alla linea 49 del file RequestProcessor.java.


La documentazione per questa classe è stata generata a partire dal seguente file:
Generato il Thu Jun 23 00:03:03 2005 per JAEBI - BlueTooth J2ME Midlet Client da  doxygen 1.4.3