Example #1
0
int main(int argc, char *argv[])
{
    if (argc < 4) {
        std::cerr << "usage: run <protocol> <n> <number of runs>" << std::endl;
        exit(-1);
    }

    protocol_fn protf;

    if (!strcmp(argv[1], "pcl"))
        protf = pcl;
        
    else if (!strcmp(argv[1], "kdk"))
        protf = kdk;
    else {
        std::cerr << "unknown protocol" << std::endl;
        exit(-1);
    }

    int n = atoi(argv[2]);
    if (n <= 0) {
        std::cerr << "n must be positive" << std::endl;
        exit(-1);
    }

    int nruns = atoi(argv[3]);
    if (nruns <= 0) {
        std::cerr << "number of runs must be positive" << std::endl;
        exit(-1);
    }

    float *times = new float[nruns];

    protf((unsigned int)n, times, (size_t)nruns);
    
    std::cout << n << "\t" << favg(times, nruns) << "\t" << fmax(times, nruns) 
              << "\t" << fmin(times, nruns) << "\t" << fstd(times, nruns)
              << std::endl;


    delete[] times;
}
Example #2
0
        GwtVantageFxBundle::GwtVantageFxBundle() {

            add("com.optionfair.client.model.ClientUpdatePack/839029662", {
                fstd("some_1"),
                fptr("assetUpdates"),
                fptr("money"),
                fptr("some_3"),
                fstd("instrumentType"),
                fstd("some_5"),
                fstd("some_6"),
                fstd("some_7"),
                fptr("options"),
                fstd("some_10"),
                fptr("some_11"),
                fptr("optionUpdates"),
                fstd("some_12"),
                fstd("some_13"),
                fptr("some_14"),
                fstd("some_15"),
                fptr("positionsSentimentDto"),
                fptr("positionUpdates"),
                fint("some_17"),
                fint("some_18"),
                fint("some_19"),
                fptr("some_20"),
                flng("date"),
                fptr("some_22"),
                fint("some_23"),
                fint("some_24")
            });

            add("com.optionfair.client.model.PositionsSentimentDTO/3338833266", {
                fptr("map"),
                fstd("some_1"),
                fstd("some_2")
            });

            add("com.optionfair.client.model.FeedTickUpdate/4036343884", {
                fdbl("some_1"),
                fptr("date"),
                fstd("some_2"),
                fstd("some_3")
            });

            add("com.optionfair.client.model.Option/1343902663", {
				fstr("serialuid"),
                fint("assetId"), // Для какой пары текущий опцион
                fstd("some_2"),
                fint("optionSeconds"),
                fstd("some_4"),
				fint("some_5"),
				fptr("closeDate"),
                fptr("some_7"),
                fint("expiryTypeId"),
                flng("id"),
                fdbl("some_10"),
                fint("instrumentId"),
                fstd("some_12"),
                fptr("some_13"),
                fdbl("some_14"),
                fdbl("some_15"),
                flng("some_16"),
                fint("some_17"),
                fint("some_18"),
                fint("some_19"),
                flng("some_20"),
				fstd("some_21"),
				fstd("some_22"),
				fint("some_23"),
				fint("return"),
				fstr("some_24"),
                fdbl("price"),
                fstd("some_26"),
                fptr("openFrom"),
				fint("some_int"),
				fptr("some_date"),
				fint("optionStatus"),
				fdbl("some_29"),
                fdbl("some_30"),
                fdbl("some_31"),
                fdbl("some_32"),
                flng("some_33"),
            });


/**
0
124
bVQI
7.679500e-01
311
0
6 [java.util.Date/3385151746]
Vo7NMsA
0.000000e+00
0.000000e+00
HUw
5 [com.optionfair.client.model.Option/1343902663]
1 [com.optionfair.client.model.ClientUpdatePack/839029662]
1 [com.optionfair.client.model.ClientUpdatePack/839029662]
ZN
0
0
0
170
7 [1]
7.679500e-01
0
0
0
6 [java.util.Date/3385151746]
Vo7NMsA
14
7.679500e-01
0.000000e+00
0.000000e+00
0.000000e+00
O
5 [com.optionfair.client.model.Option/1343902663]
5 [com.optionfair.client.model.Option/1343902663]
0
60
0
-1
6 [java.util.Date/3385151746]
Vo$o7MA
0
124
bVP2
1.252100e+00
311
0
6 [java.util.Date/3385151746]
Vo7NMsA
0.000000e+00
0.000000e+00
Opg
1 [com.optionfair.client.model.ClientUpdatePack/839029662]
1 [com.optionfair.client.model.ClientUpdatePack/839029662]
1 [com.optionfair.client.model.ClientUpdatePack/839029662]
P_
0
0
0
170
7 [1]
1.252100e+00
0
0
0
6 [java.util.Date/3385151746]
Vo7NMsA
14
1.252100e+00
0.000000e+00
0.000000e+00
0.000000e+00
O
5 [com.optionfair.client.model.Option/1343902663]
14
0
60
0
-1
6 [java.util.Date/3385151746]
Vo9WhwA
0
124
bVTl
5.340500e+01
311
0
6 [java.util.Date/3385151746]
Vo7owXA
0.000000e+00
0.000000e+00
HUw
1 [com.optionfair.client.model.ClientUpdatePack/839029662]
1 [com.optionfair.client.model.ClientUpdatePack/839029662]
1 [com.optionfair.client.model.ClientUpdatePack/839029662]
Tr
0
0
0
165
7 [1]
5.340500e+01
0
0
0
6 [java.util.Date/3385151746]
Vo7oqgA
14
5.340500e+01
0.000000e+00
0.000000e+00
0.000000e+00
O
5 [com.optionfair.client.model.Option/1343902663]
4 [java.lang.Long/4227064769]
0
300
0
-1
6 [java.util.Date/3385151746] */

			add("com.optionfair.client.model.AssetCurrencyRel/2204523642", {
				fstr("serialuid"), //6[rO0ABXcEAAAAAA == ]
				fstd("some1"), //43[Wagered]
                fptr("pk"),
				fstd("std1"), //1[com.optionfair.client.model.LutResolverInitPackage / 2546929785]
				fstd("std2"), //1[com.optionfair.client.model.LutResolverInitPackage / 2546929785]
			});

            add("com.optionfair.client.model.AssetCurrencyRelPK/4186144263", {
                fint("some_id"), //43[Wagered]
            });

            add("com.optionfair.client.model.PositionUpdate/3887973789", {
                fdbl("closedPrice"),//0.000000e+00
                fptr("positionCloseDate"),//0
                flng("transactionId"),//KlvU
                fint("instrumentId"),//311
                flng("date"),//VRdvf30
                flng("returned"),//A
                flng("some_7"),//A
                fint("positionStatus"),//18
                fdbl("some_9"),//0.000000e+00
            });

            add("com.optionfair.client.model.AssetUpdate/3263927368", {
				fstr("serialuid"), //6[rO0ABXcEAAAAAA == ]
				fint("assetStatusId"), // статус лота (нужен Production)
                fint("assetId"), // Идентификатор лота
                fdbl("targetPrice"), // Текущая цена
            });

            add("com.optionfair.client.model.OptionUpdateChangeStrike/3365438592", {
                fdbl("targetPrice"),
                fdbl("some_2"),
                flng("optionId"),
                fdbl("some_4"),
                fdbl("some_5"),
                fint("optionStatus"),
            });

			add("com.optionfair.client.resolver.BrandCurrencyCountryResolver/4149870428", {
                fptr("countries"),
                fptr("currencies"),
                fptr("currencyMap"),
                fstd("some_1"),
			});

            add("com.optionfair.client.model.LutResolverInitPackage/2546929785", {
                fptr("pspToPspType"),
                fptr("lutTypes"),
                fptr("paymentMethods"),
                fptr("assets"),
                fptr("someToPspCcTypeRels"),
                fptr("some_3"),
                fptr("blackWhiteList"),
                fptr("someList1"),
                fptr("brand"),
                fptr("brandCurrencyCountryResolver"),
                fstd("externalId"),
                fstd("some_5"),
                fstr("enfinium"),
                fptr("breandPspRels"),
                fptr("some_8"),
                fptr("brandRegulations"),
                fptr("primaryCurrencies"),
                fptr("limits"),
                fstd("basic"),
                fptr("date"),
                fptr("primaryDateFormat"),
                fstd("some_10"),
                fstd("some_11"),
                fptr("instrumentTypeFilters"),
                fptr("instrumentTypeSuperToInstrumentTypes"),
                fptr("instrumentTypeToInstrument"),
                fptr("superRels"),
                fstd("some_15"),
                fstd("some_16"),
                fstd("num_99999"),
                fptr("LoginDTO"),
                fstd("some_19"),
                fptr("markets"),
                fptr("messages"),
                fstd("some_20"),
                fptr("servers"),
                fptr("acceptedMethods"),
                fptr("pspCcTypeRels"),
                fstd("some_21"),
                fptr("some_22"),
                fptr("states"),
                fptr("some_23"),
                fptr("trackingInfo"),
                fptr("verifications"),
                fstd("some_24"),
                fstd("some_25")
            });

            add("com.optionfair.client.model.TradeLimits/516060049", {
                flng("some_1"),
                flng("some_2"),
                flng("some_3")
            });

            add("com.optionfair.client.ui.pages.tradePage.spread.High/1043352957", {
                fstr("some_1"),
                fdbl("some_2")
            });

			add("com.optionfair.client.ui.pages.tradePage.spread.NoSpread/2332320922", {
				//fint("some_1"),
				//fint("some_2"),
			});

            add("com.optionfair.client.ui.pages.tradePage.spread.Low/1807028581", {
                fstr("some_1"),
                fdbl("some_2")
            });

            add("com.optionfair.client.ui.pages.tradePage.spread.Touch/1022019549", {
                fstr("some_1"),
                fdbl("some_2")
            });

            add("com.optionfair.client.ui.pages.tradePage.spread.NoTouch/1845245280", {
                fstr("some_1"),
                fdbl("some_2")
            });

            add("com.optionfair.client.ui.pages.tradePage.spread.In/3813998762", {
                fstr("some_1"),
                fdbl("some_2")
            });

            add("com.optionfair.client.ui.pages.tradePage.spread.Out/2494560053", {
                fstr("some_1"),
                fdbl("some_2")
            });

            add("com.optionfair.client.ui.pages.tradePage.spread.Probability/1287790398", {
                fstr("some_1"),
                fdbl("some_2"),
            });

            add("com.optionfair.client.model.LoginDTO/3023568058", {
                fptr("account"),
                fstr("login"),
                fstr("some_1"),
                fptr("someMap"),
                fstd("some_2"),
                fstd("some_3"),
                fdbl("some_4"),
                fint("some_5"),
                fstd("some_6"),
                fptr("tradeLimits"),
                fstd("some_8"),
                fstd("some_9")
            });

            add("com.optionfair.client.spread.SpreadCalculator/3758543021", {
                flng("some_1"),
                fdbl("some_2"),
                fdbl("some_3"),
                fdbl("some_4"),
                fdbl("some_5"),
                fptr("spreads"),
                fstd("some_6"),
                fstd("some_7"),
                fdbl("some_8"),
                fdbl("some_9"),
                fstd("some_10"),
                fint("some_11"),
                fstd("some_12"),
                fstd("some_13"),
                fstd("some_14"),
                flng("some_15"),
                fstd("some_16"),
            });



            add("com.optionfair.client.model.Account/3668294554", {
                fstr("serialuid"),
                fstd("some_1"),
                fstr("regular"),
                fint("some_2"),
                fstd("some_3"),
                flng("some_4"),
                fstd("some_5"),
                fstd("some_6"),
                fstd("some_7"),
                fstd("some_8"),
                fstd("some_9"),
                flng("some_10"),
                flng("some_11"),
                fptr("some_date"),
                fptr("someList_1"),
                fptr("someList_2"),
                fdbl("some_12"),
                fint("externalId"),
                fptr("integer_1"),
                fstd("some_13"),
                fstd("some_14"),
                fint("some_15"),
                fstr("gotham"),
                fstr("guid"),
                fstr("name"),
                fstr("how"),
                fstd("some_16"),
                fstd("some_17"),
                fstr("email"),
                fstd("some_18"),
                fstr("login"),
                fstd("some_19"),
                fstr("fullName"),
                flng("some_20"),
                fstd("some_21"),
                flng("accountId"),
                fstd("some_23"),
                fstd("some_24"),
                fstd("some_25"),
                fstd("some_26"),
                fstd("some_27"),
                fstd("some_28"),
                fstd("some_29"),
                fstd("some_30"),
                fstd("some_31"),
                fstd("some_32"),
                fptr("lastVisit"),
                fstr("shortName"),
                fstd("some_33"),
                fstd("some_34"),
				fstd("some_345"),
                flng("some_35"),
                fstd("some_36"),
                flng("some_37"),
                flng("some_38"),
                flng("some_39"),
                fstd("some_40"),
                fstd("some_41"),
                fstd("some_42"),
                fstd("some_43"),
                fstd("some_44"),
                fstd("some_45"),
                fstd("some_46"),
                fstr("some_47"),
                fstd("some_48"),
                fptr("joinDate"),
                flng("some_49"),
                fint("some_50"),
                fptr("integer_2"),
                fstd("some_51"),
                fint("some_52"),
                fint("some_53"),
                flng("some_54"),
                fstd("some_55"),
                fstd("some_56"),
                fptr("some_57"),
                fstr("answer"),
                fstr("questing"),
                fstd("some_58"),
                fint("some_59"),
                fint("some_60"),
                fstr("some_61"),
				fstd("some_615"),
                fdbl("some_62"),
                fptr("spreadCalculator"),
                fstd("some_63"),
                fstd("some_64"),
                flng("some_65"),
            });

            add("com.optionfair.client.model.TrackingInfo/2864454600", {
                fstr("serialuid"),
                fstd("some_1"),
                flng("some_2"),
                flng("some_3"),
                fstd("some_4"),
                fstd("some_5"),
                fstd("some_6"),
                fstd("some_7"),
                fstd("some_8"),
                fstd("some_9"),
                flng("some_10"),
                fptr("date")
            });


            add("com.optionfair.client.verification.FieldVerification/2630919542", {
                fstd("some_1"),
                fstd("some_2"),
                fstd("some_3"),
                fstd("some_4"),
                fstd("some_5"),
                fint("some_6"),
                fstd("some_7"),
                fstr("name"),
                fstd("some_8"),
                fstr("regex"),
                fstd("some_9"),
                fstd("some_10")
            });

            add("com.optionfair.client.verification.FieldVerification/2808143106", {
                fstd("some_1"),
                fstr("some_2"),
                fstd("some_3"),
                fstd("some_4"),
                fstd("some_5"),
                fint("some_6"),
                fstd("some_7"),
                fstd("some_8"),
                fstr("name"),
                fstd("some_9"),
                fstr("regex"),
                fstd("some_10"),
                fstd("some_11"),
                fstd("some_12")
            });

            add("com.optionfair.client.model.State/1216850312", {
                fstr("serialuid"),
                fstd("country"),
                fint("order"),
                fstr("some_1"),
                fstr("name")
            });

            add("com.optionfair.client.model.PspCcTypeRel/300072509", {
                fstr("serialuid"),
                fint("creditCardTypeId"),
                flng("id"),
                fint("paymentMethodTypeId")
            });

            add("com.optionfair.client.model.MTServer/2069697836", {
                fstd("some_1"),
                fstd("some_2"),
                fstr("name")
            });

            add("com.optionfair.client.model.SubMarket/2699240068", {
                fstr("serialuid"),
                fstd("some_1"),
                fint("id"),
                fint("some_2"),
                fint("some_3"),
                fstr("name"),
                fint("some_4")
            });

            add("com.optionfair.client.model.Market/3553066736", {
                fstr("serialuid"),
                fint("id"),
                fint("some_2"),
                fstr("name"),
                fptr("subMarkets"),
                fstd("some_3"),
                fptr("parameters")
            });

            add("com.optionfair.client.model.InstrumentTypeFilter/1437805786", {
                fstr("serialuid"),
                fstd("some_1"),
                fstr("interval"),
                fint("order"),
                fstd("some_2"),
                fstr("title")
            });

            add("com.optionfair.client.model.InstrumentTypeInstrumentTypeSuperRel/1928340203", {
                fstr("serialuid"),
                fint("some_1"),
                fint("id"),
                fint("instrumentTypeId"),
                fint("instrumentTypeSuperId"),
                fint("order")
            });

            add("com.optionfair.client.model.CurrencyCountryLimit/3396769176", {
                fstr("serialuid"), // 6 [rO0ABXcEAAAAAA==]
                fstd("externalId"), // 37 [Admin]
                fstd("some_2"), // 1043 [XX]
                fint("currencyId"), // 1 [com.optionfair.client.model.LutResolverInitPackage/2546929785]
                fint("order"), // 1 [com.optionfair.client.model.LutResolverInitPackage/2546929785]
                fstd("some_3"), // 0
                flng("some_4"), // MNQ
                flng("some_5"), // B6Eg
                flng("some_6"), // MNQ
                flng("some_7"), // Ek$A
                flng("some_8"), // MNQ
                flng("some_9"), // MNQ
                flng("some_10"), // TEtA
                flng("some_11"), // MNQ
                flng("some_12"), // MNQ
                flng("some_13"), // D0JA
                flng("some_14"), // Yag
                flng("some_15"), // D0JA
                flng("some_16"), // HoSA+
                flng("some_17"), // Po
                flng("some_18"), // CcQ
                flng("some_19"), // Po
                flng("some_20"), // BOI
                flng("some_21"), // E4g
                flng("some_22"), // Po
                flng("some_23"), // Po
                flng("some_24"), // Po
				flng("some_25"), // Po
				flng("some_26"), // D0JA
                flng("some_27"), // D0JA
                flng("some_28"), // CcQ
			});

            add("com.optionfair.client.model.Currency/2484116626", {
                fstr("serialuid"),
                fint("id"),
                fstr("name"),
                fstr("symbol"),
                fstd("some_1"),
                fint("countryId"),
                fdbl("some_3"),
                fstd("some_4"),
                fstr("some_5"),
                fstr("abbr"),
                fstd("some_6"),
                flng("some_7")
            });

            add("com.optionfair.client.model.BreandPspRel/2784143874", {
                fstr("serialuid"),
                fint("externalId"),
                fstd("some_1"),
                fstd("some_2"),
                fstd("some_3"),
                fstd("some_4"),
                fstd("some_5"),
                fstd("some_6"),
                fstd("some_7"),
                fstd("some_8"),
                fstd("some_9"),
                fstd("some_10"),
                fstd("some_11")
            });

            add("com.optionfair.client.model.BrandRegulation/1013124097", {
                fstr("serialuid"), // 6 [rO0ABXcEAAAAAA==]
                fint("externalId"), // 37 [Admin]
                fstd("some_1"), // 1 [com.optionfair.client.model.LutResolverInitPackage/2546929785]
                fstd("some_2"), // 1680 [Swaziland]
                fstd("some_3"), // 1502 [PSE]
                fstd("some_4"), // 2800
                fstd("some_5"), // 0
                fstd("some_6"), // 3 [java.lang.Integer/3438268394]
                fstd("some_7"), // 3000
                fstd("some_8"), // 2000
                fstd("some_9"), // 1675 [SJM]
                fptr("some_10"), // -4104
                fstd("some_11"), // 141 [RU]
            });



			add("com.optionfair.client.model.DateTimeFormatOF/3059496483", {
				fstr("serialuid"),
				fstr("full_date"),
				fstr("mid_date"),
				fstr("short_date"),
				fstr("very_short"),
				fstd("some_1"),
				fstr("full_time"),
				fstr("mid_time"),
				fstr("short_time")
			});

            add("com.optionfair.client.model.Country/2926175992", {
                fstr("serialuid"),
                fptr("dateTimeFormat"),
                fstd("some_2"),
                fstd("language"),
                fint("some_3"),
                fint("some_4"),
                fstr("short_2"),
                fstr("short_3"),
                fstr("fullName"),
                fint("some_5"),
                fstr("some_6"),
                fstr("some_7")
            });

            add("com.optionfair.client.model.Asset/2513088007", {
				fstr("serialuid"),
				fdbl("some_1"),
				fdbl("some_2"),
				fdbl("some_3"),
				fstd("some_4"),
				fstd("some_5"),
				fdbl("some_6"),
				fstr("some_7"),
				fstd("some_8"),
				fdbl("some_9"),
				fint("some_10"),
				fint("some_11"),
				fint("id"),
				fdbl("some_13"),
				fint("some_14"),
				fint("some_15"),
				fptr("some_16"),
				fint("some_17"),
				fdbl("some_18"),
				fstd("some_19"),
				fstd("some_20"),
				fstd("some_21"),
				fint("some_22"),
				fdbl("some_225"),
				fint("some_23"),
				fint("some_24"),
				fdbl("some_25"),
				fint("some_26"),
				fdbl("some_27"),
				fstd("some_28"),
				fint("some_29"),
				fint("some_30"),
				fstd("some_31"),
				fint("subMarketId"),
				fstd("some_33"),
				fstr("name"),
				fstr("some_35"),
				fstr("some_36"),
				fstd("some_37"),
				fstr("some_375"),
				fdbl("some_38")
			});

            add("com.optionfair.client.model.LutType/4271068468", {
                fstr("serialuid"),
                fint("id"),
                fstr("name"),
                fptr("luts"),
                fstd("some_1"),
                fptr("parameters")
            }, "name");

            add("com.optionfair.client.model.Lut/3629739227", {
                fstr("serialuid"),
                fint("id"),
                fstr("name"),
                fint("lutTypeId")
            }, "name");

			add("com.optionfair.client.model.PaymentMethod/4059381229", {
				fstr("serialuid"),//6 [rO0ABXcEAAAAAA==]
				fint("commissionType"),//128 [UpBid]
				fdbl("some_2"),//3.000000e+02
				fint("id"),//93 [Tax]
				fint("some_4"),//1 [com.optionfair.client.model.LutResolverInitPackage/3212179674]
				fstd("some_5"),//0
				fint("some_6"),//8 [com.optionfair.client.model.Lut/3629739227]
				fstr("some_7"),//204 [Wire]
				fstd("some_8"),//0
				fstd("some_9"),//0
				fint("some_10"),//1 [com.optionfair.client.model.LutResolverInitPackage/3212179674]
				fint("regulationId"),//1502
				fstd("some_12"),//0
				fstd("some_13"),//267 [IdPay_cysec]
			});
			
			add("com.optionfair.client.model.TradeActionResponse/2831172712", {
                flng("accountId"), //ISw
                fint("some_2"),//0
                flng("money"),//Po
                fint("some_4"),//4
                fdbl("some_5", true),//0
				flng("some_55"),
                fdbl("some_6"),//1.13335
                fint("some_7"),//0
				fint("some_75"),//0
				fstr("some_8"),//2 [ACR+yRO4lkJ3cjauwhbeAQ==]
                fdbl("some_9", true),//0
                fint("some_10"),//1 [com.optionfair.client.model.TradeActionResponse/3233850074]
                flng("some_11"),//Xm$s
                fint("positionType"),//49
                flng("some_13"),//A
                fstr("some_14"),//3 [0]
                fdbl("some_15"),//1.13335
                fstr("some_16"),//4 [1.13335]
                fint("some_17"),//0
                flng("purchasedAt"),//VRdvfvC
                fint("some_19"),
				fint("some_20")
            });

            add("com.optionfair.client.model.Brand/160541779", {
                fstr("serialuid"),//        "6 [rO0ABXcEAAAAAA==]\n"
                fstr("some_1"), //        "778 [/]\n"
                fdbl("some_2"), //        "1.500000e+00\n"
                fint("some_3"), //        "1 [com.optionfair.client.model.LutResolverInitPackage/2546929785]\n"
                fint("some_4"), //        "0\n"
                fint("some_5"), //        "2835\n"
                fint("some_6"), //        "0\n"
                flng("some_7"), //        "Yag\n"
                fint("some_8"), //        "320 [Fee]\n"
                fint("some_9"), //        "0\n"
                fstr("some_10"), //        "776 [basic]\n"
                fint("some_11"), //        3 [java.lang.Integer/3438268394]\n"
                flng("some_12"), //        "MNQ\n"
                fint("some_13"), //        "0\n"
                flng("some_14"), //        "Yag\n"
                fstd("some_15"), //        "595 []\n"
                fstd("some_16"), //        "37 [Admin]\n"
                fstr("domain"), //        "779 [.*vantagefx.com]\n"
                fint("some_17"), //        "1 [com.optionfair.client.model.LutResolverInitPackage/2546929785]\n"
                fint("some_18"), //       "0\n"
                fint("some_19"), //        "1 [com.optionfair.client.model.LutResolverInitPackage/2546929785]\n"
                fint("some_20"), //        "0\n"
                fint("some_21"), //        "99999\n"
                fstr("some_22"), //        "780 [Enfinium]\n"
                fstd("some_23"), //        "10 [Mrs.]\n"
                fdbl("some_24"), //        "0.000000e+00")
                fptr("operator")
            });
            add("com.optionfair.client.model.Operator/1111544044", {
                fstr("serialuid"),//        "6 [rO0ABXcEAAAAAA==]\n"
                fptr("some_1"),
                fint("some_2"),
                fstr("some_3"),
                fint("some_4"),
                fint("some_5"),
                fptr("some_6"),
                fint("some_7"), //  1650
                fstr("some_8"), //  37 [Admin]
                fstr("some_9"), //  788 [none]
                fstr("some_10"),//  789 [http://nihul.4xp.com/digital_options/soap_do.php?wsdl]
                fint("some_11"), //                    1640
                fdbl("some_12"), //                    0.000000e+00
                fint("some_13"), //                    1666
                fdbl("some_14"), //                    1.500000e-01
                fdbl("some_15"), //                    2.000000e-01
                fint("some_16"), //                    1
                fptr("some_17"), //                    0
                fint("some_18"), //                    1
                fint("some_19"), //                    1
                fint("some_20"), //                    0
                fdbl("some_21"), //                    0.000000e+00
                fstd("some_22"), //                    77 [TransactionType]
                fdbl("some_23"), //                    0.000000e+00
                fstr("some_24"), //                    790 [0]
                fint("some_25"), //                    1 [com.optionfair.client.model.LutResolverInitPackage/2546929785]
                fint("some_26"), //                    0
                fint("some_27"), //                    0
                fint("some_28"), //                    0
                fint("some_29"), //                    0
                fint("some_30"), //                    0
            });

            add("com.optionfair.client.model.Position/1677341959", {
                fstr("serialuid"),//2 [rO0ABXcEAAAAAA==]
                flng("accountId"),//ISw
                fint("some_2"),//0
                flng("bet"),//Po
                flng("some_4"),//A
                fdbl("some_5"),//0.000000e+00
                fint("some_6"),//0
                fptr("some_7"),//0
                fdbl("some_8"),//0.000000e+00
                fdbl("some_9"),//0.000000e+00
                fptr("expiryDate"),//3 [java.util.Date/3385151746]
                flng("some_10"),//A
                flng("transactionId"),//KlvU
                flng("some_12"),//Po
                fint("some_13"),//1 [com.optionfair.client.model.Position/1677341959]
                fint("some_14"),//0
                fptr("openDate"),//3 [java.util.Date/3385151746]
                fstr("some_15"),//0
                flng("some_16"),//L2
                flng("some_17"),//L2
                flng("some_18"),//A
                flng("some_19"),//A
                fint("some_20"),//1 [com.optionfair.client.model.Position/1677341959]
                fint("positionOpenType"),//264
                fptr("option"),
                fptr("some_date_3"),
                fint("some_22"),
                fint("positionType"),//49
                flng("some_24"),//A
                flng("some_25"),//A
                fint("some_26"),//0
                fint("some_27"),//0
                flng("some_28"),//A
                flng("some_29"),//A
                fdbl("some_30"),//1.133350e+00
                fint("positionStatus"),//18
                fdbl("some_32"),//0.000000e+00
                fdbl("some_33"),//1.133350e+00
                fdbl("some_34"),//0.000000e+00
                fdbl("some_35"),//0.000000e+00
                fdbl("some_36"),//1.133350e+00
                fint("some_37"),//0
                fdbl("some_38"),//0.000000e+00
                flng("some_39"),//U7fV
                fdbl("some_40"),//0.000000e+00
            });

            add("com.optionfair.client.messages.MapMessageSource/3864621178", {
                    fptr("value")
            }, "value");

            add("net.sf.gilead.pojo.gwt.collection.ListParameter/3890945144", {
                    fptr("value")
            }, "value");

            add("net.sf.gilead.pojo.gwt.collection.MapParameter/1940144086", {
                    fptr("value")
            }, "value");

            add("net.sf.gilead.pojo.gwt.basic.IntegerParameter/3421404974", {
                    fptr("value")
            }, "value");

            add("net.sf.gilead.pojo.gwt.basic.StringParameter/2783524083", {
                    fstr("value")
            }, "value");

            add("net.sf.gilead.pojo.gwt.GwtSerializableId/2844303195", {
                    fstr("entityName"),
                    fptr("id"),
                    fstr("stringValue")
            });


            add(std::make_shared<GwtListType>("java.util.ArrayList/4159755760"));
            add(std::make_shared<GwtListType>("java.util.LinkedList/3953877921"));
            add(std::make_shared<GwtListType>("java.util.HashSet/3273092938"));
            add(std::make_shared<GwtMapType>("java.util.HashMap/1797211028", 0));
            add(std::make_shared<GwtMapType>("java.util.LinkedHashMap/3008245022", 1));
			add("java.lang.Integer/3438268394", { fint("value") }, "value");
			add("com.optionfair.client.luts.Instrument/2210327378", { fint("value") }, "value");
			add("java.lang.Long/4227064769", { flng("value") }, "value");
			add("java.lang.String/2004016611", { fstr("value") }, "value");
			add("java.util.Date/3385151746", { fdte("value") }, "value");
            add("java.lang.Double/858496421", { fdbl("value") }, "value");
        }
Example #3
0
/* This is more-or-less an inverse of ffi_call -- we have arguments on
   the stack, and we need to fill them into a cif structure and invoke
   the user function. This really ought to be in asm to make sure
   the compiler doesn't do things we don't expect.  */
ffi_status ffi_closure_inner_LINUX(ffi_closure *closure, UINT32 *stack)
{
  ffi_cif *cif;
  void **avalue;
  void *rvalue;
  UINT32 ret[2]; /* function can return up to 64-bits in registers */
  ffi_type **p_arg;
  char *tmp;
  int i, avn;
  unsigned int slot = FIRST_ARG_SLOT;
  register UINT32 r28 asm("r28");

  cif = closure->cif;

  /* If returning via structure, callee will write to our pointer.  */
  if (cif->flags == FFI_TYPE_STRUCT)
    rvalue = (void *)r28;
  else
    rvalue = &ret[0];

  avalue = (void **)alloca(cif->nargs * FFI_SIZEOF_ARG);
  avn = cif->nargs;
  p_arg = cif->arg_types;

  for (i = 0; i < avn; i++)
    {
      int type = (*p_arg)->type;

      switch (type)
	{
	case FFI_TYPE_SINT8:
	case FFI_TYPE_UINT8:
	case FFI_TYPE_SINT16:
	case FFI_TYPE_UINT16:
	case FFI_TYPE_SINT32:
	case FFI_TYPE_UINT32:
	case FFI_TYPE_POINTER:
	  avalue[i] = (char *)(stack - slot) + sizeof(UINT32) - (*p_arg)->size;
	  break;

	case FFI_TYPE_SINT64:
	case FFI_TYPE_UINT64:
	  slot += (slot & 1) ? 1 : 2;
	  avalue[i] = (void *)(stack - slot);
	  break;

	case FFI_TYPE_FLOAT:
	  /* The closure call is indirect.  In Linux, floating point
	     arguments in indirect calls with a prototype are passed
	     in the floating point registers instead of the general
	     registers.  So, we need to replace what was previously
	     stored in the current slot with the value in the
	     corresponding floating point register.  */
	  switch (slot - FIRST_ARG_SLOT)
	    {
	    case 0: fstw(fr4, (void *)(stack - slot)); break;
	    case 1: fstw(fr5, (void *)(stack - slot)); break;
	    case 2: fstw(fr6, (void *)(stack - slot)); break;
	    case 3: fstw(fr7, (void *)(stack - slot)); break;
	    }
	  avalue[i] = (void *)(stack - slot);
	  break;

	case FFI_TYPE_DOUBLE:
	  slot += (slot & 1) ? 1 : 2;
	  /* See previous comment for FFI_TYPE_FLOAT.  */
	  switch (slot - FIRST_ARG_SLOT)
	    {
	    case 1: fstd(fr5, (void *)(stack - slot)); break;
	    case 3: fstd(fr7, (void *)(stack - slot)); break;
	    }
	  avalue[i] = (void *)(stack - slot);
	  break;

	case FFI_TYPE_STRUCT:
	  /* Structs smaller or equal than 4 bytes are passed in one
	     register. Structs smaller or equal 8 bytes are passed in two
	     registers. Larger structures are passed by pointer.  */
	  if((*p_arg)->size <= 4)
	    {
	      avalue[i] = (void *)(stack - slot) + sizeof(UINT32) -
		(*p_arg)->size;
	    }
	  else if ((*p_arg)->size <= 8)
	    {
	      slot += (slot & 1) ? 1 : 2;
	      avalue[i] = (void *)(stack - slot) + sizeof(UINT64) -
		(*p_arg)->size;
	    }
	  else
	    avalue[i] = (void *) *(stack - slot);
	  break;

	default:
	  FFI_ASSERT(0);
	}

      slot++;
      p_arg++;
    }

  /* Invoke the closure.  */
  (closure->fun) (cif, rvalue, avalue, closure->user_data);

  debug(3, "after calling function, ret[0] = %08x, ret[1] = %08x\n", ret[0],
	ret[1]);

  /* Store the result using the lower 2 bytes of the flags.  */
  switch (cif->flags)
    {
    case FFI_TYPE_UINT8:
      *(stack - FIRST_ARG_SLOT) = (UINT8)(ret[0] >> 24);
      break;
    case FFI_TYPE_SINT8:
      *(stack - FIRST_ARG_SLOT) = (SINT8)(ret[0] >> 24);
      break;
    case FFI_TYPE_UINT16:
      *(stack - FIRST_ARG_SLOT) = (UINT16)(ret[0] >> 16);
      break;
    case FFI_TYPE_SINT16:
      *(stack - FIRST_ARG_SLOT) = (SINT16)(ret[0] >> 16);
      break;
    case FFI_TYPE_INT:
    case FFI_TYPE_SINT32:
    case FFI_TYPE_UINT32:
      *(stack - FIRST_ARG_SLOT) = ret[0];
      break;
    case FFI_TYPE_SINT64:
    case FFI_TYPE_UINT64:
      *(stack - FIRST_ARG_SLOT) = ret[0];
      *(stack - FIRST_ARG_SLOT - 1) = ret[1];
      break;

    case FFI_TYPE_DOUBLE:
      fldd(rvalue, fr4);
      break;

    case FFI_TYPE_FLOAT:
      fldw(rvalue, fr4);
      break;

    case FFI_TYPE_STRUCT:
      /* Don't need a return value, done by caller.  */
      break;

    case FFI_TYPE_SMALL_STRUCT2:
    case FFI_TYPE_SMALL_STRUCT3:
    case FFI_TYPE_SMALL_STRUCT4:
      tmp = (void*)(stack -  FIRST_ARG_SLOT);
      tmp += 4 - cif->rtype->size;
      memcpy((void*)tmp, &ret[0], cif->rtype->size);
      break;

    case FFI_TYPE_SMALL_STRUCT5:
    case FFI_TYPE_SMALL_STRUCT6:
    case FFI_TYPE_SMALL_STRUCT7:
    case FFI_TYPE_SMALL_STRUCT8:
      {
	unsigned int ret2[2];
	int off;

	/* Right justify ret[0] and ret[1] */
	switch (cif->flags)
	  {
	    case FFI_TYPE_SMALL_STRUCT5: off = 3; break;
	    case FFI_TYPE_SMALL_STRUCT6: off = 2; break;
	    case FFI_TYPE_SMALL_STRUCT7: off = 1; break;
	    default: off = 0; break;
	  }

	memset (ret2, 0, sizeof (ret2));
	memcpy ((char *)ret2 + off, ret, 8 - off);

	*(stack - FIRST_ARG_SLOT) = ret2[0];
	*(stack - FIRST_ARG_SLOT - 1) = ret2[1];
      }
      break;

    case FFI_TYPE_POINTER:
    case FFI_TYPE_VOID:
      break;

    default:
      debug(0, "assert with cif->flags: %d\n",cif->flags);
      FFI_ASSERT(0);
      break;
    }
  return FFI_OK;
}