From 9010fe3f2374b86e5c888b9b6cd22c03b05b22da Mon Sep 17 00:00:00 2001 From: Nabzzz Date: Fri, 11 Dec 2020 19:28:40 +0100 Subject: [PATCH] Phase de debug sur la synchro de l'historique --- Implementation/src/ChatApp.class | Bin 4783 -> 5520 bytes Implementation/src/ChatApp.java | 32 ++++++++++++++++++++--- Implementation/src/MessageHorodate.class | Bin 3249 -> 3227 bytes Implementation/src/MessageHorodate.java | 22 +++++++++++----- Implementation/src/RunnerEcouteTCP.class | Bin 380 -> 380 bytes Implementation/src/RunnerEcouteUDP.class | Bin 380 -> 380 bytes Implementation/src/RunnerTCPEcoute.class | Bin 4093 -> 4306 bytes Implementation/src/RunnerTCPEnvoi.class | Bin 2384 -> 2666 bytes Implementation/src/TCPEchange.class | Bin 2875 -> 2857 bytes Implementation/src/TCPEchange.java | 24 ++++++++++++++--- 10 files changed, 64 insertions(+), 14 deletions(-) diff --git a/Implementation/src/ChatApp.class b/Implementation/src/ChatApp.class index 36521f85681903ca03e1570ae3613e32ab4f4c1d..ecac7fc4fc20a5dddccf558b8a08a997750b5c42 100644 GIT binary patch literal 5520 zcmb7I3wRt=75;Cs$!s>0q}e7ZZK2&lDVxoU2BpxHLYoIoNzy{nmb55Lcc;m;o84t* zHna*BkWYCDJ^%p)ABgw>p-4Arg9xY~4-w=kiUNZ2srY^&2>y3wHkl2J-zTM$>78@W zJ?B6FdE7kw_Q87q9532JC_$-$fQmAd3(VQ6jcaX5Ej7}%Vf#)!ZVQyJGE#=UTA(!A zxVZvBR453ksDvt@bdGBFnoLGu?xu%2-BlQP+(J2U(k3AlrdL>Uz z#c2u#RSaQMLAnj@v21;erlzIW_3myX-L{cbw5dSX#yY~x*)1wg$FRV>F>ROLnNGzu zdy8R@^3Affl+E-haML^5@20mD!Zw_t-~%c?h%=eM4*G=$l8703d@@Cg{NUxaZkAwZ zDz+m|QWE4YLghh5@R-W^xH~kGUrD@e&{gcf2y?+vKTCN&q>ge!#ZF1L8mU~jY$K)F znqlfvOH!IXB27rCNJ}Y6xxsYSjPrXh&Q@W9fGAuY+LNIwbV%t1I9J7alHox+?IIC|z+M@c^Jfv(1M1yeC>oG@T&Uus zG8)z0sqwV2)=X=OxMta93_SlUeJzBK<6;GusJIlD74T4DoOle{T71`#sYw*;@o5#G!BuVq z+;rZoC5;5ptj`D6(Y-dEPU>2U@x2D0RdB6}>u`O(RQV-XvA4UjRFrk2vNed$3oPtU zCyX5iDNVZ~8K-tcOg(E^h8||4+AHhm7gT%^Ut+mnRM+^rhAc5f`bHIQQt=hs%u~l4 z?Yik!)}x9Lx=5UyfZw9xYcebqR=%VK@eP5sY=3M)W9&S6Yqhw9Rd0@@(%Er6nbadm z7GXV-(5;BffqVyyI1SHQDLdh zMR1zkxmMu2vLfCqaM=H-h%$NZ$M+O`U&RmbKmj+r2FskvXr`s}pR=k$zT_}}@5c{S zJcNgt+2fKy8+HgZFq3`J^VB(A?onylj|8Gc94WFzTKQu+vin9yzb1^mBTQ-Fm{!!Hp!hK;yJQ@3nJKH^+^*&bj1iX4h$12G{J4v;6Cv zZbEnp&q~9eBXOgB-kinyQ;FyCGX+0a@dAD!uym$r7BS8{fFG-G8@D!JX3V!A58oe8Q1?6R2so>YMoEqw+Q?KG#ua?cd zIEdfTuzt;Co`mo^{-EHGD*l8&7t}R3?iAF|&T2`bUC@Z~y@K`QuaxOZbK1yCd;hND zANZ$R`{kq}5b=ASXH(zI6hk*x;0+c3mTrdgskr>;gl?t`&ZR-TC2;r1dUYxcMIAb7gf08$f4T7U`NkBc%^y$F}R{kUNxfGTb>MONpo-1$l6F zfkeAp@JeTXo~v?t1P$?YhNh#>2vsKZX=DVJ=exxJWBZt95S)hSws-r2d};_b$E7jY_98p!KlWr_DVA*ZMi=3A#$xX{kg~x0d#$)4Q@6 z|Ad!9?AM;uGSYz{xFsVbf+ETe(>247kRaZ@vh;N(HOta1MKlQ<`5w*| zqNIqHe0BCCUjQhJf(t2@uqu>rhzjt@J15^t>QMk zHR~Ldb1!gWYyu({*bgN(g{t8R)a=I`F))d`0WK^UZfb6sz@huGICdB2#Bw+yhoktR ziIOe*(YlW+ged2887lZ}q|!xvi=ht9Xg~|+%T`3uhGS^nY8tpiC?eA_oC7#-YJft$U}x6=dZi6u8TA3%2r?!}6MDfA9YJLTW- zDS-*}uMFIYjZFu!85|?F@_l|FhqH1>c(0>5?DAg6W?nNn*ez1>9I3y>HLhj0aWRBw zLKmvhO^|!&>&ZAC>$uX34Oow@=)+m)=j1*>vqLzOp^-+vLC+=pd!(5;e3<5a1n6&` z#07P@Xc8a01;GIxdc`C@mBZE7p@$ZRKS%p#Hr(KC;L45eY6mg=vV7&wugVQycQ@Ra z!#8h1ja>N_R|1o`V;|WN=C2COdg@Je#rJ{inC1Rd9gg+xF6Z5%yvGZKwJdbdm UM>@}=L?fj_l!%FD(Te&11?aAo00000 literal 4783 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 diff --git a/Implementation/src/ChatApp.java b/Implementation/src/ChatApp.java index 30a63c3..4bcea64 100644 --- a/Implementation/src/ChatApp.java +++ b/Implementation/src/ChatApp.java @@ -27,6 +27,7 @@ public class ChatApp { /* Map on l'on stocke localement les historiques des messages */ private Map mapHistorique ; + private boolean historiqueAvailable = true; /* ChatApp est associe a un utilisateur */ private Utilisateur me; @@ -53,11 +54,28 @@ public class ChatApp { * @param pseudo Pseudo de l'utilisateur * @param h nouvel Historique entre les deux utilisateurs */ - public void majHistorique(String pseudo,Historique h) { + public synchronized void majHistorique(Historique h) { getMapHistorique().put(h.getUser2().getPseudo(),h); } - + /*public void majHistorique2(MessageHorodate mh, String pseudo) { + Historique h = getMapHistorique().get(pseudo); + //h.addMessage(mh); + getMapHistorique().put(h.getUser2().getPseudo(),h); + }*/ + + public void majHistorique2(String mh, String pseudo) { + Historique h = getMapHistorique().get(pseudo); + MessageHorodate msghor = new MessageHorodate(this.getMe(),this.getMe(),"rien",1); + System.out.println(">>"+mh+"<<"); + System.out.print(msghor.getDateHorodatage()); + System.out.println(msghor.getDestinataire()); + System.out.println(msghor.getSource()); + System.out.println(msghor.getType()); + + h.addMessage(msghor); + getMapHistorique().put(h.getUser2().getPseudo(),h); + } /** * Modification du pseudo de l'utilisateur @@ -160,7 +178,7 @@ public class ChatApp { * @param pseudo Pseudo de l'utilisateur dont on souhaite obtenir l'historique * @return Un historique */ - public Historique getHist(String pseudo) { + public synchronized Historique getHist(String pseudo) { Historique h = this.mapHistorique.get(pseudo); if( h != null) { return h ; @@ -202,6 +220,14 @@ public class ChatApp { } + public boolean isHistoriqueAvailable() { + return historiqueAvailable; + } + + public void setHistoriqueAvailable(boolean historiqueAvailable) { + this.historiqueAvailable = historiqueAvailable; + } + } class RunnerEcouteUDP implements Runnable { diff --git a/Implementation/src/MessageHorodate.class b/Implementation/src/MessageHorodate.class index 84fb0ad6b0602a5d5075ef841726a17953b92702..823952415082c6a57791da816c45beac4d879560 100644 GIT binary patch delta 1488 zcmZux-E$LF6#w0P?A>fv&@IJ=NExLSNYoC6q2qQ0l~QPJs?t)ZRp>(35(o*+Ce^lR zpzO5n`>I z=Uzme^;3@%bq+;FPmLP5FYlb6yFlC)>Z^G#;?DWGCy9HCkniAR6<^zu*!Of7ttUxM zZVhPX7*64I728tX(@3297h70o0#;V_1pUir2u#mgHKdk)!k_sm0?`Xvg)Yi`V%VSh vSxWsJf;dCB1@JD;l75_4`W%IStmG$3o>%gMlAkI0IlfRCGJJ_E_y*DY36KP9 delta 1406 zcmZuwZEqA+6n^gR%-q@8(VA(u?NCdDRDqquN^2l2QKV3ywJq4~3$463ECXy?cDFlI zXeqeMiwcS;UKM#$1c5KaK!C+S!Y5-4pX49#1Nh=s6JO5E5+GZX$vN|!``qWAd(OFM z%^Rln;Getq0W8CnliEWq0u}W-Ow17-a`Vk9_B)HVV-?409UWLBV&P6>9Rt%ebm3i& zZXG@76}j-*>J1E`L_$L!k{tay1~4cdgu9{}G0ZWd<9%!rP14eshIVYxu@xUM$T>Uj zItG(NyA+2K+V|^m*o_O&K4PW9U$5%QQK!`ErSN4r~gV&CnVu-S2b~2x$RGFsYH093vr*lu> zSs(g|l~>Qxq3r3^eEts%Va7CycV;q9e$}|`x{k|nQC#40=_iJ{;t!=x{H$>CnAa|* zys6(I|0;o}UI)Gra|2K5lYar!9c0NCM4P(crQ4{B$E4e6xIv2yMKP+rx|HhX6DaZu z35Likaf_HwIE1wzI-jJPiFpuhf#7dy4=akAh{X!xok)G*7V1h^dA+Rsbl2Oodj%pm zgu~@i*m@|0fl}O9TS8~I6>c@w(~s2p3*PIoq~}ntB|k$$OQd^PK5V>o2P+ctJ=6@} zL2W`YWlQl%9lk;dn-j`aXbEoe5>iG}g7YP6OttP`#9}L^wi-K1*mW8P{RgmoaMI*H zx{GnawAy*Q6RN42N(nhry-r!L!4O7hQbQU=T4VG6fi^kR0GvyXQe$;DLqZn`-u4oj{1D7Lc8G_1)eX-0Yb;9 z55yG@qjLs|v|gU%gY?7?A&k!`62ftOPX0A2H2>{i42(17B diff --git a/Implementation/src/RunnerEcouteUDP.class b/Implementation/src/RunnerEcouteUDP.class index 539911510a6d3a6eb1fe56d492e53a1802964c40..7cf0325bbf4875c96babd201e61eef7881ea04b4 100644 GIT binary patch delta 37 tcmeyv^oMDKIV0z51{Q`l44e#aCp$3e@_%GtXZXy($RNSMz`(>H2>{xg2<`v? delta 37 tcmeyv^oMDKIV0yq1{Q`(44e#?Cp$3e@?U3QXSm70$RNSMz`(>H2>{Sp2y6fV diff --git a/Implementation/src/RunnerTCPEcoute.class b/Implementation/src/RunnerTCPEcoute.class index fee6657af770c840da2982a8a34d50197982a790..dfc1313847bec74bc38533ec5bba308fa20e00a2 100644 GIT binary patch delta 1973 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 diff --git a/Implementation/src/TCPEchange.java b/Implementation/src/TCPEchange.java index 4ad4411..f8404ee 100644 --- a/Implementation/src/TCPEchange.java +++ b/Implementation/src/TCPEchange.java @@ -49,7 +49,7 @@ public class TCPEchange { Historique h = app.getHist(User2.getPseudo()); h.addMessage(mh); // on update la liste des historiques de app - app.majHistorique(User2.getPseudo(), h); + app.majHistorique(h); } try { @@ -131,11 +131,18 @@ class RunnerTCPEnvoi implements Runnable { out.flush(); break; } + while(!app.isHistoriqueAvailable()) { + try{wait(); + }catch(InterruptedException e) {} + } + app.setHistoriqueAvailable(false); Historique h = app.getHist(Destinataire.getPseudo()); h.addMessage(mh); // on update la liste des historiques de app - app.majHistorique(Destinataire.getPseudo(), h); - + app.majHistorique(h); + //app.majHistorique2(mh.toString(),Destinataire.getPseudo()); + app.setHistoriqueAvailable(false); + notifyAll(); out.println(mh); System.out.println("Envoi d'un mesage"); out.flush(); @@ -149,6 +156,7 @@ class RunnerTCPEnvoi implements Runnable { // Gestion de l'exception de la fermeture de la socket } } + } // Reception @@ -193,10 +201,18 @@ class RunnerTCPEcoute implements Runnable { MessageHorodate mh = MessageHorodate.stringToMessageHorodate(msg); System.out.println("Type du message:"+mh.getType()); if(mh.getType()==1) { + while(!app.isHistoriqueAvailable()) { + try{wait(); + }catch(InterruptedException e) {} + } + app.setHistoriqueAvailable(false); System.out.println("Historique mis à jour lors de la reception"); Historique h = app.getHist(mh.getSource().getPseudo()); h.addMessage(mh); - app.majHistorique(mh.getSource().getPseudo(), h); + app.majHistorique(h); + app.setHistoriqueAvailable(true); + notifyAll(); + //app.majHistorique2(mh,mh.getSource().getPseudo()); } else if(mh.getType()==0) { break;