Inheritance: TBase
Example #1
0
        public static FluentColumn ConvertColumnToFluentColumn(Column col, CassandraColumnFamilySchema schema = null)
        {
            var colSchema = new CassandraColumnSchema();

            if (schema != null)
            {
                var name = CassandraObject.GetTypeFromDatabaseValue(col.Name, schema.ColumnNameType);
                colSchema = schema.Columns.Where(x => x.Name == name).FirstOrDefault();

                if (colSchema == null)
                {
                    colSchema = new CassandraColumnSchema();
                    colSchema.NameType = schema.ColumnNameType;
                    colSchema.Name = name;
                    colSchema.ValueType = schema.DefaultColumnValueType;
                }
            }

            var fcol = new FluentColumn(colSchema) {
                ColumnName = CassandraObject.GetTypeFromDatabaseValue(col.Name, colSchema.NameType),
                ColumnValue = CassandraObject.GetTypeFromDatabaseValue(col.Value, colSchema.ValueType),
                ColumnTimestamp = UnixStart.AddMilliseconds(col.Timestamp),
            };

            if (col.__isset.ttl)
                fcol.ColumnSecondsUntilDeleted = col.Ttl;

            return fcol;
        }
 public ColumnOrSuperColumn(Column column, SuperColumn superColumn)
 {
     if(column != null)
         Column = column;
     if(superColumn != null)
         Super_column = superColumn;
 }
Example #3
0
        //        private string columnFamily = "users";
        //        private string keyspace = "test";
        //        private string key = "testKey";
        //        // Insert statement
        ////        private byte[] key = ByteEncoderHelper.LongEncoder.ToByteArray(i);
        //        private byte[] key = ByteEncoderHelper.LongEncoder.ToByteArray(2);
        //        private ColumnParent columnParent;
        //        private Column column;
        //        private ColumnPath columnPath;
        //        private ICluster cluster;
        //        
        //
        //
        //cluster.Execute(new ExecutionBlock(delegate(CassandraClient client) {
        //    client.insert(key, columnParent, column, ConsistencyLevel.ONE);
        //    return null;
        //}), keyspace);
        //        // Get statement
        //        byte[] key = ByteEncoderHelper.LongEncoder.ToByteArray(2);
        //        
        //        ICluster cluster = AquilesHelper.RetrieveCluster("Cassandra1");
        //        object rtnValue = cluster.Execute(new ExecutionBlock(delegate(CassandraClient client)
        //        {
        //            return client.get(key, columnPath, ConsistencyLevel.ONE);
        //        }), keyspace);
        public void Run()
        {
            string columnFamily = "TestColumnFamily";
            string keyspace = "TestKeyspace";
            string key = "testKey";
            string columnName = "testColumn";
            string columnValue = "testValue";

            // Insert statement
            byte[] key2 = ByteEncoderHelper.LongEncoder.ToByteArray(1);
            ColumnParent columnParent = new ColumnParent();
            Column column = new Column()
            {
                Name = ByteEncoderHelper.UTF8Encoder.ToByteArray(columnName),
                Timestamp = UnixHelper.UnixTimestamp,
                Value = ByteEncoderHelper.UTF8Encoder.ToByteArray(columnValue),
            };

            columnParent.Column_family = columnFamily;

            ICluster cluster = AquilesHelper.RetrieveCluster("Cassandra1");
            cluster.Execute(new ExecutionBlock(delegate(CassandraClient client)
            {
                client.insert(key, columnParent, column, ConsistencyLevel.ONE);
                return null;
            }), keyspace);
        }
Example #4
0
 public static Column ToModel(this Apache.Cassandra.Column c)
 {
     return(new Column
     {
         Name = c.Name.UTFDecode(),
         Value = c.Value.UTFDecode(),
         Timestamp = c.Timestamp,
     });
 }
Example #5
0
        public static FluentColumn ConvertColumnToFluentColumn(Column col, CassandraColumnSchema colSchema)
        {
            colSchema = colSchema ?? new CassandraColumnSchema();

            var fcol = new FluentColumn(colSchema) {
                ColumnName = CassandraObject.GetCassandraObjectFromDatabaseByteArray(col.Name, colSchema.NameType),
                ColumnValue = CassandraObject.GetCassandraObjectFromDatabaseByteArray(col.Value, colSchema.ValueType),
                ColumnTimestamp = TimestampHelper.FromCassandraTimestamp(col.Timestamp),
            };

            if (col.__isset.ttl)
                fcol.ColumnSecondsUntilDeleted = col.Ttl;

            return fcol;
        }
Example #6
0
        public static FluentColumn ConvertColumnToFluentColumn(Column col, CassandraColumnFamilySchema schema)
        {
            var colSchema = new CassandraColumnSchema();

            if (schema != null)
            {
                var name = CassandraObject.GetCassandraObjectFromDatabaseByteArray(col.Name, schema.ColumnNameType);
                colSchema = schema.Columns.Where(x => x.Name == name).FirstOrDefault();

                if (colSchema == null)
                {
                    colSchema = new CassandraColumnSchema();
                    colSchema.NameType = schema.ColumnNameType;
                    colSchema.Name = name;
                    colSchema.ValueType = schema.DefaultColumnValueType;
                }
            }

            return ConvertColumnToFluentColumn(col, colSchema);
        }
Example #7
0
        public static Column CreateColumn(FluentColumn column)
        {
            var col = new Column {
                Name = column.ColumnName.TryToBigEndian(),
                Value = column.ColumnValue.TryToBigEndian(),
                Timestamp = column.ColumnTimestamp.ToCassandraTimestamp()
            };

            if (column.ColumnSecondsUntilDeleted.HasValue)
                col.Ttl = column.ColumnSecondsUntilDeleted.Value;

            return col;
        }
Example #8
0
        public static Column CreateColumn(CassandraColumn column)
        {
            var ccol = new Column {
                Name = column.Name.TryToBigEndian(),
                Value = column.Value.TryToBigEndian(),
                Timestamp = column.Timestamp.ToCassandraTimestamp()
            };

            if (column.Ttl.HasValue && column.Ttl.Value > 0)
                ccol.Ttl = column.Ttl.Value;

            return ccol;
        }
 public void send_insert(byte[] key, ColumnParent column_parent, Column column, ConsistencyLevel consistency_level)
 {
     oprot_.WriteMessageBegin(new TMessage("insert", TMessageType.Call, seqid_));
     insert_args args = new insert_args();
     args.Key = key;
     args.Column_parent = column_parent;
     args.Column = column;
     args.Consistency_level = consistency_level;
     args.Write(oprot_);
     oprot_.WriteMessageEnd();
     oprot_.Transport.Flush();
 }
        private void GenerateParentUpdateForSubfolder(InventoryFolderBase child, byte[] parentIdArray,
            Dictionary<byte[], Dictionary<string, List<Mutation>>> muts, long timeStamp)
        {
            //never mutate the zero ID folder
            if (new Guid(parentIdArray) == Guid.Empty) return;

            List<Mutation> folderMutList = new List<Mutation>();

            Mutation propertiesMut = new Mutation();
            propertiesMut.Column_or_supercolumn = new ColumnOrSuperColumn();
            propertiesMut.Column_or_supercolumn.Super_column = new SuperColumn();
            propertiesMut.Column_or_supercolumn.Super_column.Name = ByteEncoderHelper.UTF8Encoder.ToByteArray("sub_folders");

            Column subfolderCol = new Column
            {
                Name = ByteEncoderHelper.GuidEncoder.ToByteArray(child.ID.Guid),
                Value = SubFolderData.Encode(child.Name, child.Type),
                Timestamp = timeStamp
            };

            List<Column> propertiesColumns = new List<Column>();
            propertiesColumns.Add(subfolderCol);

            propertiesMut.Column_or_supercolumn.Super_column.Columns = propertiesColumns;

            folderMutList.Add(propertiesMut);

            muts[parentIdArray].Add(FOLDERS_CF, folderMutList);
        }
Example #11
0
 public void send_insert(byte[] key, ColumnParent column_parent, Column column, ConsistencyLevel consistency_level)
 #endif
 {
   oprot_.WriteMessageBegin(new TMessage("insert", TMessageType.Call, seqid_));
   insert_args args = new insert_args();
   args.Key = key;
   args.Column_parent = column_parent;
   args.Column = column;
   args.Consistency_level = consistency_level;
   args.Write(oprot_);
   oprot_.WriteMessageEnd();
   #if SILVERLIGHT
   return oprot_.Transport.BeginFlush(callback, state);
   #else
   oprot_.Transport.Flush();
   #endif
 }
Example #12
0
 public IAsyncResult send_insert(AsyncCallback callback, object state, byte[] key, ColumnParent column_parent, Column column, ConsistencyLevel consistency_level)
Example #13
0
      /// <summary>
      /// Insert a Column at the given column_parent.column_family and optional column_parent.super_column.
      /// </summary>
      /// <param name="key"></param>
      /// <param name="column_parent"></param>
      /// <param name="column"></param>
      /// <param name="consistency_level"></param>
      public void insert(byte[] key, ColumnParent column_parent, Column column, ConsistencyLevel consistency_level)
      {
        #if !SILVERLIGHT
        send_insert(key, column_parent, column, consistency_level);
        recv_insert();

        #else
        var asyncResult = Begin_insert(null, null, key, column_parent, column, consistency_level);
        End_insert(asyncResult);

        #endif
      }
Example #14
0
 public IAsyncResult Begin_insert(AsyncCallback callback, object state, byte[] key, ColumnParent column_parent, Column column, ConsistencyLevel consistency_level)
 {
   return send_insert(callback, state, key, column_parent, column, consistency_level);
 }
Example #15
0
        public void Insert(string family, string key, string superColumnName, string columnName, string value)
        {
            ICluster cluster = AquilesHelper.RetrieveCluster(Cluster);
            byte[] keyAsByteArray = Encoding.ASCII.GetBytes(key);
            byte[] valueAsByteArray = Encoding.ASCII.GetBytes(value);
            var columnParent = new ColumnParent
                                   {
                                       Column_family = family,
                                   };
            var column = new Column
                             {
                                 Name = ByteEncoderHelper.UTF8Encoder.ToByteArray(columnName),
                                 Timestamp = UnixHelper.UnixTimestamp,
                                 Value = valueAsByteArray
                             };

            cluster.Execute(new ExecutionBlock(client =>
                                                   {
                                                       // http://www.dotnetperls.com/convert-string-byte-array

                                                       client.insert(keyAsByteArray, columnParent, column,
                                                                     ConsistencyLevel.ONE);
                                                       return null;
                                                   }), keyspaceName);
        }
Example #16
0
        private static void InsertIntoCassandraDB(string url, FileInfo fileInfo)
        {
            CheckCassandraIsRunning();
            byte[] key = ByteEncoderHelper.UTF8Encoder.ToByteArray(url);
            byte[] extension = ByteEncoderHelper.UTF8Encoder.ToByteArray(fileInfo.Extension);
            byte[] size = ByteEncoderHelper.UTF8Encoder.ToByteArray(fileInfo.Length.ToString());

            ColumnParent columnParent = new ColumnParent();
            Column urlColumn = new Column()
            {
                Name = ByteEncoderHelper.UTF8Encoder.ToByteArray("url"),
                Timestamp = UnixHelper.UnixTimestamp,
                Value = key
            };

            Column extensionColumn = new Column()
            {
                Name = ByteEncoderHelper.UTF8Encoder.ToByteArray("extension"),
                Timestamp = UnixHelper.UnixTimestamp,
                Value = extension
            };

            Column sizeColumn = new Column()
            {
                Name = ByteEncoderHelper.UTF8Encoder.ToByteArray("size"),
                Timestamp = UnixHelper.UnixTimestamp,
                Value = size
            };

            columnParent.Column_family = "resource";

            ICluster cluster = Aquiles.Cassandra10.AquilesHelper.RetrieveCluster("Test Cluster");
            cluster.Execute(new Aquiles.Cassandra10.ExecutionBlock(delegate(Cassandra.Client client)
            {
                client.insert(key, columnParent, urlColumn, ConsistencyLevel.ONE);
                client.insert(key, columnParent, extensionColumn, ConsistencyLevel.ONE);
                client.insert(key, columnParent, sizeColumn, ConsistencyLevel.ONE);
                return null;
            }), KEYSPACENAME);
        }
Example #17
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.String) {
       Name = iprot.ReadBinary();
     } else {
       TProtocolUtil.Skip(iprot, field.Type);
     }
     break;
       case 2:
     if (field.Type == TType.List) {
       {
         Columns = new List<Column>();
         TList _list0 = iprot.ReadListBegin();
         for( int _i1 = 0; _i1 < _list0.Count; ++_i1)
         {
           Column _elem2 = new Column();
           _elem2 = new Column();
           _elem2.Read(iprot);
           Columns.Add(_elem2);
         }
         iprot.ReadListEnd();
       }
     } else {
       TProtocolUtil.Skip(iprot, field.Type);
     }
     break;
       default:
     TProtocolUtil.Skip(iprot, field.Type);
     break;
     }
     iprot.ReadFieldEnd();
       }
       iprot.ReadStructEnd();
 }
        private AquilesColumn BuildColumn(Column column)
        {
            AquilesColumn aquilesColumn = new AquilesColumn();
            aquilesColumn.ColumnName = ByteEncoderHelper.FromByteArray(column.Name);
            aquilesColumn.Timestamp = column.Timestamp;
            aquilesColumn.Value = ByteEncoderHelper.FromByteArray(column.Value);

            return aquilesColumn;
        }
        private void GetFolderStorageMutations(InventoryFolderBase folder, byte[] folderIdBytes, byte[] userIdBytes,
            FolderMutationSelector mutationTypes, Dictionary<byte[], Dictionary<string, List<Mutation>>> outMuts, Guid newParent,
            long timeStamp)
        {
            //Folder CF mutations
            List<Mutation> folderMutList = new List<Mutation>();

            Mutation propertiesMut = new Mutation();
            propertiesMut.Column_or_supercolumn = new ColumnOrSuperColumn();
            propertiesMut.Column_or_supercolumn.Super_column = new SuperColumn();
            propertiesMut.Column_or_supercolumn.Super_column.Name = ByteEncoderHelper.UTF8Encoder.ToByteArray("properties");

            List<Column> propertiesColumns = new List<Column>();

            if (mutationTypes == FolderMutationSelector.All || mutationTypes == FolderMutationSelector.AllButParent)
            {
                Column nameCol = new Column
                {
                    Name = ByteEncoderHelper.UTF8Encoder.ToByteArray("name"),
                    Value = ByteEncoderHelper.UTF8Encoder.ToByteArray(folder.Name),
                    Timestamp = timeStamp,
                };

                Column typeCol = new Column
                {
                    Name = ByteEncoderHelper.UTF8Encoder.ToByteArray("type"),
                    Value = ByteEncoderHelper.LittleEndianInt32Encoder.ToByteArray(folder.Type),
                    Timestamp = timeStamp,
                };

                Column userIdCol = new Column
                {
                    Name = ByteEncoderHelper.UTF8Encoder.ToByteArray("user_id"),
                    Value = ByteEncoderHelper.GuidEncoder.ToByteArray(folder.Owner.Guid),
                    Timestamp = timeStamp,
                };

                Column levelCol = new Column
                {
                    Name = ByteEncoderHelper.UTF8Encoder.ToByteArray("level"),
                    Value = new byte[] { (byte)folder.Level },
                    Timestamp = timeStamp,
                };

                propertiesColumns.Add(nameCol);
                propertiesColumns.Add(typeCol);
                propertiesColumns.Add(userIdCol);
                propertiesColumns.Add(levelCol);
            }

            if (mutationTypes == FolderMutationSelector.All || mutationTypes == FolderMutationSelector.ParentOnly)
            {
                Column parentIdCol = new Column
                {
                    Name = ByteEncoderHelper.UTF8Encoder.ToByteArray("parent"),
                    Value = ByteEncoderHelper.GuidEncoder.ToByteArray(newParent),
                    Timestamp = timeStamp,
                };

                propertiesColumns.Add(parentIdCol);
            }


            propertiesMut.Column_or_supercolumn.Super_column.Columns = propertiesColumns;
            folderMutList.Add(propertiesMut);

            Dictionary<string, List<Mutation>> folderKeyMuts = new Dictionary<string, List<Mutation>>();
            folderKeyMuts[FOLDERS_CF] = folderMutList;

            //version increment
            Mutation versionMut = VersionIncrement();
            folderKeyMuts[FOLDERVERSIONS_CF] = new List<Mutation> { versionMut };

            outMuts[folderIdBytes] = folderKeyMuts;


            //UserFolder CF mutations
            if (!outMuts.ContainsKey(userIdBytes))
            {
                outMuts[userIdBytes] = new Dictionary<string, List<Mutation>>();
            }

            if (!outMuts[userIdBytes].ContainsKey(USERFOLDERS_CF))
            {
                outMuts[userIdBytes].Add(USERFOLDERS_CF, new List<Mutation>());
            }

            List<Mutation> userKeyMuts = outMuts[userIdBytes][USERFOLDERS_CF];
            List<Mutation> userFolderMutList = new List<Mutation>();

            //userfolders index, the list of all folders per user
            Mutation userFolderPropertiesMut = new Mutation();
            userFolderPropertiesMut.Column_or_supercolumn = new ColumnOrSuperColumn();
            userFolderPropertiesMut.Column_or_supercolumn.Super_column = this.BuildFolderIndexEntry(folder, folderIdBytes, mutationTypes, newParent, timeStamp);
            userKeyMuts.Add(userFolderPropertiesMut);
        }
 protected void CreateMutation(List<Mutation> mutList, String column, Byte[] value, Int64 timestamp)
 {
     Mutation mutation = new Mutation();
     Column col = new Column();
     col.Name = column.ToCassandraByte();
     col.Value = value;
     col.Timestamp = timestamp;
     Int32 ttl = LevelMapping.GetTtl();
     if (ttl > 0)
         col.Ttl = 0;
     ColumnOrSuperColumn cosc = new ColumnOrSuperColumn();
     cosc.Column = col;
     mutation.Column_or_supercolumn = cosc;
     mutList.Add(mutation);
 }
 public void insert(byte[] key, ColumnParent column_parent, Column column, ConsistencyLevel consistency_level)
 {
     send_insert(key, column_parent, column, consistency_level);
     recv_insert();
 }
 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) {
       this.column = new Column();
       this.column.Read(iprot);
       this.__isset.column = true;
     } else {
       TProtocolUtil.Skip(iprot, field.Type);
     }
     break;
       case 2:
     if (field.Type == TType.Struct) {
       this.super_column = new SuperColumn();
       this.super_column.Read(iprot);
       this.__isset.super_column = true;
     } else {
       TProtocolUtil.Skip(iprot, field.Type);
     }
     break;
       default:
     TProtocolUtil.Skip(iprot, field.Type);
     break;
     }
     iprot.ReadFieldEnd();
       }
       iprot.ReadStructEnd();
 }
 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.String) {
     Key = iprot.ReadBinary();
       } else {
     TProtocolUtil.Skip(iprot, field.Type);
       }
       break;
     case 2:
       if (field.Type == TType.Struct) {
     Column_parent = new ColumnParent();
     Column_parent.Read(iprot);
       } else {
     TProtocolUtil.Skip(iprot, field.Type);
       }
       break;
     case 3:
       if (field.Type == TType.Struct) {
     Column = new Column();
     Column.Read(iprot);
       } else {
     TProtocolUtil.Skip(iprot, field.Type);
       }
       break;
     case 4:
       if (field.Type == TType.I32) {
     Consistency_level = (ConsistencyLevel)iprot.ReadI32();
       } else {
     TProtocolUtil.Skip(iprot, field.Type);
       }
       break;
     default:
       TProtocolUtil.Skip(iprot, field.Type);
       break;
       }
       iprot.ReadFieldEnd();
     }
     iprot.ReadStructEnd();
 }
 public ColumnOrSuperColumn(Column column)
     : this(column, null)
 {
 }