Home Help Center

How to add index by slice2freeze?

kingbokingbo Member Tang FanOrganization: ShenZhen Yijin Platform Network Technology Co.,LtdProject: Stock quotation server
HI,

I defined two stuctures in TB.ice:
struct IHisDataKey
{
..........................
};
struct IHisDataValue
{
...........................
};

And then,I make two function class in STL_Compares.h:
class CstlKey  
{
public:
    bool operator()(const IHisDataKey& k1,const IHisDataKey& k2) const
    {
         ................................
    }
};
class CstlValue
{
public:
    bool operator()(const IHisDataValue& v1,const IHisDataValue& v2) const
    {
         ................................
    }
};


When I use slice2cpp.exe:
slice2freeze.exe -I. -ID:\Ice-3.3.0-VC60\slice --add-header STL_Compares.h --dict IMapHisData,IHisDataKey,IHisDataValue,sort,CstlKey --dict-index IMapHisData,sort,CstlValue MapHisData TB.ice

I always get "slice2freeze.exe: `IHisDataValue' is not a valid index type" error.
What is the reason?

Comments

  • bernardbernard Jupiter, FLAdministrators, ZeroC Staff Bernard NormierOrganization: ZeroC, Inc.Project: Ice ZeroC Staff
    Hi Tang Fan,

    It would be helpful to show the actual Slice types!

    If you want to index on the full value, then this value's type needs to be a valid Slice dictionary key.

    Best regards,
    Bernard
  • kingbokingbo Member Tang FanOrganization: ShenZhen Yijin Platform Network Technology Co.,LtdProject: Stock quotation server
    bernard wrote: »
    Hi Tang Fan,

    It would be helpful to show the actual Slice types!

    If you want to index on the full value, then this value's type needs to be a valid Slice dictionary key.

    Best regards,
    Bernard

    The map's value is IHisDataValue, whick is a structure defined in TB.ice. IHisDataValue can not be indexed,so I implement a funtion class named CstlValue in STL_compares.h.
    --dict-index MAP[,MEMBER][,case-sensitive|case-insensitive][,sort,COMPARE]]
    I thought if I use sort and COMPARE option, slice2freeze will use my CstlValue funtion class to index it,but it seems that slice2freeze can not use the function class correctly.
Sign In or Register to comment.