我正在使用bloomberg API來編寫cpp項目。
當我需要發送請求到彭博數據饋送時,我必須發送帶有ID的請求。例如:
C++ bloomberg api correlationId
session->sendRequest(*request, CorrelationId(20));
的CorrelationId
由伯格API提供以生成的ID。
此處的ID爲20.來自bloomberg數據饋送的結果包含ID 20,以便我可以識別結果和請求。這意味着,當我從該數據源得到的結果,也有一些是這樣的:而不是INT ID
correlationId=[ valueType=INT classId=0 value=20 ]
現在我想打一個字符串ID。例如,我想生成一個如CorrelationId("US543119ES")
的ID。
如果我這樣做,我沒有得到任何錯誤,但在結果的ID變爲:
correlationId=[ valueType=POINTER classId=0 value=00731378 ]
看來,ID變成一個指針,並將其發送,而不是指針的內容的指針的值, 。很顯然value=00731378
是一個地址。
是不可能產生一個字符串ID?
如果可能,我該怎麼辦?
我找到了CorrelationId的文檔。
還有的CorrelationId
兩個構造函數,我不知道怎麼用,我不知道,如果他們中的一個是我需要的:
CorrelationId (void *value, int classId=0);
template<typename TYPE >
CorrelationId (const TYPE &smartPtr, void *pointerValue, int classId=0);
這是解決這個問題的正確方法,你只需要確保您使用至少只要將生活作爲請求和響應,繩子,讓指針將繼續指向它(而不是隨機數據可能已經取代了字符串)。 –
@ KevinP.Fleming是的。究竟。感謝您的補充。 – Yves