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())); }