Ejemplo n.º 1
0
        public static void Append <T>(string configname, string table, string rowid, string family, T obj, Func <T, IEnumerable <KeyValuePair <string, object> > > fun)
        {
            //实例化Socket连接
            //transport = new TSocket("2.5.172.38", 30001);
            var transport = new TSocket(configname);
            //实例化一个协议对象
            TProtocol tProtocol = new TBinaryProtocol(transport);

            byte[] tablenamebytes = Encoding.UTF8.GetBytes(table);
            byte[] rowidbytes     = Encoding.UTF8.GetBytes(rowid);
            byte[] familybytes    = Encoding.UTF8.GetBytes(family);
            using (var client = new HBase.Thrift2.THBaseService.Client(tProtocol))
            {
                transport.Open();
                try
                {
                    TAppend append = new TAppend();
                    append.Row = rowidbytes;

                    append.Columns = new List <TColumnValue>();
                    foreach (var kv in fun(obj))
                    {
                        append.Columns.Add(new TColumnValue(familybytes, Encoding.UTF8.GetBytes(kv.Key),
                                                            Serializer.TSerializer.GetBytes(kv.Value)));
                    }
                    client.append(tablenamebytes, append);
                }
                finally
                {
                    transport.Close();
                }
            }
        }
Ejemplo n.º 2
0
 public List <TCell> append(TAppend append)
 {
     return(_connection.append(append));
 }
Ejemplo n.º 3
0
 public void send_append(TAppend append)
 #endif
 {
   oprot_.WriteMessageBegin(new TMessage("append", TMessageType.Call, seqid_));
   append_args args = new append_args();
   args.Append = append;
   args.Write(oprot_);
   oprot_.WriteMessageEnd();
   #if SILVERLIGHT
   return oprot_.Transport.BeginFlush(callback, state);
   #else
   oprot_.Transport.Flush();
   #endif
 }
Ejemplo n.º 4
0
 public IAsyncResult send_append(AsyncCallback callback, object state, TAppend append)
Ejemplo n.º 5
0
    /// <summary>
    /// Appends values to one or more columns within a single row.
    /// 
    /// @return values of columns after the append operation.
    /// </summary>
    /// <param name="append">The single append operation to apply</param>
    public List<TCell> append(TAppend append)
    {
      #if !SILVERLIGHT
      send_append(append);
      return recv_append();

      #else
      var asyncResult = Begin_append(null, null, append);
      return End_append(asyncResult);

      #endif
    }
Ejemplo n.º 6
0
 public IAsyncResult Begin_append(AsyncCallback callback, object state, TAppend append)
 {
   return send_append(callback, state, append);
 }
Ejemplo n.º 7
0
 public void Read (TProtocol iprot)
 {
   TField field;
   iprot.ReadStructBegin();
   while (true)
   {
     field = iprot.ReadFieldBegin();
     if (field.Type == TType.Stop) { 
       break;
     }
     switch (field.ID)
     {
       case 1:
         if (field.Type == TType.Struct) {
           Append = new TAppend();
           Append.Read(iprot);
         } else { 
           TProtocolUtil.Skip(iprot, field.Type);
         }
         break;
       default: 
         TProtocolUtil.Skip(iprot, field.Type);
         break;
     }
     iprot.ReadFieldEnd();
   }
   iprot.ReadStructEnd();
 }