ΠΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ ΠΊΠΎΠΏΠΈΡ ΠΈ ΠΎΠ±ΠΌΠ΅Π½, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΡΠΎΠΉΡΠΈΠ²Ρ ΠΊ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡΠΌ ΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΎΡΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ ΡΠ΅Π±Ρ ΡΠ΅Π±Π΅.
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ ΡΠ°Π·Π΄Π΅Π»Π° 13.3Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ 13.29. ΠΠ±ΡΡΡΠ½ΠΈΡΠ΅, ΠΏΠΎΡΠ΅ΠΌΡ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ swap() Π² Π²ΡΠ·ΠΎΠ²Π΅ swap(HasPtr&, HasPtr&) Π½Π΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΉ ΡΠ΅ΠΊΡΡΡΠΈΠΈ.
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ 13.30. ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ swap() Π΄Π»Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π²Π΅ΡΡΠΈΠΈ ΠΊΠ»Π°ΡΡΠ° HasPtr. Π‘Π½Π°Π±Π΄ΠΈΡΠ΅ ΡΠ²ΠΎΡ ΡΡΠ½ΠΊΡΠΈΡ swap() ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ Π²ΡΠ²ΠΎΠ΄Π° ΠΏΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΡ ΠΎ Π΅Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ.
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ 13.31. Π‘Π½Π°Π±Π΄ΠΈΡΠ΅ ΡΠ²ΠΎΠΉ ΠΊΠ»Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ < ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ Π²Π΅ΠΊΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΊΠ»Π°ΡΡΠ° HasPtr. ΠΡΡΠ°Π²ΡΡΠ΅ Π² Π²Π΅ΠΊΡΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², Π° Π·Π°ΡΠ΅ΠΌ ΠΎΡΡΠΎΡΡΠΈΡΡΠΉΡΠ΅ Π΅Π³ΠΎ (sort()). ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΠΊΠΎΠ³Π΄Π° Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ swap().
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ 13.32. ΠΠΎΠ»ΡΡΠΈΡ Π»ΠΈ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΏΠΎΠ΄ΠΎΠ±Π½Π°Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π²Π΅ΡΡΠΈΡ ΠΊΠ»Π°ΡΡΠ° HasPtr ΠΎΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ swap()? ΠΡΠ»ΠΈ Π΄Π°, ΡΠΎ Π² ΡΠ΅ΠΌ ΡΡΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ? ΠΡΠ»ΠΈ Π½Π΅Ρ, ΡΠΎ ΠΏΠΎΡΠ΅ΠΌΡ?
13.4. ΠΡΠΈΠΌΠ΅Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ ΡΡΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠΎΠ², ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΡΡΡΠΈΡ ΡΠ΅ΡΡΡΡΡ, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ Π½Π΅ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½Π°Ρ ΠΏΡΠΈΡΠΈΠ½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ-ΡΠ»Π΅Π½ΠΎΠ². Π£ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π² ΡΡΠ΅ΡΠ΅ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΡ , Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ°, Π½ΡΠΆΠ΄Π°ΡΡΠ΅Π³ΠΎΡΡ Π² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠ»Π°ΡΡΠ° Π΄Π»Ρ ΡΡΠ΅ΡΠ°, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΄Π²Π° ΠΊΠ»Π°ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΡΡΡ. ΠΡΠΈ ΠΊΠ»Π°ΡΡΡ, Message ΠΈ Folder, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ (ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠΉ) ΠΏΠΎΡΡΡ ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΠΎΠ³Π»ΠΎ Π±Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅. ΠΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠ°ΠΏΠΊΠ°Ρ . ΠΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Π° ΠΊΠΎΠΏΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π΅ΡΠ»ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ, ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΠΏΡΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² Π»ΡΠ±ΠΎΠΉ ΠΈΠ· ΠΏΠ°ΠΏΠΎΠΊ.
ΠΠ»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² ΠΊΠ°ΠΊΠΈΡ ΠΏΠ°ΠΏΠΊΠ°Ρ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° Message Π±ΡΠ΄Π΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ Π½Π°Π±ΠΎΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΊΠ»Π°ΡΡΠ° Folder, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ½ΠΈ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ, Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° Folder Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π½Π°Π±ΠΎΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ Π½Π° Π΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΊΠ»Π°ΡΡΠ° Message. ΠΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΠ΅Ρ ΡΠΈΡ. 13.1.
Π ΠΈΡ. 13.1. ΠΡΠΎΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠΎΠ² Message ΠΈ Folder
ΠΠ»Π°ΡΡ Message Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ save() ΠΈ remove() Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΈΠ· ΠΏΠ°ΠΏΠΊΠΈ. ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΊΠ»Π°ΡΡΠ° Message ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, Π½ΠΎ Π½Π΅ ΠΏΠ°ΠΏΠΊΡ. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΏΠ°ΠΏΠΊΡ, ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΡΠ·Π²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ save().
ΠΠΎΡΠ»Π΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΏΠΈΡ ΠΈ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π» Π±ΡΠ΄ΡΡ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΠΊΠ»Π°ΡΡΠ° Message, Π½ΠΎ ΠΎΠ±Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ Π² ΡΠΎΠΌ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠΌ Π½Π°Π±ΠΎΡΠ΅ ΠΏΠ°ΠΏΠΎΠΊ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΠΊΠΎΠΏΠΈΡΡΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΈ Π½Π°Π±ΠΎΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ Π½Π° ΠΏΠ°ΠΏΠΊΡ. ΠΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π½Π΅Π΄Π°Π²Π½ΠΎ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° Message ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΈΠ· ΡΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΊΠ»Π°ΡΡΠ° Folder.
ΠΠΎΡΠ»Π΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° Message Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ. ΠΠΎΡΡΠΎΠΌΡ Π΅Π³ΠΎ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ΄Π°Π»ΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π½Π° ΡΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° Message ΠΈΠ· Π²ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΊΠ»Π°ΡΡΠ° Folder, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π»ΠΈ ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅.
ΠΠΎΠ³Π΄Π° ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° Message ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ Π΄ΡΡΠ³ΠΎΠΌΡ, ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ (contents) Π»Π΅Π²ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π·Π°ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠ°ΠΊΠΎΠ²ΡΠΌ ΠΏΡΠ°Π²ΠΎΠ³ΠΎ. Π‘Π»Π΅Π΄ΡΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π°Π±ΠΎΡ ΠΏΠ°ΠΏΠΎΠΊ, ΡΠ΄Π°Π»ΠΈΠ² Π»Π΅Π²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° Message ΠΈΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΊΠ»Π°ΡΡΠ° Folder ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π² Π½ΠΈΡ ΠΏΡΠ°Π²ΡΠΉ.
ΠΠ»ΡΠ΄Ρ Π½Π° ΡΡΠΎΡ ΡΠΏΠΈΡΠΎΠΊ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΈ Π΄Π΅ΡΡΡΡΠΊΡΠΎΡ, ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΡ ΠΊΠΎΠΏΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ΄Π°Π»ΡΡΡ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΠΏΠ°ΠΏΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° Π½Π΅Π³ΠΎ. Π’ΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅ ΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΊΠΎΠΏΠΈΠΉ, ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΡ ΠΊΠΎΠΏΠΈΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° Message Π² Π·Π°Π΄Π°Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΊΠ»Π°ΡΡΠ° Folder. ΠΠ»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΈΡ Π·Π°Π΄Π°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ ΠΏΠ°ΡΡ Π·Π°ΠΊΡΡΡΡΡ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ.
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΡ ΠΊΠΎΠΏΠΈΠΈ Π·Π°ΡΠ°ΡΡΡΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅Ρ ΡΡ ΠΆΠ΅ ΡΠ°Π±ΠΎΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ ΠΊΠΎΠΏΠΈΠΉ ΠΈ Π΄Π΅ΡΡΡΡΠΊΡΠΎΡΠ΅. Π ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΡΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡ Π² Π·Π°ΠΊΡΡΡΡΠ΅ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΠ»Π°ΡΡ Folder Π±ΡΠ΄Π΅Ρ Π½ΡΠΆΠ΄Π°ΡΡΡΡ Π² Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡΡ -ΡΠ»Π΅Π½Π°Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠ΅Π±Ρ ΠΈΠ· Ρ ΡΠ°Π½ΡΡΠΈΡ ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΊΠ»Π°ΡΡΠ° Message.
ΠΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠ»Π°ΡΡΠ° Folder ΠΎΡΡΠ°Π²ΠΈΠΌ ΡΠΈΡΠ°ΡΠ΅Π»Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ, Π½ΠΎ Π±ΡΠ΄Π΅ΠΌ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°ΡΡ, ΡΡΠΎ Ρ Π½Π΅Π³ΠΎ Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ-ΡΠ»Π΅Π½Ρ addMsg() ΠΈ remMsg(), Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠ΅ Π²ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈΠ· Π½Π°Π±ΠΎΡΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠΈ.
ΠΠ»Π°ΡΡ MessageΠ‘ ΡΡΠ΅ΡΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π²ΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΊΠ»Π°ΡΡ Message ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
class Message {
friend class Folder;
public:
// ΠΏΠ°ΠΏΠΊΠΈ Π½Π΅ΡΠ²Π½ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΡΡ ΠΏΡΡΡΡΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ
explicit Message(const std::string &str = ""):
contents(str) { }
// ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΡΡΠΈΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π½Π°
// ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅
Message(const Message&); // ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΊΠΎΠΏΠΈΠΉ
Message& operator=(const Message&); // ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΏΠΈΠΈ
~Message(); // Π΄Π΅ΡΡΡΡΠΊΡΠΎΡ
// Π΄ΠΎΠ±Π°Π²ΠΈΡΡ/ΡΠ΄Π°Π»ΠΈΡΡ ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· Π½Π°Π±ΠΎΡΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΏΠ°ΠΏΠΊΠΈ
void save(Folder&);
void remove(Folder&);
private:
std::string contents; // ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΅ΠΊΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ
std::set<Folder*> folders; // ΠΏΠ°ΠΏΠΊΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅
// Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠΌ ΠΊΠΎΠΏΠΈΠΉ,
// ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΡ ΠΈ Π΄Π΅ΡΡΡΡΠΊΡΠΎΡΠΎΠΌ
// Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² ΠΏΠ°ΠΏΠΊΠΈ, Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ
void add_to_Folders(const Message&);
// ΡΠ΄Π°Π»ΠΈΡΡ ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠΈ Π² folders
void remove_from_Folders();
};
ΠΠ»Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π΄Π²Π΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅-ΡΠ»Π΅Π½Π°: contents β Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈ folders β Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΊΠ»Π°ΡΡΠ° Folder, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Π΄Π°Π½Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅. ΠΠΎΠ»ΡΡΠ°ΡΡΠΈΠΉ ΡΡΡΠΎΠΊΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΊΠΎΠΏΠΈΡΡΠ΅Ρ Π΅Π΅ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ contents ΠΈ (Π½Π΅ΡΠ²Π½ΠΎ) ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ folders ΠΏΡΡΡΡΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Ρ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° Π΅ΡΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΎΠ½ ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ° Message (ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» 7.5.1).
Π€ΡΠ½ΠΊΡΠΈΠΈ-ΡΠ»Π΅Π½Ρ save() ΠΈ remove()ΠΡΠΎΠΌΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, Ρ ΠΊΠ»Π°ΡΡΠ° Message Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π²Π΅ ΠΎΡΠΊΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ-ΡΠ»Π΅Π½Π°: save(), ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΠ°Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² Π΄Π°Π½Π½ΡΡ ΠΏΠ°ΠΏΠΊΡ, ΠΈ remove(), ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡΠ°Ρ Π΅Π³ΠΎ:
void Message::save(Folder &f) {
folders.insert(&f); // Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΄Π°Π½Π½ΡΡ ΠΏΠ°ΠΏΠΊΡ Π² ΡΠΏΠΈΡΠΎΠΊ ΠΏΠ°ΠΏΠΎΠΊ
f.addMsg(this); // Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΄Π°Π½Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² Π½Π°Π±ΠΎΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ
}
void Message::remove(Folder &f) {
folders.erase(&f); // ΡΠ΄Π°Π»ΠΈΡΡ Π΄Π°Π½Π½ΡΡ ΠΏΠ°ΠΏΠΊΡ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° ΠΏΠ°ΠΏΠΎΠΊ
f.remMsg(this); // ΡΠ΄Π°Π»ΠΈΡΡ Π΄Π°Π½Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· Π½Π°Π±ΠΎΡΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ
}
Π§ΡΠΎΠ±Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ (ΠΈΠ»ΠΈ ΡΠ΄Π°Π»ΠΈΡΡ) ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π½ folders ΠΊΠ»Π°ΡΡΠ° Message. ΠΡΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° Folder; ΠΏΡΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΡΠΎΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ.
ΠΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ Π·Π°Π΄Π°Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° Folder. ΠΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ Π·Π°Π΄Π°ΡΠ΅ΠΉ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΊΠ»Π°ΡΡΠΎΠΌ Folder ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ-ΡΠ»Π΅Π½ΠΎΠ² addMsg() ΠΈ remMsg(), ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»ΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° Message ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ.
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠ»Π°ΡΡΠ° MessageΠΡΠΈ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΏΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π² ΡΠ΅Ρ ΠΆΠ΅ ΠΏΠ°ΠΏΠΊΠ°Ρ , ΡΡΠΎ ΠΈ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅Π±ΡΠ°ΡΡ Π½Π°Π±ΠΎΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ ΠΊΠ»Π°ΡΡΠ° Folder, Π΄ΠΎΠ±Π°Π²Π»ΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π½ΠΎΠ²ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² ΠΊΠ°ΠΆΠ΄ΡΡ ΠΏΠ°ΠΏΠΊΡ, Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΡΠΊΠ°Π·ΡΠ²Π°Π» ΠΎΡΠΈΠ³ΠΈΠ½Π°Π» ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΊΠΎΠΏΠΈΠΉ, ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΡ ΠΊΠΎΠΏΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΠ΄ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ΅ ΠΆΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΡΡΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΉ ΡΠ°Π±ΠΎΡΡ:
// Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² ΠΏΠ°ΠΏΠΊΠΈ, Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ m
void Message::add_to_Folders(const Message &m) {
for (auto f : m.folders) // Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅ΠΉ m,
f->addMsg(this); // Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅
// Π² Π΄Π°Π½Π½ΡΡ ΠΏΠ°ΠΏΠΊΡ
}
ΠΠ΄Π΅ΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ addMsg() Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΊΠ»Π°ΡΡΠ° Folder Π² m.folders. Π€ΡΠ½ΠΊΡΠΈΡ addMsg() Π΄ΠΎΠ±Π°Π²ΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° Message Π² Π΄Π°Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° Folder.