rcutils_calculate_directory_size()๋ ์ฌ๊ท ์์ด ๋๋ ํ ๋ฆฌ ํฌ๊ธฐ ๊ณ์ฐ๋ง ์ง์ํฉ๋๋ค.
rcutils_calculate_directory_size()๊ฐ ์ฌ๊ท๋ฅผ ์ง์ํ์ง ์๋ ์ด์ ๋ ๋ฌด์์
๋๊น?
์ด๋ค ์์ธ์ด ์์ต๋๊น?
๋๋ ์๋ฌด๊ฒ๋ ์๊ฐํ์ง ์์ง๋ง ์ฌ๊ท ์ ์ผ๋ก ์๋ํ๋ฉด ์ข์ ๊ฒ์ด๋ผ๊ณ ๋ฏฟ์ต๋๋ค.
rcutils_calculate_directory_size
๋ ํ์ฌ rosbag2 ๋ฉํ๋ฐ์ดํฐ ๋ฅผ ๊ณ์ฐํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ๋๋ ํ ๋ฆฌ์ ๋ชจ๋ ํ์ผ์ด ์์ผ๋ฏ๋ก ์ง๊ธ ๋น์ฅ์ ์ฌ๊ท์ ์ผ ํ์๊ฐ ์์ต๋๋ค.
rcutils_calculate_directory_size๋ ํ์ฌ rosbag2 ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๊ณ์ฐํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ๋๋ ํ ๋ฆฌ์ ๋ชจ๋ ํ์ผ์ด ์์ผ๋ฏ๋ก ์ง๊ธ ๋น์ฅ์ ์ฌ๊ท์ ์ผ ํ์๊ฐ ์์ต๋๋ค.
์. ์ด์ rosbag2์ metadata_io.cpp
์ด ํจ์๋ฅผ ํธ์ถํฉ๋๋ค.
์ฌ๊ท ๊ฒ์์ ์ง์ํ์ง ์๋๋ค๊ณ ๋ช ์์ ์ผ๋ก ์ค๋ช ํฉ๋๋ค. ์ค์ ์ฌ์ฉ ์ฌ๋ก์์ ์ฌ๊ท์ ์ด์ด์ผ ํฉ๋๊น?
์ฌ๊ท ๊ฒ์์ ์ง์ํ์ง ์๋๋ค๊ณ ๋ช ์์ ์ผ๋ก ์ค๋ช ํฉ๋๋ค. ์ค์ ์ฌ์ฉ ์ฌ๋ก์์ ์ฌ๊ท์ ์ด์ด์ผ ํฉ๋๊น?
์. ์๋์ ๊ฐ์ด rosbag2์ ํ์ฌ ๊ตฌํ
์ง์ ๋ ๊ฒฝ๋ก์ ์ด ํ์ผ ํฌ๊ธฐ๋ง ๊ณ์ฐํฉ๋๋ค. sqlite3 ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฒฝ์ฐ(์ด์ rosbag2๋ ์ด๊ฒ์ ์คํ ๋ฆฌ์ง ๋ฐฑ์๋๋ก๋ง ์ ๊ณตํฉ๋๋ค.) sqlite3 ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํ๋์ ํ์ผ์ด๊ธฐ ๋๋ฌธ์ ๊ด์ฐฎ์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ค๋ฅธ ์ฌ๋๋ค(์: leveldb)์ ๊ฒฝ์ฐ ๋๋ ํ ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํฉ๋๋ค. ์์ ์ฝ๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ํํ ํฌ๊ธฐ๋ฅผ ์ป์ ์ ์์ต๋๋ค.
์ฌ๊ท๋ฅผ ์ง์ํ๋๋ก ์ด ํจ์๋ฅผ ์
๋ฐ์ดํธํ๊ณ ์ถ์ต๋๋ค.
์ด ์์ ์ผ๋ก ์ธํด ํ์ฌ ์ฝ๋์ ๋ฌธ์ ๊ฐ ๋ฐ์ํด์๋ ์ ๋ฉ๋๋ค.
์ฌ๊ท๋ฅผ ์ง์ํ๋๋ก ์ด ํจ์๋ฅผ ์ ๋ฐ์ดํธํ๊ณ ์ถ์ต๋๋ค.
์ด ์์ ์ผ๋ก ์ธํด ํ์ฌ ์ฝ๋์ ๋ฌธ์ ๊ฐ ๋ฐ์ํด์๋ ์ ๋ฉ๋๋ค.
์, ๊ทธ๋ ๊ฒ ํ๊ธฐ ์ํด ๊ทธ๊ฒ์ ํฅ์์ํค๋ ๋ฐ ๋ฌธ์ ๊ฐ ์๋ค๊ณ ๋ด
๋๋ค. ํธ์ถ์๊ฐ ์ค์ ๋ก ์ํ์ง ์๋ ๊ฒฝ์ฐ๋ฅผ ๋๋นํ์ฌ ํจ์์ recursive
๋ถ์ธ ๋งค๊ฐ๋ณ์๋ฅผ ๋์
ํ ์ ์์ง๋ง ๊ทธ๋ ์ง ์์ผ๋ฉด ๋์๊ฒ๋ ์ข๊ฒ ๋ค๋ฆฝ๋๋ค.
@clalancette
CC: @Barry-Xu-2018
๋๊ธ ๊ฐ์ฌํฉ๋๋ค!
์ค์ ๋ก ์ฐ๋ฆฌ๋ leveldb ๋ฅผ rosbag2 ๋ฐฑ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ฌ์ฉํ๋ ค๊ณ ํ์ต๋๋ค. ์ด๋ฅผ ์ํด ์ด ๊ฐ์ ์ฌํญ์ด ํ์ํฉ๋๋ค.
@clalancette @fujitatomoya
ํธ์ถ์๊ฐ ์ค์ ๋ก ์ํ์ง ์๋ ๊ฒฝ์ฐ๋ฅผ ๋๋นํ์ฌ ํจ์์ ์ฌ๊ท ๋ถ์ธ ๋งค๊ฐ๋ณ์๋ฅผ ๋์ ํ๊ณ ์ถ์ ์๋ ์์ง๋ง ๊ทธ๋ ์ง ์์ผ๋ฉด ๋์๊ฒ๋ ์ข๊ฒ ๋ค๋ฆฝ๋๋ค.
์ ๋งค๊ฐ๋ณ์๋ฅผ ์ถ๊ฐํ๋ฉด rcutils๊ฐ ์ ๋ฐ์ดํธ๋ ํ rosbag2๋ ๋์์ ์ ๋ฐ์ดํธํด์ผ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด rosbag2 ๋น๋๊ฐ ์คํจํ์ต๋๋ค.
Linux ํ๋ซํผ์์ ํ
์คํธํ์ต๋๋ค. ๊ทธ๋ฌ๋ Windows ํ๋ซํผ์์ ํ
์คํธํด์ผ ํฉ๋๋ค.
์ด์ ์๋์ฐ ํ๊ฒฝ์ ์ค๋นํ๊ณ ์์ต๋๋ค.
์ ๋งค๊ฐ๋ณ์๋ฅผ ์ถ๊ฐํ๋ฉด rcutils๊ฐ ์ ๋ฐ์ดํธ๋ ํ rosbag2๋ ๋์์ ์ ๋ฐ์ดํธํด์ผ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด rosbag2 ๋น๋๊ฐ ์คํจํ์ต๋๋ค.
๋๋ ์ด ์ ๊ทผ ๋ฐฉ์์ ์ข์ํ์ง ์๋๋ค. ์ธํฐํ์ด์ค๋ฅผ ์ ์งํ๊ณ ์ฌ๊ท์ ์ผ๋ก ๊ฒ์ํ๋ ๊ธฐ๋ฅ์ ํฅ์์ํฌ ์ ์์ต๋๋ค. ์ฌ๊ท ๊ฒ์์ด ์๋ ํน์ ์ฌ์ฉ ์ฌ๋ก๊ฐ ์๋ ๊ฒฝ์ฐ ์ฌ๊ท ์ฌ๋ก์ ๋ํ ์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
๋๋ ์ด ์ ๊ทผ ๋ฐฉ์์ ์ข์ํ์ง ์๋๋ค. ์ธํฐํ์ด์ค๋ฅผ ์ ์งํ๊ณ ์ฌ๊ท์ ์ผ๋ก ๊ฒ์ํ๋ ๊ธฐ๋ฅ์ ํฅ์์ํฌ ์ ์์ต๋๋ค. ์ฌ๊ท ๊ฒ์์ด ์๋ ํน์ ์ฌ์ฉ ์ฌ๋ก๊ฐ ์๋ ๊ฒฝ์ฐ ์ฌ๊ท ์ฌ๋ก์ ๋ํ ์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
์. ๋์ํ๋ค.
@clalancette
์ ๋งค๊ฐ๋ณ์ ์์ด rcutils_calculate_directory_size๋ฅผ ํฅ์์ํค๋ ๊ฒ์ ์ด๋ป์ต๋๊น?
ํ์ฌ rosbag2๋ ํฅ์๋ rcutils_calculate_directory_size()์ ํจ๊ป ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ ์ ์์ต๋๋ค.
์ ๋งค๊ฐ๋ณ์ ์์ด rcutils_calculate_directory_size๋ฅผ ํฅ์์ํค๋ ๊ฒ์ ์ด๋ป์ต๋๊น?
ํ์ฌ rosbag2๋ ํฅ์๋ rcutils_calculate_directory_size()์ ํจ๊ป ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ ์ ์์ต๋๋ค.
๋ด๊ฐ ์ด๊ฒ์ ๊ฑฑ์ ํ๋ ์ด์ ๋ rosbag2 ๋๋ ํ ๋ฆฌ ๋ด๋ถ์ "์ถ๊ฐ" ์ ๋ณด๋ฅผ ์ ์ฅํ๋ ์ฌ์ฉ์๋ค ์ฌ์ด์์ ์ฝ๊ฐ์ ์ด์ผ๊ธฐ๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ํ์ ๋๋ ํ ๋ฆฌ์ ์ถ๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋ง์ด ์ ์ฅํ๊ฒ ๋๋ฉด rosbag2๊ฐ ๊ธฐ๋ํ๋ ํฌ๊ธฐ๊ฐ ์ค์ด๋ค ์ ์์ต๋๋ค.
API๋ฅผ ์ค๋จํ๊ณ ์ถ์ง ์๋ค๋ฉด rcutils_calculate_directory_size_recursive()
์ธ ๋ค๋ฅธ ํจ์๋ฅผ ์ถ๊ฐํ ์๋ ์์ต๋๋ค.
rcutils_calculate_directory_size()
์์ ํญ์ ์ฌ๊ท ๊ฒ์์ ์ํํ๋ฉด rosbag2์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋์ง ์ฌ๋ถ์ ๋ํ ํต์ฐฐ๋ ฅ์ ์ป์ผ๋ ค๋ฉด @Karsten1987 ์ ping์ ๋ณด๋ด์ญ์์ค.
@clalancette
๋๋ ๋น์ ์ ๊ฑฑ์ ์ ์ดํดํฉ๋๋ค.
์ฝ๋๋ฅผ ํ์ธํ์ต๋๋ค. rosbag2์ ์๋ ์ฝ๋์์๋ง ์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํฉ๋๋ค.
์ฝ๋๋ฅผ ๋ณ๊ฒฝํ ํ ๊ธฐ๋ณธ sqlite3 ์คํ ๋ฆฌ์ง ํ๋ฌ๊ทธ์ธ์ผ๋ก rosbag2๋ ์๋ํ์ง๋ง ๋ฌธ์ ๋ฅผ ์ฐพ์ง ๋ชปํ์ต๋๋ค.
๋ฌผ๋ก @Karsten1987์ ์๊ฒฌ์ ๋ค์ด์ผ ํฉ๋๋ค.
@Barry-Xu-2018
๋๋ ๋น์ ์ด ์ด๊ฒ์ ๋ซ์ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.