Ignore:
Timestamp:
Dec 20, 2010, 2:25:52 PM (11 years ago)
Author:
nolte
Message:

Statistic update. The CSV additionally shows the name of the host and the last time this computer gained a pattern point (PP)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrypPlugins/KeySearcher/P2P/Storage/StorageHelper.cs

    r2217 r2233  
    1818
    1919        //VERSIONNUMBER: Important. Set it +1 manually everytime the length of the MemoryStream Changes
    20         private const int version = 2;
     20        private const int version = 3;
     21        private static int oldVersionFlag = 0;
    2122
    2223        public StorageHelper(KeySearcher keySearcher, StatisticsGenerator statisticsGenerator, StatusContainer statusContainer)
     
    5253 
    5354            //Creating a copy of the activity dictionary
    54             Dictionary<String, Dictionary<long, int>> copyAct = nodeToUpdate.Activity;
     55            var copyAct = nodeToUpdate.Activity;
    5556
    5657            //Write number of avatarnames
     
    5859            foreach (string avatar in copyAct.Keys)
    5960            {
    60                 Dictionary<long, int> maschCopy = copyAct[avatar];
     61                var maschCopy = copyAct[avatar];
    6162                //write avatarname
    6263                binaryWriter.Write(avatar);
     
    6869                    //write the maschines and their patterncount
    6970                    binaryWriter.Write(maschID);
    70                     binaryWriter.Write(maschCopy[maschID]);
     71                    binaryWriter.Write(maschCopy[maschID].Count); //int 32
     72                    binaryWriter.Write(maschCopy[maschID].Hostname); //String
     73                    binaryWriter.Write(maschCopy[maschID].Date.ToBinary()); //DateTime
    7174                }
    7275            }
     
    141144                    string avatarname = binaryReader.ReadString();
    142145                    int maschcount = binaryReader.ReadInt32();
    143                     Dictionary<long, int> readMaschcount = new Dictionary<long, int>();
    144 
    145                     for(int j=0;j<maschcount;j++)
    146                     {
    147                         //reading the IDs and patterncount
    148                         long maschID = binaryReader.ReadInt64();
    149                         int count = binaryReader.ReadInt32();
    150                         readMaschcount.Add(maschID,count);
     146                    var readMaschcount = new Dictionary<long, Information>();
     147                   
     148                    //previous versions didn't had the Information
     149                    if (oldVersionFlag < version)
     150                    {
     151                        for (int j = 0; j < maschcount; j++)
     152                        {
     153                            //reading the IDs and patterncount
     154                            long maschID = binaryReader.ReadInt64();
     155                            int count = binaryReader.ReadInt32();
     156                            readMaschcount.Add(maschID, new Information(){Count = count, Hostname = "Unknown", Date = DateTime.MinValue});
     157                        }
     158                    }
     159                    else
     160                    {
     161                        for (int j = 0; j < maschcount; j++)
     162                        {
     163                            //reading the IDs and patterncount
     164                            long maschID = binaryReader.ReadInt64();
     165                            int count = binaryReader.ReadInt32();
     166                            string host = binaryReader.ReadString();
     167                            var date = DateTime.FromBinary(binaryReader.ReadInt64());
     168                            readMaschcount.Add(maschID, new Information() {Count = count, Hostname = host, Date = date});
     169                        }
    151170                    }
    152171                    if (nodeToUpdate.Activity.ContainsKey(avatarname))
     
    167186            if (resultCount > 0)
    168187            {
    169                 keySearcher.IntegrateNewResults(nodeToUpdate.Result,nodeToUpdate.Activity, nodeToUpdate.DistributedJobIdentifier);
     188                keySearcher.IntegrateNewResults(nodeToUpdate.Result, nodeToUpdate.Activity, nodeToUpdate.DistributedJobIdentifier);
    170189                statisticsGenerator.ProcessPatternResults(nodeToUpdate.Result);
    171190            }
     
    226245                    char magic = binaryReader.ReadChar();
    227246                    int versionInUse = binaryReader.ReadInt32();
     247                    oldVersionFlag = versionInUse;
    228248                    //Check if a newer Version is in use
    229249                    if (versionInUse > version)
Note: See TracChangeset for help on using the changeset viewer.