//-----------< action for received query messages >------------
 private static void getDatabase(ref ServerParser sp, ref IEnumerator<string> msg_enumerator, ref string str)
 {
   bool flag_int = false, flag_str = false;
   switch (msg_enumerator.Current)
   {
     case "keytype":
       msg_enumerator.MoveNext();
       if (msg_enumerator.Current == "integer")
       {
         flag_int = true;
         flag_str = false;
       }
       if (msg_enumerator.Current == "String")
       {
         flag_int = false;
         flag_str = true;
       }
       break;
     case "payloadtype":
       msg_enumerator.MoveNext();
       if (msg_enumerator.Current == "String")
       {
         flag_int = true;
         flag_str = false;
       }
       if (msg_enumerator.Current == "List`1")
       {
         flag_int = false;
         flag_str = true;
       }
       if (flag_int)
       {
         str = sp.parse(ref msg_enumerator, db);
       }
       else if (flag_str)
       {
         str = sp.parse(ref msg_enumerator, enum_db);
       }
       break;
   }
 }