Changeset 2240


Ignore:
Timestamp:
Dec 22, 2010, 12:40:02 PM (11 years ago)
Author:
nolte
Message:

Version Fix + New Statistic Test

Location:
trunk/CrypPlugins/KeySearcher
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrypPlugins/KeySearcher/KeySearcher.cs

    r2233 r2240  
    4444namespace KeySearcher
    4545{
    46     public class Information
    47     {
    48         public int Count { get; set; }
    49         public string Hostname { get; set; }
    50         public DateTime Date { get; set; }
    51     }
    52 
    5346    [Author("Sven Rech, Nils Kopal, Raoul Falk, Dennis Nolte", "rech@cryptool.org", "Uni Duisburg-Essen", "http://www.uni-due.de")]
    5447    [PluginInfo(false, "KeySearcher", "Bruteforces a decryption algorithm.", "KeySearcher/DetailedDescription/Description.xaml", "KeySearcher/Images/icon.png")]
     
    6053        private Dictionary<string, Dictionary<long, Information>> statistic;
    6154        private bool initialized;
    62 
    63 
    6455        /// <summary>
    6556        /// used for creating the TopList
     
    12801271            using (StreamWriter sw = new StreamWriter(string.Format("{0}\\UserRanking{1}.csv", DirectoryHelper.DirectoryLocal, dataIdentifier)))
    12811272            {
    1282                 sw.WriteLine("Avatarname" + ";" + "MaschinenID" + ";" + "Hostname" + ";"+ "Anzahl Pattern" + ";" + "Last Update");
     1273                sw.WriteLine("Avatarname" + ";" + "MaschineID" + ";" + "Hostname" + ";"+ "Pattern Count" + ";" + "Last Update");
    12831274                foreach (string avatar in statistic.Keys)
    12841275                {
     
    14971488        public string Key { get; set; }
    14981489        public string Text { get; set; }
    1499 
    15001490    }
     1491    /// <summary>
     1492    /// Represents one entry in our statistic list
     1493    /// </summary>
     1494    public class Information
     1495    {
     1496        public int Count { get; set; }
     1497        public string Hostname { get; set; }
     1498        public DateTime Date { get; set; }
     1499    }
    15011500}
  • trunk/CrypPlugins/KeySearcher/P2P/Storage/StorageHelper.cs

    r2233 r2240  
    1919        //VERSIONNUMBER: Important. Set it +1 manually everytime the length of the MemoryStream Changes
    2020        private const int version = 3;
    21         private static int oldVersionFlag = 0;
     21        /*
     22        -----------------------------Versionnumber Changelog---------------------------------------------
     23        |   Version 1: Added the Versionnumber to the Stream
     24        |   Version 2: Added the first User Statistics (Avatar,ID,Count) to the Stream
     25        |   Version 3: Added version question (in front of results) + more statistic information (hostname,date) to the Stream
     26        -------------------------------------------------------------------------------------------------
     27         */
    2228
    2329        public StorageHelper(KeySearcher keySearcher, StatisticsGenerator statisticsGenerator, StatusContainer statusContainer)
     
    2834        }
    2935
     36        //-------------------------------------------------------------------------------------------
     37        //AFTER CHANGING THE FOLLOWING METHODS INCREASE THE VERSION-NUMBER AT THE TOP OF THIS CLASS!
     38        //-------------------------------------------------------------------------------------------
    3039        internal RequestResult UpdateInDht(NodeBase nodeToUpdate)
    3140        {
    3241            var memoryStream = new MemoryStream();
    3342            var binaryWriter = new BinaryWriter(memoryStream);
     43
     44            //TODO: Append Updater Version
     45            binaryWriter.Write('V');
     46            binaryWriter.Write(version); 
    3447
    3548            if (nodeToUpdate is Node)
     
    95108        internal RequestResult UpdateFromDht(NodeBase nodeToUpdate, bool forceUpdate = false)
    96109        {
     110
    97111            if (!forceUpdate && nodeToUpdate.LastUpdate > DateTime.Now.Subtract(new TimeSpan(0, 0, 5)))
    98112            {
     
    111125
    112126            var binaryReader = new BinaryReader(new MemoryStream(nodeBytes));
    113 
     127//---------------------------------------------------------------------------------------
     128            //TODO: VersionCheck!
     129            var oldVersionFlag = CheckVersion(binaryReader);
     130//----------------------------------------------------------------------------------------
    114131            if (nodeToUpdate is Node)
    115132            {
     
    146163                    var readMaschcount = new Dictionary<long, Information>();
    147164                   
    148                     //previous versions didn't had the Information
    149                     if (oldVersionFlag < version)
     165                    //previous version 2 didn't had the Information
     166                    if (oldVersionFlag < 3)
     167                    {
     168                        for (int j = 0; j < maschcount; j++)
     169                        {
     170                            var a = binaryReader.BaseStream.Length;
     171                            var b = binaryReader.BaseStream.Position;
     172                            //reading the IDs and patterncount
     173                            long maschID = binaryReader.ReadInt64();
     174                            int count = binaryReader.ReadInt32();
     175                            readMaschcount.Add(maschID, new Information(){Count = count, Hostname = "Unknown", Date = DateTime.MinValue});
     176                        }
     177                    }
     178                    else
    150179                    {
    151180                        for (int j = 0; j < maschcount; j++)
     
    154183                            long maschID = binaryReader.ReadInt64();
    155184                            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();
     185
     186                            var a = binaryReader.BaseStream.Length;
     187                            var b = binaryReader.BaseStream.Position;
    166188                            string host = binaryReader.ReadString();
     189                       
    167190                            var date = DateTime.FromBinary(binaryReader.ReadInt64());
    168191                            readMaschcount.Add(maschID, new Information() {Count = count, Hostname = host, Date = date});
     
    179202                }               
    180203            }
    181 
    182 //-------------------------------------------------------------------------------------------
    183 //AFTER CHANGING THE FOLLOWING PART INCREASE THE VERSION-NUMBER AT THE TOP OF THIS CLASS!
    184 //-------------------------------------------------------------------------------------------
    185204                       
    186205            if (resultCount > 0)
     
    202221        private static void UpdateLeafFromDht(Leaf nodeToUpdate, BinaryReader binaryReader)
    203222        {
    204             CheckVersion(binaryReader);
     223            var oldVersionFlag = CheckVersion(binaryReader);
    205224               
    206225            var date = DateTime.FromBinary(binaryReader.ReadInt64());
     
    234253        }
    235254
    236         private static void CheckVersion(BinaryReader binaryReader)
     255        private static int CheckVersion(BinaryReader binaryReader)
    237256        {           
    238257            try
     
    245264                    char magic = binaryReader.ReadChar();
    246265                    int versionInUse = binaryReader.ReadInt32();
    247                     oldVersionFlag = versionInUse;
    248266                    //Check if a newer Version is in use
    249267                    if (versionInUse > version)
     
    251269                        throw new KeySearcherStopException();
    252270                    }
     271                    return versionInUse;
     272                }
     273                else
     274                {
     275                    return -1;
    253276                }
    254277            }
Note: See TracChangeset for help on using the changeset viewer.