public void SaveWorkerState(string poolName, AbstractWorkerInfo workerInfo)
    {
        //Debug.Log("T "+workerInfo.m_timestampInSeconds);
        DateTime d = new DateTime(1970, 1, 1, 0, 0, 0, 0, System.DateTimeKind.Utc)
                     .AddSeconds(
            Convert.ToDouble(workerInfo.m_timestampInSeconds)
            );
        string fileName = string.Format("{0:0000}_{1:00}_{2:00}_{3:00}_{4:00}_{5}_{6}.workerkey", d.Year, d.Month, d.Day, d.Hour, d.Minute, workerInfo.m_validShares, (int)workerInfo.m_averageHashrate);
        string text     = string.Format("{0}|{1}|{2}|{3}|{4}|{5}|{6}|{7}|{8}",
                                        workerInfo.m_address,
                                        workerInfo.m_workerName,
                                        workerInfo.m_timestampInSeconds,
                                        workerInfo.m_hardwareHashrate,
                                        workerInfo.m_serverHashrate,
                                        workerInfo.m_averageHashrate,
                                        workerInfo.m_validShares,
                                        workerInfo.m_invalidShares,
                                        workerInfo.m_staleShares);

        string pathFolder = string.Format("{0}/{1}/{2}/{3}", GetRootPath(), poolName, workerInfo.m_address, workerInfo.m_workerName);
        string pathFile   = string.Format("{0}/{1}/{2}/{3}/{4}", GetRootPath(), poolName, workerInfo.m_address, workerInfo.m_workerName, fileName);

        if (!Directory.Exists(pathFolder))
        {
            Directory.CreateDirectory(pathFolder);
        }
        File.WriteAllText(pathFile, text);
    }
示例#2
0
    public void PushLastSaveToFile()
    {
        if (m_workersObserved == null)
        {
            return;
        }
        if (m_workersObserved.m_workersInfo == null)
        {
            return;
        }
        if (m_workersObserved.m_workersInfo.HasError() || !m_workersObserved.m_workersInfo.HasText())
        {
            return;
        }
        List <AbstractWorkerInfo> resultWorkers = new List <AbstractWorkerInfo>();

        WorkerLinkedData <EtherMineOrgWorkerFrame>[] workers = m_workersObserved.m_workersInfo.GetAllWorkersLastReceivedInformation();

        for (int i = 0; i < workers.Length; i++)
        {
            EtherMineOrgWorkerFrame wFrame     = workers[i].GetLinkedData();
            AbstractWorkerInfo      workerInfo = new AbstractWorkerInfo();
            workerInfo.m_workerName         = wFrame.GetWorkerName();
            workerInfo.m_address            = wFrame.GetAddress();
            workerInfo.m_timestampInSeconds = wFrame.GetTimestamp();
            workerInfo.m_averageHashrate    = wFrame.GetAverageHashRate();
            workerInfo.m_hardwareHashrate   = wFrame.GetReportedHashRate();
            workerInfo.m_serverHashrate     = wFrame.GetCurrentHashRate();
            workerInfo.m_validShares        = wFrame.GetValideShares();
            workerInfo.m_invalidShares      = wFrame.GetInvalideShares();
            workerInfo.m_staleShares        = wFrame.GetStaleShares();
            resultWorkers.Add(workerInfo);
        }
        m_poolSaveAndLoad.SaveWorkerState(PoolManageByThisAPI.Ethermine, resultWorkers.ToArray());
    }
 public void SaveWorkerState(PoolManageByThisAPI poolName, AbstractWorkerInfo workerInfo)
 {
     SaveWorkerState(poolName.ToString(), workerInfo);
 }