public string recv_sync()
 {
   TMessage msg = iprot_.ReadMessageBegin();
   if (msg.Type == TMessageType.Exception) {
     TApplicationException x = TApplicationException.Read(iprot_);
     iprot_.ReadMessageEnd();
     throw x;
   }
   sync_result result = new sync_result();
   result.Read(iprot_);
   iprot_.ReadMessageEnd();
   if (result.__isset.success) {
     return result.Success;
   }
   if (result.__isset.ex) {
     throw result.Ex;
   }
   if (result.__isset.se) {
     throw result.Se;
   }
   throw new TApplicationException(TApplicationException.ExceptionType.MissingResult, "sync failed: unknown result");
 }
 public void sync_Process(int seqid, TProtocol iprot, TProtocol oprot)
 {
   sync_args args = new sync_args();
   args.Read(iprot);
   iprot.ReadMessageEnd();
   sync_result result = new sync_result();
   try {
     result.Success = iface_.sync(args.Snapshot, args.Session);
   } catch (ChatException ex) {
     result.Ex = ex;
   } catch (SessionException se) {
     result.Se = se;
   }
   oprot.WriteMessageBegin(new TMessage("sync", TMessageType.Reply, seqid)); 
   result.Write(oprot);
   oprot.WriteMessageEnd();
   oprot.Transport.Flush();
 }