לדלג לתוכן

פתרון מסלול תצוגה וחיי חלון

פתרון ראשון

הלקוח מכיר רק חתימות ומשמעויות של גרסאות שבהן הוא תומך. קישור לגרסה גבוהה יותר עלול לחשוף אותו לאירועים חדשים שלא הוכן לטפל בהם. נשמור את המינימום בין גרסת השרת לגרסת הלקוח ונשתמש רק בבקשות המותרות בה.

פתרון שני

נוסיף למנייה מצב Drawing ונגדיר מעברים חוקיים בלבד: מפנוי לציור, מציור למסירה וממסירה לפנוי. כל פונקציה תבדוק את המצב הקודם ותחזיר שגיאה בלי לשנותו אם המעבר אסור. בדיקת המסירה הכפולה תוודא שאין מעבר ממסירה למסירה, ובדיקת השחרור הכפול תוודא שאין מעבר מפנוי לפנוי דרך הודעת שחרור.

פתרון שלישי

אירוע מסגרת עוזר לתזמן ציור נוסף, ושחרור מחזיר את הזכות למחזר באפר. משוב הצגה, כאשר הפרוטוקול והשרת מספקים אותו, נותן מידע נפרד על ההצגה. אין להסיק מזמן החזרה של פעולת ההתחייבות שהפיקסלים כבר נסרקו למסך. הדוח יבדיל בין חותמת זמן של התוכנה לבין זמן ההצגה שמספק המנגנון הנתמך.