From 058bd3dbaf3ecf9bd9f74a54fd06f2aa32d6a3aa Mon Sep 17 00:00:00 2001 From: Guillem Date: Sun, 24 Oct 2021 17:12:56 +0200 Subject: [PATCH] =?UTF-8?q?Exercici=203:=20Acc=C3=A9s=20a=20les=20dades=20?= =?UTF-8?q?[40%]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile | 4 +- UOC20211.mk | 24 ++++----- UOC20211.txt | 2 +- UOC20211.workspace | 4 +- UOCContacts/UOCContacts.mk | 24 ++++----- UOCContacts/UOCContacts.txt | 2 +- UOCContacts/include/contact.h | 1 - UOCContacts/src/api.c | 89 ++++++++++++++++++++++++++++++++-- UOCContacts/src/contact.c | 8 +-- bin/UOC20211 | Bin 54216 -> 58424 bytes bin/UOC20211d | Bin 93336 -> 95144 bytes compile_flags.txt | 1 - lib/libUOCContacts.a | Bin 36780 -> 37464 bytes lib/libUOCContactsd.a | Bin 77900 -> 79240 bytes 14 files changed, 119 insertions(+), 40 deletions(-) diff --git a/Makefile b/Makefile index 03f29b3..ebce6a1 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,8 @@ .PHONY: clean All All: - @echo "----------Building project:[ UOC20211 - Release ]----------" + @echo "----------Building project:[ UOC20211 - Debug ]----------" @"$(MAKE)" -f "UOC20211.mk" clean: - @echo "----------Cleaning project:[ UOC20211 - Release ]----------" + @echo "----------Cleaning project:[ UOC20211 - Debug ]----------" @"$(MAKE)" -f "UOC20211.mk" clean diff --git a/UOC20211.mk b/UOC20211.mk index 445b454..f2815d8 100644 --- a/UOC20211.mk +++ b/UOC20211.mk @@ -2,12 +2,12 @@ ## Auto Generated makefile by CodeLite IDE ## any manual changes will be erased ## -## Release +## Debug ProjectName :=UOC20211 -ConfigurationName :=Release +ConfigurationName :=Debug WorkspacePath :=/dades/git/UOC/PP/PR1/UOC20211 ProjectPath :=/dades/git/UOC/PP/PR1/UOC20211 -IntermediateDirectory :=./bin/Release +IntermediateDirectory :=./bin/Debug OutDir := $(IntermediateDirectory) CurrentFileName := CurrentFilePath := @@ -27,8 +27,8 @@ OutputSwitch :=-o LibraryPathSwitch :=-L PreprocessorSwitch :=-D SourceSwitch :=-c -OutputFile :=./bin/$(ProjectName) -Preprocessors :=$(PreprocessorSwitch)NDEBUG +OutputFile :=./bin/$(ProjectName)d +Preprocessors := ObjectSwitch :=-o ArchiveOutputSwitch := PreprocessOnlySwitch :=-E @@ -39,8 +39,8 @@ LinkOptions := IncludePath := $(IncludeSwitch). $(IncludeSwitch). $(IncludeSwitch)test/include $(IncludeSwitch)UOCContacts/include IncludePCH := RcIncludePath := -Libs := $(LibrarySwitch)UOCContacts -ArLibs := "libUOCContacts.a" +Libs := $(LibrarySwitch)UOCContactsd +ArLibs := "libUOCContactsd.a" LibPath := $(LibraryPathSwitch). $(LibraryPathSwitch)./lib ## @@ -50,8 +50,8 @@ LibPath := $(LibraryPathSwitch). $(LibraryPathSwitch)./lib AR := /usr/bin/ar rcu CXX := /usr/bin/g++ CC := /usr/bin/gcc -CXXFLAGS := -O2 -Wall $(Preprocessors) -CFLAGS := -O2 -Wall $(Preprocessors) +CXXFLAGS := -g -O0 -Wall $(Preprocessors) +CFLAGS := -g -O0 -Wall $(Preprocessors) ASFLAGS := AS := /usr/bin/as @@ -79,11 +79,11 @@ $(OutputFile): $(IntermediateDirectory)/.d $(Objects) $(LinkerName) $(OutputSwitch)$(OutputFile) @$(ObjectsFileList) $(LibPath) $(Libs) $(LinkOptions) MakeIntermediateDirs: - @test -d ./bin/Release || $(MakeDirCommand) ./bin/Release + @test -d ./bin/Debug || $(MakeDirCommand) ./bin/Debug $(IntermediateDirectory)/.d: - @test -d ./bin/Release || $(MakeDirCommand) ./bin/Release + @test -d ./bin/Debug || $(MakeDirCommand) ./bin/Debug PreBuild: @@ -121,6 +121,6 @@ $(IntermediateDirectory)/src_main.c$(PreprocessSuffix): src/main.c ## Clean ## clean: - $(RM) -r ./bin/Release/ + $(RM) -r ./bin/Debug/ diff --git a/UOC20211.txt b/UOC20211.txt index 07780c6..7d5be10 100644 --- a/UOC20211.txt +++ b/UOC20211.txt @@ -1 +1 @@ -./bin/Debug/test_src_test.c.o ./bin/Debug/test_src_test_suite.c.o ./bin/Debug/test_src_test_pr1.c.o ./bin/Debug/src_main.c.o +./bin/Release/test_src_test.c.o ./bin/Release/test_src_test_suite.c.o ./bin/Release/test_src_test_pr1.c.o ./bin/Release/src_main.c.o diff --git a/UOC20211.workspace b/UOC20211.workspace index 580deab..65122bf 100644 --- a/UOC20211.workspace +++ b/UOC20211.workspace @@ -3,12 +3,12 @@ - + - + diff --git a/UOCContacts/UOCContacts.mk b/UOCContacts/UOCContacts.mk index 237f4d2..2b46f42 100644 --- a/UOCContacts/UOCContacts.mk +++ b/UOCContacts/UOCContacts.mk @@ -2,12 +2,12 @@ ## Auto Generated makefile by CodeLite IDE ## any manual changes will be erased ## -## Release +## Debug ProjectName :=UOCContacts -ConfigurationName :=Release +ConfigurationName :=Debug WorkspacePath :=/dades/git/UOC/PP/PR1/UOC20211 ProjectPath :=/dades/git/UOC/PP/PR1/UOC20211/UOCContacts -IntermediateDirectory :=../bin/Release +IntermediateDirectory :=../bin/Debug OutDir := $(IntermediateDirectory) CurrentFileName := CurrentFilePath := @@ -27,7 +27,7 @@ OutputSwitch :=-o LibraryPathSwitch :=-L PreprocessorSwitch :=-D SourceSwitch :=-c -OutputFile :=../lib/lib$(ProjectName).a +OutputFile :=../lib/lib$(ProjectName)d.a Preprocessors := ObjectSwitch :=-o ArchiveOutputSwitch := @@ -50,8 +50,8 @@ LibPath := $(LibraryPathSwitch). AR := /usr/bin/ar rcu CXX := /usr/bin/g++ CC := /usr/bin/gcc -CXXFLAGS := $(Preprocessors) -CFLAGS := $(Preprocessors) +CXXFLAGS := -g $(Preprocessors) +CFLAGS := -g $(Preprocessors) ASFLAGS := AS := /usr/bin/as @@ -77,15 +77,15 @@ $(OutputFile): $(Objects) @echo "" > $(IntermediateDirectory)/.d @echo $(Objects0) > $(ObjectsFileList) $(AR) $(ArchiveOutputSwitch)$(OutputFile) @$(ObjectsFileList) - @$(MakeDirCommand) "/dades/git/UOC/PP/PR1/UOC20211/.build-release" - @echo rebuilt > "/dades/git/UOC/PP/PR1/UOC20211/.build-release/UOCContacts" + @$(MakeDirCommand) "/dades/git/UOC/PP/PR1/UOC20211/.build-debug" + @echo rebuilt > "/dades/git/UOC/PP/PR1/UOC20211/.build-debug/UOCContacts" MakeIntermediateDirs: - @test -d ../bin/Release || $(MakeDirCommand) ../bin/Release + @test -d ../bin/Debug || $(MakeDirCommand) ../bin/Debug -../bin/Release: - @test -d ../bin/Release || $(MakeDirCommand) ../bin/Release +../bin/Debug: + @test -d ../bin/Debug || $(MakeDirCommand) ../bin/Debug PreBuild: @@ -129,6 +129,6 @@ $(IntermediateDirectory)/src_date.c$(PreprocessSuffix): src/date.c ## Clean ## clean: - $(RM) -r ../bin/Release/ + $(RM) -r ../bin/Debug/ diff --git a/UOCContacts/UOCContacts.txt b/UOCContacts/UOCContacts.txt index 787bf82..8e3d4ce 100644 --- a/UOCContacts/UOCContacts.txt +++ b/UOCContacts/UOCContacts.txt @@ -1 +1 @@ -../bin/Debug/src_contact.c.o ../bin/Debug/src_api.c.o ../bin/Debug/src_person.c.o ../bin/Debug/src_csv.c.o ../bin/Debug/src_date.c.o +../bin/Release/src_contact.c.o ../bin/Release/src_api.c.o ../bin/Release/src_person.c.o ../bin/Release/src_csv.c.o ../bin/Release/src_date.c.o diff --git a/UOCContacts/include/contact.h b/UOCContacts/include/contact.h index 887211d..d145878 100755 --- a/UOCContacts/include/contact.h +++ b/UOCContacts/include/contact.h @@ -85,5 +85,4 @@ void timePos_cpy(tTimePosition* destination, tTimePosition source); // Clear tGeopositionData structure void geoData_free(tGeolocationData* geoData); //////////////////////////////////////////// - #endif diff --git a/UOCContacts/src/api.c b/UOCContacts/src/api.c index 8137e0f..85d3f80 100644 --- a/UOCContacts/src/api.c +++ b/UOCContacts/src/api.c @@ -165,7 +165,32 @@ tApiError api_findPerson(tApiData* data, const char* document, tCSVEntry* person ////////////////////////////////// // Ex PR1 3 ///////////////////////////////// - return E_NOT_IMPLEMENTED; + + // Init new person entry for CSV data storage + csv_initEntry(person); + + int index = population_find(data->population, document); + + if (index != -1) { + + char strCSV[FILE_READ_BUFFER_SIZE]; + + tPerson found = data->population.elems[index]; + + // Fill strCSV variable with data from the person found + sprintf(strCSV, "%s;%s;%s;%s;%s;%s;%s;%d/%d/%d", + "PERSON", found.document, found.name, found.surname, + found.email, found.address, found.cp, + found.birthday.day, found.birthday.month, found.birthday.year); + + csv_parseEntry(person, strCSV, NULL); + + return E_SUCCESS; + + } else { + return E_PERSON_NOT_FOUND; + } + } // Get all geolocation data for a given person @@ -173,13 +198,69 @@ tApiError api_getPersonGeolocation(tApiData* data, const char* document, tCSVDat ////////////////////////////////// // Ex PR1 3 ///////////////////////////////// - return E_NOT_IMPLEMENTED; + + assert(geodata != NULL); + tApiError ret; + + csv_init(geodata); + + int i; + for(i = 0; i < data->geolocationData.count; i++) { + if(strcmp(data->geolocationData.elems[i].person, document) == 0) { + + tTimePosition found = data->geolocationData.elems[i]; + tCSVEntry csvEntry; + char strCSV[FILE_READ_BUFFER_SIZE]; + + // Fill strCSV variable with data from the person found + sprintf(strCSV, "%s;%s;%d/%d/%d;%d:%d;%f;%f", + "GEOLOCATION", found.person, + found.timestamp.date.day, found.timestamp.date.month, found.timestamp.date.year, + found.timestamp.time.hour, found.timestamp.time.minutes, + found.coordinate.latitude, found.coordinate.longitude); + + csv_addStrEntry(geodata, strCSV, NULL); + } + } + + if (geodata->count != 0) { + return E_SUCCESS; + } else { + return E_PERSON_NOT_FOUND; + } + } // Remove a person tApiError api_removePerson(tApiData* data, const char* document) { ////////////////////////////////// // Ex PR1 3 - ///////////////////////////////// - return E_NOT_IMPLEMENTED; + ///////////////////////////////// + + population_del(&data->population, document); + + tCSVData toDelete; + tDateTime dateTime; + + char date[11]; + char time[6]; + + api_getPersonGeolocation(data, document, &toDelete); + + for(int i = 0; i < toDelete.count; i++) { + + csv_getAsString(toDelete.entries[i], 1, date, 11); + csv_getAsString(toDelete.entries[i], 2, time, 6); + + dateTime_parse(&dateTime, date, time); + + geoData_del(&data->geolocationData, document, dateTime); + } + + if (toDelete.count != 0) { + return E_SUCCESS; + } else { + return E_PERSON_NOT_FOUND; + } + } diff --git a/UOCContacts/src/contact.c b/UOCContacts/src/contact.c index f9933a5..7740691 100755 --- a/UOCContacts/src/contact.c +++ b/UOCContacts/src/contact.c @@ -5,7 +5,7 @@ #include "contact.h" // Parse a tDateTime from string information -void dateTime_parse(tDateTime* dateTime, const char* date, const char* time) { +/*void dateTime_parse(tDateTime* dateTime, const char* date, const char* time) { // Check output data assert(dateTime != NULL); @@ -22,16 +22,16 @@ void dateTime_parse(tDateTime* dateTime, const char* date, const char* time) { // Parse the input time sscanf(time, "%d:%d", &(dateTime->time.hour), &(dateTime->time.minutes)); -} +}*/ // Compare two tDateTime structures and return true if they contain the same value or false otherwise. -bool dateTime_cmp(tDateTime dateTime1, tDateTime dateTime2) { +/*bool dateTime_cmp(tDateTime dateTime1, tDateTime dateTime2) { if (dateTime1.date.day != dateTime2.date.day || dateTime1.date.month != dateTime2.date.month || dateTime1.date.year != dateTime2.date.year) { return false; } return dateTime1.time.hour == dateTime2.time.hour && dateTime1.time.minutes == dateTime2.time.minutes; -} +}*/ // EX2: Implement your methods here.... diff --git a/bin/UOC20211 b/bin/UOC20211 index d6b95fb240c47eec67c078a62905493338038d19..e81c1310423141c62010f4436637f084432925b8 100755 GIT binary patch delta 16781 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 delta 15406 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 diff --git a/bin/UOC20211d b/bin/UOC20211d index e467ec9eb4badabdde337ee3951fefc30c3b0467..a2f7c05f2041a161fd2a3b34929c27025dcba8d0 100755 GIT binary patch delta 20287 zcmb_^30PHC`|n=+%y2kN%BTzp3J%~bPIwT}gR?14S&9lunowe;rAI#{B_yS#9m}yY zv$90dR4hbuEK4ja>ubQKk5ZFLldL@V_pY_i0qMKXbMOD&{pfzzdWYZpu6GT4t$ns` z_{^~LKZdnoLDhkFg)Vtll!W`s+V8Lw_z0#_Q1)4}Pu3J!$(q80SdyhaPFCxACQG&i z=wvO7FJm`@QdY`Z%1XN^q^#sms$T_fne%69`-Y2$hSvD%Q|IJt-1ygF{+RAwwwwQ= z3+3hd&itY-jLqN=8j{)l#ABm`WT`%kwHNhe;vOgN=lCUkGTSW5tLV<_Vf`jggY`hc zeL>vsY* zicT>w$y*SSXHlTz&ySjd`4yAZuVJ@rpAi-j6<19I)bKFPn8?L)yQrCPkF4n8v(d0O zpq%-+iP$7%fa!0;LNxpu{I>S)azBB$yG*cEq6b&H~0U;CSX)U9`Nll-Gs z2&Aw)R$Pxr#$gT!+bRTo;05W`)YyY`*jMrHqKyHX|em;GGN6N6$|Js%bn8N2|< z%7Wl5NAdS{i`;JaNy7}jFzEH*H#P&U_*7le-)^^~_@tx6u&JVVaC?=V;WJzAVWB)E z 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 delta 17194 zcmb_^30PIt`uAS@44iW~%*s3}D2{+rj(89-zzOGhKm{dDP_aqvXsC&3LQCD&HHWe? zGsRFL2gDJl3iD=`m0D?dE7Q6vcCGXM-nI8Rpnd=E`JVfI`+3;!TEF*wf9qZ2UVH7M z+kP~x|I$zr=v(Gvlju_Kk`y?lwDmjYt`-4GT}!`=vz!>IW=@RczO2337OiG&Je|dv zO*%E_%@?!#z9q}lT*)$kc)KW%6GanZmtDHln$Opb=aKqA zKFSctHt{>U05(?KJBa&ae%=tr*XsjWGs^SZx_DM2Qr@s%D{K~tdoG`Ch-2>vT_)^b z7wB+t?=9{xi~C->^LS$*dqt!s8AHpL7%hyKxW%@SBqqty?}*u3t$-Aeo9iJ-I_Xah zn-`pGmSE$?uetdJ1!`6#>UY^h&WL+ZxreE@%!14Bthr$L(7TNBY9Ie8Wz%d@TFnug z5H;I++ayO*-;I*=?~>oW!v8py)7~p$iJ&N{tSf_QFS-}_RT7rAw7S52m;lGsoRVWX z4aQy(HmOS3FTPdByZJ`3IzHAn#BU*(rFnkC(~7Rwz2I;-P8w$LBHs`E_PqhNqMEw) ze>xm#MJLmW4O`38{aVZHOJ2})H*3jT_`k;%me=~XH8UIkGa_F0y3OMvZ$RT8)ry62 zTU3;M`4->OCYGJ&E2E;=>hhgYp=LIRpKZNdzWDDf34CF~s{_gqD*rZB^KW<;)$txWb*iG)!sR#R(59ri4BnOo{nfjLm zkLCN@&PNN`a3jZsd}pUIv3DLe(r1!BPt%*ANn4d#Mz-6+czow3^228QR_EqCw{wq- z;f=HpTS$_tj7!Af&^RXjr-4HXLvw>~KdK>Bc`s0-7)F#6I(^W{a9CryQLw98q8V5I z(LgsUlrQSiMBWi4Li(snk1#_cjvXZ5q#6Z11{jmUq* zly=o9Z6QL)#*JE{--Ct_ehO|(m#`LT?0Lr)i?OJ25O<&t|etIGO7;^b_8;S19|Ar}s+4>|EX}(s=wchof#6-`OiV_;n=r@3Euc zTHFqQfty%q>K5~#dj$qhCw1T=sMB$4q#ne>69eTgpYg7V3t0uqngo-{THZBjn7Iv-6yS4wZBlepJ1uwM6ZFs$!)p&{U zygJ9ctB!e>9P_w2*+&jB^U&m0tzs#ZC$vz4wNSqOTPXd5`K;t{|Z;@i3T2jPSm-cg7lOTWN~VJT4A*}m)gnZ5 zxDvOz7teAfJ3Aur>jUNxt9cz=JNPftCvcR(PbEiRqzms;J@4cSi}G7-_!HG znufv#oZ`<9*9sfsD$M*63fn+t#i@~E45@{UCa9q>Z&zWH{%+f@hF1>g>G|u)hQfFa z|I%65Bv)Y(RM>Z9rWO{c)oc?%4TVLz3VY}8wsTMNIRkroc5YPImnZqbfg!C#Gv>Go z>qv#gHV`=b^!kZc2L&|!`GhM9r{bd%yzQW#p7Tkgbx_1f{@Mtw&1Slo(}{Uj13|1- zjWz@|R3p$;jShdebsXn62K9_Oa-0gQw-f|@B*LHVDr5{5^4W2ooY~6fIixWJ)g^g9 zTzJ-u0RPQ2w4Zl5i0L)sINzSxS>AJ;U(1YZ|2wf4564WF)j>mhS**yybE(U7F%|X2 zF`hX1DgQDeUF%W_(vin_)!st7#aWy@{HxF%Z z-QWT)R|9CmZw)nC-*SO_t6v?~*l2z=?>;Qi`mW0$p_(rl*4ndkbwe+FSxqx9rJ6#! zAUT(l3b@p@CbQz<-p=Z&Pq%1+rUufqy>z&NXhAj2w^TuN$wl-z5uGKo;^7#PSP#V_ zFP@Xf1&o;irsoLMZ>4=O4pJpjFVSqnD_PJ- z!l<>&D1nSJG$XHlHf!N+wuFYeu)_v*G#pmO)H{$q}Er_>o&E+=>sT*dyS5e zvk&t4(LwV51H9kpPEO+eZ z>0@H#m;*e2Oc#0l0lsa_Gji&F9yxYMyAf3Oxc#Ccx6_IxuO3GM+y*Tvc^(soo~l>@vP}>I46L@}m8v+Csu>@-AMU zJwjfwi@WF8qAPb%9fsrGgPv0uFycAobGRBTYM6a@mgnW{W|rg+9FCtdVRVVVm=nTN zr+YWs2?)-YRA+5ii?=0@>{(>HmxaiN|X zdL}p3no214)>7T;+j+=S`Eu<0eAQF$%RjxxyU$4UUj+634<4=5%kS}5W&~y)dQbF7 zeOe9FSX8jO)YwdvEIECQj*RHYDQRT?RlRs$NlF@#UUV^OczV&@q+v-#4~M6%YPSUN z(EhFdq!*I9)!WJ)Gnl@7k)=fcVg4y^Ub|>M=ZkwOlWih+SedY!`&4VkSt94V0B zu6H=5LWchX{*ZZ)TlJD%`t}VF0Jymk1dx@RKwyxhn#~}99IyohkUnpM0P^r#Ab=eA zHV7bByaRv8mG8nIGG-h6jgpiF84a0=mQR74upR!8?a-e~Aa6l#GukET$PS0&6o3p2 zi#kZZa)-m@27I5x5exYPWE$ktSi+`524Xc{4*39b8>Aj9_bJG=cu3SiK8t6Y6LH(i48-a)`eTQKPK^EWc0LO7Jmhnb1?S-p zIsS8p!+sEn=aBds@+#y*$d@lV9HDqe+XC4WvK(?8;W!9c0QoiK zW=P2@N!6Dyb|5{!#Mpt1gPa68`zsuoKz@B0T?d)-jia^W6cWK#&~%XURWu#e#Q~6Q zAC1P~bwpL2= z^j;<>dl=)#?d#EeNA@}#v`cf9I7AdEO00yw@_*1r z!sQb5yP)@L>_1TTCy1hc2%C+tNo{N++sKG}l^Benn0m+d^5BwSV^1Vc?Bm^$9EW7r z3O)wO1xO|wV>Oavs(4jNxcvttH(@TNFcjfzH(hT=MNkBKOwMDN zV-sivcj-sVPJJ}=?5M-hs&Rx<)mo5$3iKA}+cnltcj?`vsW1pQN>#8gK{Du=!*S@5 zvMOC=ZH0ax=J$cdT=G6aMr9p`elX_!TaV~B3VkH7AE5sy^f$5Oy6TczsMB51k&Rtc z*n|P|8jeM9q|;zD!WFO-3;i1Cr#IHiQ(Qr$LH{-M?>?e`)1{vd{S+)dIM8a~AFh@! z0$2`%@i3r0hbzhf4FPO}eh~EC8tan^b#q}tt#AtZ>Cj_QYw%BL@UMe@F!ZsF^%OsK z5fPZ+IT{8d8ym>#$c_XS3w_C1-hzi4`y;vjEYIM<#+j5n$DcxSC6Xu4@fAq!K(gi> z-;U%tByWDq&%o_AlJTGNTRhy}1WV^Stg(9@8GpOP_@lx)LEjo@taV7cS_6G1f7?(a zTBmQpre9+lxvwyY1V-z35RPsqKB6B(dS1N7Y}^3-s0;k{HGRxKAh`&p27LAU)x;NB z4yKp*+Q?6uq)7^tu5+r8ocYU-<*z@M|DCtm7$H|q;~5(#ur&VO#t7!ePjBpv4^-w& z5kB>9HsOFVDy~z!+om|Sp670gVB?hYDKK7SnfmJHOZ@8QCFUzWHeq$8oV``d%+4>L zW&cI?|0C5^EvoAXV=m*{K5SxkLHxvr6aV`-!8Y!rCNBRg{Ed%7%-5a8A=ledIZbVn z>S=uAN5PicnsS}5$kGQ(y7sEtz5k~yFWDb$sn#q`OygDi{mtvN-oL?j%K`k~`@Jm- z{8UCc0+2tCKHzP6v4aX-un1@vpuxRVsH;vuO8^zwRA{`Opy0L=eTz-P0~!+(*NqgL zki{O2)PwM{psHsNQPqdt8>x$XI@R$LRJGMC$}2b+%+{5!KKPT4UFGwuzhmq8gd=aT z1?3NqB`# z*%W5rPhNP9E#TKK3~bc4<=y^imsv*nM;FKG*<0NI@^1O7j{NlHEo?BK@pVpvrNl3P zz1*jv2Sl?<&y*K@^QFwT@qt&z$$$3ZJFbpq1>AV8E!;a^i?WZ$5@3*+$&8ukAB0R; zE}ln;_-p7mm1& zodaNS3wje!P(En%Z9Khy0;cZ;20g*w*1((QM8E7k~JDsIQ)4)AfLf(W+Zb=DhU}E$tcD*&2N< zUI@x6=}!Z9WAaQ0-83|-(NFg|(!nN>8T7>EW-v~KZOBm|k|iHDcFP|~zi7FQ^g_!U zxG%7r!+pMG6z~@$of*Q-C#V_Rj9;L9tI6QK8JQ+iv!3U*KSX=zE&(-}bu-9%O-Am{XSs2LX>5W)zQAu$hTha6ee0|4YHzzJSE*O zkeS=-1__J1*IWAPNvnH`;EuY@0&ah!BWuDZ-{|O}D+i&)Q}?C7-@F0yBm>N8Q)2Pc z4M5t+FW+cs*Tn#F_th-}qNlHIUi*5;{Q34GTkKo3xv)EYVP$Dp>&hDsm3>B|tcvj*vxitkXiK$R+bsjCQ-Zzaa;iG|~~9OvTG4GBC}Cf!Q{J zRHsNq9V?l>BKBqlgo^m6UXs}iTT86qT1_g7S8z$DkI5n8Z9?Y}Drn44AaCqt7aj*l zr@{)l#=6p)1I~+tig4&Anco19@d*#g{7fnfOeJ$Rg7WxWILK&9nFg`c)B{EyU1d)i zugwWAMM5T4d4;G&3-p^YHqlNxB5G8SX*ED&&>*KuYI+82)~3v>J^W`7+$gG}n1LSm zJgL}aq&f^+ag#zvg4Z+Ir<}7kA9O4Kz{=)Fyjc zP*N_PZdi+2@98SaE}bOlccLU8KVUnE;h@GKUQocoHgrN21;dW^jTv^>GzP;iGj_o{ zhLN3II!e;}gU0745N;*HxBo`C#7Vd{x-sF_E>6Ni7;Nn)niG7UYmi+-R3kL1L9W`J z)Tr#znr0f8Zx*x{ftz*H7u!@zcbXA|iCJis{K(I93vNq^*X?h-VHhK#&P)F{wDe6_ zT%Mn!lF7tikLjag-=Q1nVjI>vDUwCQ>q^(#4XG$GxeN6M22$9IeQabZJtyuoi7-4W za2wiGO!Csrb}8HnrS&Gj86je!AW-sbkFNBlg4ft=XlRHadzV0*<<oe8sc#W6;yHvtd`G8t38o)kM!uo%-z5tItk9efh0l?la4Bl#qUw zAqzL%F2t+(%G(|7-$GaGmuVA3;=L3pwn0>SBk6*x(1MsA@;=JN6^oo?%z{}STE?uS z?=j-CysTmFR6mR4MkI!h;a2tOK$|cTFUCl*4cn`pTOPkHD?Jt?p{;3Ln!X*2jh7^f#lr_2`PZ#)h8!_22C&d z{tko72FflS&)>e+JR|}7%WYKsOvys4{Y9Z)FrI&ZFWUM#^yjS=a7Z4{{qCy{=i90d z{Ur-6_UAk(&V=!N@cn3OHXLdML%?{x_*$+^xIAWSm^Z!V zc}nh)(CdrgHa=@4zgIuV%>(Iy?~LI6AM|p&iMmJM9Lh@`*uto|7_GSJhVGOLRtukG zXv=?j5Z&VHBZbUHyNE)}l6w}?`uTA2uNlIh_#<7eUBX}bBU*la2;cTcw0Q_L%w(KB zgn#}=WZd^Krh!m^bw-_g-L-+x@J^ss<}S`Q4E(EK`iEN<0nw{FOLvhrxt)ZUm={K# za;qb=aN}R`eA}%MKKQRdPhBvEo8D?pA|@Sw_OBRE-B5yj+yl{~fVLClLxZw~`)(Eb z=C8ILbZsfTHa_Bql)4pI9}I21UWDGHqi2MnouwX`P|1y=Fk!Trcn?RoT^B)22~Bzc zk#q-%qk|~iBw5JHK)WqNM_m)7t#`2{F)s9+57TMLGfFUyn`EU;gmI-c3F((eMX0Ls zUygBQ>MVP#C7gZ*AbAvn$gMxKCgmXafz#ew@{kaKsfFxGX0&h$dq$f8$zwi>FomeP ztE3aKm_Kq~H)@Li5PBZAjN*_2Xb#EA#!wyix*agmN;5+4CDxP<;1ZTnV8cp?^AC6p zC6z0D#FPnEI|1;w}It6Q|phBPjV4Mn)Uj1(zMv{YIp_fN>^42IyAS2f;#WQ>b#2t@0%o!nCBvrY0+v6rHM$Ub)iToE(&B?hBJ`-yt&eJm2(v6bJe6BVbPAeFUztK ztu({MKf=l1SK}Wg(?Z#|tJYAWKXSxkl)p@MR=a{Q(G~8JJCT@aZytYmqH5E}Rls@Z zyhIJ+n^RxNrD?KqUS@uF(#WORK2(Da*F5a{F^4?9 zhec?Z*3R-Tlv2;JOw00t@C`MfAesUnz zmMAIRFAnwaY|nZJIh9fFErZhie3-ABEpR~)d3rqoJ3K!8K+rP?JHh|S`~_j|i-MYY zru%gYqC)&y2e5!4rWvTt!kSk)pmBMNt*~tZa== z$+n`g2m7!nUuPqkoK0d@Uh!d}UKYd>Wun@9C}%^kaP#cR$vXty9wc*ip8i!o3N5)67;XJHyzs>_w$TIO}h;O0wSgY{jN< z7NcW>l@n3yig_{V*o|A8+R2+|CzZvA&Ln7U9{*YijmPrDbmx z={05UGZUv}7bMLcS}-Sf)-#(Y?ca7A#S zlAIs$r2;jKiBs~QcYzb9Je{w&*;u$ieBxKK@Oyv?-1_O1?~+-P5}m@<1f>~m+IrL= zbm$;)G#|j$(+Pc3okcpOuv8Yn>P22@pUOJ0G9?QTPX3h_Qd#?;66ey=KqToTUnxyF zlFC-IOUmHBAgCkJRC%#43ud>K*ZQ(A*cD~=lh9mIO4A_9lr5AiQ;w*)^J?ynnq#Vn zN*5*xYA!vE#r?mt3?|O2YAo0P>sXR9SU`~T zWo*79wX=99E*=BGCn@K_il(~>Z&p$f)Q|PnDJ6rLDaiRoi*;69J@t67;2%hhQc4H1 z0JHOW!9&?SkhKhQzFm21*7O?m%<9xE? zQ6w%WuXBSz2NiTVc^55H#$>V<=0Z^)U#X{3l*w8qlp>2~41P9XqlD|)D$JTnw?DAC zFiL!&T+2kKR|z*iygfduKCk!;hWbaSebJdSC#!1bR&1$~1hwIJQsdKxpWO}52QqwT zglc#|QZFA3e|+Z=uHj#GRP9eAPgiRVzd6(<^5W|=Qk{T%OMw#ov$V!n57mCm-;TpF zG$PXg)nNjZJyyUBC2I&8;swo3I~Q^t3%#tALY@A) zrf!p}vNqF7dq=}_wDXHxtu#9Pq2?N_Rli8Xj|w_F9o&+7bBId!siyvyhR=#naoRf5 z^@oP*weL-BRal}Ued3{i8A#VPamN-$!}qqg38bfnhY4I#ULMMPf)X^Nku6oDWtvf% zvUn&9u#bh>NA{LX`KnseO4BvByJ0H+yw()+HT>~|s+TqV@%N538a^pdhO5U(%_XUo zMnuQqRPdwkS~w9=jtpl33G@+%)TVJN-*nCGc@1}dmjk1?7OQSO&8nO8lXje@{)guF z%UGL0aE2kScZHjMzostGTE{uO4{NxgiA|V~6{`=9o-}+=YZZS(t1bN)jiS!iqJCF+ zNzy$HfBaBAkmiAGwPUSNi8Oo33)^8Ly4qL8gS3te1@41Q?&Hf!tY)7Vs@j)nM7=b; zW{8SA=lK8)PaaP=w%6S>hcQahNIV5+3X#50GaHejx)0K<=mdtsiwINkiyFQ`!HX>JcR{F|1l{c#QV&;~(p zI~A9;-U$#7fvDD+`tgH@F2HHYzN9Q3#R7b8Ken(Y3-5%Hnzw$GN-lm5go1N4{PCmZ z*}{!25yHM+vwHk6IKT*RU|1y=Y;aMY9`?mxsPJJ}|R=kQk2g3>tFAq}jdd+^5iu+0fv?;?i#V$3j zqnh8L1l8||rar6TA82E8q=sMCaQY|fbZHY%`booQMXR{GR(<*vCpF8@ZB(4zvgq={ zZ773b#uV(RVEe$+xoCDa0GEo_3p`KPqR4JfALV}qf#11C}*B#?Oi|q z!Aq7ri}jUP`70T-fIIi5CCikTX0a~5X+<{Sm{z3v*IO#i%wmZQuU+PR#OBj?$ns moRrWNjlUI2)48mTW%F>=y3Sq6n2WNOXQ}y>Oj+?13;$nI=KZk% diff --git a/compile_flags.txt b/compile_flags.txt index acbe73e..c20a212 100644 --- a/compile_flags.txt +++ b/compile_flags.txt @@ -7,4 +7,3 @@ -I/dades/git/UOC/PP/PR1/UOC20211 -I/dades/git/UOC/PP/PR1/UOC20211/test/include -I/dades/git/UOC/PP/PR1/UOC20211/UOCContacts/include --DNDEBUG diff --git a/lib/libUOCContacts.a b/lib/libUOCContacts.a index da841c248a53c90912a9037b8d98111776c6857f..76a36efb34bb782ac8e77a435bf763b502952dce 100644 GIT binary patch delta 4222 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

MjuA1IPqmdCQ=*VWXGZ(Azqal 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 delta 13444 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