コード例 #1
0
            protected override object SetUpMember(int index, object member)
            {
                SheetModel sheet = ((SheetModel)member);

                using (Synchronizer.Lock(sheet.SyncRoot)) {
                    // Don't create a network service for the sheet if it is remote,
                    // UNLESS this is a student submission slide in which case we're responsible for rebroadcasting its ink.
                    if ((sheet.Disposition & SheetDisposition.Remote) != 0 && (this.m_Service.m_Slide.Disposition & SlideDisposition.StudentSubmission) == 0)
                    {
                        return(null);
                    }
                }


                Group receivers = Group.AllParticipant;

                if ((this.m_Service.m_Slide.Disposition & SlideDisposition.StudentSubmission) != 0)
                {
                    receivers = Group.Submissions;
                }

                this.m_Service.SendSheetInformation(sheet, this.m_Selector, receivers);

                SheetNetworkService service = SheetNetworkService.ForSheet(this.m_Service.m_Sender, this.m_Service.m_Presentation, this.m_Service.m_Deck, this.m_Service.m_Slide, sheet, this.m_Selector);

                return(service);
            }
コード例 #2
0
 public void ForceUpdate(Group receivers)
 {
     using (Synchronizer.Lock(this.Owner.SyncRoot)) {
         foreach (SheetNetworkService service_ in this.Tags)
         {
             SheetNetworkService service = service_; // For access by delayed delgate.
             if (service != null)
             {
                 this.m_Service.m_Sender.Post(delegate() {
                     service.ForceUpdate(receivers);
                 });
             }
         }
     }
 }