Exemple #1
0
    /// <summary>
    /// 复制(潜拷贝)
    /// </summary>
    protected override void toShadowCopy(BaseData data)
    {
        base.toShadowCopy(data);

        if (!(data is RoleSocialPoolToolData))
        {
            return;
        }

        RoleSocialPoolToolData mData = (RoleSocialPoolToolData)data;

        this.dic         = mData.dic;
        this.nextCutTime = mData.nextCutTime;
    }
Exemple #2
0
    /// <summary>
    /// 是否数据一致
    /// </summary>
    protected override bool toDataEquals(BaseData data)
    {
        if (!base.toDataEquals(data))
        {
            return(false);
        }

        RoleSocialPoolToolData mData = (RoleSocialPoolToolData)data;

        if (mData.dic != null)
        {
            if (this.dic == null)
            {
                return(false);
            }
            if (this.dic.size() != mData.dic.size())
            {
                return(false);
            }
            LongObjectMap <RoleSocialPoolData> dicR = mData.dic;
            if (!this.dic.isEmpty())
            {
                long   dicKFreeValue            = this.dic.getFreeValue();
                long[] dicKKeys                 = this.dic.getKeys();
                RoleSocialPoolData[] dicVValues = this.dic.getValues();
                for (int dicKI = dicKKeys.Length - 1; dicKI >= 0; --dicKI)
                {
                    long dicK = dicKKeys[dicKI];
                    if (dicK != dicKFreeValue)
                    {
                        RoleSocialPoolData dicV = dicVValues[dicKI];
                        RoleSocialPoolData dicU = dicR.get(dicK);
                        if (dicU != null)
                        {
                            if (dicV == null)
                            {
                                return(false);
                            }
                            if (!dicV.dataEquals(dicU))
                            {
                                return(false);
                            }
                        }
                        else
                        {
                            if (dicV != null)
                            {
                                return(false);
                            }
                        }
                    }
                }
            }
        }
        else
        {
            if (this.dic != null)
            {
                return(false);
            }
        }

        if (this.nextCutTime != mData.nextCutTime)
        {
            return(false);
        }

        return(true);
    }
Exemple #3
0
    /// <summary>
    /// 复制(深拷贝)
    /// </summary>
    protected override void toCopy(BaseData data)
    {
        base.toCopy(data);

        if (!(data is RoleSocialPoolToolData))
        {
            return;
        }

        RoleSocialPoolToolData mData = (RoleSocialPoolToolData)data;

        if (mData.dic != null)
        {
            if (this.dic != null)
            {
                this.dic.clear();
                this.dic.ensureCapacity(mData.dic.size());
            }
            else
            {
                this.dic = new LongObjectMap <RoleSocialPoolData>(mData.dic.size());
            }

            LongObjectMap <RoleSocialPoolData> dicT = this.dic;
            if (!mData.dic.isEmpty())
            {
                long   dicKFreeValue            = mData.dic.getFreeValue();
                long[] dicKKeys                 = mData.dic.getKeys();
                RoleSocialPoolData[] dicVValues = mData.dic.getValues();
                for (int dicKI = dicKKeys.Length - 1; dicKI >= 0; --dicKI)
                {
                    long dicK = dicKKeys[dicKI];
                    if (dicK != dicKFreeValue)
                    {
                        RoleSocialPoolData dicV = dicVValues[dicKI];
                        long dicW;
                        RoleSocialPoolData dicU;
                        dicW = dicK;

                        if (dicV != null)
                        {
                            dicU = (RoleSocialPoolData)dicV.clone();
                        }
                        else
                        {
                            dicU = null;
                            nullObjError("dicU");
                        }

                        dicT.put(dicW, dicU);
                    }
                }
            }
        }
        else
        {
            this.dic = null;
            nullObjError("dic");
        }

        this.nextCutTime = mData.nextCutTime;
    }