cutted_from_service (5618B)
1 ///* PART FROM WHICH IDEAS FOR NEW IMPLEMENTATION HAVE BEEN DEFINED*/ 2 // 3 ///* application *before* including this header should do: */ 4 //#define TALER_MERCHANT_ORDER_PAY_CALLBACK_CLOSURE_TYPE struct PayState 5 // 6 // 7 //#ifndef TALER_MERCHANT_ORDER_PAY_CALLBACK_CLOSURE_TYPE 8 //#define TALER_MERCHANT_ORDER_PAY_CALLBACK_CLOSURE_TYPE void 9 //#endif 10 // 11 //struct TALER_MERCHANT_OrderPayHandle * 12 //TALER_MERCHANT_order_pay_create ( 13 // struct GNUNET_CURL_Context *ctx, 14 // TALER_MERCHANT_OrderPayCallback pay_cb, 15 // TALER_MERCHANT_ORDER_PAY_CALLBACK_CLOSURE_TYPE *pay_cb_cls) 16 //{ 17 // ph->body = json_object (); // json_t * 18 //} 19 // 20 // 21 //struct TALER_MERCHANT_OrderPayOption 22 //{ 23 // enum TALER_MERCHANT_OrderPayOptionType 24 // { 25 // TALER_MERCHANT_OrderPayOptionType_END = 0, 26 // TALER_MERCHANT_OrderPayOptionType_MERCHANT_URL, 27 // TALER_MERCHANT_OrderPayOptionType_SESSION_ID, 28 // TALER_MERCHANT_OrderPayOptionType_H_CONTRACT, 29 // TALER_MERCHANT_OrderPayOptionType_CHOICE_INDEX, 30 // TALER_MERCHANT_OrderPayOptionType_AMOUNT, 31 // TALER_MERCHANT_OrderPayOptionType_MAX_FEE, 32 // TALER_MERCHANT_OrderPayOptionType_MERCHANT_PUB, 33 // TALER_MERCHANT_OrderPayOptionType_TIMESTAMP, 34 // TALER_MERCHANT_OrderPayOptionType_REFUND_DEADLINE, 35 // TALER_MERCHANT_OrderPayOptionType_PAY_DEADLINE, 36 // TALER_MERCHANT_OrderPayOptionType_H_WIRE, 37 // TALER_MERCHANT_OrderPayOptionType_ORDER_ID, 38 // TALER_MERCHANT_OrderPayOptionType_COINS, 39 // TALER_MERCHANT_OrderPayOptionType_INPUT_TOKENS, 40 // TALER_MERCHANT_OrderPayOptionType_OUTPUT_TOKENS 41 // } ot; 42 // 43 // union 44 // { 45 // const char *merchant_url; 46 // const char *session_id; 47 // const struct TALER_PrivateContractHashP *h_contract; 48 // int choice_index; 49 // struct TALER_Amount amount; 50 // struct TALER_Amount max_fee; 51 // struct TALER_MerchantPublicKeyP merchant_pub; 52 // struct GNUNET_TIME_Timestamp timestamp; 53 // struct GNUNET_TIME_Timestamp refund_deadline; 54 // struct GNUNET_TIME_Timestamp pay_deadline; 55 // struct TALER_MerchantWireHashP h_wire; 56 // const char *order_id; 57 // struct 58 // { 59 // unsigned int num_coins; 60 // const struct TALER_MERCHANT_PayCoin *coins; 61 // } coins; 62 // struct 63 // { 64 // unsigned int num_tokens; 65 // const struct TALER_MERCHANT_UseToken *tokens; 66 // } input_tokens; 67 // struct 68 // { 69 // unsigned int num_output_tokens, 70 // const struct TALER_MERCHANT_OutputToken *output_tokens; 71 // } output_tokens; 72 // } details; 73 //}; 74 // 75 ///*FIXME: THIS PARTS NEEDS TO BE DEFINED CLEARLY and ideally in new file with previous struct*/ 76 //enum TALER_MERCHANT_OrderPayOptionErrorCode 77 //TALER_MERCHANT_order_pay_set_options ( 78 // struct TALER_MERCHANT_OrderPayHandle *ph, 79 // struct TALER_MERCHANT_OrderPayOption options[], 80 // size_t max_options); 81 // 82 //{ 83 // for (i-- not 0 - terminateor && i < max_options; i++) 84 // switch (options[i].type) 85 // case ... 86 // GNUNET_assert (0 == 87 // json_object_set_new (ph->body, 88 // "field", 89 // json_string ("foo"))); 90 // return OK; 91 // case ... 92 // GNUNET_assert (0 == 93 // json_object_set_new (ph->body, 94 // "field", 95 // json_bool (true))); 96 // 97 // return OK; 98 // case ... 99 // GNUNET_assert (0 == 100 // json_object_set_new (ph->body, 101 // "wire_hash", 102 // GNUNET_JSON_PACK ( 103 // GNUNET_JSON_pack_data_auto (NULL, 104 // &options[i 105 // ].details. 106 // h_wire)))) 107 // return OK; 108 //} 109 // 110 //} 111 //return ERROR_UNKNOWN_OPTION; 112 //} 113 // 114 //#define TALER_MERCHANT_ORDER_PAY_OPTION_TERMINATE() \ 115 // (const struct TALER_MERCHANT_OrderPayOption) { \ 116 // .ot = TALER_MERCHANT_OrderPayOptionType_END \ 117 // } 118 // 119 // 120 //#define TALER_MERCHANT_ORDER_PAY_OPTION_SESSION_ID(session_id) \ 121 // (const struct TALER_MERCHANT_OrderPayOption) { \ 122 // .ot = TALER_MERCHANT_OrderPayOptionType_SESSION_ID, \ 123 // .details.session_id = session_id \ 124 // } 125 // 126 //#define TALER_MERCHANT_ORDER_PAY_SET_OPTIONS(ph,...) \ 127 // MHD_NOWARN_COMPOUND_LITERALS_ \ 128 // TALER_MERCHANT_order_pay_set_options ( \ 129 // daemon, \ 130 // ((const struct TALER_MERCHANT_OrderPayHandle[]) \ 131 // {__VA_ARGS__, TALER_MERCHANT_ORDER_PAY_OPTION_TERMINATE ()}), \ 132 // MHD_OPTIONS_ARRAY_MAX_SIZE) \ 133 // 134 ///* END OF THE PART THAT NEEDS TO BE EXTENDED */ 135 // 136 //enum TALER_MERCHANT_OrderPayOptionErrorCode 137 //TALER_MERCHANT_order_pay_start (struct TALER_MERCHANT_OrderPayHandle *ph); 138 139 //#if APP /*SAMPLE OF USAGE OF PREVIOUS DEFINITIONS*/ 140 //{ 141 // struct TALER_MERCHANT_OrderPayHandle *ph; 142 // 143 // ph = TALER_MERCHANT_order_pay_create (struct GNUNET_CURL_Context *ctx, 144 // TALER_MERCHANT_OrderPayCallback pay_cb, 145 // pay_cb_cls); 146 // 147 // GNUNET_assert (OK == 148 // TALER_MERCHANT_ORDER_PAY_SET_OPTIONS ( 149 // ph, 150 // TALER_MERCHANT_ORDER_PAY_OPTION_SESSION_ID ("session"))); 151 // pay_start (ph); 152 //} 153 //#endif 154 155 /* END OF LIST OF IDEAS */