| Thread overview |
|---|
January 28, 2015 why there is no TBase in thrift for dlang? | ||||
|---|---|---|---|---|
| ||||
I am writing code below:
private Cmd deserialCmd(ubyte[] data)
{
Cmd ret;
TMemoryBuffer trans = new TMemoryBuffer(data);
auto prot = new TCompactProtocol!TMemoryBuffer(trans);
ret.read(prot);
return ret;
}
If I have diffrent Cmd, I have to repeat the code above,
TBase has methods like write(protocol) read(protocol), if it exists in thrift for dlang, I could write like this:
private TBase deserialCmd(ubyte[] data,TBase ret)
{
TMemoryBuffer trans = new TMemoryBuffer(data);
auto prot = new TCompactProtocol!TMemoryBuffer(trans);
ret.read(prot);
return ret;
}
But TBase doesnt exists in thrift for dlang, what can i do now?
| ||||
January 28, 2015 Re: why there is no TBase in thrift for dlang? | ||||
|---|---|---|---|---|
| ||||
Posted in reply to zhmt | I resovled it by Generic programming :
private const (ubyte)[] serialObj(T) (T obj)
{
TMemoryBuffer trans = new TMemoryBuffer();
auto prot = new TCompactProtocol!TMemoryBuffer(trans);
obj.write(prot);
return trans.getContents();
}
| |||
Copyright © 1999-2021 by the D Language Foundation
Permalink
Reply