קונטיינר

כיתה ציבורית ContainerOpener

שיעור עוזר לפתיחת קונטיינרים.

זהו 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, LongtimeoutInMillis)
סטטי ריק
openContainer(TagManager tagManager, מחרוזת containerId, ContainerOpener.OpenType openType, LongtimeoutInMillis, ContainerOpener.Notifier notifier)

קבועים

ציבורי סטטי סופי ארוך DEFAULT_TIMEOUT_IN_MILLIS

הזמן הקצוב לתפוגה שמוגדר כברירת מחדל באלפיות השנייה לבקשת מאגר תגים.

ערך קבוע: 2000

שיטות ציבוריות

ציבורי סטטי ContainerOpener.ContainerFuture openContainer (TagManager tagManager, מחרוזת containerId, ContainerOpener.OpenType openType, timeoutInMillis

המתנה של עד פעם אחת (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 שלו תחזיר את הקונטיינר, אבל יכולה לחסום עד DMCAInMillis עד שהמאגר יהיה זמין.

ציבורי סטטי ריק openContainer (TagManager tagManager, String tagManager, ContainerOpener.OpenType tagManager, tagManager, 15ier ארוךtagManagerContainerOpener.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.
מודיע התראה שתיקרא כשהמאגר יהיה זמין. זה יהיה בוצעה קריאה באמצעות מאגר התגים שנשמר או מאגר הרשת, אם הוא זמין ונטען לפני הזמן הקצוב לתפוגה. אחרת, היא תופעל עם מאגר ברירת המחדל. ניתן להתקשר לשירות ההתראות שרשור אחר.