מחלקת עזרה לפתיחת קונטיינרים.
זוהי wrapper של שיטת openContainer(String, Container.Callback)
למשתמשים שלא צריכים את רמת השליטה המדויקת שהיא מספקת.
יש שלושה מצבים שבהם מאגר יכול להיות:
- ברירת המחדל: זהו הקונטיינר שנשלח עם האפליקציה (מאגר בינארי או קובץ json שהומר למאגר).
- לא פעיל: מאגר שכבר הורד מהשרת, אך לא לאחרונה.
- טרי: מאגר שכבר הורד לאחרונה מהשרת.
בדוגמה הבאה מוצגת דוגמה שבה מבצע הקריאה החוזרת רוצה להמתין עד 100 אלפיות השנייה כדי לקבל את המאגר שלא מוגדר כברירת המחדל (מאחזר את המאגר המוגדר כברירת מחדל אם הזמן הקצוב שלו פג).
ContainerFuture future = ContainerOpener.openContainer(tagManager, containerId, OpenType.PREFER_NON_DEFAULT, 100); Container container = future.get();
אם מבצע הקריאה החוזרת רוצה לקבל הודעה אסינכרונית כשמאגר התגים זמין, אבל רוצה
לציין באופן ידני את הזמן הקצוב לתפוגה של 0.5 שניות, עליו להגדיר את המחלקה משנית
ContainerOpener.Notifier
. דוגמה לשימוש:
ContainerOpener.openContainer(tagManager, containerId, OpenType.PREFER_NON_DEFAULT, 500, new ContainerOpener.Notifier() { @Override void containerAvailable(Container container) { // Code to handle the container available notification and save the container. } });
סיכום של הכיתה המוצבת
משופר | ContainerOpener.ContainerFuture | אובייקט שיחזיר מאגר. | |
משופר | ContainerOpener.Notifier | אובייקט שיקבל התראה כשמאגר יהיה זמין לשימוש. | |
טיפוסים בני מנייה (enum) | ContainerOpener.OpenType | העדפות לפתיחת מאגר. |
סיכום קבוע
long | DEFAULT_TIMEOUT_IN_MILLIS | הזמן הקצוב לתפוגה שמוגדר כברירת מחדל באלפיות השנייה לשליחת בקשה למאגר. |
סיכום אמצעי תשלום ציבורי
סטטי ContainerOpener.ContainerFuture |
openContainer(TagManager tagManager, String containerId, ContainerOpener.OpenType openType, ארוך timeoutInMillis)
|
בטל סטטי |
openContainer(TagManager tagManager, String containerId, ContainerOpener.OpenType openType, ארוך timeoutInMillis, ContainerOpener.Notifier הודעה)
|
קבועים
ציבורי סטטי סופי ארוך DEFAULT_TIMEOUT_IN_MILLIS
הזמן הקצוב לתפוגה שמוגדר כברירת מחדל באלפיות השנייה לשליחת בקשה למאגר.
שיטות ציבוריות
ציבורי סטטי ContainerOpener.ContainerFuture openContainer (TagManager tagManager, String tagManager, ContainerOpener.OpenType ContainerOpener.{OpenType} ContainerOpener.OpenTypetagManager
המערכת ממתינה עד זמן אחד (timeoutInMillis
) לטעינת קונטיינר (לא ברירת המחדל או רענון, בהתאם ל-openType
שצוין).
אם הסוג הפתוח הוא PREFER_NON_DEFAULT
, נטען קונטיינר שלא הוגדר כברירת מחדל (נשמר או אוחזר מהרשת) והחסימה של ContainerFuture מבוטלת ברגע שמתרחשת אחת מהאפשרויות הבאות:
- נטען קונטיינר שמור.
- אם לא קיים מאגר תגים שמור, נטען מאגר רשת או שמתרחשת שגיאת רשת.
- תסתיים הטיימר.
אם מתרחשת שגיאת רשת או שתוקף הטיימר יפוג, get()
עשוי להחזיר מאגר ברירת מחדל.
אם הסוג הפתוח הוא PREFER_FRESH
, נטען קונטיינר חדש (נשמר או אוחזר מהרשת) והחסימה של ContainerFuture מבוטלת ברגע שמתרחשת אחת מהאפשרויות הבאות:
- נטען קונטיינר חדש שנשמר.
- אם לא קיים מאגר תגים שמור או מאגר תגים שמור לא פעיל, נטען מאגר רשת או שמתרחשת שגיאה ברשת.
- תסתיים הטיימר.
אם מתרחשת שגיאת רשת או שתוקף הטיימר יפוג, get()
עשוי להחזיר מאגר ברירת מחדל או מאגר לא פעיל שנשמר.
אם תתבצע קריאה נוספת ל-openContainer
באמצעות containerId
נתון, יוחזר ContainerFuture
שה-get()
שלו יחזיר את אותו מאגר כמו הקריאה הראשונה.
פרמטרים
tagManager | ה-TagManager שאליו צריך לקרוא את openContainer |
containerId | המזהה של הקונטיינר שיש לטעון |
openType | האפשרות לפתוח את הקונטיינר |
timeoutInMillis | מספר אלפיות השנייה המקסימלי שצריך להמתין לטעינת המאגר (מהחנות השמורה). אם הערך יהיה null, המערכת תשתמש ב-DEFAULT_TIMEOUT_IN_MILLIS . |
החזרות
- אובייקט ששיטת get שלו תחזיר את הקונטיינר, אבל יכול לחסום עד timeInMillis עד שהמאגר יהיה זמין.
Public סטטי void openContainer (TagManager tagManager, String tagManager, ContainerOpener.OpenType tagManager,10}openType,10}openType,ContainerOpener.Notifier
המערכת ממתינה עד זמן אחד (timeoutInMillis
) לטעינת קונטיינר (לא ברירת המחדל או רענון, בהתאם ל-openType
שצוין).
אם הסוג הפתוח הוא PREFER_NON_DEFAULT
, נטען מאגר שלא מוגדר כברירת מחדל (נשמר או אוחזר מהרשת) ומועבר לכלי ההודעות. מתבצעת הפעלה של שירות ההודעות ברגע שמתרחשת אחת מהפעולות הבאות:
- נטען קונטיינר שמור.
- אם לא קיים מאגר תגים שמור, נטען מאגר רשת או שמתרחשת שגיאת רשת.
- תסתיים הטיימר.
אם מתרחשת שגיאת רשת או שתוקף הטיימר יפוג, הקונטיינר שמועבר אל
containerAvailable(Container)
הוא מאגר ברירת מחדל.
אם הסוג הפתוח הוא PREFER_FRESH
, נטען קונטיינר חדש (נשמר או אוחזר מהרשת) ומועבר לכלי ההודעות. מתבצעת הפעלה של שירות ההודעות ברגע שמתרחשת אחת מהפעולות הבאות:
- נטען קונטיינר חדש שנשמר.
- אם לא קיים מאגר תגים שמור או מאגר תגים שמור לא פעיל, נטען מאגר רשת או שמתרחשת שגיאה בחיבור לרשת.
- תסתיים הטיימר.
אם מתרחשת שגיאת רשת או שתוקף הטיימר פג, הקונטיינר שמועבר אל containerAvailable(Container)
עשוי להיות ברירת מחדל או מאגר שמור לא פעיל.
אם תתבצע קריאה נוספת אל openContainer(TagManager, String, ContainerOpener.OpenType, Long)
באמצעות containerId
נתון,
אותו מאגר שמוחזר מהשיחה הקודמת יועבר אל שירות ההודעות ברגע שהוא יהיה זמין.
פרמטרים
tagManager | ה-TagManager שאליו צריך לקרוא את openContainer |
containerId | המזהה של הקונטיינר שיש לטעון |
openType | האפשרות לפתוח את הקונטיינר |
timeoutInMillis | מספר אלפיות השנייה המקסימלי שצריך להמתין לטעינת המאגר (מהחנות או מהרשת שנשמרו). אם הערך יהיה null, המערכת תשתמש ב-DEFAULT_TIMEOUT_IN_MILLIS . |
שירות הודעות | שירות הודעות שייקרא כשהמאגר יהיה זמין. היא תופעל באמצעות מאגר התגים השמור או מאגר הרשת, אם הוא זמין, ונטען לפני הזמן הקצוב לתפוגה. אחרת, הוא יופעל עם המאגר המוגדר כברירת מחדל. ייתכן שהשירות יודיע לשירות משרשור אחר. |