ConvertToStream() public method

public ConvertToStream ( ) : MemoryStream
return System.IO.MemoryStream
Esempio n. 1
0
 private void SendPrivateMessage(int server, PrivateMessageActions action, Guid serviceId, string contentId,
     byte[] data, Guid ownerId, string channelName)
 {
     if (server <= 0) return;
     var channel = server + ServiceChannelExtentions;
     var pm = new PrivateMessage
     {
         Action = action,
         Sender = client.Id,
         Id = serviceId,
         ContentId = contentId,
         Content = data,
         OwnerId = ownerId,
         Channel = channelName
     };
     var content = pm.ConvertToStream().ToArray();
     client.Imb.SignalBuffer(channel, 0, content);
 }
Esempio n. 2
0
 public void SendPrivateMessage(int pToImbHandle, PrivateMessage pm){
     if (pToImbHandle <= 0) return;
     var channel = pToImbHandle + ServiceChannelExtentions;
     var content = pm.ConvertToStream().ToArray();
     switch(pm.Action)
     {
         case PrivateMessageActions.Subscribe:
             var s = Services.FirstOrDefault(k => k.Id == pm.Id);
             LogImbService.LogMessage(String.Format("Request IMB client {0} that host service '{1}'({2}) add IMB client {4} to subscriptionlist (Action Subscribe)",
                  AppState.Imb.ImbClientHandleToName(pToImbHandle), s != null ? s.Name : "-", pm.Id, channel, AppState.Imb.ImbClientHandleToName(pm.Sender)));
             break;
        case PrivateMessageActions.ServiceReset:
             var s1 = Services.FirstOrDefault(k => k.Id == pm.Id);
             LogImbService.LogMessage(String.Format("Request IMB client {0} that host service '{1}'({2}) to send (channel={3}) content of service to IMB client {4} (Action ListReset)",
                  AppState.Imb.ImbClientHandleToName(pToImbHandle), s1 != null ? s1.Name : "-", pm.Id, channel, AppState.Imb.ImbClientHandleToName(pm.Sender)));
             break;
     }
     client.Imb.SignalBuffer(channel, 0, content);
 }
Esempio n. 3
0
 /// <summary>
 ///     Send all content lists from a service to a client
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="serviceId"></param>
 private void SendServiceReset(int sender /* IMB client handle */, Guid serviceId, int priority)
 {
     
     var s = Services.FirstOrDefault(k => k.Id == serviceId);
     var channel = sender + ServiceChannelExtentions;
     var sb = new StringBuilder();
     sb.AppendLine(String.Format("{0}Send complete content of service '{1}' ({2}) to IMB client {3} (channel={4}) (action ListReset, {5} IMB messages used)", 
         Environment.NewLine, s.Name, serviceId, AppState.Imb.ImbClientHandleToName(sender), channel, s.AllContent.Count()));
     int contentNumber = 0;
     foreach (var cl in s.AllContent)
     {
         try
         {
             contentNumber++;
             var pm = new PrivateMessage
             {
                 Action = PrivateMessageActions.ListReset,
                 Sender = client.Id,
                 Id = serviceId
             };
            
             using (var ms = new MemoryStream())
             {
                 var st = cl.ToList().Where(k => k.Priority <= priority).ToList();
                 Model.SerializeWithLengthPrefix(ms, st, typeof(List<BaseContent>), PrefixStyle.Base128, 72);
                 pm.Content = ms.ToArray();
                 pm.Channel = cl.Id;
                 if (cl == s.AllContent.First()) pm.ContentId = "First";
                 if (cl == s.AllContent.Last()) pm.ContentId = "Last";
                 client.Imb.SignalBuffer(channel, 0, pm.ConvertToStream().ToArray());
                 sb.AppendLine(string.Format("{0}.) Content types '{1}': ", contentNumber, cl.Id));
                 var count = 1;
                 if (st.Count == 0) sb.AppendLine(string.Format("No items"));
                 foreach (var x in st)
                 {
                     sb.AppendLine(string.Format("{1}.{2}){0}{3} ", Environment.NewLine, contentNumber, count, x.ToXml().ToString()));
                     count++;
                 }
             }
             
         }
         catch (Exception ex)
         {
             LogImbService.LogException(string.Format("SendServiceReset failed (broadcast service content on IMB)"), ex);
         }
     }
     LogImbService.LogMessage(sb.ToString());
 }