From 47ae4f8ab5e5f805dbe572372bdea28c9e32031b Mon Sep 17 00:00:00 2001 From: stefanocasazza Date: Tue, 4 Feb 2020 16:40:29 +0100 Subject: [PATCH] sync --- examples/WiAuth/v2/wi_auth_declaration2.h | 57 +- include/ulib/orm/orm.h | 772 ++++++++++++++++-- src/ulib/net/server/plugin/usp/fortune.h | 50 +- tests/examples/TSA/tsaserial | 2 +- .../FrameworkBenchmarks/ULib/src/fortune.h | 50 +- 5 files changed, 804 insertions(+), 127 deletions(-) diff --git a/examples/WiAuth/v2/wi_auth_declaration2.h b/examples/WiAuth/v2/wi_auth_declaration2.h index 5f64fa99..5364cfd3 100644 --- a/examples/WiAuth/v2/wi_auth_declaration2.h +++ b/examples/WiAuth/v2/wi_auth_declaration2.h @@ -670,9 +670,9 @@ static uint32_t getApInfo(const UString& label, char* buffer) return u__snprintf(buffer, 1024, U_CONSTANT_TO_PARAM("%v@%v/%v"), label.rep, ap_address->rep, ap_hostname->rep); } -static void writeToLOG(const UString& label, const char* op, uint32_t op_len, const UString& opt) +static void writeToLOG(const UString& lmac, const UString& label, const char* op, uint32_t op_len, const UString& opt) { - U_TRACE(5, "::writeToLOG(%V,%.*S,%u,%V)", label.rep, op_len, op, op_len, opt.rep) + U_TRACE(5, "::writeToLOG((%V,%V,%.*S,%u,%V)", lmac.rep, label.rep, op_len, op, op_len, opt.rep) U_INTERNAL_ASSERT_POINTER(op) U_INTERNAL_ASSERT_MAJOR(op_len, 0) @@ -686,30 +686,45 @@ static void writeToLOG(const UString& label, const char* op, uint32_t op_len, co ULog::log(file_LOG->getFd(), U_CONSTANT_TO_PARAM("op: %.*s, mac: %v, ip: %v, ap: %.*s, policy: %v|%.*sconsume|%snotify%v"), - op_len, op, mac->rep, ip->rep, getApInfo(label, buffer), buffer, policySessionId->rep, (ap_consume ? 0 : 3), "no_", (policySessionNotify == 0 ? "" : + op_len, op, lmac.rep, ip->rep, getApInfo(label, buffer), buffer, policySessionId->rep, (ap_consume ? 0 : 3), "no_", (policySessionNotify == 0 ? "" : policySessionNotify == 1 ? "no_" : "strict_"), opt.rep); } -static void writeSessionToLOG(const UString& label, const char* op, uint32_t op_len) +static void writeSessionToLOG(const UString& lmac, const UString& label, const char* op, uint32_t op_len) { - U_TRACE(5, "::writeSessionToLOG(%V,%.*S,%u)", label.rep, op_len, op, op_len) + U_TRACE(5, "::writeSessionToLOG((%V,%V,%.*S,%u)", lmac.rep, label.rep, op_len, op, op_len) UString opt(200U); opt.snprintf(U_CONSTANT_TO_PARAM(", traffic: %llu, elapsed: %u"), counter/1024, (u_now->tv_sec-created)/60); - writeToLOG(label, op, op_len, opt); + writeToLOG(lmac, label, op, op_len, opt); +} + +static const char* getKeySessionPointer() +{ + U_TRACE_NO_PARAM(5, "::getKeySessionPointer()") + + uint32_t pos = U_STRING_FIND(*key_session, 10, "deviceId:"); // 10 => U_CONSTANT_SIZE("captiveId:") + + U_INTERNAL_ASSERT_DIFFERS(pos, U_NOT_FOUND) + + const char* ptr = key_session->c_pointer(pos); + + return ptr; } static void deleteSession() { U_TRACE_NO_PARAM(5, "::deleteSession()") + const char* ptr = getKeySessionPointer(); + (void) rc->del(U_CONSTANT_TO_PARAM("SESSION:%v"), key_session->rep); - (void) rc->zrem(U_CONSTANT_TO_PARAM("SESSION:byCaptiveIdAndApId deviceId:%v;ip:%v"), mac->rep, ip->rep); + (void) rc->zrem(U_CONSTANT_TO_PARAM("SESSION:byCaptiveIdAndApId %.*s"), key_session->remain(ptr), ptr); (void) rc->zrem(U_CONSTANT_TO_PARAM("SESSION:byLastUpdate %v"), key_session->rep); -// U_LOGGER("*** SESSION(%V) deleted at deleteSession() ***", key_session->rep); + // U_LOGGER("*** SESSION(%V) deleted at deleteSession() ***", key_session->rep); } static void resetDeviceDailyCounter() @@ -811,9 +826,9 @@ static bool getDataFromPOST(bool bpeer) if (getSession(mac_old, label_old, U_CONSTANT_TO_PARAM("getDataFromPOST(true)"))) { - deleteSession(); + writeSessionToLOG(mac_old, label_old, U_CONSTANT_TO_PARAM("DENY_RENEW")); - writeSessionToLOG(label_old, U_CONSTANT_TO_PARAM("DENY_NO_TRAFFIC")); + deleteSession(); } } } @@ -938,17 +953,13 @@ static void lostSession(int bclean) addToLogout(*ap_label); } - writeSessionToLOG(*ap_label, U_CONSTANT_TO_PARAM("DENY_LOST")); + writeSessionToLOG(*mac, *ap_label, U_CONSTANT_TO_PARAM("DENY_LOST")); deleteSession(); } else { - uint32_t pos = U_STRING_FIND(*key_session, 10, "deviceId:"); // 10 => U_CONSTANT_SIZE("captiveId:") - - U_INTERNAL_ASSERT_DIFFERS(pos, U_NOT_FOUND) - - const char* ptr = key_session->c_pointer(pos); + const char* ptr = getKeySessionPointer(); (void) rc->zrem(U_CONSTANT_TO_PARAM("SESSION:byCaptiveIdAndApId %.*s"), key_session->remain(ptr), ptr); (void) rc->zrem(U_CONSTANT_TO_PARAM("SESSION:byLastUpdate %v"), key_session->rep); @@ -1315,7 +1326,7 @@ static void GET_logout() sendLogoutToNodog(); - writeSessionToLOG(*ap_label, U_CONSTANT_TO_PARAM("DENY_NO_TRAFFIC")); + writeSessionToLOG(*mac, *ap_label, U_CONSTANT_TO_PARAM("DENY_NO_TRAFFIC")); deleteSession(); } @@ -1522,12 +1533,12 @@ static void POST_login() UFlatBuffer fb; char buffer[2] = { '1'-ko, '0'+policySessionNotify }; // deny|permit: ('0'|'1') policy: notify|no_notify|strict_notify ('0'|'1'|'2') - writeToLOG(*ap_label, U_CONSTANT_TO_PARAM("PERMIT"), UString::getStringNull()); + writeToLOG(*mac, *ap_label, U_CONSTANT_TO_PARAM("PERMIT"), UString::getStringNull()); (void) rc->hmset(U_CONSTANT_TO_PARAM("DEVICE:id:%v lastAccess %u"), mac->rep, u_now->tv_sec); (void) rc->zadd(U_CONSTANT_TO_PARAM("DEVICE:bylastAccess %u id:%v"), u_now->tv_sec, mac->rep); - if (ko) writeSessionToLOG(*ap_label, U_CONSTANT_TO_PARAM("DENY_POLICY")); + if (ko) writeSessionToLOG(*mac, *ap_label, U_CONSTANT_TO_PARAM("DENY_POLICY")); else { U_ASSERT(mac->isXMacAddr()) @@ -1583,7 +1594,7 @@ static void POST_notify() // $2 -> mac // $3 -> ip - if (getDataFromPOST(false)) writeToLOG(*ap_label, U_CONSTANT_TO_PARAM("NOTIFIED"), UString::getStringNull()); + if (getDataFromPOST(false)) writeToLOG(*mac, *ap_label, U_CONSTANT_TO_PARAM("NOTIFIED"), UString::getStringNull()); ap->clear(); @@ -1613,7 +1624,7 @@ static void POST_strict_notify() (void) rc->hmset(x); } - writeToLOG(*ap_label, U_CONSTANT_TO_PARAM("STRICT_NOTIFIED"), UString::getStringNull()); + writeToLOG(*mac, *ap_label, U_CONSTANT_TO_PARAM("STRICT_NOTIFIED"), UString::getStringNull()); } ap->clear(); @@ -1740,7 +1751,7 @@ static void POST_info() created += ctime_no_traffic; -del_sess: writeSessionToLOG(label, op, op_len); +del_sess: writeSessionToLOG(*mac, label, op, op_len); deleteSession(); @@ -1758,7 +1769,7 @@ del_login: addToLogout(label); { x.snprintf(U_CONSTANT_TO_PARAM(", traffic: %llu"), counter/1024); - writeToLOG(*ap_label, U_CONSTANT_TO_PARAM("RST_SESSION"), x); + writeToLOG(*mac, *ap_label, U_CONSTANT_TO_PARAM("RST_SESSION"), x); counter = 0; diff --git a/include/ulib/orm/orm.h b/include/ulib/orm/orm.h index ec02303e..1f06d097 100644 --- a/include/ulib/orm/orm.h +++ b/include/ulib/orm/orm.h @@ -254,13 +254,69 @@ public: // Syntactic sugar for bindParam() used with use() binding param registers - template void use(T1& r1); - template void use(T1& r1, T2& r2); - template void use(T1& r1, T2& r2, T3& r3); - template void use(T1& r1, T2& r2, T3& r3, T4& r4); - template void use(T1& r1, T2& r2, T3& r3, T4& r4, T5& r5); - template void use(T1& r1, T2& r2, T3& r3, T4& r4, T5& r5, T6& r6); - template void use(T1& r1, T2& r2, T3& r3, T4& r4, T5& r5, T6& r6, T7& r7); +#if defined(HAVE_CXX17) +template void use(Ts&&... ts) { (bindParam(UOrmTypeHandler(ts)), ...); } +#else +template +void use(T1& r1); + +template +void use(T1& r1,T2& r2); + +template +void use(T1& r1,T2& r2,T3& r3); + +template +void use(T1& r1,T2& r2,T3& r3,T4& r4); + +template +void use(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5); + +template +void use(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6); + +template +void use(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7); + +template +void use(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8); + +template +void use(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9); + +template +void use(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9,T10& r10); + +template +void use(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9,T10& r10,T11& r11); + +template +void use(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9,T10& r10,T11& r11,T12& r12); + +template +void use(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9,T10& r10,T11& r11,T12& r12,T13& r13); + +template +void use(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9,T10& r10,T11& r11,T12& r12,T13& r13,T14& r14); + +template +void use(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9,T10& r10,T11& r11,T12& r12,T13& r13,T14& r14,T15& r15); + +template +void use(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9,T10& r10,T11& r11,T12& r12,T13& r13,T14& r14,T15& r15,T16& r16); + +template +void use(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9,T10& r10,T11& r11,T12& r12,T13& r13,T14& r14,T15& r15,T16& r16,T17& r17); + +template +void use(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9,T10& r10,T11& r11,T12& r12,T13& r13,T14& r14,T15& r15,T16& r16,T17& r17,T18& r18); + +template +void use(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9,T10& r10,T11& r11,T12& r12,T13& r13,T14& r14,T15& r15,T16& r16,T17& r17,T18& r18,T19& r19); + +template +void use(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9,T10& r10,T11& r11,T12& r12,T13& r13,T14& r14,T15& r15,T16& r16,T17& r17,T18& r18,T19& r19,T20& r20); +#endif // BIND PARAM @@ -304,15 +360,75 @@ public: t.bindParam(this); } - // Syntactic sugar for bindResult() used with into() binding result registers + /** + * Syntactic sugar for bindResult() used with into() binding result registers + * + * you could replace all of this with a single variadic template method and a c++17 fold expression (Victor Stewart) + */ - template void into(T1& r1); - template void into(T1& r1, T2& r2); - template void into(T1& r1, T2& r2, T3& r3); - template void into(T1& r1, T2& r2, T3& r3, T4& r4); - template void into(T1& r1, T2& r2, T3& r3, T4& r4, T5& r5); - template void into(T1& r1, T2& r2, T3& r3, T4& r4, T5& r5, T6& r6); - template void into(T1& r1, T2& r2, T3& r3, T4& r4, T5& r5, T6& r6, T7& r7); +#if defined(HAVE_CXX17) +template void into(Ts&&... ts) { (bindResult(UOrmTypeHandler(ts)), ...); } +#else +template +void into(T1& r1); + +template +void into(T1& r1,T2& r2); + +template +void into(T1& r1,T2& r2,T3& r3); + +template +void into(T1& r1,T2& r2,T3& r3,T4& r4); + +template +void into(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5); + +template +void into(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6); + +template +void into(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7); + +template +void into(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8); + +template +void into(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9); + +template +void into(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9,T10& r10); + +template +void into(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9,T10& r10,T11& r11); + +template +void into(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9,T10& r10,T11& r11,T12& r12); + +template +void into(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9,T10& r10,T11& r11,T12& r12,T13& r13); + +template +void into(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9,T10& r10,T11& r11,T12& r12,T13& r13,T14& r14); + +template +void into(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9,T10& r10,T11& r11,T12& r12,T13& r13,T14& r14,T15& r15); + +template +void into(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9,T10& r10,T11& r11,T12& r12,T13& r13,T14& r14,T15& r15,T16& r16); + +template +void into(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9,T10& r10,T11& r11,T12& r12,T13& r13,T14& r14,T15& r15,T16& r16,T17& r17); + +template +void into(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9,T10& r10,T11& r11,T12& r12,T13& r13,T14& r14,T15& r15,T16& r16,T17& r17,T18& r18); + +template +void into(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9,T10& r10,T11& r11,T12& r12,T13& r13,T14& r14,T15& r15,T16& r16,T17& r17,T18& r18,T19& r19); + +template +void into(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9,T10& r10,T11& r11,T12& r12,T13& r13,T14& r14,T15& r15,T16& r16,T17& r17,T18& r18,T19& r19,T20& r20); +#endif // BIND RESULT @@ -364,37 +480,38 @@ private: // Syntactic sugar for bindParam() used with use() binding registers +#if !defined(HAVE_CXX17) template inline void UOrmStatement::use(T1& r1) { - U_TRACE(0, "UOrmStatement::use(%p)", &r1) + U_TRACE(0, "UOrmStatement::use(%p)",&r1) bindParam(UOrmTypeHandler(r1)); } -template -inline void UOrmStatement::use(T1& r1, T2& r2) +template +inline void UOrmStatement::use(T1& r1,T2& r2) { - U_TRACE(0, "UOrmStatement::use(%p,%p)", &r1, &r2) + U_TRACE(0, "UOrmStatement::use(%p,%p)",&r1,&r2) bindParam(UOrmTypeHandler(r1)); bindParam(UOrmTypeHandler(r2)); } -template -inline void UOrmStatement::use(T1& r1, T2& r2, T3& r3) +template +inline void UOrmStatement::use(T1& r1,T2& r2,T3& r3) { - U_TRACE(0, "UOrmStatement::use(%p,%p,%p)", &r1, &r2, &r3) + U_TRACE(0, "UOrmStatement::use(%p,%p,%p)",&r1,&r2,&r3) bindParam(UOrmTypeHandler(r1)); bindParam(UOrmTypeHandler(r2)); bindParam(UOrmTypeHandler(r3)); } -template -inline void UOrmStatement::use(T1& r1, T2& r2, T3& r3, T4& r4) +template +inline void UOrmStatement::use(T1& r1,T2& r2,T3& r3,T4& r4) { - U_TRACE(0, "UOrmStatement::use(%p,%p,%p,%p)", &r1, &r2, &r3, &r4) + U_TRACE(0, "UOrmStatement::use(%p,%p,%p,%p)",&r1,&r2,&r3,&r4) bindParam(UOrmTypeHandler(r1)); bindParam(UOrmTypeHandler(r2)); @@ -402,10 +519,10 @@ inline void UOrmStatement::use(T1& r1, T2& r2, T3& r3, T4& r4) bindParam(UOrmTypeHandler(r4)); } -template -inline void UOrmStatement::use(T1& r1, T2& r2, T3& r3, T4& r4, T5& r5) +template +inline void UOrmStatement::use(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5) { - U_TRACE(0, "UOrmStatement::use(%p,%p,%p,%p,%p)", &r1, &r2, &r3, &r4, &r5) + U_TRACE(0, "UOrmStatement::use(%p,%p,%p,%p,%p)",&r1,&r2,&r3,&r4,&r5) bindParam(UOrmTypeHandler(r1)); bindParam(UOrmTypeHandler(r2)); @@ -414,10 +531,10 @@ inline void UOrmStatement::use(T1& r1, T2& r2, T3& r3, T4& r4, T5& r5) bindParam(UOrmTypeHandler(r5)); } -template -inline void UOrmStatement::use(T1& r1, T2& r2, T3& r3, T4& r4, T5& r5, T6& r6) +template +inline void UOrmStatement::use(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6) { - U_TRACE(0, "UOrmStatement::use(%p,%p,%p,%p,%p,%p)", &r1, &r2, &r3, &r4, &r5, &r6) + U_TRACE(0, "UOrmStatement::use(%p,%p,%p,%p,%p,%p)",&r1,&r2,&r3,&r4,&r5,&r6) bindParam(UOrmTypeHandler(r1)); bindParam(UOrmTypeHandler(r2)); @@ -427,10 +544,10 @@ inline void UOrmStatement::use(T1& r1, T2& r2, T3& r3, T4& r4, T5& r5, T6& r6) bindParam(UOrmTypeHandler(r6)); } -template -inline void UOrmStatement::use(T1& r1, T2& r2, T3& r3, T4& r4, T5& r5, T6& r6, T7& r7) +template +inline void UOrmStatement::use(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7) { - U_TRACE(0, "UOrmStatement::use(%p,%p,%p,%p,%p,%p,%p)", &r1, &r2, &r3, &r4, &r5, &r6, &r7) + U_TRACE(0, "UOrmStatement::use(%p,%p,%p,%p,%p,%p,%p)",&r1,&r2,&r3,&r4,&r5,&r6,&r7) bindParam(UOrmTypeHandler(r1)); bindParam(UOrmTypeHandler(r2)); @@ -441,39 +558,314 @@ inline void UOrmStatement::use(T1& r1, T2& r2, T3& r3, T4& r4, T5& r5, T6& r6, T bindParam(UOrmTypeHandler(r7)); } +template +inline void UOrmStatement::use(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8) +{ + U_TRACE(0, "UOrmStatement::use(%p,%p,%p,%p,%p,%p,%p,%p)",&r1,&r2,&r3,&r4,&r5,&r6,&r7,&r8) + + bindParam(UOrmTypeHandler(r1)); + bindParam(UOrmTypeHandler(r2)); + bindParam(UOrmTypeHandler(r3)); + bindParam(UOrmTypeHandler(r4)); + bindParam(UOrmTypeHandler(r5)); + bindParam(UOrmTypeHandler(r6)); + bindParam(UOrmTypeHandler(r7)); + bindParam(UOrmTypeHandler(r8)); +} + +template +inline void UOrmStatement::use(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9) +{ + U_TRACE(0, "UOrmStatement::use(%p,%p,%p,%p,%p,%p,%p,%p,%p)",&r1,&r2,&r3,&r4,&r5,&r6,&r7,&r8,&r9) + + bindParam(UOrmTypeHandler(r1)); + bindParam(UOrmTypeHandler(r2)); + bindParam(UOrmTypeHandler(r3)); + bindParam(UOrmTypeHandler(r4)); + bindParam(UOrmTypeHandler(r5)); + bindParam(UOrmTypeHandler(r6)); + bindParam(UOrmTypeHandler(r7)); + bindParam(UOrmTypeHandler(r8)); + bindParam(UOrmTypeHandler(r9)); +} + +template +inline void UOrmStatement::use(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9,T10& r10) +{ + U_TRACE(0, "UOrmStatement::use(%p,%p,%p,%p,%p,%p,%p,%p,%p,%p)",&r1,&r2,&r3,&r4,&r5,&r6,&r7,&r8,&r9,&r10) + + bindParam(UOrmTypeHandler(r1)); + bindParam(UOrmTypeHandler(r2)); + bindParam(UOrmTypeHandler(r3)); + bindParam(UOrmTypeHandler(r4)); + bindParam(UOrmTypeHandler(r5)); + bindParam(UOrmTypeHandler(r6)); + bindParam(UOrmTypeHandler(r7)); + bindParam(UOrmTypeHandler(r8)); + bindParam(UOrmTypeHandler(r9)); + bindParam(UOrmTypeHandler(r10)); +} + +template +inline void UOrmStatement::use(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9,T10& r10,T11& r11) +{ + U_TRACE(0, "UOrmStatement::use(%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p)",&r1,&r2,&r3,&r4,&r5,&r6,&r7,&r8,&r9,&r10,&r11) + + bindParam(UOrmTypeHandler(r1)); + bindParam(UOrmTypeHandler(r2)); + bindParam(UOrmTypeHandler(r3)); + bindParam(UOrmTypeHandler(r4)); + bindParam(UOrmTypeHandler(r5)); + bindParam(UOrmTypeHandler(r6)); + bindParam(UOrmTypeHandler(r7)); + bindParam(UOrmTypeHandler(r8)); + bindParam(UOrmTypeHandler(r9)); + bindParam(UOrmTypeHandler(r10)); + bindParam(UOrmTypeHandler(r11)); +} + +template +inline void UOrmStatement::use(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9,T10& r10,T11& r11,T12& r12) +{ + U_TRACE(0, "UOrmStatement::use(%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p)",&r1,&r2,&r3,&r4,&r5,&r6,&r7,&r8,&r9,&r10,&r11,&r12) + + bindParam(UOrmTypeHandler(r1)); + bindParam(UOrmTypeHandler(r2)); + bindParam(UOrmTypeHandler(r3)); + bindParam(UOrmTypeHandler(r4)); + bindParam(UOrmTypeHandler(r5)); + bindParam(UOrmTypeHandler(r6)); + bindParam(UOrmTypeHandler(r7)); + bindParam(UOrmTypeHandler(r8)); + bindParam(UOrmTypeHandler(r9)); + bindParam(UOrmTypeHandler(r10)); + bindParam(UOrmTypeHandler(r11)); + bindParam(UOrmTypeHandler(r12)); +} + +template +inline void UOrmStatement::use(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9,T10& r10,T11& r11,T12& r12,T13& r13) +{ + U_TRACE(0, "UOrmStatement::use(%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p)",&r1,&r2,&r3,&r4,&r5,&r6,&r7,&r8,&r9,&r10,&r11,&r12,&r13) + + bindParam(UOrmTypeHandler(r1)); + bindParam(UOrmTypeHandler(r2)); + bindParam(UOrmTypeHandler(r3)); + bindParam(UOrmTypeHandler(r4)); + bindParam(UOrmTypeHandler(r5)); + bindParam(UOrmTypeHandler(r6)); + bindParam(UOrmTypeHandler(r7)); + bindParam(UOrmTypeHandler(r8)); + bindParam(UOrmTypeHandler(r9)); + bindParam(UOrmTypeHandler(r10)); + bindParam(UOrmTypeHandler(r11)); + bindParam(UOrmTypeHandler(r12)); + bindParam(UOrmTypeHandler(r13)); +} + +template +inline void UOrmStatement::use(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9,T10& r10,T11& r11,T12& r12,T13& r13,T14& r14) +{ + U_TRACE(0, "UOrmStatement::use(%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p)",&r1,&r2,&r3,&r4,&r5,&r6,&r7,&r8,&r9,&r10,&r11,&r12,&r13,&r14) + + bindParam(UOrmTypeHandler(r1)); + bindParam(UOrmTypeHandler(r2)); + bindParam(UOrmTypeHandler(r3)); + bindParam(UOrmTypeHandler(r4)); + bindParam(UOrmTypeHandler(r5)); + bindParam(UOrmTypeHandler(r6)); + bindParam(UOrmTypeHandler(r7)); + bindParam(UOrmTypeHandler(r8)); + bindParam(UOrmTypeHandler(r9)); + bindParam(UOrmTypeHandler(r10)); + bindParam(UOrmTypeHandler(r11)); + bindParam(UOrmTypeHandler(r12)); + bindParam(UOrmTypeHandler(r13)); + bindParam(UOrmTypeHandler(r14)); +} + +template +inline void UOrmStatement::use(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9,T10& r10,T11& r11,T12& r12,T13& r13,T14& r14,T15& r15) +{ + U_TRACE(0, "UOrmStatement::use(%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p)",&r1,&r2,&r3,&r4,&r5,&r6,&r7,&r8,&r9,&r10,&r11,&r12,&r13,&r14,&r15) + + bindParam(UOrmTypeHandler(r1)); + bindParam(UOrmTypeHandler(r2)); + bindParam(UOrmTypeHandler(r3)); + bindParam(UOrmTypeHandler(r4)); + bindParam(UOrmTypeHandler(r5)); + bindParam(UOrmTypeHandler(r6)); + bindParam(UOrmTypeHandler(r7)); + bindParam(UOrmTypeHandler(r8)); + bindParam(UOrmTypeHandler(r9)); + bindParam(UOrmTypeHandler(r10)); + bindParam(UOrmTypeHandler(r11)); + bindParam(UOrmTypeHandler(r12)); + bindParam(UOrmTypeHandler(r13)); + bindParam(UOrmTypeHandler(r14)); + bindParam(UOrmTypeHandler(r15)); +} + +template +inline void UOrmStatement::use(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9,T10& r10,T11& r11,T12& r12,T13& r13,T14& r14,T15& r15,T16& r16) +{ + U_TRACE(0, "UOrmStatement::use(%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p)",&r1,&r2,&r3,&r4,&r5,&r6,&r7,&r8,&r9,&r10,&r11,&r12,&r13,&r14,&r15,&r16) + + bindParam(UOrmTypeHandler(r1)); + bindParam(UOrmTypeHandler(r2)); + bindParam(UOrmTypeHandler(r3)); + bindParam(UOrmTypeHandler(r4)); + bindParam(UOrmTypeHandler(r5)); + bindParam(UOrmTypeHandler(r6)); + bindParam(UOrmTypeHandler(r7)); + bindParam(UOrmTypeHandler(r8)); + bindParam(UOrmTypeHandler(r9)); + bindParam(UOrmTypeHandler(r10)); + bindParam(UOrmTypeHandler(r11)); + bindParam(UOrmTypeHandler(r12)); + bindParam(UOrmTypeHandler(r13)); + bindParam(UOrmTypeHandler(r14)); + bindParam(UOrmTypeHandler(r15)); + bindParam(UOrmTypeHandler(r16)); +} + +template +inline void UOrmStatement::use(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9,T10& r10,T11& r11,T12& r12,T13& r13,T14& r14,T15& r15,T16& r16,T17& r17) +{ + U_TRACE(0, "UOrmStatement::use(%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p)",&r1,&r2,&r3,&r4,&r5,&r6,&r7,&r8,&r9,&r10,&r11,&r12,&r13,&r14,&r15,&r16,&r17) + + bindParam(UOrmTypeHandler(r1)); + bindParam(UOrmTypeHandler(r2)); + bindParam(UOrmTypeHandler(r3)); + bindParam(UOrmTypeHandler(r4)); + bindParam(UOrmTypeHandler(r5)); + bindParam(UOrmTypeHandler(r6)); + bindParam(UOrmTypeHandler(r7)); + bindParam(UOrmTypeHandler(r8)); + bindParam(UOrmTypeHandler(r9)); + bindParam(UOrmTypeHandler(r10)); + bindParam(UOrmTypeHandler(r11)); + bindParam(UOrmTypeHandler(r12)); + bindParam(UOrmTypeHandler(r13)); + bindParam(UOrmTypeHandler(r14)); + bindParam(UOrmTypeHandler(r15)); + bindParam(UOrmTypeHandler(r16)); + bindParam(UOrmTypeHandler(r17)); +} + +template +inline void UOrmStatement::use(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9,T10& r10,T11& r11,T12& r12,T13& r13,T14& r14,T15& r15,T16& r16,T17& r17,T18& r18) +{ + U_TRACE(0, "UOrmStatement::use(%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p)",&r1,&r2,&r3,&r4,&r5,&r6,&r7,&r8,&r9,&r10,&r11,&r12,&r13,&r14,&r15,&r16,&r17,&r18) + + bindParam(UOrmTypeHandler(r1)); + bindParam(UOrmTypeHandler(r2)); + bindParam(UOrmTypeHandler(r3)); + bindParam(UOrmTypeHandler(r4)); + bindParam(UOrmTypeHandler(r5)); + bindParam(UOrmTypeHandler(r6)); + bindParam(UOrmTypeHandler(r7)); + bindParam(UOrmTypeHandler(r8)); + bindParam(UOrmTypeHandler(r9)); + bindParam(UOrmTypeHandler(r10)); + bindParam(UOrmTypeHandler(r11)); + bindParam(UOrmTypeHandler(r12)); + bindParam(UOrmTypeHandler(r13)); + bindParam(UOrmTypeHandler(r14)); + bindParam(UOrmTypeHandler(r15)); + bindParam(UOrmTypeHandler(r16)); + bindParam(UOrmTypeHandler(r17)); + bindParam(UOrmTypeHandler(r18)); +} + +template +inline void UOrmStatement::use(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9,T10& r10,T11& r11,T12& r12,T13& r13,T14& r14,T15& r15,T16& r16,T17& r17,T18& r18,T19& r19) +{ + U_TRACE(0, "UOrmStatement::use(%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p)",&r1,&r2,&r3,&r4,&r5,&r6,&r7,&r8,&r9,&r10,&r11,&r12,&r13,&r14,&r15,&r16,&r17,&r18,&r19) + + bindParam(UOrmTypeHandler(r1)); + bindParam(UOrmTypeHandler(r2)); + bindParam(UOrmTypeHandler(r3)); + bindParam(UOrmTypeHandler(r4)); + bindParam(UOrmTypeHandler(r5)); + bindParam(UOrmTypeHandler(r6)); + bindParam(UOrmTypeHandler(r7)); + bindParam(UOrmTypeHandler(r8)); + bindParam(UOrmTypeHandler(r9)); + bindParam(UOrmTypeHandler(r10)); + bindParam(UOrmTypeHandler(r11)); + bindParam(UOrmTypeHandler(r12)); + bindParam(UOrmTypeHandler(r13)); + bindParam(UOrmTypeHandler(r14)); + bindParam(UOrmTypeHandler(r15)); + bindParam(UOrmTypeHandler(r16)); + bindParam(UOrmTypeHandler(r17)); + bindParam(UOrmTypeHandler(r18)); + bindParam(UOrmTypeHandler(r19)); +} + +template +inline void UOrmStatement::use(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9,T10& r10,T11& r11,T12& r12,T13& r13,T14& r14,T15& r15,T16& r16,T17& r17,T18& r18,T19& r19,T20& r20) +{ + U_TRACE(0, "UOrmStatement::use(%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p)",&r1,&r2,&r3,&r4,&r5,&r6,&r7,&r8,&r9,&r10,&r11,&r12,&r13,&r14,&r15,&r16,&r17,&r18,&r19,&r20) + + bindParam(UOrmTypeHandler(r1)); + bindParam(UOrmTypeHandler(r2)); + bindParam(UOrmTypeHandler(r3)); + bindParam(UOrmTypeHandler(r4)); + bindParam(UOrmTypeHandler(r5)); + bindParam(UOrmTypeHandler(r6)); + bindParam(UOrmTypeHandler(r7)); + bindParam(UOrmTypeHandler(r8)); + bindParam(UOrmTypeHandler(r9)); + bindParam(UOrmTypeHandler(r10)); + bindParam(UOrmTypeHandler(r11)); + bindParam(UOrmTypeHandler(r12)); + bindParam(UOrmTypeHandler(r13)); + bindParam(UOrmTypeHandler(r14)); + bindParam(UOrmTypeHandler(r15)); + bindParam(UOrmTypeHandler(r16)); + bindParam(UOrmTypeHandler(r17)); + bindParam(UOrmTypeHandler(r18)); + bindParam(UOrmTypeHandler(r19)); + bindParam(UOrmTypeHandler(r20)); +} +#endif + // Syntactic sugar for bindResult() used with into() binding result registers +#if !defined(HAVE_CXX17) template inline void UOrmStatement::into(T1& r1) { - U_TRACE(0, "UOrmStatement::into(%p)", &r1) + U_TRACE(0, "UOrmStatement::into(%p)",&r1) bindResult(UOrmTypeHandler(r1)); } -template -inline void UOrmStatement::into(T1& r1, T2& r2) +template +inline void UOrmStatement::into(T1& r1,T2& r2) { - U_TRACE(0, "UOrmStatement::into(%p,%p)", &r1, &r2) + U_TRACE(0, "UOrmStatement::into(%p,%p)",&r1,&r2) bindResult(UOrmTypeHandler(r1)); bindResult(UOrmTypeHandler(r2)); } -template -inline void UOrmStatement::into(T1& r1, T2& r2, T3& r3) +template +inline void UOrmStatement::into(T1& r1,T2& r2,T3& r3) { - U_TRACE(0, "UOrmStatement::into(%p,%p,%p)", &r1, &r2, &r3) + U_TRACE(0, "UOrmStatement::into(%p,%p,%p)",&r1,&r2,&r3) bindResult(UOrmTypeHandler(r1)); bindResult(UOrmTypeHandler(r2)); bindResult(UOrmTypeHandler(r3)); } -template -inline void UOrmStatement::into(T1& r1, T2& r2, T3& r3, T4& r4) +template +inline void UOrmStatement::into(T1& r1,T2& r2,T3& r3,T4& r4) { - U_TRACE(0, "UOrmStatement::into(%p,%p,%p,%p)", &r1, &r2, &r3, &r4) + U_TRACE(0, "UOrmStatement::into(%p,%p,%p,%p)",&r1,&r2,&r3,&r4) bindResult(UOrmTypeHandler(r1)); bindResult(UOrmTypeHandler(r2)); @@ -481,10 +873,10 @@ inline void UOrmStatement::into(T1& r1, T2& r2, T3& r3, T4& r4) bindResult(UOrmTypeHandler(r4)); } -template -inline void UOrmStatement::into(T1& r1, T2& r2, T3& r3, T4& r4, T5& r5) +template +inline void UOrmStatement::into(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5) { - U_TRACE(0, "UOrmStatement::into(%p,%p,%p,%p,%p)", &r1, &r2, &r3, &r4, &r5) + U_TRACE(0, "UOrmStatement::into(%p,%p,%p,%p,%p)",&r1,&r2,&r3,&r4,&r5) bindResult(UOrmTypeHandler(r1)); bindResult(UOrmTypeHandler(r2)); @@ -493,10 +885,10 @@ inline void UOrmStatement::into(T1& r1, T2& r2, T3& r3, T4& r4, T5& r5) bindResult(UOrmTypeHandler(r5)); } -template -inline void UOrmStatement::into(T1& r1, T2& r2, T3& r3, T4& r4, T5& r5, T6& r6) +template +inline void UOrmStatement::into(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6) { - U_TRACE(0, "UOrmStatement::into(%p,%p,%p,%p,%p,%p)", &r1, &r2, &r3, &r4, &r5, &r6) + U_TRACE(0, "UOrmStatement::into(%p,%p,%p,%p,%p,%p)",&r1,&r2,&r3,&r4,&r5,&r6) bindResult(UOrmTypeHandler(r1)); bindResult(UOrmTypeHandler(r2)); @@ -506,10 +898,10 @@ inline void UOrmStatement::into(T1& r1, T2& r2, T3& r3, T4& r4, T5& r5, T6& r6) bindResult(UOrmTypeHandler(r6)); } -template -inline void UOrmStatement::into(T1& r1, T2& r2, T3& r3, T4& r4, T5& r5, T6& r6, T7& r7) +template +inline void UOrmStatement::into(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7) { - U_TRACE(0, "UOrmStatement::into(%p,%p,%p,%p,%p,%p,%p)", &r1, &r2, &r3, &r4, &r5, &r6, &r7) + U_TRACE(0, "UOrmStatement::into(%p,%p,%p,%p,%p,%p,%p)",&r1,&r2,&r3,&r4,&r5,&r6,&r7) bindResult(UOrmTypeHandler(r1)); bindResult(UOrmTypeHandler(r2)); @@ -520,6 +912,280 @@ inline void UOrmStatement::into(T1& r1, T2& r2, T3& r3, T4& r4, T5& r5, T6& r6, bindResult(UOrmTypeHandler(r7)); } +template +inline void UOrmStatement::into(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8) +{ + U_TRACE(0, "UOrmStatement::into(%p,%p,%p,%p,%p,%p,%p,%p)",&r1,&r2,&r3,&r4,&r5,&r6,&r7,&r8) + + bindResult(UOrmTypeHandler(r1)); + bindResult(UOrmTypeHandler(r2)); + bindResult(UOrmTypeHandler(r3)); + bindResult(UOrmTypeHandler(r4)); + bindResult(UOrmTypeHandler(r5)); + bindResult(UOrmTypeHandler(r6)); + bindResult(UOrmTypeHandler(r7)); + bindResult(UOrmTypeHandler(r8)); +} + +template +inline void UOrmStatement::into(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9) +{ + U_TRACE(0, "UOrmStatement::into(%p,%p,%p,%p,%p,%p,%p,%p,%p)",&r1,&r2,&r3,&r4,&r5,&r6,&r7,&r8,&r9) + + bindResult(UOrmTypeHandler(r1)); + bindResult(UOrmTypeHandler(r2)); + bindResult(UOrmTypeHandler(r3)); + bindResult(UOrmTypeHandler(r4)); + bindResult(UOrmTypeHandler(r5)); + bindResult(UOrmTypeHandler(r6)); + bindResult(UOrmTypeHandler(r7)); + bindResult(UOrmTypeHandler(r8)); + bindResult(UOrmTypeHandler(r9)); +} + +template +inline void UOrmStatement::into(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9,T10& r10) +{ + U_TRACE(0, "UOrmStatement::into(%p,%p,%p,%p,%p,%p,%p,%p,%p,%p)",&r1,&r2,&r3,&r4,&r5,&r6,&r7,&r8,&r9,&r10) + + bindResult(UOrmTypeHandler(r1)); + bindResult(UOrmTypeHandler(r2)); + bindResult(UOrmTypeHandler(r3)); + bindResult(UOrmTypeHandler(r4)); + bindResult(UOrmTypeHandler(r5)); + bindResult(UOrmTypeHandler(r6)); + bindResult(UOrmTypeHandler(r7)); + bindResult(UOrmTypeHandler(r8)); + bindResult(UOrmTypeHandler(r9)); + bindResult(UOrmTypeHandler(r10)); +} + +template +inline void UOrmStatement::into(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9,T10& r10,T11& r11) +{ + U_TRACE(0, "UOrmStatement::into(%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p)",&r1,&r2,&r3,&r4,&r5,&r6,&r7,&r8,&r9,&r10,&r11) + + bindResult(UOrmTypeHandler(r1)); + bindResult(UOrmTypeHandler(r2)); + bindResult(UOrmTypeHandler(r3)); + bindResult(UOrmTypeHandler(r4)); + bindResult(UOrmTypeHandler(r5)); + bindResult(UOrmTypeHandler(r6)); + bindResult(UOrmTypeHandler(r7)); + bindResult(UOrmTypeHandler(r8)); + bindResult(UOrmTypeHandler(r9)); + bindResult(UOrmTypeHandler(r10)); + bindResult(UOrmTypeHandler(r11)); +} + +template +inline void UOrmStatement::into(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9,T10& r10,T11& r11,T12& r12) +{ + U_TRACE(0, "UOrmStatement::into(%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p)",&r1,&r2,&r3,&r4,&r5,&r6,&r7,&r8,&r9,&r10,&r11,&r12) + + bindResult(UOrmTypeHandler(r1)); + bindResult(UOrmTypeHandler(r2)); + bindResult(UOrmTypeHandler(r3)); + bindResult(UOrmTypeHandler(r4)); + bindResult(UOrmTypeHandler(r5)); + bindResult(UOrmTypeHandler(r6)); + bindResult(UOrmTypeHandler(r7)); + bindResult(UOrmTypeHandler(r8)); + bindResult(UOrmTypeHandler(r9)); + bindResult(UOrmTypeHandler(r10)); + bindResult(UOrmTypeHandler(r11)); + bindResult(UOrmTypeHandler(r12)); +} + +template +inline void UOrmStatement::into(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9,T10& r10,T11& r11,T12& r12,T13& r13) +{ + U_TRACE(0, "UOrmStatement::into(%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p)",&r1,&r2,&r3,&r4,&r5,&r6,&r7,&r8,&r9,&r10,&r11,&r12,&r13) + + bindResult(UOrmTypeHandler(r1)); + bindResult(UOrmTypeHandler(r2)); + bindResult(UOrmTypeHandler(r3)); + bindResult(UOrmTypeHandler(r4)); + bindResult(UOrmTypeHandler(r5)); + bindResult(UOrmTypeHandler(r6)); + bindResult(UOrmTypeHandler(r7)); + bindResult(UOrmTypeHandler(r8)); + bindResult(UOrmTypeHandler(r9)); + bindResult(UOrmTypeHandler(r10)); + bindResult(UOrmTypeHandler(r11)); + bindResult(UOrmTypeHandler(r12)); + bindResult(UOrmTypeHandler(r13)); +} + +template +inline void UOrmStatement::into(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9,T10& r10,T11& r11,T12& r12,T13& r13,T14& r14) +{ + U_TRACE(0, "UOrmStatement::into(%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p)",&r1,&r2,&r3,&r4,&r5,&r6,&r7,&r8,&r9,&r10,&r11,&r12,&r13,&r14) + + bindResult(UOrmTypeHandler(r1)); + bindResult(UOrmTypeHandler(r2)); + bindResult(UOrmTypeHandler(r3)); + bindResult(UOrmTypeHandler(r4)); + bindResult(UOrmTypeHandler(r5)); + bindResult(UOrmTypeHandler(r6)); + bindResult(UOrmTypeHandler(r7)); + bindResult(UOrmTypeHandler(r8)); + bindResult(UOrmTypeHandler(r9)); + bindResult(UOrmTypeHandler(r10)); + bindResult(UOrmTypeHandler(r11)); + bindResult(UOrmTypeHandler(r12)); + bindResult(UOrmTypeHandler(r13)); + bindResult(UOrmTypeHandler(r14)); +} + +template +inline void UOrmStatement::into(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9,T10& r10,T11& r11,T12& r12,T13& r13,T14& r14,T15& r15) +{ + U_TRACE(0, "UOrmStatement::into(%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p)",&r1,&r2,&r3,&r4,&r5,&r6,&r7,&r8,&r9,&r10,&r11,&r12,&r13,&r14,&r15) + + bindResult(UOrmTypeHandler(r1)); + bindResult(UOrmTypeHandler(r2)); + bindResult(UOrmTypeHandler(r3)); + bindResult(UOrmTypeHandler(r4)); + bindResult(UOrmTypeHandler(r5)); + bindResult(UOrmTypeHandler(r6)); + bindResult(UOrmTypeHandler(r7)); + bindResult(UOrmTypeHandler(r8)); + bindResult(UOrmTypeHandler(r9)); + bindResult(UOrmTypeHandler(r10)); + bindResult(UOrmTypeHandler(r11)); + bindResult(UOrmTypeHandler(r12)); + bindResult(UOrmTypeHandler(r13)); + bindResult(UOrmTypeHandler(r14)); + bindResult(UOrmTypeHandler(r15)); +} + +template +inline void UOrmStatement::into(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9,T10& r10,T11& r11,T12& r12,T13& r13,T14& r14,T15& r15,T16& r16) +{ + U_TRACE(0, "UOrmStatement::into(%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p)",&r1,&r2,&r3,&r4,&r5,&r6,&r7,&r8,&r9,&r10,&r11,&r12,&r13,&r14,&r15,&r16) + + bindResult(UOrmTypeHandler(r1)); + bindResult(UOrmTypeHandler(r2)); + bindResult(UOrmTypeHandler(r3)); + bindResult(UOrmTypeHandler(r4)); + bindResult(UOrmTypeHandler(r5)); + bindResult(UOrmTypeHandler(r6)); + bindResult(UOrmTypeHandler(r7)); + bindResult(UOrmTypeHandler(r8)); + bindResult(UOrmTypeHandler(r9)); + bindResult(UOrmTypeHandler(r10)); + bindResult(UOrmTypeHandler(r11)); + bindResult(UOrmTypeHandler(r12)); + bindResult(UOrmTypeHandler(r13)); + bindResult(UOrmTypeHandler(r14)); + bindResult(UOrmTypeHandler(r15)); + bindResult(UOrmTypeHandler(r16)); +} + +template +inline void UOrmStatement::into(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9,T10& r10,T11& r11,T12& r12,T13& r13,T14& r14,T15& r15,T16& r16,T17& r17) +{ + U_TRACE(0, "UOrmStatement::into(%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p)",&r1,&r2,&r3,&r4,&r5,&r6,&r7,&r8,&r9,&r10,&r11,&r12,&r13,&r14,&r15,&r16,&r17) + + bindResult(UOrmTypeHandler(r1)); + bindResult(UOrmTypeHandler(r2)); + bindResult(UOrmTypeHandler(r3)); + bindResult(UOrmTypeHandler(r4)); + bindResult(UOrmTypeHandler(r5)); + bindResult(UOrmTypeHandler(r6)); + bindResult(UOrmTypeHandler(r7)); + bindResult(UOrmTypeHandler(r8)); + bindResult(UOrmTypeHandler(r9)); + bindResult(UOrmTypeHandler(r10)); + bindResult(UOrmTypeHandler(r11)); + bindResult(UOrmTypeHandler(r12)); + bindResult(UOrmTypeHandler(r13)); + bindResult(UOrmTypeHandler(r14)); + bindResult(UOrmTypeHandler(r15)); + bindResult(UOrmTypeHandler(r16)); + bindResult(UOrmTypeHandler(r17)); +} + +template +inline void UOrmStatement::into(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9,T10& r10,T11& r11,T12& r12,T13& r13,T14& r14,T15& r15,T16& r16,T17& r17,T18& r18) +{ + U_TRACE(0, "UOrmStatement::into(%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p)",&r1,&r2,&r3,&r4,&r5,&r6,&r7,&r8,&r9,&r10,&r11,&r12,&r13,&r14,&r15,&r16,&r17,&r18) + + bindResult(UOrmTypeHandler(r1)); + bindResult(UOrmTypeHandler(r2)); + bindResult(UOrmTypeHandler(r3)); + bindResult(UOrmTypeHandler(r4)); + bindResult(UOrmTypeHandler(r5)); + bindResult(UOrmTypeHandler(r6)); + bindResult(UOrmTypeHandler(r7)); + bindResult(UOrmTypeHandler(r8)); + bindResult(UOrmTypeHandler(r9)); + bindResult(UOrmTypeHandler(r10)); + bindResult(UOrmTypeHandler(r11)); + bindResult(UOrmTypeHandler(r12)); + bindResult(UOrmTypeHandler(r13)); + bindResult(UOrmTypeHandler(r14)); + bindResult(UOrmTypeHandler(r15)); + bindResult(UOrmTypeHandler(r16)); + bindResult(UOrmTypeHandler(r17)); + bindResult(UOrmTypeHandler(r18)); +} + +template +inline void UOrmStatement::into(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9,T10& r10,T11& r11,T12& r12,T13& r13,T14& r14,T15& r15,T16& r16,T17& r17,T18& r18,T19& r19) +{ + U_TRACE(0, "UOrmStatement::into(%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p)",&r1,&r2,&r3,&r4,&r5,&r6,&r7,&r8,&r9,&r10,&r11,&r12,&r13,&r14,&r15,&r16,&r17,&r18,&r19) + + bindResult(UOrmTypeHandler(r1)); + bindResult(UOrmTypeHandler(r2)); + bindResult(UOrmTypeHandler(r3)); + bindResult(UOrmTypeHandler(r4)); + bindResult(UOrmTypeHandler(r5)); + bindResult(UOrmTypeHandler(r6)); + bindResult(UOrmTypeHandler(r7)); + bindResult(UOrmTypeHandler(r8)); + bindResult(UOrmTypeHandler(r9)); + bindResult(UOrmTypeHandler(r10)); + bindResult(UOrmTypeHandler(r11)); + bindResult(UOrmTypeHandler(r12)); + bindResult(UOrmTypeHandler(r13)); + bindResult(UOrmTypeHandler(r14)); + bindResult(UOrmTypeHandler(r15)); + bindResult(UOrmTypeHandler(r16)); + bindResult(UOrmTypeHandler(r17)); + bindResult(UOrmTypeHandler(r18)); + bindResult(UOrmTypeHandler(r19)); +} + +template +inline void UOrmStatement::into(T1& r1,T2& r2,T3& r3,T4& r4,T5& r5,T6& r6,T7& r7,T8& r8,T9& r9,T10& r10,T11& r11,T12& r12,T13& r13,T14& r14,T15& r15,T16& r16,T17& r17,T18& r18,T19& r19,T20& r20) +{ + U_TRACE(0, "UOrmStatement::into(%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p)",&r1,&r2,&r3,&r4,&r5,&r6,&r7,&r8,&r9,&r10,&r11,&r12,&r13,&r14,&r15,&r16,&r17,&r18,&r19,&r20) + + bindResult(UOrmTypeHandler(r1)); + bindResult(UOrmTypeHandler(r2)); + bindResult(UOrmTypeHandler(r3)); + bindResult(UOrmTypeHandler(r4)); + bindResult(UOrmTypeHandler(r5)); + bindResult(UOrmTypeHandler(r6)); + bindResult(UOrmTypeHandler(r7)); + bindResult(UOrmTypeHandler(r8)); + bindResult(UOrmTypeHandler(r9)); + bindResult(UOrmTypeHandler(r10)); + bindResult(UOrmTypeHandler(r11)); + bindResult(UOrmTypeHandler(r12)); + bindResult(UOrmTypeHandler(r13)); + bindResult(UOrmTypeHandler(r14)); + bindResult(UOrmTypeHandler(r15)); + bindResult(UOrmTypeHandler(r16)); + bindResult(UOrmTypeHandler(r17)); + bindResult(UOrmTypeHandler(r18)); + bindResult(UOrmTypeHandler(r19)); + bindResult(UOrmTypeHandler(r20)); +} +#endif + // TEMPLATE SPECIALIZATIONS template <> class U_EXPORT UOrmTypeHandler : public UOrmTypeHandler_Base { diff --git a/src/ulib/net/server/plugin/usp/fortune.h b/src/ulib/net/server/plugin/usp/fortune.h index 17917125..d47d14fe 100644 --- a/src/ulib/net/server/plugin/usp/fortune.h +++ b/src/ulib/net/server/plugin/usp/fortune.h @@ -150,28 +150,28 @@ public: { u_put_unalignedp64(ptr, U_MULTICHAR_CONSTANT64('C','o','n','t','e','n','t','-')); u_put_unalignedp64(ptr+8, U_MULTICHAR_CONSTANT64('L','e','n','g','t','h',':',' ')); - u_put_unalignedp64(ptr+16, U_MULTICHAR_CONSTANT64('x','x','x','x','\r','\n','C','o')); - u_put_unalignedp64(ptr+24, U_MULTICHAR_CONSTANT64('n','t','e','n','t','-','T','y')); - u_put_unalignedp64(ptr+32, U_MULTICHAR_CONSTANT64('p','e',':',' ','t','e','x','t')); - u_put_unalignedp64(ptr+40, U_MULTICHAR_CONSTANT64('/','h','t','m','l',';',' ','c')); - u_put_unalignedp64(ptr+48, U_MULTICHAR_CONSTANT64('h','a','r','s','e','t','=','U')); - u_put_unalignedp64(ptr+56, U_MULTICHAR_CONSTANT64('T','F','-','8','\r','\n','\r','\n')); - u_put_unalignedp64(ptr+64, U_MULTICHAR_CONSTANT64('<','!','d','o','c','t','y','p')); - u_put_unalignedp64(ptr+72, U_MULTICHAR_CONSTANT64('e',' ','h','t','m','l','>','<')); - u_put_unalignedp64(ptr+80, U_MULTICHAR_CONSTANT64('h','t','m','l','>','<','h','e')); - u_put_unalignedp64(ptr+88, U_MULTICHAR_CONSTANT64('a','d','>','<','t','i','t','l')); - u_put_unalignedp64(ptr+96, U_MULTICHAR_CONSTANT64('e','>','F','o','r','t','u','n')); - u_put_unalignedp64(ptr+104, U_MULTICHAR_CONSTANT64('e','s','<','/','t','i','t','l')); - u_put_unalignedp64(ptr+112, U_MULTICHAR_CONSTANT64('e','>','<','/','h','e','a','d')); - u_put_unalignedp64(ptr+120, U_MULTICHAR_CONSTANT64('>','<','b','o','d','y','>','<')); - u_put_unalignedp64(ptr+128, U_MULTICHAR_CONSTANT64('t','a','b','l','e','>','<','t')); - u_put_unalignedp64(ptr+136, U_MULTICHAR_CONSTANT64('r','>','<','t','h','>','i','d')); - u_put_unalignedp64(ptr+144, U_MULTICHAR_CONSTANT64('<','/','t','h','>','<','t','h')); - u_put_unalignedp64(ptr+152, U_MULTICHAR_CONSTANT64('>','m','e','s','s','a','g','e')); - u_put_unalignedp64(ptr+160, U_MULTICHAR_CONSTANT64('<','/','t','h','>','<','/','t')); - u_put_unalignedp16(ptr+168, U_MULTICHAR_CONSTANT16('r','>')); + u_put_unalignedp64(ptr+16, U_MULTICHAR_CONSTANT64('x','x','x','x','x','x','x','x')); + u_put_unalignedp64(ptr+24, U_MULTICHAR_CONSTANT64('\r','\n','C','o','n','t','e','n')); + u_put_unalignedp64(ptr+32, U_MULTICHAR_CONSTANT64('t','-','T','y','p','e',':',' ')); + u_put_unalignedp64(ptr+40, U_MULTICHAR_CONSTANT64('t','e','x','t','/','h','t','m')); + u_put_unalignedp64(ptr+48, U_MULTICHAR_CONSTANT64('l',';',' ','c','h','a','r','s')); + u_put_unalignedp64(ptr+56, U_MULTICHAR_CONSTANT64('e','t','=','U','T','F','-','8')); + u_put_unalignedp64(ptr+64, U_MULTICHAR_CONSTANT64('\r','\n','\r','\n','<','!','d','o')); + u_put_unalignedp64(ptr+72, U_MULTICHAR_CONSTANT64('c','t','y','p','e',' ','h','t')); + u_put_unalignedp64(ptr+80, U_MULTICHAR_CONSTANT64('m','l','>','<','h','t','m','l')); + u_put_unalignedp64(ptr+88, U_MULTICHAR_CONSTANT64('>','<','h','e','a','d','>','<')); + u_put_unalignedp64(ptr+96, U_MULTICHAR_CONSTANT64('t','i','t','l','e','>','F','o')); + u_put_unalignedp64(ptr+104, U_MULTICHAR_CONSTANT64('r','t','u','n','e','s','<','/')); + u_put_unalignedp64(ptr+112, U_MULTICHAR_CONSTANT64('t','i','t','l','e','>','<','/')); + u_put_unalignedp64(ptr+120, U_MULTICHAR_CONSTANT64('h','e','a','d','>','<','b','o')); + u_put_unalignedp64(ptr+128, U_MULTICHAR_CONSTANT64('d','y','>','<','t','a','b','l')); + u_put_unalignedp64(ptr+136, U_MULTICHAR_CONSTANT64('e','>','<','t','r','>','<','t')); + u_put_unalignedp64(ptr+144, U_MULTICHAR_CONSTANT64('h','>','i','d','<','/','t','h')); + u_put_unalignedp64(ptr+152, U_MULTICHAR_CONSTANT64('>','<','t','h','>','m','e','s')); + u_put_unalignedp64(ptr+160, U_MULTICHAR_CONSTANT64('s','a','g','e','<','/','t','h')); + u_put_unalignedp64(ptr+168, U_MULTICHAR_CONSTANT64('>','<','/','t','r','>','\0','\0')); - pwbuffer = ptr + U_CONSTANT_SIZE("Content-Length: xxxx\r\nContent-Type: text/html; charset=UTF-8\r\n\r\n" + pwbuffer = ptr + U_CONSTANT_SIZE("Content-Length: xxxxxxxx\r\nContent-Type: text/html; charset=UTF-8\r\n\r\n" "Fortunes"); } @@ -221,14 +221,14 @@ public: content_length += (ptr - pwbuffer) + U_CONSTANT_SIZE("
idmessage
"); - U_INTERNAL_ASSERT_EQUALS(content_length, 1227) - - ptr = pwbuffer - U_CONSTANT_SIZE("xxxx\r\nContent-Type: text/html; charset=UTF-8\r\n\r\n" + ptr = pwbuffer - U_CONSTANT_SIZE("xxxxxxxx\r\nContent-Type: text/html; charset=UTF-8\r\n\r\n" "Fortunes"); + u_put_unalignedp64(ptr, U_MULTICHAR_CONSTANT64(' ',' ',' ',' ',' ',' ',' ',' ')); + (void) u_num2str32(content_length, ptr); - UClientImage_Base::wbuffer->size_adjust_constant(U_CONSTANT_SIZE("Content-Length: xxxx\r\nContent-Type: text/html; charset=UTF-8\r\n\r\n") + content_length); + UClientImage_Base::wbuffer->size_adjust_constant(U_CONSTANT_SIZE("Content-Length: xxxxxxxx\r\nContent-Type: text/html; charset=UTF-8\r\n\r\n") + content_length); } static void doQuery(vPF handlerQuery) diff --git a/tests/examples/TSA/tsaserial b/tests/examples/TSA/tsaserial index 942535c5..7ba33155 100644 --- a/tests/examples/TSA/tsaserial +++ b/tests/examples/TSA/tsaserial @@ -1 +1 @@ -06E9 +06F6 diff --git a/tests/examples/benchmark/FrameworkBenchmarks/ULib/src/fortune.h b/tests/examples/benchmark/FrameworkBenchmarks/ULib/src/fortune.h index b23ab280..af237428 100644 --- a/tests/examples/benchmark/FrameworkBenchmarks/ULib/src/fortune.h +++ b/tests/examples/benchmark/FrameworkBenchmarks/ULib/src/fortune.h @@ -150,28 +150,28 @@ public: { u_put_unalignedp64(ptr, U_MULTICHAR_CONSTANT64('C','o','n','t','e','n','t','-')); u_put_unalignedp64(ptr+8, U_MULTICHAR_CONSTANT64('L','e','n','g','t','h',':',' ')); - u_put_unalignedp64(ptr+16, U_MULTICHAR_CONSTANT64('x','x','x','x','\r','\n','C','o')); - u_put_unalignedp64(ptr+24, U_MULTICHAR_CONSTANT64('n','t','e','n','t','-','T','y')); - u_put_unalignedp64(ptr+32, U_MULTICHAR_CONSTANT64('p','e',':',' ','t','e','x','t')); - u_put_unalignedp64(ptr+40, U_MULTICHAR_CONSTANT64('/','h','t','m','l',';',' ','c')); - u_put_unalignedp64(ptr+48, U_MULTICHAR_CONSTANT64('h','a','r','s','e','t','=','U')); - u_put_unalignedp64(ptr+56, U_MULTICHAR_CONSTANT64('T','F','-','8','\r','\n','\r','\n')); - u_put_unalignedp64(ptr+64, U_MULTICHAR_CONSTANT64('<','!','d','o','c','t','y','p')); - u_put_unalignedp64(ptr+72, U_MULTICHAR_CONSTANT64('e',' ','h','t','m','l','>','<')); - u_put_unalignedp64(ptr+80, U_MULTICHAR_CONSTANT64('h','t','m','l','>','<','h','e')); - u_put_unalignedp64(ptr+88, U_MULTICHAR_CONSTANT64('a','d','>','<','t','i','t','l')); - u_put_unalignedp64(ptr+96, U_MULTICHAR_CONSTANT64('e','>','F','o','r','t','u','n')); - u_put_unalignedp64(ptr+104, U_MULTICHAR_CONSTANT64('e','s','<','/','t','i','t','l')); - u_put_unalignedp64(ptr+112, U_MULTICHAR_CONSTANT64('e','>','<','/','h','e','a','d')); - u_put_unalignedp64(ptr+120, U_MULTICHAR_CONSTANT64('>','<','b','o','d','y','>','<')); - u_put_unalignedp64(ptr+128, U_MULTICHAR_CONSTANT64('t','a','b','l','e','>','<','t')); - u_put_unalignedp64(ptr+136, U_MULTICHAR_CONSTANT64('r','>','<','t','h','>','i','d')); - u_put_unalignedp64(ptr+144, U_MULTICHAR_CONSTANT64('<','/','t','h','>','<','t','h')); - u_put_unalignedp64(ptr+152, U_MULTICHAR_CONSTANT64('>','m','e','s','s','a','g','e')); - u_put_unalignedp64(ptr+160, U_MULTICHAR_CONSTANT64('<','/','t','h','>','<','/','t')); - u_put_unalignedp16(ptr+168, U_MULTICHAR_CONSTANT16('r','>')); + u_put_unalignedp64(ptr+16, U_MULTICHAR_CONSTANT64('x','x','x','x','x','x','x','x')); + u_put_unalignedp64(ptr+24, U_MULTICHAR_CONSTANT64('\r','\n','C','o','n','t','e','n')); + u_put_unalignedp64(ptr+32, U_MULTICHAR_CONSTANT64('t','-','T','y','p','e',':',' ')); + u_put_unalignedp64(ptr+40, U_MULTICHAR_CONSTANT64('t','e','x','t','/','h','t','m')); + u_put_unalignedp64(ptr+48, U_MULTICHAR_CONSTANT64('l',';',' ','c','h','a','r','s')); + u_put_unalignedp64(ptr+56, U_MULTICHAR_CONSTANT64('e','t','=','U','T','F','-','8')); + u_put_unalignedp64(ptr+64, U_MULTICHAR_CONSTANT64('\r','\n','\r','\n','<','!','d','o')); + u_put_unalignedp64(ptr+72, U_MULTICHAR_CONSTANT64('c','t','y','p','e',' ','h','t')); + u_put_unalignedp64(ptr+80, U_MULTICHAR_CONSTANT64('m','l','>','<','h','t','m','l')); + u_put_unalignedp64(ptr+88, U_MULTICHAR_CONSTANT64('>','<','h','e','a','d','>','<')); + u_put_unalignedp64(ptr+96, U_MULTICHAR_CONSTANT64('t','i','t','l','e','>','F','o')); + u_put_unalignedp64(ptr+104, U_MULTICHAR_CONSTANT64('r','t','u','n','e','s','<','/')); + u_put_unalignedp64(ptr+112, U_MULTICHAR_CONSTANT64('t','i','t','l','e','>','<','/')); + u_put_unalignedp64(ptr+120, U_MULTICHAR_CONSTANT64('h','e','a','d','>','<','b','o')); + u_put_unalignedp64(ptr+128, U_MULTICHAR_CONSTANT64('d','y','>','<','t','a','b','l')); + u_put_unalignedp64(ptr+136, U_MULTICHAR_CONSTANT64('e','>','<','t','r','>','<','t')); + u_put_unalignedp64(ptr+144, U_MULTICHAR_CONSTANT64('h','>','i','d','<','/','t','h')); + u_put_unalignedp64(ptr+152, U_MULTICHAR_CONSTANT64('>','<','t','h','>','m','e','s')); + u_put_unalignedp64(ptr+160, U_MULTICHAR_CONSTANT64('s','a','g','e','<','/','t','h')); + u_put_unalignedp64(ptr+168, U_MULTICHAR_CONSTANT64('>','<','/','t','r','>','\0','\0')); - pwbuffer = ptr + U_CONSTANT_SIZE("Content-Length: xxxx\r\nContent-Type: text/html; charset=UTF-8\r\n\r\n" + pwbuffer = ptr + U_CONSTANT_SIZE("Content-Length: xxxxxxxx\r\nContent-Type: text/html; charset=UTF-8\r\n\r\n" "Fortunes
idmessage
"); } @@ -221,14 +221,14 @@ public: content_length += (ptr - pwbuffer) + U_CONSTANT_SIZE("
idmessage
"); - U_INTERNAL_ASSERT_EQUALS(content_length, 1227) - - ptr = pwbuffer - U_CONSTANT_SIZE("xxxx\r\nContent-Type: text/html; charset=UTF-8\r\n\r\n" + ptr = pwbuffer - U_CONSTANT_SIZE("xxxxxxxx\r\nContent-Type: text/html; charset=UTF-8\r\n\r\n" "Fortunes"); + u_put_unalignedp64(ptr, U_MULTICHAR_CONSTANT64(' ',' ',' ',' ',' ',' ',' ',' ')); + (void) u_num2str32(content_length, ptr); - UClientImage_Base::wbuffer->size_adjust_constant(U_CONSTANT_SIZE("Content-Length: xxxx\r\nContent-Type: text/html; charset=UTF-8\r\n\r\n") + content_length); + UClientImage_Base::wbuffer->size_adjust_constant(U_CONSTANT_SIZE("Content-Length: xxxxxxxx\r\nContent-Type: text/html; charset=UTF-8\r\n\r\n") + content_length); } static void doQuery(vPF handlerQuery)
idmessage