Quellcode durchsuchen

Z991239-4466 #comment feat: 生成ReadAndScanUTF8接口的定义代码

陈纪林80310970 vor 2 Jahren
Ursprung
Commit
63c6853006

+ 38 - 1
Module/mod_IDCertificate/IDCertificate.xml

@@ -139,7 +139,44 @@
 				<param name="version" type="string" />
 				<param name="state" type="int" />
 			</res>			
-		</twoway>					
+		</twoway>
+		<twoway name="ReadAndScanUTF8" overlap="true">
+			<req>
+				<param name="type" type="int"/>
+				<param name="reserved1" type="array_int"/>
+				<param name="reserved2" type="array_string"/>
+			</req>
+			<res>
+				<!--msgtype用于区分传递方式的新旧-->
+				<param name="msgtype" type="int" />
+				<param name="hasscan" type="int" />
+				<param name="photodata" type="blob" />
+				<param name="frontphoto" type="blob" />
+				<param name="backphoto" type="blob" />
+				<param name="headphoto" type="blob" />
+				<param name="finger1" type="blob" />
+				<param name="finger2" type="blob" />
+				<param name="imgreserved1" type="blob" />
+				<param name="imgreserved2" type="blob" />
+				<param name="reserved1" type="array_int"/>
+				<param name="reserved2" type="array_string"/>
+				<param name="name_utf8" type="blob" />
+				<param name="sex_utf8" type="blob" />
+				<param name="nation_utf8" type="blob" />
+				<param name="birthday_utf8" type="blob" />
+				<param name="address_utf8" type="blob" />
+				<param name="idcode_utf8" type="blob" />
+				<param name="department_utf8" type="blob" />
+				<param name="startdate_utf8" type="blob" />
+				<param name="enddate_utf8" type="blob" />
+				<param name="englishname_utf8" type="blob" />
+				<param name="nationality_utf8" type="blob" />
+				<param name="idversion_utf8" type="blob" />
+				<param name="idtype_utf8" type="blob" />
+				<param name="othercode_utf8" type="blob" />
+				<param name="reserved_utf8" type="blob" />
+			</res>
+		</twoway>
 	</class>
 	<message name="FetchIDCard">
 			<param name="status" type="int"/>

+ 32 - 0
Module/mod_IDCertificate/IDCertificate_client_g.h

@@ -32,6 +32,7 @@ public:
 	}
 	void OnClose(ErrorCodeEnum)
 	{
+		Dbg("session closed.");
 		bSessionClosed = true;
 	}
 	bool QuerySessionClosed()
@@ -271,6 +272,37 @@ public:
 		return Error;
 	}
 
+	ErrorCodeEnum ReadAndScanUTF8(IDCertService_ReadAndScanUTF8_Req &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait, DWORD dwTimeout)
+	{
+		CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
+		CAutoBuffer Buf = SpObject2Buffer(Req);
+		auto ret = pFunc->AsyncRequest(IDCertService_Method_ReadAndScanUTF8, IDCertService_MethodSignature_ReadAndScanUTF8, Buf, spAsyncWait, m_context, dwTimeout);
+		m_context.clear();
+		return ret;
+	}
+	ErrorCodeEnum ReadAndScanUTF8(IDCertService_ReadAndScanUTF8_Req &Req, IDCertService_ReadAndScanUTF8_Ans &Ans, DWORD dwTimeout)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = ReadAndScanUTF8(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum ReadAndScanUTF8(IDCertService_ReadAndScanUTF8_Req &Req, IDCertService_ReadAndScanUTF8_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = ReadAndScanUTF8(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+
 
 	bool SafeDelete()
 	{

+ 52 - 0
Module/mod_IDCertificate/IDCertificate_def_g.h

@@ -22,6 +22,7 @@ namespace IDCertificate {
 #define IDCertService_Method_CrossTermCall 7
 #define IDCertService_Method_CrossTermInvokeInfo 8
 #define IDCertService_Method_GetDevInfo 65535
+#define IDCertService_Method_ReadAndScanUTF8 9
 
 #define IDCertService_MethodSignature_Read 1473284635
 #define IDCertService_MethodSignature_CancelRead -342104338
@@ -33,6 +34,7 @@ namespace IDCertificate {
 #define IDCertService_MethodSignature_CrossTermCall -2042776719
 #define IDCertService_MethodSignature_CrossTermInvokeInfo 54854091
 #define IDCertService_MethodSignature_GetDevInfo 296205965
+#define IDCertService_MethodSignature_ReadAndScanUTF8 1171255469
 
 struct IDCertService_Read_Req
 {
@@ -284,6 +286,56 @@ struct IDCertService_GetDevInfo_Ans
 
 };
 
+struct IDCertService_ReadAndScanUTF8_Req
+{
+	int type;
+	CAutoArray<int> reserved1;
+	CAutoArray<CSimpleStringA> reserved2;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & type & reserved1 & reserved2;
+	}
+
+};
+
+struct IDCertService_ReadAndScanUTF8_Ans
+{
+	int msgtype;
+	int hasscan;
+	CBlob photodata;
+	CBlob frontphoto;
+	CBlob backphoto;
+	CBlob headphoto;
+	CBlob finger1;
+	CBlob finger2;
+	CBlob imgreserved1;
+	CBlob imgreserved2;
+	CAutoArray<int> reserved1;
+	CAutoArray<CSimpleStringA> reserved2;
+	CBlob name_utf8;
+	CBlob sex_utf8;
+	CBlob nation_utf8;
+	CBlob birthday_utf8;
+	CBlob address_utf8;
+	CBlob idcode_utf8;
+	CBlob department_utf8;
+	CBlob startdate_utf8;
+	CBlob enddate_utf8;
+	CBlob englishname_utf8;
+	CBlob nationality_utf8;
+	CBlob idversion_utf8;
+	CBlob idtype_utf8;
+	CBlob othercode_utf8;
+	CBlob reserved_utf8;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & msgtype & hasscan & photodata & frontphoto & backphoto & headphoto & finger1 & finger2 & imgreserved1 & imgreserved2 & reserved1 & reserved2 & name_utf8 & sex_utf8 & nation_utf8 & birthday_utf8 & address_utf8 & idcode_utf8 & department_utf8 & startdate_utf8 & enddate_utf8 & englishname_utf8 & nationality_utf8 & idversion_utf8 & idtype_utf8 & othercode_utf8 & reserved_utf8;
+	}
+
+};
+
 
 ///////////////////////////
 

+ 26 - 0
Module/mod_IDCertificate/IDCertificate_server_g.h

@@ -100,6 +100,13 @@ public:
 				Error = Error_MethodSignatureFailed;
 			}
 			break;
+		case IDCertService_Method_ReadAndScanUTF8:
+			if (dwSignature == IDCertService_MethodSignature_ReadAndScanUTF8) {
+				bOverlap = true;
+			} else {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
 		default:
 			Error = Error_MethodNotFound;
 			break;
@@ -161,6 +168,11 @@ public:
 				Error = Error_MethodSignatureFailed;
 			}
 			break;
+		case IDCertService_Method_ReadAndScanUTF8:
+			if (dwSignature != IDCertService_MethodSignature_ReadAndScanUTF8) {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
 		default:
 			Error = Error_MethodNotFound;
 			break;
@@ -218,6 +230,11 @@ public:
 	/// override by user
 	}
 
+	virtual void Handle_ReadAndScanUTF8(SpReqAnsContext<IDCertService_ReadAndScanUTF8_Req, IDCertService_ReadAndScanUTF8_Ans>::Pointer ctx)
+	{
+	/// override by user
+	}
+
 	virtual void OnRequest(CSmartPointer<ITransactionContext> pTransactionContext)
 	{
 		CAutoBuffer Buf;
@@ -324,6 +341,15 @@ public:
 						Handle_GetDevInfo(ctx);
 					}
 					break;
+				case IDCertService_Method_ReadAndScanUTF8:
+					{
+						SpReqAnsContext<IDCertService_ReadAndScanUTF8_Req,IDCertService_ReadAndScanUTF8_Ans>::Pointer ctx;
+						ctx.Attach(new SpReqAnsContext<IDCertService_ReadAndScanUTF8_Req,IDCertService_ReadAndScanUTF8_Ans>(pTransactionContext));
+						SpBuffer2Object(Buf, ctx->Req);
+						pTransactionContext->GetLinkContext(ctx->link);
+						Handle_ReadAndScanUTF8(ctx);
+					}
+					break;
 				default:
 					assert(0);
 					break;