Client::Client( thread_Settings *inSettings ) { mSettings = inSettings; mBuf = NULL; // initialize buffer mBuf = new char[ mSettings->mBufLen ]; pattern( mBuf, mSettings->mBufLen ); if ( isFileInput( mSettings ) ) { if ( !isSTDIN( mSettings ) ) Extractor_Initialize( mSettings->mFileName, mSettings->mBufLen, mSettings ); else Extractor_InitializeFile( stdin, mSettings->mBufLen, mSettings ); if ( !Extractor_canRead( mSettings ) ) { unsetFileInput( mSettings ); } } // connect Connect( ); if ( isReport( inSettings ) ) { ReportSettings( inSettings ); if ( mSettings->multihdr && isMultipleReport( inSettings ) ) { mSettings->multihdr->report->connection.peer = mSettings->peer; mSettings->multihdr->report->connection.size_peer = mSettings->size_peer; mSettings->multihdr->report->connection.local = mSettings->local; SockAddr_setPortAny( &mSettings->multihdr->report->connection.local ); mSettings->multihdr->report->connection.size_local = mSettings->size_local; } } } // end Client
Listener::Listener( thread_Settings *inSettings ) { mClients = inSettings->mThreads; mBuf = NULL; mSettings = inSettings; // initialize buffer mBuf = new char[ mSettings->mBufLen ]; if ( mSettings->mOutputDataFileName != NULL ) if ( (mSettings->Output_file = \ fopen (mSettings->mOutputDataFileName, "ab")) == NULL ) fprintf( stderr, "Unable to open the outfile stream\n"); // open listening socket if ( mSettings->mThreadMode == kMode_RDMA_Listener ) { mCb = new rdma_cb; Settings_Initialize_Cb( mCb ); rdma_init( mCb ); // Setting_Copy_Ts2Cb( mSettings, mCb ); { // addr /* if ( mSettings->mThreadMode == kMode_RDMA_Listener) memcpy( &mCb->sin, &mSettings->local, sizeof(iperf_sockaddr)); else if ( mSettings->mThreadMode == kMode_RDMA_Client) memcpy( &mCb->sin, &mSettings->peer, sizeof(iperf_sockaddr)); */ // port mCb->port = mSettings->mPort; DPRINTF(("listening port is %d\n", mCb->port)); mCb->server = 1; mCb->size = mSettings->mBufLen; DPRINTF(("Listener buffer size is %d\n", mCb->size)); mCb->outputfile = mSettings->Output_file; } ListenRDMA( ); } else Listen( ); ReportSettings( inSettings ); } // end Listener
Client::Client( thread_Settings *inSettings ) { mSettings = inSettings; mBuf = NULL; // initialize buffer mBuf = new char[ mSettings->mBufLen ]; pattern( mBuf, mSettings->mBufLen ); //strcpy(outFile,mSettings->mLogFileName); pthread_t currentThread = pthread_self(); long tid = (long)currentThread; sprintf(outFileName,"%s%ld",mSettings->mLogFileName,tid); outFile = NULL; outFile = fopen(outFileName,"w"); if ( isFileInput( mSettings ) ) { if ( !isSTDIN( mSettings ) ) Extractor_Initialize( mSettings->mFileName, mSettings->mBufLen, mSettings ); else Extractor_InitializeFile( stdin, mSettings->mBufLen, mSettings ); if ( !Extractor_canRead( mSettings ) ) { unsetFileInput( mSettings ); } } // connect Connect( ); if ( isReport( inSettings ) ) { ReportSettings( inSettings ); if ( mSettings->multihdr && isMultipleReport( inSettings ) ) { mSettings->multihdr->report->connection.peer = mSettings->peer; mSettings->multihdr->report->connection.size_peer = mSettings->size_peer; mSettings->multihdr->report->connection.local = mSettings->local; SockAddr_setPortAny( &mSettings->multihdr->report->connection.local ); mSettings->multihdr->report->connection.size_local = mSettings->size_local; } } } // end Client
mmPrintableBase* Option::ReportFunction(int report) { mmPrintableBase* function = nullptr; if ((report >= 0) && (report < ReportCount())) { ReportInfo* r = reinterpret_cast<ReportInfo*>(m_reports[report]); switch (r->id) { case ReportInfo::MyUsage: function = new mmReportMyUsage(); break; case ReportInfo::MonthlySummaryofAccounts: function = new mmReportSummaryByDate(0); break; case ReportInfo::YearlySummaryofAccounts: function = new mmReportSummaryByDate(1); break; case ReportInfo::WheretheMoneyGoes: function = new mmReportCategoryExpensesGoes(); break; case ReportInfo::WheretheMoneyComesFrom: function = new mmReportCategoryExpensesComes(); break; case ReportInfo::CategoriesSummary: function = new mmReportCategoryExpensesCategories(); break; case ReportInfo::CategoriesMonthly: function = new mmReportCategoryOverTimePerformance(); break; case ReportInfo::Payees: function = new mmReportPayeeExpenses(); break; case ReportInfo::IncomevsExpensesSummary: function = new mmReportIncomeExpenses(); break; case ReportInfo::IncomevsExpensesMonthly: function = new mmReportIncomeExpensesMonthly(); break; case ReportInfo::BudgetPerformance: function = new mmReportBudgetingPerformance(); break; case ReportInfo::BudgetCategorySummary: function = new mmReportBudgetCategorySummary(); break; case ReportInfo::MonthlyCashFlow: function = new mmReportCashFlow(mmReportCashFlow::MONTHLY); break; case ReportInfo::DailyCashFlow: function = new mmReportCashFlow(mmReportCashFlow::DAILY); break; case ReportInfo::StocksReportPerformance: function = new mmReportChartStocks(); break; case ReportInfo::StocksReportSummary: function = new mmReportSummaryStocks(); break; case ReportInfo::ForecastReport: function = new mmReportForecast(); break; default: break; } if (function != nullptr) function->setSettings(ReportSettings(r->id)); } return function; }