4
我有兩個應用程序(一個用C++編寫,另一個用Java編寫)。我使用msgpack
將C++類打包爲二進制格式。然後我將它發送給Java端。我想知道是否我用java解壓縮了這個消息(也使用msgpack
)我是否得到正確的Java類對象?msgpack:C++和java之間的消息傳遞
請看下面的例子:
// C++
class Foo
{
public:
// some methods here...
void Pack(uint8_t *data, size_t size);
private:
std::string m1_;
std::string m2_;
int m3_;
public:
MSGPACK_DEFINE(m1_, m2_, m3_);
}
void Foo::Pack(uint8_t *data, size_t size)
{
msgpack::sbuffer sbuf;
msgpack::pack(sbuf, *this);
data = sbuf.data();
size = sbuf.size();
}
和Java方面:
// Java
public class Foo
{
public void Unpack(byte[] raw, Foo obj)
{
MessagePack msgpack = new MessagePack();
try
{
obj = msgpack.read(raw, Foo.class);
// Does obj's m1_, m2_ and m3_ contains proper values from C++ class Foo?
}
catch(IOException ex)
{
// ...
}
}
// ...
private String m1_;
private String m2_;
private int m3_;
}
我不想一個收拾的Foo的成員之一,因爲我有很多他們。
在此先感謝。
@PetterFriberg我想你是對的,我錯了這一個,本來應該更密切地關注 –
@VasilyAlexeev沒有問題,如果你懷疑你總是可以通過[SOCVR室](http://chat.stackoverflow.com/rooms/41570/so-close-vote-reviewers) –