์ธํฐํ์ด์ค SubscriptionSet
์ด ํ์ด์ง์ ๋ด์ฉ
io.realm.mongodb.sync
๊ตฌํ๋ ์ธํฐํ์ด์ค:
๊ตฌ๋ ์ค์ ํ๋ค ๋ Flexible ๋๊ธฐํ ๋ฅผ ์ํด ๊ตฌ์ฑ๋ ํน์ Realm ์ ๋ํ ๋ชจ๋ ํ์ฌ ๊ตฌ๋ ์ ๋ํ ๋ณ๊ฒฝํ ์ ์๋ ๋ณด๊ธฐ์ ๋๋ค.
Flexible Sync๋ RealmQuery ๋ฅผ ์ฌ์ฉํ์ฌ ์ฅ์น์ ๋๊ธฐํ๋๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ์ฟผ๋ฆฌ ์ ์ฟผ๋ฆฌ์ ๋ฉํ๋ฐ์ดํฐ ๋ ๊ตฌ๋ ์ผ๋ก ํ์๋ฉ๋๋ค.
๋ฐ๋ผ์ ๊ตฌ๋ ์ธํธ๋ ์ฅ์น์์ ์ฌ์ฉํ ์ ์๊ณ ์๋ฒ์ ๋๊ธฐํ๋๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ํฉ๋๋ค. ์ ํจํ์ง ์์ ์ฟผ๋ฆฌ๋ฅผ ํฌํจํ๋ ๋ฑ ๊ตฌ๋ ์ธํธ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด ์ ์ฒด ๊ตฌ๋ ์ธํธ๊ฐ SubscriptionSet.State.ERROR ์ํ๊ฐ ๋๋ฉฐ ์ค๋ฅ๊ฐ ์์ ๋ ๋๊น์ง ๋๊ธฐํ๊ฐ ๋ฐ์ํ์ง ์์ต๋๋ค.
๊ตฌ๋ ์ด ์ ๊ฑฐ๋๋ฉด ํด๋น ๋ฐ์ดํฐ๋ ์ ๊ฑฐ๋์ง๋ง ์ฅ์น์์๋ง ์ ๊ฑฐ๋ฉ๋๋ค. ์๋ฒ์์ ์ญ์ ๋์ง ์์ต๋๋ค.
์คํ๋ผ์ธ ์ํ์์๋ ๊ตฌ๋ ์ค์ ํ๋ค ๋ฅผ ์์ ํ ์ ์์ง๋ง getState() ๊ฐ SubscriptionSet.State.COMPLETE ๋ฅผ ๋ฐํํ๊ธฐ ์ ์ ์๋ฒ ์์ ์์ ์ ์๋ฝํ์ง ์์ต๋๋ค.
waitForSynchronization() ๋ฐ ๊ทธ ๋ณํ์ ์ฌ์ฉํ์ฌ ๊ตฌ๋ ์ค์ ํ๋ค ๋ฅผ ์๋ฒ ์ ๋๊ธฐํํ๋๋ก ๊ฐ์ ํ ์ ์์ต๋๋ค.
์ค์ฒฉ๋ ํด๋์ค ์์ฝ
์์ ์ ๋ฐ ์ ํ | ํด๋์ค ๋ฐ ์ค๋ช
|
---|---|
public static final | |
public static interface | |
public static interface | |
public static interface |
๋ฉ์๋ ์์ฝ
์์ ์ ๋ฐ ์ ํ | ๋ฉ์๋ ๋ฐ ์ค๋ช
|
---|---|
๊ณต๊ฐ ๊ตฌ๋
| |
๊ณต๊ฐ ๊ตฌ๋
| ์ง์ ๋ ์ฟผ๋ฆฌ๊ฐ ํฌํจ๋ ์ฒซ ๋ฒ์งธ ๊ตฌ๋ ์ ์ฐพ์ต๋๋ค. |
๊ณต๊ฐ string | getState() ๊ฐ State.ERROR ๋ฅผ ๋ฐํํ๋ฉด ์ด ๋ฉ์๋๋ ์ด์ ๋ฅผ ๋ฐํํฉ๋๋ค. |
๊ณต๊ฐ SubscriptionSet.State | getState () SubscriptionSet์ ํ์ฌ ์ํ๋ฅผ ๋ฐํํฉ๋๋ค. |
public int | size () ํ์ฌ ์ด ๊ตฌ๋ ์ธํธ์ ์๋ ๊ตฌ๋ ์๋ฅผ ๋ฐํํฉ๋๋ค. |
๊ณต๊ฐ SubscriptionSet | ๊ตฌ๋ ์ธํธ๋ฅผ ์์ ํฉ๋๋ค. |
public RealmAsyncTask | ๊ตฌ๋ ์ธํธ๋ฅผ ๋น๋๊ธฐ์ ์ผ๋ก ์์ ํฉ๋๋ค. |
๊ณต๊ฐ ๋ถ์ธ | ๊ตฌ๋ ์ธํธ๊ฐ ์๋ฒ์ ๋๊ธฐํ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฝ๋๋ค. |
๊ณต๊ฐ ๋ถ์ธ | ๊ตฌ๋ ์ธํธ๊ฐ ์๋ฒ์ ๋๊ธฐํ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฝ๋๋ค. |
public RealmAsyncTask | ) ๊ตฌ๋ ์ธํธ๊ฐ ์๋ฒ์ ๋๊ธฐํ๋ ๋๊น์ง ๋น๋๊ธฐ์ ์ผ๋ก ๊ธฐ๋ค๋ฆฝ๋๋ค. |
public RealmAsyncTask | ๊ตฌ๋ ์ธํธ๊ฐ ์๋ฒ์ ๋๊ธฐํ๋ ๋๊น์ง ๋น๋๊ธฐ์ ์ผ๋ก ๊ธฐ๋ค๋ฆฝ๋๋ค. |
์์๋ ๋ฉ์๋
๋ฉ์๋ ์ธ๋ถ ์ ๋ณด
์ฐพ๊ธฐ
์ง์ ๋ ์ด๋ฆ์ ๊ตฌ๋ ์ ์ฐพ์ต๋๋ค. ๋งค๊ฐ๋ณ์
๋ฐํ ์ผ์นํ๋ ๊ตฌ๋
๋๋ ํด๋น ์ด๋ฆ์ ๊ตฌ๋
์ ์ฐพ์ ์ ์๋ ๊ฒฝ์ฐ |
์ง์ ๋ ์ฟผ๋ฆฌ๊ฐ ํฌํจ๋ ์ฒซ ๋ฒ์งธ ๊ตฌ๋ ์ ์ฐพ์ต๋๋ค. ์ฌ๋ฌ ๊ฐ์ ๋ช ๋ช ๋ ๊ตฌ๋ ์ ๋์ผํ ์ฟผ๋ฆฌ๊ฐ ํฌํจ๋ ์ ์์ต๋๋ค. ๋งค๊ฐ๋ณ์
๋ฐํ ์ฟผ๋ฆฌ๊ฐ ํฌํจ๋ ์ฒซ ๋ฒ์งธ ๊ตฌ๋
์ด๊ฑฐ๋ ์ผ์นํ๋ ํญ๋ชฉ์ด ์๋ ๊ฒฝ์ฐ |
getErrorMessage
public String getErrorMessage () |
---|
getState() ๊ฐ State.ERROR ๋ฅผ ๋ฐํํ๋ฉด ์ด ๋ฉ์๋๋ ์ด์ ๋ฅผ ๋ฐํํฉ๋๋ค. ์ด์ ๋ฐ๋ผ ๊ตฌ๋ ์ ์์ ํ ๋ค์ waitForSynchronization() ์ ํธ์ถํ์ฌ ์ค๋ฅ๋ฅผ ์์ ํ ์ ์์ต๋๋ค. ๋ฐํ ๊ตฌ๋
์ค์ ํ๋ค ๊ฐ State.ERROR ์ํ ์ธ ๊ฒฝ์ฐ ๊ธฐ๋ณธ ์ค๋ฅ์
๋๋ค. ๋ค๋ฅธ ๋ชจ๋ ์ํ์ ๊ฒฝ์ฐ |
getState
public SubscriptionSet.State getState () |
---|
SubscriptionSet์ ํ์ฌ ์ํ ๋ฅผ ๋ฐํํฉ๋๋ค. ๊ฐ ์ํ ์ ๋ํ ์์ธํ ๋ด์ฉ์ SubscriptionSet.State ๋ฅผ ์ฐธ์กฐํ์ธ์. ๋ฐํ SubscriptionSet์ ํ์ฌ ์ํ์ ๋๋ค. |
size
public int size () |
---|
ํ์ฌ ์ด ๊ตฌ๋ ์ธํธ์ ์๋ ๊ตฌ๋ ์๋ฅผ ๋ฐํํฉ๋๋ค. ๋ฐํ ๊ตฌ๋ ์ธํธ์ ๊ตฌ๋ ์์ ๋๋ค. |
update
๊ตฌ๋ ์ธํธ๋ฅผ ์์ ํฉ๋๋ค. ์ ๋ฐ์ดํธ ์ค์ ์์ธ๊ฐ ๋ฐ์ํ๋ฉด ๋ณ๊ฒฝ ์ฌํญ์ด ์ ์ฉ๋์ง ์์ต๋๋ค. ์ ๋ฐ์ดํธ๊ฐ ์ฑ๊ณตํ๋ฉด ์ด ๊ตฌ๋ ์ธํธ๊ฐ ์์ ๋ ์ํ๋ก ์ ๋ฐ์ดํธ๋ฉ๋๋ค. ๋งค๊ฐ๋ณ์
๋ฐํ ์ด์ ์ ๋ฐ์ดํธ๋ ์ด ๊ตฌ๋ ์ธํธ์ ๋๋ค. ์ค๋ก์ฐ
|
updateAsync
๊ตฌ๋ ์ธํธ๋ฅผ ๋น๋๊ธฐ์ ์ผ๋ก ์์ ํฉ๋๋ค. ์ ๋ฐ์ดํธ ์ค์ ์์ธ๊ฐ ๋ฐ์ํ๋ฉด ๋ณ๊ฒฝ ์ฌํญ์ด ์ ์ฉ๋์ง ์์ต๋๋ค. * ๋งค๊ฐ๋ณ์
๋ฐํ ๋น๋๊ธฐ ์คํ์ ์ ์ดํ๋ ์์ . |
waitForSynchronization
๊ตฌ๋ ์ค์ ํ๋ค ๊ฐ ์๋ฒ ์ ๋๊ธฐํ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฝ๋๋ค. ์๋ฒ ๊ฐ ์ฟผ๋ฆฌ ์ค์ ํ๋ค ๋ฅผ ์๋ฝํ๊ณ ์ฟผ๋ฆฌ์ ๋ํ ๋ฐ์ดํฐ๋ฅผ ๋ค์ด๋ก๋ํ๊ฑฐ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ๋ฐํ๋ฉ๋๋ค. ๋ค์ด๋ก๋ํ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ ค๋ฉด Realm.refresh() ๋ฅผ ์๋์ผ๋ก ํธ์ถํ๊ฑฐ๋ ๋ณ๊ฒฝ ๋ฆฌ์ค๋๊ฐ trigger ํ ๋๊น์ง ๊ธฐ๋ค๋ ค์ผ ํฉ๋๋ค. ์ค๋ฅ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ getErrorMessage() ๋ฅผ ํตํด ๊ธฐ๋ณธ ์ด์ ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค. ๋งค๊ฐ๋ณ์
๋ฐํ
์ค๋ก์ฐ
|
public boolean waitForSynchronization () |
---|
๊ตฌ๋ ์ค์ ํ๋ค ๊ฐ ์๋ฒ ์ ๋๊ธฐํ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฝ๋๋ค. ์๋ฒ ๊ฐ ์ฟผ๋ฆฌ ์ค์ ํ๋ค ๋ฅผ ์๋ฝํ๊ณ ์ฟผ๋ฆฌ์ ๋ํ ๋ฐ์ดํฐ๋ฅผ ๋ค์ด๋ก๋ํ๊ฑฐ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ๋ฐํ๋ฉ๋๋ค. ๋ค์ด๋ก๋ํ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ ค๋ฉด Realm.refresh() ๋ฅผ ์๋์ผ๋ก ํธ์ถํ๊ฑฐ๋ ๋ณ๊ฒฝ ๋ฆฌ์ค๋๊ฐ trigger ํ ๋๊น์ง ๊ธฐ๋ค๋ ค์ผ ํฉ๋๋ค. ์ค๋ฅ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ getErrorMessage() ๋ฅผ ํตํด ๊ธฐ๋ณธ ์ด์ ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค. ๋ฐํ
|
waitForSynchronizationAsync
) |
---|
๊ตฌ๋ ์ธํธ๊ฐ ์๋ฒ์ ๋๊ธฐํ๋ ๋๊น์ง ๋น๋๊ธฐ์ ์ผ๋ก ๊ธฐ๋ค๋ฆฝ๋๋ค. ์ฝ๋ฐฑ์ ์๋ฒ๊ฐ ์ฟผ๋ฆฌ ์ธํธ๋ฅผ ์๋ฝํ๊ณ ์ฟผ๋ฆฌ์ ๋ํ ๋ฐ์ดํฐ๋ฅผ ๋ค์ด๋ก๋ํ๊ฑฐ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ํธ์ถ๋ฉ๋๋ค. ๋ค์ด๋ก๋ํ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ ค๋ฉด Realm.refresh() ๋ฅผ ์๋์ผ๋ก ํธ์ถํ๊ฑฐ๋ ๋ณ๊ฒฝ ๋ฆฌ์ค๋๊ฐ trigger ํ ๋๊น์ง ๊ธฐ๋ค๋ ค์ผ ํฉ๋๋ค. ์ค๋ฅ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ getErrorMessage() ๋ฅผ ํตํด ๊ทผ๋ณธ์ ์ธ ์ด์ ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค. ๋งค๊ฐ๋ณ์
๋ฐํ
|
๊ตฌ๋ ์ธํธ๊ฐ ์๋ฒ์ ๋๊ธฐํ๋ ๋๊น์ง ๋น๋๊ธฐ์ ์ผ๋ก ๊ธฐ๋ค๋ฆฝ๋๋ค. ์๋ฒ๊ฐ ์ฟผ๋ฆฌ ์ธํธ๋ฅผ ์๋ฝํ๊ณ ์ฟผ๋ฆฌ์ ๋ํ ๋ฐ์ดํฐ๋ฅผ ๋ค์ด๋ก๋ํ๊ฑฐ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ์ฝ๋ฐฑ์ ํธ์ถํฉ๋๋ค. ๋ค์ด๋ก๋ํ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ ค๋ฉด Realm.refresh() ๋ฅผ ์๋์ผ๋ก ํธ์ถํ๊ฑฐ๋ ๋ณ๊ฒฝ ๋ฆฌ์ค๋๊ฐ trigger ํ ๋๊น์ง ๊ธฐ๋ค๋ ค์ผ ํฉ๋๋ค. ์ค๋ฅ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ getErrorMessage() ๋ฅผ ํตํด ๊ทผ๋ณธ์ ์ธ ์ด์ ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค. ๋งค๊ฐ๋ณ์
๋ฐํ
|