예제 #1
0
    public int initialize()
    {
/*        var storage = IsolatedStorageFile.GetUserStoreForApplication();
 *      for (int i = 0; i < 10; i++)
 *      {
 *          storage.DeleteFile("tileStorage" + i);
 *      }*/

        initLoops++;

        numRecords = 0;

        next[0] = 0;
        prev[0] = 0;

        for (int i = 1; i < MAX_TILES + 1; i++)
        {
            next[i] = -1;
            prev[i] = -1;
        }

        try
        {
            for (int i = 0; i < NUM_RECORDSTORES; i++)
            {
                recordstore[i] = RecordStore.openRecordStore("tileStorage" + i, true);
                numRecords    += recordstore[i].getNumRecords();

                /*
                 *          Logger.log("Num records:" + recordstore[i].getNumRecords());
                 *          Logger.log("Size:" + recordstore[i].getSize());
                 *          Logger.log("Available space:" + recordstore[i].getSizeAvailable());
                 */
            }
            if (numRecords > 0)
            {
                readIndex();
            }
//            else writeIndex();
            //dumpIndex();
            return(0);
        }
        catch (Exception error)
        {
            Logger.log("Error in init! " + error.ToString());
            if (eraseStorage() != 0)
            {
                Logger.log("Error erasing storage!");
                return(-1);
            }

            if (initLoops == 1)
            {
                return(initialize());
            }
            else
            {
                return(-1);
            }
        }
    }