コード例 #1
0
ファイル: Program.cs プロジェクト: smithjoana/gravity
        static void Main(string[] args)
        {
            System.Console.Out.WriteLine("Started C# Publisher");
            GravityCS.GravityInteractor g = new GravityCS.GravityInteractor();
            g.Init(".Net Gravity Test Publisher");
            System.Console.Out.WriteLine("Gravity Initialized");

            g.RegisterDataProduct("CSTestDataProduct", GravityCS.GravityTransportType.TCP);
            System.Console.Out.WriteLine("Registered CSTestDataProduct");

            g.RegisterService("CSTestRequest", GravityCS.GravityTransportType.TCP, delegate(String serviceID, GravityCS.DataProduct dataProducts)
            {
                MultiplicationOperandsPB.Builder multRequest = MultiplicationOperandsPB.CreateBuilder();
                dataProducts.getProtobufObject(multRequest);

                MultiplicationResultPB.Builder multResult = MultiplicationResultPB.CreateBuilder();
                multResult.Result = multRequest.MultiplicandA * multRequest.MultiplicandB; //Do the calculation

                GravityCS.DataProduct result = new GravityCS.DataProduct("MultResult");
                result.setData(multResult.Build());

                return(result);
            });
            System.Console.Out.WriteLine("Registered CSTestRequest");

            bool quit  = false;
            int  value = 0;

            while (!quit)
            {
                GravityCS.DataProduct testDP = new GravityCS.DataProduct("CSTestDataProduct");
                //testDP.setData();
                BasicCounterDataProductPB.Builder proto = BasicCounterDataProductPB.CreateBuilder();
                value++;
                proto.Count = value;

                testDP.setData(proto.Build());
                g.Publish(testDP);

                System.Console.Out.WriteLine("Published Data Product");

                System.Threading.Thread.Sleep(1000);
            }

            g.UnregisterDataProduct("CSTestDataProduct");
        }