private DataModel.TableOptions ParseTableOptions(PB.TableOptions tableOptions)
        {
            DataModel.TableOptions options = new DataModel.TableOptions()
            {
                TimeToLive  = tableOptions.TimeToLive,
                MaxVersions = tableOptions.MaxVersions,
                DeviationCellVersionInSec = tableOptions.DeviationCellVersionInSec,
                BlockSize       = tableOptions.BlockSize,
                BloomFilterType = ParseBloomFilterType(tableOptions.BloomFilterType)
            };

            return(options);
        }
        private PB.TableOptions EncodeTableOptions(DataModel.TableOptions tableOptions)
        {
            var builder = PB.TableOptions.CreateBuilder();

            if (tableOptions.TimeToLive.HasValue)
            {
                builder.SetTimeToLive(tableOptions.TimeToLive.Value);
            }
            else
            {
                Console.WriteLine("Time to live is set to -1 in default.");
                builder.SetTimeToLive(-1);
            }

            if (tableOptions.MaxVersions.HasValue)
            {
                builder.SetMaxVersions(tableOptions.MaxVersions.Value);
            }
            else
            {
                Console.WriteLine("Max Versions is set to 1 in default.");
                builder.SetMaxVersions(1);
            }

            if (tableOptions.DeviationCellVersionInSec.HasValue)
            {
                builder.SetDeviationCellVersionInSec(tableOptions.DeviationCellVersionInSec.Value);
            }

            if (tableOptions.BlockSize.HasValue)
            {
                builder.SetBlockSize(tableOptions.BlockSize.Value);
            }

            if (tableOptions.BloomFilterType.HasValue)
            {
                builder.SetBloomFilterType(EncodeBloomFilterType(tableOptions.BloomFilterType.Value));
            }


            return(builder.Build());
        }