From 284c7b416b56717a01377c0055754c7be6d10a1a Mon Sep 17 00:00:00 2001 From: Saturn&Eric Date: Sun, 2 Jul 2017 12:39:54 +0800 Subject: [PATCH] add some functions. --- .../filesys.xcindex/db.xcindexdb | Bin 1556480 -> 1597440 bytes .../filesys.xcindex/db.xcindexdb-shm | Bin 32768 -> 32768 bytes .../filesys.xcindex/db.xcindexdb-wal | Bin 0 -> 32896 bytes filesys.xcodeproj/project.pbxproj | 6 + filesys/Container.c | 391 ++++++++++++++++++ filesys/Container.h | 96 +++++ filesys/List.c | 194 --------- filesys/List.h | 60 --- filesys/Support.h | 2 + filesys/main.c | 21 +- 10 files changed, 511 insertions(+), 259 deletions(-) create mode 100644 filesys/Container.c create mode 100644 filesys/Container.h diff --git a/DerivedData/filesys/Index/Debug/macosx10.12-x86_64/filesys.xcindex/db.xcindexdb b/DerivedData/filesys/Index/Debug/macosx10.12-x86_64/filesys.xcindex/db.xcindexdb index 92953c044d04836449311af77fcfb2833ad0d4cc..6262e592ed8cfb2cc49f59465c2ef74e36c2d4b6 100644 GIT binary patch delta 125689 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�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ξ)E@AAwq10jeYAh{OdwNg%D^fd_GQ#bO$xU)*mgB z4XUBWe35RTV1lauNLQdk-CHAFK&X*pTBH+&iSbimYa-P;S`lG%Rd`d(wT160f>xpQ zp`cak=uJVZ9@C3LRuDEo&{HKgEK*BgGezC&s0)}#=Hz6LQNLt z#$TS(*lHoD5a2oqTI8#}#tyY-NGQ79R)1QCPP;a3px=Sy459#3P8MLBBvW->! zYe{g8N*pq^I2OPx$S~WwGS>>gZ0pLL-vPK)tjzflfXUsJIo|-PD) z?g#Cm8{~bUZB&x$K^t)Nh!$A~x|dwnf|gTwYd{g~s@5X+g65EqdqCklD*V;Jv7~r6 zXfWMpSAlwy>q<};a=jDON)1;cD?p9NbvdX8wYm}z8aY~BF$nhUoE9kpCFAR+T4Wg) z^TOO*fkFInW2|l%AR_)eDkObH!ry^~1ncbZC=S2|0S5kJFC^U%2?~5+ZVdnmd|~bl z02KJb+$sQ+_rl!FWQ)mA%ba{u#xEI{GQP+-mvJ`ZWJa{^=J=$r<(M-kBQba;_=Ypp zdD=A?JFXu0)$smoUY^koCyh0;*0)x-9JVG~zPG$(zGU9(859iQ9r!Pn4{fQ|fYo5R zXmbYgeCGp;GV0>Z@(5oC-=Bd800jV@{j=C7 z_lo%y^9$IF6aLith&|r+tL>8QqU{6Q2HSGm99t{L3!e3!Nxtd60sg8ubpK3XHNFNm zJ1{oTI?&kvi~qg!pE9asc|+ig%26u(yx5tGBJUskg4T zs`&%+Y3nc6m#oj(w%P8rMQmN{?|Zg*X5hfLPqF{$Y5U{$&5kM#vm?R&o2!-gUGE9+ zYIB}>thu+ji@6at**L6E*j}+UaxQZ(anE4m%b)W;^oKHb_T5N4BHAZLFt)^P2M&S8w;* z?#;fS_gizse%vrK=@6|8UameZL+~s%kJMd>IWMN$MY+b0n!< zIB|U9@WcT)6|iICO^FQ?Yv7ZBu0&H}e8O+|M7;V>SpsA6m8nL8!?kTHc$wB<~=@NBJ8RgmJ!I-c?`3RD(w2}rDY5@H^0>VmI4 zdc&)L-sdWa=)Uq631EK{MUfXyAu9eg|B3)N5J+g%gAwqwII(|7CWwS?W=f}*NV*Gf z;TQj!_pUC* z>-}VP{&S-AsK5dNz4BJ)tI9*&tiCHw&_lJl8(IPBDqaKui({rjYOgs!|J>SBB>|9<_jU~U0`)y*v@W~^5+Q5&>`;w zfvy62hKA(nrPnj>V{$5bC!Y(pXj{&HmTcoSuEwGVb2-xh&MLsnIuGVN&F!M-!JO?Z zisl~?Sgb?dY5^L;8;hd3ocy9_&R@Dy4&N{#`CcS^GlWD>Vl?NBIGxY|t6rlIA2;?4 z=YP$T1^KTF+#|ppxM)HCe3A4MXf1G~4tdWC+%GUrptnE|fhq!FlTd;VxfUIA^x{~M z^NdLL3f#vqBR5HhoI?zg^7TAV%Ga|xDgQBX+AQ#p4tYEEN>I;;+D1&8Y$LjOUY}>t z6wy43(VnEwvyf~v>AmxX+Bv8ED!q*{q6ruBaeqv9UyRl&GA=u;HqNPCcgAJ=v2#u> zs&~2c?Q+ItEA;6Y3gu1iAq3&iHbqJiHbm7RCwXSWx!SxOaZ771rq_)pokZNf1#XLRz0zoS*4bEuxzHz+Oto`t9@m>W??hLv zo9Cppu<{)1I6R$9>5Fw7o=qlMG#1G{9N;#64p}uCo>74DbI5v7G?X8z8S0~G?R?e)Ii6C%k>g1USXIm`@b0|JdAHV9HJZZb zoJX`9m2Je9tRq@&*v7*BfXb@%6z&6gR3ZwW0;Q?0wAUFvq9qtr%T;!?7smiQ+Ji{d z5LpE1@@7&>dA1~EF^|fY?ey;8BE(VrdRPVDu@cJeGg0T6Q|dJzDK(Y7@LAdnm5$a4Ww_(1A43) zQ7_x(-Nnh@=3VZpj`q83C#`#+lz!oQU$Y^lX!zVS3y(meE~wteikSBb(|u`_BxD3T zqCAH&p+C^;bV|rz6=}5od&Yrb*LPY)1b02wuRQK6S}s-F3GYg+mx`%vq0wt5zqm)&967PgUbHGk0daMEs6gM8TK%$Ds zsFZpMh;_^D?v3S%%qHcD%qA7WG${nKnp7LNum>0bdZA7p$dHD~$3*clK2~hwJe~lj zoARs8s%)qase0vEWp#pep%wY3 z+ZfK|(0drKTcG})sAN?929-Y5W`AcjG;La!Kwa`zQd3>>C-G2l1+mUlv3?1dLP`1* zG@6q12`EQ7p7&w}W-qF*k0I+!_4N^`C1vMB5Goj*`vXvQ^7}q0UHN?%fC@(EJ_CYP z#CYNzRZ~bXztvWNF$_y+M64wJMbeib3=s`Dl^Z=GC_v9=Z}d2%B-Gs%&=6limTw97 zKwMzusa`^h=^jG1VmX%;>byisjZY&`Y30)h=#I*3RVkE0R>W9O?{nzei==JPot#?J zd{R>;YF^C4?M(21CmyzGvsr{bIMerr<~!j-`JfuDT46xBPzwlCQ>N<1V?VpnU5H$r zq^E2@9wgY&?)TrQ56iyyx7E6+bQgXHYDIPSEeNAB)Y&(n8dPUrgSc0I4&qVSMUd*1 z*!27vEta4p)TUTcwZdAl1kyY>IpVDbCxLEr)ROr&r&@AVa)e#ah$T5a@L*u07T6uw zt*xihjRUPxsa$MSN-C9$!v+ZFt7I;Qs&=btT7Lp2QPcVzG?MNc*FXa)ufKpo=nI8E z13FTZy$WhUE$}B$eUe=PRU_FCAU~3uTM1wTYDOf}H2jtzI9!ocwPKt^QCS3Jd zM=FIJ(o=;_6RDIq8h@#JrMno_9Noo;La~79=0$;YBbh3Rc<2B26MC@RC*)(L0=%fk$u5%j`p!i zW@Im9ZxihS9aG7SJOMgHv>UXKTz7$X5bXqQQn#l^0qaQZ5ztDcH?kG5lti0B^J}Ey zbQr)45^VrY(s&rDMwE*k!D`w}Y9e;fWFjkQluGSlGiVUW(m*{_eJoA|btG8|s0C3H zs6P3q0IEi^M35hm=GFw*06DJ$k`!!J4+S}K?|F|zC%s|J3_Zqe*TmB$gUYa$du4Mf}pfq8d%STQjEd<%xDmo=;1v}b96Hxbff=Gt^UI_Z zdqCk?Wh$>Jq>pAfIaW#&RY|z~-WL%){u@TQcnf4#&EZWzGG*};>9us_+97K0a^?Jq z-v;=_Y`azizxZ~#mWkhs`1RoTBm7$M`wo69;`fc{BOe=cah9oZR&oa|nz=dtiRcUM zDr7`&Ihu5H_#59RzW02me6RQp_@46Z@NM?3_ub_y@-6hu_T~A;`G)%X`LccOea(IK zeK+{heGXrW&*;78z2yDe`;qr;?{V*o-eA;h`=a|p_gk1tJM7-?-sRrve!zW?d%3&7eY<;_ zdxCp}d!W0AyOX=6yOF!5JJaoUr@0eczq_uuzH*&+opqgXz2th{wa2yH^^j|=Yo%+c zYk?~~(>294#x>a0$JN!<*45Ni*HzW!ciCJ?F3tI~^E>Bf&JUb#I$v`haz5?c>3kSl zpjJCeoDt`3&Z*Av&f(4h&XBXC^Co9QXANhD)8#Zd;~l>_esFy0IOjOyc*Akj@tosH z%r$Owta04wSmKzEeNK}dqaC@9-i|Cso3P_XM;*+K`W#kAMf+d&tM+g0pW5HYN2gx3 zAGGho%;^^UefGQU#r8$^Ire<}&GupT{`T(n4)zxI2KMUqpxtRtwZ~yX__FN_Y$JQe z_PXte?OEFswns5J9JSqHTWp(WyVW+yHp-S`>t*X=YmKjC)wWf(d2JS31#9?E>rd8i zte;>$_>}b(>jCRi)*aT(*7erAtVPy^*4frP>p1IBYd>qYwY{}DCbw^}rdu7>6sr-R z)VgH(-13p-ZOd`Xi9*OcQdy$H#65W zS2G99c5|}XkoF69&0S3UFzv0hV`+!e_NVPi+nV+Ow!keeprT&cXp?!vpgKy%iXopgtPTh%bqurmnI<*8F{BBE~ znmQieNgI$FO6{0>Q))wO{>n&orJ7RXQ+`YNA?3@Ib17$1-bgu`@?6T3Dce#urmRW1 zGi6E2{FE6flT${gt>cbD)5NF zR)L2Fwg}*TBKz7TfESA_*(k6<;6Z^0Xo#+&$D2~t#_LRm^#bbz)(T*PgLR?;_X^x2 zuv*}50ZcrxuT=soG4sQsJ4Hl8U6r5}B3Uj#kHE^QSR_RP%LJAR;4K)3yjTEl!B|ot zfY)I-YD9%d!(at?F~&-^+ zgcaQ?O49}CDNi{~6-mB8p1>^vbbC_DlSMK~fS&!76W#I^j29<*c^emoi0=5xZLGMB z5g08nN?@eG2!Y`O!vuy33=zOHIhO~$Oi*#pU>ncEFRTXp>k#rX5BtWldl}-nd zv=^Xpt#WEBk~RXZ1!$nFbiyq~bdx{}f#w3u1eyxmD9}Wpu|Ok%h5|HjR*}^gNj-tO zv36cZM70HK3Dgv*Ay8f527zh$m;_PAbO*S3<4TK zwmziAM|KL?>;Ty80NCsR*z5q<>;Ty80NCsR*z5qv?5F_A>ZtGc6tdX?u-O5y*#WTG z0kGKtu-O5y*#WTG0kGKtu-O5y*#WTG0kGKtu+<5J*z5q<>;Ty80NCsR*z5q<>;Ty8 z0NCsR*z5q<>;Ty80NCsR*z5q<>SW^;0h=9&*z5q<>;Ty80NCsR*z5q<>;Ty80NCsR z*z5q<>;Ty80NCsR*y?0s(uvIuL~M2dY<2)_b^vU40Bm*uY<2)_b^vU40Bm*uY<2)_ zb^vU40Bm&tVKzG;Hah?|I{-F205&@SHah?|I{-F205&@SHah?|I{-F205&^-y3)Gq zu>FCE%?^Og4uH)LfXxno%?^Og4uH)LfXxno%?^Og4uH)LfXxmdL!u9|{eg(h4uH)L zfXxno%?^Og4uH)LfXxno%?^Og4uH)LfXxno%?;Ty8 z0NCsR*z5q<>;Ty80NCsR*z5q<>;Ty80F>FGNR`!r{eg(h4nWLK!C$&k!Jh(u2>dSa zo4~IE*93kM_*vkpz)u1{Dp2;P;EITT5V$OGN#J{d?*zUT_(tGsfv*I<6!=2mbAgKl zus;Q#iRe>-PXsOqoEJDJ@Ug&00v`%|An?AxdjjtYoMphNa%V*Jj=b_?th*eUS1z>cucV*=X+wh25c@QA=xfrkaQ2y7PE zB=C^HMu80i4~qRMctAw=3*0BLUSOTTT7fkJQGt5}?h#lmaJRr+0;|OS6s#1{odS0V ztPof(P$Ez)P$aNSV5z_ofyDxa0tEoFKLrsHEfQEL5UZdCBAG8RPhhUV?E<$6%n_I^ zFiT*j05g06x%K-b6Bcee90|f>M^cUzy&`m4oE6_)vw?Hp}o&r4tLIT}& z2p43FsGC4nfh>V80-Xgq33L?bAkbc*oj_ZGHUg~$!mWf_3fv^nLZG=oGl8Z8HwrWn zXe`i3prJqmf%*dVxOt;I>x!t3Ky86q0yPC{2viriL7r3l?5sZWU~E1^cf-w z3Zx4J)GO?`cJm(4fA80S@6&(R>%Z&t-?jSh8vQq_|K6+r-lPAnR=@bv)x5iP!Cm_A zD*bn*{(GnXdx!qJLjR?2eZYT-eoZT(a80M5;g?oK;diO-zC{0Btp66`7vryX^9po9 zME_l+|1Q*j!}M#-9jyQ6>c2Vq?;!nmp#D2R|Lw2;_S1j+>c4&T-`*9}I*B-IZZBQX zQ~&Lu|AzG6?)onsvj+Wc`gK?RH%t8*KMPS2P6+-^282 z7&sh?t_;LI9nEvcRg3=Sh?^Ro;i0q`Cwb`0D)?=eZ2G})qvoQRg94l#4@vz@WMh}YwFZP+TFUSRqN+m3p9HhPzP^Sr&C71SYS zUbAbb_Z56@X{T+eEdg@^?>a|0rnxtH-b_z1z2;7GeeGK1-Q!R38-3S&mwcc5KJvZo zJMIg==zP|3qiep$iajuIV`d}Av)8-9eT(Za?+e~J-ofrMuAkDgtc~&ZerI5oHN*Cc zeSKiGHOro9Z|`c2)7XkFk6G4PR$2O5$Js{M2H3h=-^BK;iT0PB-{P}u!#oSUbv>7D zue+SiL5@Fc?Hz6$i*~=i2|j$4Vjtie7PdyME35^<2d#aqt*te!2D{5{#Kb`}`xgHv zfrWu7w*9s$E`zh9@uk|;F$$7#t7n`EG`NsQQ{_xM13zn0X zTP#B?-K@8{#@SZkD7Jl$9gaTIL-)hZw4Y4}$1*}#6zV=hr z1NQGd9X-X~1Xq@QsjH8DzICtXLw}oer{!hO=l-sNoIuY&r}P8q8BV{ae)STqC2=Yx)`ND4254y#ZKFM*z>P`&~^PN94O+Dx(wpmiiW z2U-~>;d{U(Bs>e6N3zqP=_ES|nn1GGK*LG)3aCHH4ui5ub`aE#WY2(_lI&?v9ZLRA zP-Rt?g^zu;$aMo~8~J?@w1MaW(7lSnh4%xOlkh%Jgo0iVnnSX6pgbzpwV<&? zYe0i3x+thOMRzZ#3;A6I!a5)1b0w&eYAJ(?8H>YEq@z8I#Xa?N-|)e8b?%$$jm4AnW8X-|{Za); ztDBH={n$5S36^ftB3`6RKlaU7d_+I?ji?fb2N|t6HkMT4W8bj0ulS07?whe>lYZ_S zb{T2~v;d4;i`X-wTgIlLmB!ycQx#sYBqpO>_t@m7AB?3coDarQ&4xc~My_mXiqGOW zEVe(&nOCAI&oeo?E&3@~lutSvfG97P7+x@0V%Cpwqey6J2Sq}MgisQA!K5mgaj~S1 z(FqSuqZyG_T2+M|Tlz6>6d*56Eyh_$biM=02FHBRN-HX(f%Yc6P+3)O6H-w1*q8}* z+bAY$$b`CWz`He6MHbs{)&0X)i>qOeLNEz_a~c$4cky#=E;^4IRD(0QF=NiY5EIb#v%J`M`4 zXB|<=SdGtQGZvxstRb1wyO;G)v3D_{Vpp*%PIoC-$%uOlE#p)6v*3G{x%KakQGI^R zo)OHKOvv@;M5<;lvJX@uojOH6F0c$o;+#v!?Lkgo^7`Rzz{V%!E|G z$X*ci;h5|Y%MkQImLbOnn2@Iz*cFjH7o%rm^h}KQGod2FPZO#ddx{B3*u#X1*vW*7 z*g>Sa=XRDM;%zKLFpn~!JRXU;Ze63OcIVi~HA4uvr;Z;pc!-6hh9qnKDG4Gbj~vj&V3f7?mjg%*dqurshT z(+vINPUPG%=Gq}f?PAoH2?L-uObD7g81BXVZ6_M+aQ{*fb9Yt|b9XKZ1GzsdA@^rR zY(do6iYLV5n^Z7yYkwXOX~u9|-M8mpi- ze_^3nKPQfw*(G1psTuCd!jVLZtYOko_mV%%Z$HVboJ8tX~_J6|BArkI_D(l?cRLiK#u3Pjo+Kj4Y zRN*2*%c#uM1yh-L_;+Ht0NO#MNuUje%c_tXgD_l%tP!XN)qO)y(1;EZX#fhN3L#uZiV*jPr!Fjc~m2O`xNMlqem5(lE9cd*7G=BgV)^!~vy z*`OG)MO2{-V81X{{b_5VY700NjUEo*%s02?urWPJrqbFyMtpBmrQbRDr1muKXgMzi z&uBXp90okB;2_|B1qT4D6+90pQSclfqF_((oOTL!It0;T1dfqKu0`&a30Y6yFt)MHLgfk5L<~X5Sq9dN9%#m!f}LQXHYWLEjJcb z88Gx}u%wV56%?_}$D9J!f`XKkgi<#u3Zv+Sr#mL%l&|p#=2Es!zI_gkR z7wV{kL1>Rre6$sWUhc-HT0!XLD2zTJ7)nqtkb}BX4-gjtCRms|HU4l6 z!21N2mya>>=v^HR#cJJ$x0dMlCh2LQIuo%0g_rq7-8EdXZ2 zo%0z0X2YHHApmi?bKW+A4#!W>GCl}qJe_fG#`KJy8MScw)`j2;!F9n|!M?$I!Q}Ld z>4&2=+L<%LOZ=n#?fibXxU*t$#c>teRSZ_RR^d#Ay%kngm|UStg-VIPC!R@sB5_6H1RRqTOt_YC zCSh;F%7n=YT@otA{~muP{)zY%@e|@Z#%IR;7WYov?zrV~Q{uAXDjWYWo;5ycyu&!f zm}RVN_`~qN;VD#&Rw=S!WXoPna@9X;cbbg!f6&O24~&4V1u7f{E9|Q(n{-h<9_-;}dXx9F!(iC8Y_` z-L2dnj%q?}ifVkhsH`=tDynhtG$E5b-5lNhoy&*mTEhg6YTQ3YH9muUjV-GL>x+K~ z8K>AGq;ct_G^V`Le%yF!D5axH$wW${Nhy!dD+BDGiNId)`IC^hpSPmJwMtB%1%H%acMe_x2#%!O=?lSfjfy^eF_nRDvqz zEH?>qVoB*zodknQrM`=kL<38SIwg>3Kq*m27WI!Vs?C||5Fnj?lsr{i9ay7pxlEOu zhOw!LOkHgUrS=Z;)u)_NQ8sowsfxIy%CkK}LaXe3T`38T*jW4x?%-5gN~s+*dP!r# zM7TK-%}XVMn~6fHoP&eAv7FL!k8ybom9VQ@5t21X zK{tu6Dq$02sY8OsWEvWg5wciG)Tn$wWm>-3MM@200hzocXh1dEpW1zDTPn=@egck<~E~w)DnCVbT zKWv23Z$8RyhV*dlXAV0Uy`VqWUQl|^pT)qG=DE^ykR0ig=qWB7?}OwLmaO=NtCF{Pz|B9 z<26W-5Uo_C25%~9$Gs$qFD*(UQCuuFuQ^Cyl);boS_TOWGB(p*{AK^fAJn8*TfG%bWTm z{2WLl$?YoNl*tz$$cQYxtyEz@Z-JjV)C5h`1ox+fK7wd=bWt5HnWx<(m=#U`fkSyZ zfdn&SWw*~nf*H}>zp}-FS{T>;`5^C!!~<#yrE**5u~`sM@Q9nqm`=Gu|0^y++3<8x2K`l#$7M{t!beT zAsHJh{fAjFrc_~XVbSPV+BUObRIJ`N`6!f;vFg~w8Y7}38*o8AWG9W`)U#8MA!!e> z%CP92KdH8?`qaj{q%^d&$W5Xlr9}y$50R_E*PkP_4GuK2+-Rk%E>ALrv;o&Su|{`a zLg)iza!_<(Lr%?lHwgyDy61Y<7!cjLl*@9Ri8T6`>Wyn5LcIN`c$2Ak*O(Dcbkrso z1tfoULg;-&(?^vqRmk0D67*JqcvGrDkoWdq#*^{vb4xcqMJw*rjm;wOQ^z91J{3jRMQq^MwaTM zR=j^O@F0APv3QGmF8bltxa|3+(7VuS7OMf$!I@V0M><2}vgf%-CpM;y_I=uD!x(5@ z0?BWT_S|dq;d(BI)g-#|X}Z4MLGF#C4WHm^)^8MDwcVxk=OmGP!zk7Psq5Jux^56{ z|2$pK;_Ld+QP0x#Ok5+!^`h1nj2`IEVE4MwQIC=Pt#!zMo#^GQ6#lIoe(mVUlP;$j z8NRYME_-@4QmPdlvD@fraHTIK^+{5*Y!RT0N)^*|D@9!+x~Q5P{S@|TS{jP2I)!3V zp-eW1&O&lSTJ)01<)GLW#$`|PkhEGfn~P*p0$o>)HaM*(39nx!vQiaMn#f9(qYtcg zt8y9dB2Sg1oX4lpb*7Z_%}%<`kaE76{RhSWSoWVT{>QTafcPK7{{7;A4E&>T1dV&YG|Uiirrmpwc!bOt&e$^+g>3{ME1QSZO-UjqI=i2v0w z9?#HTHW~;~b6N-r6`dx7pRHYJ1;h9opgu*ZKNe=L4$d_nw(_?GeRxGQm|<96ZI<%GCSahb;7@#=DqaV1_| zb~RQtYK9LCPopZ`(p-j_sA^r(T!uR6+9}OtD5@Iz4s>gyC-sMhaoI!IhdtWo870AZ za4<`3)D^>eSIlMM^#SsKV4reW=lb}Vb&9ZTua0`6`EFNS_8>1M;QH|RKd@ngI2;}w z|5VxSLcbblBY&poNe6dE^qzIJ(1RZkyKi_}s|Nt`4}E+s)3pvxptm#M9~ zOn+N?WNF3gHieDzotQqL_h<;WKMJivbQ;^vUV+d%xK5PoP$pd`$aQzVj+aX5l1=V$ za^1NeT^r@PV;8zM$aM#H*W|h#xi1OJb=z7>f60O}wzAC)B%FWUR<>zCl6lwjrEV!@ zZx^jAkZeITHLpTSQ?J*3b2~}$ zMWabIy3V_<(ZorTTS(GCwW%fvB)L8{pqo@PUc{-}?vKH^?8ZUTnJk%aT$8RRN#+}K z7!zZe|FJ?`b|cQigjgO_<{PynpW~?>Q`J*Q!}=t-`MTP%xafU5~ha+q73D z$?&rEZtF(UVUl%Qf4UwjS+^z7^^h{RQCkKH2gf|sq3hgoo^rSp)IHnUkTeEeF9j5q zrB>)PN?{;%WqQ}2RtZHgAXWrv_Vmb-{?V_hxP2(_R9y6}$dyTsanL%crh=2(|E#|kYK>(%Gt zy47bt-6YIsE)aqdh-&`H_U$?7cHZiR+r|+$nnQfEv?u ztHJIaCHU%`tdU;M>X&T7YHI3U zW8%71WSu~C+BXzR1zcxD7LTLXAnNw?b7owYVX-6hI;3O&Raz;sc#L|>;xS$Q6N-gU zga~gOAPScjjf$m$X3UJsyI{S98Vp=L0e`pGCx0XVS;zYrFMpP3ys(+dy%`!~LAYbLCNXxuH&NAGb zPDm68{@yc z*~v1rhX&r-@N~q#Ou}awTDe27A~~^_Hr(DY1Al!I9!h3XDmM{Xt}(aFB&8;0YpaY> z{Vc;xH;`82vRY;4yR!_> z(0{B{e$uk^%783GqZA6ME<*a-N%$;7!#bo@ZXVNEwhJ|Ml2Yxmi7Ky@5PB7rhnY=D zIaP0&N%$;74XD&4bDWG)s$>eig4{+&-G#{|DmQ=E&?``>E=@qUC$TyBEQ7x_`N6cN z#Pct6@KCBpO4Z6Mm74yBl9QD5xz5-ee3rqJMTx-tCbvU95vA;>rxkfEKe<_4Y7QR3 z)F&l1xmnsC6qiYahZCXCZBin*1vxvB?+kqoKFi?bJO%$TI41{peQ2QHluOOQXBlik z3Ob-qTx1!nbx7bR%b@1qA+nOlS1z`)ZOq~#C2uUCG%pEwLQ~DbXBkXwsWAU`LK7NI z$djvFRHdg_p;VQWoTZXz;v_oC`YYF0Fn6z-n7!0JD;f2IHfH<#>P==(R(%dW%aF|Z zy8ga~inUx+n7LO`nM*}gp(aIz_cLW$Qfz`X%TR&q!laBl&A~&&k){4)zA$&MB10y^#kCeegJ&b4}g#Q0q{{j z06yvmP){1;zt3Dn;r~B*=BlQ}--VPF{skyffW!LZ7b?KUhxpkFeh1_!_zf^l!LNX! z3a$bADfk7Dt>9-sdj&Y`KfbvF?3;+MA6E1u=mrH>0O<b90 z+%*OGT0q<-1=x2H_ql>^03Rv%8t}G)uK>ptd{HWj*;A;i= zzJ&3D0(@S=_^twcUBY-$!RvsR6&we=px_u_FCbj_8t5@4dKIuq!7G4u3h*Tg<0=I& z0hTE^3ZN=G0+^*Fm@PKmqTn!KtO9(i!Z<|1K|o&xm`OHvQ}67;SMYckv`f(rz*Ys10Ul7W9dM6=ZGhzp9t9LAcm!~}f~|mQ3LXYbP_P9sLcwOh zKn0rsJrq0y=%ipHprwKhT39nQQuH81H5EJn$W(AYz^&juK$?Q}fCL5WG)?3`h6AD%XUQ%#3;CTgi;kzN)9!0Al+OA+F;2{Nf0@fRVrf~9~y3YGx6Dp(9?tDq1NZmOsNR98U+P*uSq zfM3BvfK35vN=s6}BOF90#q=Jp8-!pq0~fx>EtB2}~8p7m&jb|2xM) zt23X+OF-CU#;4KB;fMd{kAsH&$(2}h1O^EV6c`}TUw{ukMC$vBq>n&vfnEZ9_#u?} z@IwF}eyGlT=F<-$;=>OC-NYLoeh5jHNV*8{;fHYQBoaRS5Rwie;lmFh!H!lg*R}$D z_#vFe@acyjKKu~ChaUoXLQ{MhZ+AqTSuQp%(nCDSa7b68m2n-h(CNNY$ z4)6R=9B2M_rb|-+(?ga4Jod7<&QynvpBL%n(^5LCut1glo1gZ((j00BY!#kl|StOMNG6gaO zf&%FR0Ug5smyR>%M4Ki0Gy(N(ZFWl)ND)XDND`x%0`Cf(6*wdCj=3fv>GTHtPhy98DVtQ5FYAbf|=3W4PUB?83) zMFPtNmI^EpSS(N|P#_QySR}A8W`AO^K-}gF%oCU^aJ#^50&@gr3(OLjDKJCeR)OiU zW9FxcXsSTIK%T%Y0#gJg3rrH2C@?`_yui%@;{?XW?9UhxjTRUsFj8QIz;JIu{psKWsJQ(Hu} z1ZoP@5U4J2gFrQbssdF6DhpH+$P~yB2x*s;-89xuVY~m zy(aLgz$*eT3%n$7RN#ofivouQ4hb9-I3VzX!1HW>kdWs@^sK-$0{aD?7T727l)zqr zJpxY(@O=_d>=wx`ft_rB;P$wPb_no|5>9-h1Z)$hM+F`c*edX_z!rhc0-FRL64(fU z{Xx(hMD(D*0|NI8+$XSJV4c8Pfi(hAfqMn+5m+s7w*o8z(jt7L1gsLbl>&DP+##?+ zfbWy=#rH`-u{ae8EE8BNutZ=nK^Wc&MN}XV5m+R!P$1S|7l>rOz&wGu0=Em?CNM`} zHUmCDJWE6~1!f4`DllDOn!r?ne1SZHTLkz%i5&8M5->@eCh8E5Oc2p{ftv-!35*pO zBQRQEl)y-V5dy;nh6xN67$OiJER-vdBQQu{puhlu{sR33`U>V8CcOWgV9mh^QaC_rb;eZv0IAP{F9shB&JE@UZwy+~zfFHNeM|bH z^kL~O)7^n9ffIr4fu(^lfwqBk|26;H{@wl+{_tdfmcNSM;QP?G-*=C18a8Ux^d)#d z@gDH5_s;hA^VavKcs}>hj!p*(X@?-lh?G=|rf*V9;X~TNKrm8LHQElB z71bqTtP)GYv%b)u5LBjhET-??gTgaT5><*tfgRvVCo`6aeE||=#5DG?MlhBL>;V50 ziNJRU^hE6SAQ6FBBK9IYe=HHZe4#%e@Wmo{JU{|(EP}@qNZ`?Tl!vtKNhENqwZB-w zAJVpYNDv*-)Qt_nA?;DVcIq3-L)s${AW4qW8_Gl4R#vmqhH@3o!*w{E%X&Bub3|6& z#(gOPDqFmyVu|H;Gg613&9U5WQbnE?%k3syne@fXA??A0(C^4?s@fv$F@1k0LVUnP zA{=|5jx6|o4n+5}C^`BDN>F8JeG=&;>D~+wt+SD+B76JpD~Q&zr~;L(%Fh}f=|rbJ zY@~9z$3@rJ%B8m#Y_?X(i7zjRi_VIA7l_9K!Bm6@H$?Ka1nPMdF{u;ZNaB zi>hj8atg2ki}ovrrm@B(Nx@VOaiXLkpRXrK3i3Dw<0S>Ru=~xD0<1n)DH_JIQcN!miumF%tXOq|mRp9xbtt@zC`siG4I*kCfO);ToZhkl07E`*4YUL>=-! zOky9w;SY_TqTSe`;Wly~BJmGl_rVhXU=A-=;?L#l9Em@N;~ymP4`TO$68}Jse}Ke4 zki+lK<*$0=08T+aNkL!M=qoAc!y)#O6!hln-jae|oPu7Gf}ZT&Q&P}_Q_w?F&;#M4 z#6rib}`X)x9jbtGbHfeRqC&k8Twgj zyP0aw?M$IxaNQ+(>Pfn8%h%W;g=;LAYU3vN>!*D2rmUhFI2BfHi1_{jbP__pm@2l{ zo-v%!(r2dkO|P3?G4M&?g}?)W+XDRq^#jTN&-@4d5BP8M_xIQLn|xnnyr1z@#;S}d z8Ce;XgMS4-3_crN8=MjB6|5CZNI#eUeEPbInH7GoU_D!54~{^bQlV>wsui@v4-%h_ z2G6_PVN?9q@h``3iVw#RiEkEfkNZCESlrgQg18ZJt>gU0pN(%CcN$BK)!3&rQR{#_TF^QHP73g-JTVmiJs1$D(=7B@4NT8?{??A zyJL%Xg6llCXs>n6#I3(RzB}}#^Qd#9bG|b-?7R`5)cF?Q#o6j8aEx%YbhzzT${Z~D zlkKE!yKR|mjI9kmvGb$#gms&Bv2`T&XuB+zEypceEsL>7yB+puUp1dHKV~j6k2SY7 z`_g_&JDIjUZAseLwDxHM)6b^UrX8kb_{4pCQ!w>f>RbA`k|W#UXvs2vhBN=!zj8}S zOYgqvVz}KM+Ka}}Q5r+*bgKLgvFmDd-Cp0j7;24*hkiS8Z^ezLZS2}f?rrpqn4wl2 zUTbN5Ev@9M z#&t6lw>RZ-T&RJS1Wieh3_<wx3 zZ6OZT;_C)-UDHAy>PvR2SETEDlARlHjSSS4>{M0RsUz8`s@!QSAYBT~ z#@7K#G=`{F8wC(Ob;9LRXH|SZ0W#LXu@5TE$^ctf;*B2KM_D)5CSRV|wUe&hvFn7; zPe`*%-y4fPNm|@r`k1r3_OdU81zB0|Hi+Dqvq*sG6&x@$)gNU%~Lm3G%&43J=Q zOar5H6-F0*AlO~QU|b0*>BE=q+Mxi}^8Bd}1aXP04`NAp&KJT`Fo!iZ_U^7d>r^89 zH?b)8Cy?OfSR$Sdkl>-121e(~%lud(Fc?>YoLC~B^5F8uSR$~h$Zn4%Vz)2!1J<5= z7mEN#EGfaOu?Ti1kYKYu2ws*v{Y zr>cKHRpIgM-%nLCrvCR+)xV#rs099Bc&e)RpMR>tiI-Di+tL1gI(w;oZ~uQeogIgu z&ZohUex^gVI;!DwNay{l6s=*d8f(#+4%r4A+V?p`^bU;9bcl&=`-i8zY{PB!$={rR zR&tZl?0;5D2z`#zkY_>ZZ_jkdHq3#_O#Q8AwqZIB)rVk4On_4uE+W6Tmd$T|YdTeb zI^|cL>5y&6uS=q7<&sqTOa~|-G!)8I>NRRla<(C_C5iIO`73><1C;o)26^R`N}cHd zB@XPx^C&_tL5ng~-s6JZKyB1{2Igel0U$y`M=6Q+P>!W7UB{Uq2=oru~Bv=L}6 z&`O}Cz)b=z1eyyp6KE=Mqd*gZ#spzR-$+Ca1sVv{7pNytSD=nSZGl<>H3e!2R2R5G zpc(@f(^eHx6@khEl>{;cG6aGG=>h=(zW`pYqQxMGUICAQTZeF=OGHiqhk#wcCSVn? z2$%)Z2+rg4ZUV^yNdgrGDhPxVg%Skf1>yvZ0tSL}_(q-%1%C26T zO7IcB@+a_fSm>(2PXa#*ToL#|;IhCaf$s&r6Zlr(8-cF{z7qJ7?GIA)1&Kb?3O*C~ zRNxbV3j*f_&Ix=h@R7iW0v`yxPw;_Oa8}?9+aHMD5z*TMZxOt&6`U40C2&&UguojD zuL~R}cn_cV6nItO6@ixlus=|GNkm5ljtIOca9H4wz(Iin0xt+WFYuhevjWc$ysNKa z4TnJcMD&!vUV%LVPYOICuv=i4z)pe31$GELCa_$lS+KT3p8gl-jhSYV65W`Rut z4+(4(*dXwrzykvJ3*0BLp5P1?v#n*q*J=f#0{05sBd}WFZh^Z5Rtc;WxKrQ`ffWMF zbqE)fh^Uz09j#!gz!HJQ0)+wv0ug~l0t*GWZzI43BAG8RPar&3=yrkI1m+0L7MLY4 zQ(%U`tpd{prU^_H$QQ^HxFwdxDI%IIFiBvdzyyKu0yh)jQ=wx7MhlD*7%4D9V7S0A zwmVo920m=;8lWSTI6McmjsRq93gm3iyRg>BydpRfWQj^;pc^(6L?nO8G-!- zuWFHf0#6C-71$&2q`(sby9IU$>=bxBEVM)5F@fy_uV|4+1s)ODD)6wt7JAIZSSGMkV2QwDfkJ@-0PGKRHpdcGCQ$aVt6a`%YV-#co1}o?S=mW@(bOv=*qE3Le3OWLsD(C>HtDrrgYUr>Q TX#?;pXbrF_Xaz`8(DMHSp^3}P delta 85391 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 A&j0`b delta 62 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 + fprintf(p_file, "define_num:%d\n",p_define->num); + Node *pd_node = p_define->define_list->h_node, *pt_node = p_define->type_list->h_node; + for (int i = 0 ; i < p_define->num; i++){ + fprintf(p_file, "value[%d]:%s/%s\n",i,(char *)pd_node->value, (char *)pt_node->value); + pd_node = pd_node->n_node; + pt_node = pt_node->n_node; + } + fprintf(p_file, "END"); + return 0; +} + +int *set_valueint(int integer){ + int *p_integer = (int *) malloc(sizeof(int)); + *p_integer = integer; + return p_integer; +} + +double *set_valuefloat(double fnum){ + double *p_fnum = (double *)malloc(sizeof(double)); + *p_fnum = fnum; + return p_fnum; +} + +char *set_valuestring(char *string){ + char *p_string = (char *) malloc(sizeof(char) * 256); + strcpy(p_string, string); + return p_string; +} + +int table_tofile(FILE *p_file, Table *p_table){ + fprintf(p_file, "!#TABLE_INFO\n"); + fprintf(p_file, "id:%ld\n",p_table->id); + fprintf(p_file, "item_num:%ld\n",p_table->num); + fprintf(p_file, "define_id:%ld\n", p_table->p_define->id); + Node *pi_node = p_table->item_list->h_node; + Item *p_item = (Item *)pi_node->value; + fprintf(p_file, "\n"); + fprintf(p_file, "!#ITEM_INFO\n"); + while (pi_node != NULL){ + p_item = (Item *)pi_node->value; + fprintf(p_file, "id:%ld\n",p_item->id); + fprintf(p_file, "data_num:%d\n",p_item->data_num); + fprintf(p_file, "define_id:%ld\n",p_item->p_define->id); + Node *pt_node = p_item->p_define->type_list->h_node; + Node *pd_node = p_item->data_list->h_node; + for (int i = 0; i < (p_item->p_define->num); i++){ + if (!strcmp((char *)pt_node->value, "int")){ + fprintf(p_file, "value[%d]:%d\n",i,*((int *)pd_node->value)); + } + else if(!strcmp((char *)pt_node->value, "string")){ + fprintf(p_file, "value[%d]:%s\n",i,((char *)pd_node->value)); + } + else if(!strcmp((char *)pt_node->value, "float")){ + fprintf(p_file, "value[%d]:%lf\n",i,*((double *)pd_node->value)); + } + else{ + fprintf(p_file, "vlaue[%d]:not_avaliable\n",i); + } + pt_node = pt_node->n_node; + pd_node = pd_node->n_node; + } + fprintf(p_file, "END\n"); + pi_node = pi_node->n_node; + } + return 0; +} + +Item *build_item(Define *p_define){ + Item *p_item = (Item *)malloc(sizeof(Item)); + p_item->id = get_id(); + p_item->data_list = build_list(); + p_item->data_num = 0; + p_item->p_define = p_define; + p_item->avaliable = 1; + p_item->safe = 1; + Node *p_node = build_node(); + p_node->value = p_item; + add_node(items_bin,p_node); + return p_item; +} + +int add_define(Define *p_define, char *define, char *type){ + Node *pd_node = build_node(); + pd_node->value = set_valuestring(define); + + Node *pt_node = build_node(); + pt_node->value = set_valuestring(type); + + add_node(p_define->define_list, pd_node); + add_node(p_define->type_list, pt_node); + p_define->num++; + return 0; +} + + + +int add_data(Item *p_item, void *value){ + if (p_item->data_num >= p_item->p_define->num){ + DEBUG_CREATE_INFO *t_deg_crt_ifo = get_degcrtifo();; + t_deg_crt_ifo->type = ERROR; + t_deg_crt_ifo->showvar = 1; + t_deg_crt_ifo->variable = &p_item; + t_deg_crt_ifo->message = "data is more than define."; + debug_printf(t_deg_crt_ifo); + } + Node *p_node = build_node(); + p_node->value = value; + add_node(p_item->data_list, p_node); + p_item->data_num++; + return 0; +} + +Define *build_define(void){ + Define *p_define = (Define *) malloc(sizeof(Define)); + p_define->id = get_id(); + p_define->num = 0; + p_define->define_list = build_list(); + p_define->type_list = build_list(); + p_define->avaliable = 1; + p_define->safe = 1; + Node *p_node = build_node(); + p_node->value = (void *)p_define; + add_node(defines_bin, p_node); + return p_define; +} + +int free_define(Define *p_define){ + free_list(p_define->define_list); + free_list(p_define->type_list); + p_define->avaliable = -1; + p_define->safe = -1; + free(p_define); + return 0; +} + +int free_item(Item *p_item){ + p_item->avaliable = -1; + p_item->safe = -1; + free_list(p_item->data_list); + free(p_item); + return 0; +} + +Table *build_table(Define *p_define){ + Table *p_table = (Table *)malloc(sizeof(Table)); + p_table->id = get_id(); + p_table->item_list = build_list(); + p_table->p_define = p_define; + p_table->num = 0; + p_table->avaliable = 1; + p_table->safe = 1; + return p_table; +} + +int add_item(Table *p_table, Item *p_item,int engineer){ + if (engineer == 0){ + if(p_item->p_define->id != p_table->p_define->id){ + DEBUG_CREATE_INFO *t_deg_crt_ifo = get_degcrtifo();; + t_deg_crt_ifo->type = ERROR; + t_deg_crt_ifo->showvar = 1; + t_deg_crt_ifo->variable = &p_item; + t_deg_crt_ifo->message = "item's define is different form the table's."; + debug_printf(t_deg_crt_ifo); + } + } + Node *p_node = build_node(); + p_node->value = p_item; + add_node(p_table->item_list,p_node); + p_table->num++; + return 0; +} + +int free_table(Table *p_table){ + p_table->avaliable = -1; + p_table->safe = -1; + free(p_table); + return 0; +} + +void list_init(void){ + items_bin = build_list(); + defines_bin = build_list(); +} + +void list_delinit(void){ + Node *p_node = items_bin->h_node; + while (p_node != NULL){ + Item *p_item = (Item *)p_node->value; + if (p_item->avaliable == 1){ + free_item(p_item); + } + p_node = p_node->n_node; + } + free_list(items_bin); +} + +int file_totable(FILE *p_file, Table *p_table){ + char f_string[256]; + int table_info = 0, item_info = 0; + int new_item = 0; + int index_value = 0; + Item *p_item = NULL; + while(fscanf(p_file, "%s",f_string) != EOF){ + if (!strcmp(f_string, "!#TABLE_INFO")) { + table_info = 1; + item_info = 0; + continue; + } + if (!strcmp(f_string, "!#ITEM_INFO")) { + table_info = 0; + item_info = 1; + new_item = 1; + index_value = 0; + continue; + } + if (table_info == 1){ + File_v *p_fv = get_filevalue(f_string); + if(!strcmp(p_fv->head, "id")){ + p_table->id = atol(p_fv->value); + } + else if (!strcmp(p_fv->head, "item_num")){ + p_table->num = atol(p_fv->value); + } + else if (!strcmp(p_fv->head, "define_id")){ + Define *p_define = find_defineByid(atol(p_fv->value)); + p_table->p_define = p_define; + } + else{ + + } + free(p_fv); + } + else if (item_info == 1){ + if (new_item == 1){ + p_item = build_item(NULL); + add_item(p_table, p_item,1); + index_value = 0; + new_item = 0; + } + if (!strcmp(f_string, "END")){ + new_item = 1; + continue; + } + File_v *p_fv = get_filevalue(f_string); + if(!strcmp(p_fv->head, "id")){ + p_item->id = atol(p_fv->value); + } + else if (!strcmp(p_fv->head, "data_num")){ + p_item->data_num = atoi(p_fv->value); + } + else if (!strcmp(p_fv->head, "define_id")){ + Define *p_define = find_defineByid(atol(p_fv->value)); + p_item->p_define = p_define; + } + if(p_fv->if_value){ + Define *p_define = p_item->p_define; + char *type = get_typeByindex(p_define, index_value); + index_value++; + if(!strcmp(type, "string")){ + add_data(p_item, (void *)set_valuestring(p_fv->value)); + } + else if(!strcmp(type, "int")){ + add_data(p_item, (void *) set_valueint(atoi(p_fv->value))); + } + else if(!strcmp(type, "float")){ + add_data(p_item, (void *)set_valuefloat(atof(p_fv->value))); + } + else{ + + } + } + free(p_fv); + } + } + + return 0; +} + +File_v *get_filevalue(char *f_string){ + char p_char = '\0'; + unsigned long colon_index = 0; + p_char = f_string[colon_index]; + unsigned long fstr_len = strlen(f_string); + while (p_char != ':' && colon_index+1 < fstr_len){ + colon_index++; + p_char = f_string[colon_index]; + } + File_v *p_fv = (File_v *)malloc(sizeof(File_v)); + p_fv->if_value = 0; + strncpy(p_fv->head, f_string, colon_index); + strncpy(p_fv->value, f_string+colon_index+1, fstr_len-colon_index); + char c_value[8]; + strncpy(c_value, f_string, 5); + if(!strcmp(c_value, "value")){ + p_fv->if_value = 1; + char c_index[16]; + long len_head = strlen(p_fv->head); + strncpy(c_index, p_fv->head+5, len_head-1); + p_fv->inedx = atol(c_index); + } + return p_fv; +} + +Define *find_defineByid(long id){ + List *p_list = defines_bin; + Node *p_node = p_list->h_node; + Define *p_define = NULL; + Define *ps_define = NULL; + while(p_node != NULL){ + p_define = (Define *) p_node->value; + if (p_define->id == id){ + ps_define = p_define; + break; + } + p_node = p_node->n_node; + } + return ps_define; +} + +char * get_typeByindex(Define *p_define,int index){ + Node * p_type = get_locationByindex(p_define->type_list, index); + return (char *) p_type->value; +} + +int file_todefine(FILE *p_file){ + Define *p_define = NULL; + char f_string[128]; + int read_todefine = 0; + while(fscanf(p_file,"%s",f_string) != EOF){ + if (!strcmp(f_string, "!#define")){ + read_todefine = 1; + p_define = build_define(); + continue; + + } + if (!strcmp(f_string, "END")){ + read_todefine = 0; + continue; + } + if (read_todefine == 1){ + File_v *p_fv = get_filevalue(f_string); + + if (!strcmp(p_fv->head, "id")){ + p_define->id = atol(p_fv->value); + } + else if (!strcmp(p_fv->head, "define_num")){ + p_define->num = atoi(p_fv->value); + } + else if (p_fv->if_value == 1){ + DFile_v *p_dfv= get_definefilevalue(p_fv->value); + add_define(p_define, p_dfv->message, p_dfv->type); + free(p_dfv); + } + free(p_fv); + } + } + return 0; +} + +DFile_v *get_definefilevalue(char *fv_string){ + DFile_v *p_dfv = (DFile_v *)malloc(sizeof(DFile_v)); + unsigned long fvstr_len = strlen(fv_string); + char p_char = '\0'; + unsigned long bar_index = 0; + p_char = fv_string[bar_index]; + while (p_char != '/' && bar_index+1 < fvstr_len){ + bar_index++; + p_char = fv_string[bar_index]; + } + + strncpy(p_dfv->message, fv_string, bar_index); + strncpy(p_dfv->type,fv_string+bar_index+1 , fvstr_len-bar_index); + + return p_dfv; +} diff --git a/filesys/Container.h b/filesys/Container.h new file mode 100644 index 0000000..ef74e8f --- /dev/null +++ b/filesys/Container.h @@ -0,0 +1,96 @@ +// +// Container.h +// filesys +// +// Created by Saturneric on 2017/7/1. +// Copyright © 2017年 Bakantu Eric. All rights reserved. +// + +#ifndef Container_h +#define Container_h + +#include "Debug.h" +#include "List.h" +#include "ID.h" + +typedef struct define{ + long id; + int avaliable; + int safe; + int num; + List *define_list; + List *type_list; +} Define; + +typedef struct item{ + long id; + int avaliable; + int safe; + Define *p_define; + List *data_list; + int data_num; +} Item; + +typedef struct table{ + long id; + int avaliable; + int safe; + Define *p_define; + List *item_list; + long num; +}Table; + +typedef struct bin{ + long id; + int avaliable; + int safe; + List *item_list; +} Bin; + +typedef struct file_value{ + char head[128]; + char value[128]; + long inedx; + int if_value; +}File_v; + +typedef struct define_file_value{ + char message[128]; + char type[128]; +} DFile_v; + +extern int table_tofile(FILE *p_file, Table *p_table); +extern int define_tofile(FILE *p_file, Define *p_define); +extern int file_totable(FILE *, Table *); +extern int file_todefine(FILE *p_file); + +extern File_v *get_filevalue(char *); +extern char * get_typeByindex(Define *, int); +extern DFile_v *get_definefilevalue(char *); + +extern int *set_valueint(int); +extern double *set_valuefloat(double); +extern char *set_valuestring(char *); + +extern Item *build_item(Define *); +extern int add_data(Item *, void *); +extern int free_item(Item *); + +extern Define *build_define(void); +extern int add_define(Define *, char *, char *); +extern int free_define(Define *); + +extern Table *build_table(Define *p_define); +extern int add_item(Table*, Item *,int); +extern int free_table(Table *); + +extern Define *find_defineByid(long id); + +extern void list_init(void); +extern void list_delinit(void); + +extern List *defines_bin; +extern List *items_bin; + + +#endif /* Container_h */ diff --git a/filesys/List.c b/filesys/List.c index cef1154..44f10c7 100644 --- a/filesys/List.c +++ b/filesys/List.c @@ -10,7 +10,6 @@ #include "Debug.h" #include "ID.h" -List *items_bin = NULL; List *build_list(void){ List *p_list = (List *) malloc(sizeof(List)); @@ -69,7 +68,6 @@ int del_node(List *p_list, Node *p_node){ int free_node(Node *p_node){ p_node->avaliable = -1; p_node->safe = -1; - free(p_node ->value); free(p_node); return 0; } @@ -201,195 +199,3 @@ Node *get_locationBystring(List *p_list, char *string){ } return s_node; } - -int *set_valueint(int integer){ - int *p_integer = (int *) malloc(sizeof(int)); - *p_integer = integer; - return p_integer; -} - -double *set_valuefloat(double fnum){ - double *p_fnum = (double *)malloc(sizeof(double)); - *p_fnum = fnum; - return p_fnum; -} - -char *set_valuestring(char *string){ - char *p_string = (char *) malloc(sizeof(char) * 256); - strcpy(p_string, string); - return p_string; -} - -int table_tofile(FILE *p_file, Table *p_table){ - fprintf(p_file, "!#TABLE_INFO\n"); - fprintf(p_file, "id:%ld\n",p_table->id); - fprintf(p_file, "item_num:%d\n",p_table->num); - fprintf(p_file, "define_id:%ld\n", p_table->p_define->id); - Node *pi_node = p_table->item_list->h_node; - Item *p_item = (Item *)pi_node->value; - fprintf(p_file, "\n"); - fprintf(p_file, "!#ITEM_INFO\n"); - while (pi_node != NULL){ - p_item = (Item *)pi_node->value; - fprintf(p_file, "id:%ld\n",p_item->id); - fprintf(p_file, "data_num:%d\n",p_item->data_num); - fprintf(p_file, "define_id:%ld\n",p_item->p_define->id); - Node *pt_node = p_item->p_define->type_list->h_node; - Node *pd_node = p_item->data_list->h_node; - for (int i = 0; i < (p_item->p_define->num); i++){ - if (!strcmp((char *)pt_node->value, "int")){ - fprintf(p_file, "value[%d]:%d\n",i,*((int *)pd_node->value)); - } - else if(!strcmp((char *)pt_node->value, "string")){ - fprintf(p_file, "value[%d]:%s\n",i,((char *)pd_node->value)); - } - else if(!strcmp((char *)pt_node->value, "float")){ - fprintf(p_file, "value[%d]:%lf\n",i,*((double *)pd_node->value)); - } - else{ - fprintf(p_file, "vlaue[%d]:not_avaliable\n",i); - } - pt_node = pt_node->n_node; - pd_node = pd_node->n_node; - } - fprintf(p_file, "END\n"); - pi_node = pi_node->n_node; - } - return 0; -} - -Item *build_item(Define *p_define){ - Item *p_item = (Item *)malloc(sizeof(Item)); - p_item->id = get_id(); - p_item->data_list = build_list(); - p_item->data_num = 0; - p_item->p_define = p_define; - p_item->avaliable = 1; - p_item->safe = 1; - Node *p_node = build_node(); - p_node->value = p_item; - add_node(items_bin,p_node); - return p_item; -} - -int add_define(Define *p_define, char *define, char *type){ - Node *pd_node = build_node(); - pd_node->value = set_valuestring(define); - - Node *pt_node = build_node(); - pt_node->value = set_valuestring(type); - - add_node(p_define->define_list, pd_node); - add_node(p_define->type_list, pt_node); - p_define->num++; - return 0; -} - - - -int add_data(Item *p_item, void *value){ - if (p_item->data_num >= p_item->p_define->num){ - DEBUG_CREATE_INFO *t_deg_crt_ifo = get_degcrtifo();; - t_deg_crt_ifo->type = ERROR; - t_deg_crt_ifo->showvar = 1; - t_deg_crt_ifo->variable = &p_item; - t_deg_crt_ifo->message = "data is more than define."; - debug_printf(t_deg_crt_ifo); - } - Node *p_node = build_node(); - p_node->value = value; - add_node(p_item->data_list, p_node); - p_item->data_num++; - return 0; -} - -Define *build_define(void){ - Define *p_define = (Define *) malloc(sizeof(Define)); - p_define->id = get_id(); - p_define->num = 0; - p_define->define_list = build_list(); - p_define->type_list = build_list(); - p_define->avaliable = 1; - p_define->safe = 1; - return p_define; -} - -int free_define(Define *p_define){ - free_list(p_define->define_list); - free_list(p_define->type_list); - p_define->avaliable = -1; - p_define->safe = -1; - free(p_define); - return 0; -} - -int free_item(Item *p_item){ - p_item->avaliable = -1; - p_item->safe = -1; - free_list(p_item->data_list); - free(p_item); - return 0; -} - -Table *build_table(Define *p_define){ - Table *p_table = (Table *)malloc(sizeof(Table)); - p_table->id = get_id(); - p_table->item_list = build_list(); - p_table->p_define = p_define; - p_table->avaliable = 1; - p_table->safe = 1; - return p_table; -} - -int add_item(Table *p_table, Item *p_item){ - if(p_item->p_define->id != p_table->p_define->id){ - DEBUG_CREATE_INFO *t_deg_crt_ifo = get_degcrtifo();; - t_deg_crt_ifo->type = ERROR; - t_deg_crt_ifo->showvar = 1; - t_deg_crt_ifo->variable = &p_item; - t_deg_crt_ifo->message = "item's define is different form the table's."; - debug_printf(t_deg_crt_ifo); - } - Node *p_node = build_node(); - p_node->value = p_item; - add_node(p_table->item_list,p_node); - p_table->num++; - return 0; -} - -int free_table(Table *p_table){ - free_list(p_table->item_list); - p_table->avaliable = -1; - p_table->safe = -1; - free(p_table); - return 0; -} - -void list_init(void){ - items_bin = build_list(); -} - -void list_delinit(void){ - Node *p_node = items_bin->h_node; - while (p_node != NULL){ - Item *p_item = (Item *)p_node->value; - if (p_item->avaliable == 1){ - free_item(p_item); - } - p_node = p_node->n_node; - } - free_list(items_bin); -} - -int define_tofile(FILE *p_file, Define *p_define){ - fprintf(p_file, "!#define\n"); - fprintf(p_file, "id:%ld\n",p_define->id); - Node *pd_node = p_define->define_list->h_node, *pt_node = p_define->type_list->h_node; - for (int i = 0 ; i < p_define->num; i++){ - fprintf(p_file, "%s/%s\n",(char *)pd_node->value, (char *)pt_node->value); - pd_node = pd_node->n_node; - pt_node = pt_node->n_node; - } - fprintf(p_file, "END"); - return 0; -} diff --git a/filesys/List.h b/filesys/List.h index 5975ced..8af9a35 100644 --- a/filesys/List.h +++ b/filesys/List.h @@ -33,42 +33,6 @@ typedef struct list{ Node *l_node; } List; -typedef struct define{ - long id; - int avaliable; - int safe; - int num; - List *define_list; - List *type_list; -} Define; - -typedef struct item{ - long id; - int avaliable; - int safe; - Define *p_define; - List *data_list; - int data_num; -} Item; - -typedef struct table{ - long id; - int avaliable; - int safe; - Define *p_define; - List *item_list; - int num; -}Table; - -typedef struct bin{ - long id; - int avaliable; - int safe; - List *item_list; -} Bin; - -extern List *items_bin; - extern List *build_list(void); extern Node *build_node(void); extern int free_list(List *); @@ -82,28 +46,4 @@ extern Node *get_locationByid(List *,long); extern Node *get_locationBystring(List *, char *); -extern int table_tofile(FILE *p_file, Table *p_table); -extern int define_tofile(FILE *p_file, Define *p_define); -extern int file_totable(FILE *, List *); - -extern int *set_valueint(int); -extern double *set_valuefloat(double); -extern char *set_valuestring(char *); - -extern Item *build_item(Define *); -extern int add_data(Item *, void *); -extern int free_item(Item *); - -extern Define *build_define(void); -extern int add_define(Define *, char *, char *); -extern int free_define(Define *); - -extern Table *build_table(Define *p_define); -extern int add_item(Table*, Item *); -extern int free_table(Table *); - -extern void list_init(void); -extern void list_delinit(void); - - #endif /* List_h */ diff --git a/filesys/Support.h b/filesys/Support.h index 5a49f8d..a0d3beb 100644 --- a/filesys/Support.h +++ b/filesys/Support.h @@ -10,5 +10,7 @@ #define Support_h #include "List.h" +#include "ID.h" +#include "Container.h" #endif /* Support_h */ diff --git a/filesys/main.c b/filesys/main.c index 6d2c46a..098c05f 100644 --- a/filesys/main.c +++ b/filesys/main.c @@ -10,6 +10,7 @@ int main(int argc, char *argv[]){ add_define(p_define, "Name", "string"); add_define(p_define, "Age", "int"); add_define(p_define, "Power", "float"); + Table *p_table = build_table(p_define); Item *items[3]; @@ -17,19 +18,19 @@ int main(int argc, char *argv[]){ add_data(items[0], set_valuestring("Tim")); add_data(items[0], set_valueint(23)); add_data(items[0], set_valuefloat(100.0)); - add_item(p_table, items[0]); + add_item(p_table, items[0],0); items[1] = build_item(p_define); add_data(items[1], set_valuestring("Pat")); - add_data(items[1], set_valueint(33)); + add_data(items[1], set_valueint(33)); add_data(items[1], set_valuefloat(120.0)); - add_item(p_table, items[1]); + add_item(p_table, items[1],0); items[2] = build_item(p_define); add_data(items[2], set_valuestring("Tom")); add_data(items[2], set_valueint(43)); add_data(items[2], set_valuefloat(130.0)); - add_item(p_table, items[2]); + add_item(p_table, items[2],0); FILE *fp = fopen("table.data", "w"); table_tofile(fp, p_table); @@ -41,7 +42,17 @@ int main(int argc, char *argv[]){ free_define(p_define); free_table(p_table); - //list_delinit(); + + FILE *drfp = fopen("define.settings", "r"); + file_todefine(drfp); + fclose(drfp); + + FILE *rfp = fopen("table.data", "r"); + Table *pr_table = build_table(NULL); + file_totable(rfp, pr_table); + fclose(rfp); + + list_delinit(); return 0; }