public void RowCtorCodegen(AggregationRowCtorDesc rowCtorDesc)
 {
 }
        public static void GenerateIncidentals(
            bool hasRefcount,
            bool hasLastUpdTime,
            AggregationRowCtorDesc rowCtorDesc)
        {
            var namedMethods = rowCtorDesc.NamedMethods;
            var classScope = rowCtorDesc.ClassScope;
            IList<CodegenTypedParam> rowMembers = rowCtorDesc.RowMembers;

            if (hasRefcount) {
                rowMembers.Add(new CodegenTypedParam(typeof(int), "refcount").WithFinal(false));
            }

            namedMethods.AddMethod(
                typeof(void),
                "IncreaseRefcount",
                NIL_NAMED_PARAM,
                typeof(AggregationServiceCodegenUtil),
                classScope,
                hasRefcount ? method => method.Block.Increment(Ref("refcount")) : NIL_METHOD_CONSUMER);
            namedMethods.AddMethod(
                typeof(void),
                "DecreaseRefcount",
                NIL_NAMED_PARAM,
                typeof(AggregationServiceCodegenUtil),
                classScope,
                hasRefcount ? method => method.Block.Decrement(Ref("refcount")) : NIL_METHOD_CONSUMER);
            namedMethods.AddMethod(
                typeof(long),
                "GetRefcount",
                NIL_NAMED_PARAM,
                typeof(AggregationServiceCodegenUtil),
                classScope,
                hasRefcount
                    ? new Consumer<CodegenMethod>(method => method.Block.MethodReturn(Ref("refcount")))
                    : new Consumer<CodegenMethod>(method => method.Block.MethodReturn(Constant(1))));

            if (hasLastUpdTime) {
                rowMembers.Add(new CodegenTypedParam(typeof(long), "lastUpd").WithFinal(false));
            }

            namedMethods.AddMethod(
                typeof(void),
                "SetLastUpdateTime",
                CodegenNamedParam.From(typeof(long), "time"),
                typeof(AggregationServiceCodegenUtil),
                classScope,
                hasLastUpdTime
                    ? new Consumer<CodegenMethod>(method => method.Block.AssignRef("lastUpd", Ref("time")))
                    : new Consumer<CodegenMethod>(method => method.Block.MethodThrowUnsupported()));

            namedMethods.AddMethod(
                typeof(long),
                "GetLastUpdateTime",
                NIL_NAMED_PARAM,
                typeof(AggregationServiceCodegenUtil),
                classScope,
                hasLastUpdTime
                    ? new Consumer<CodegenMethod>(method => method.Block.MethodReturn(Ref("lastUpd")))
                    : new Consumer<CodegenMethod>(method => method.Block.MethodThrowUnsupported()));
        }