public Column GetColumn(string key, ColumnPath columnPath)
        {
            AssertColumnPath(columnPath);

            var op = new Operation<Column>(ClientCounter.READ_FAIL);
            op.Handler = client =>
            {
                try
                {
                    var cosc = client.get(Name, key, columnPath.ToThrift(), ConsistencyLevel.ToThrift());
                    return cosc == null ? null : cosc.Column.ToModel();
                }
                catch (Apache.Cassandra051.NotFoundException ex)
                {
                    op.Error = new NotFoundException("Column Not Found: key: " + key + ", " + columnPath.ToString(), ex);
                }
                return null;
            };

            OperateWithFailover(op);

            if (op.HasError)
                throw op.Error;
            return op.Result;
        }
        public IDictionary<string, Column> MultigetColumn(IList<string> keys, ColumnPath columnPath)
        {
            AssertColumnPath(columnPath);

            var op = new Operation<IDictionary<string, Column>>(ClientCounter.READ_FAIL,
                client =>
                {
                    var result = new Dictionary<string, Column>();

                    var cfmap = client.multiget(Name, new List<string>(keys), columnPath.ToThrift(), ConsistencyLevel.ToThrift());

                    foreach (var entry in cfmap.Transform(entry => new { entry.Key, Column = entry.Value.Column.ToModel() }))
                        result.Add(entry.Key, entry.Column);

                    return result;
                });

            OperateWithFailover(op);
            return op.Result;
        }
 public void Remove(string key, ColumnPath columnPath)
 {
     var op = new VoidOperation(ClientCounter.WRITE_FAIL,
         client =>
         {
             client.remove(Name, key, columnPath.ToThrift(), Util.UnixTimestamp, ConsistencyLevel.ToThrift());
         }
     );
     OperateWithFailover(op);
 }
        public void Insert(string key, ColumnPath columnPath, byte[] value)
        {
            AssertColumnPath(columnPath);

            var op = new VoidOperation(ClientCounter.WRITE_FAIL,
                client =>
                {
                    client.insert(Name, key, columnPath.ToThrift(), value, Util.UnixTimestamp, ConsistencyLevel.ToThrift());
                });
            OperateWithFailover(op);
        }