|
Mixes for Privacy and Anonymity in the Internet
|
Public Member Functions | |
| CADatabase () | |
| ~CADatabase () | |
| SINT32 | insert (UINT8 key[16], UINT64 timestamp) |
| Inserts this key in the replay DB. | |
| SINT32 | start () |
| SINT32 | stop () |
| SINT32 | test () |
Static Public Member Functions | |
| static SINT32 | measurePerformance (UINT8 *strLogFile, UINT32 lowerBoundEntries, UINT32 upperBoundEntries, UINT32 stepBy, UINT32 meassuresPerStep, UINT32 insertsPerMeasure) |
| This mehtod can be used to measure the performance of the Replay database. | |
Private Member Functions | |
| t_databaseInfo * | createDBInfo () |
| Creates and initialises a dbinfo struct. | |
| SINT32 | clearDB (t_databaseInfo *pDB) |
| clears the whole database pDB - but does not delete the hashtable pDB | |
| SINT32 | deleteDB (t_databaseInfo *&pDB) |
| Deletes the whole database pDB. | |
| SINT32 | nextClock () |
| SINT32 | fill (UINT32 nrOfEntries) |
| Pre fills the database with nrOfEntries random entries. | |
| SINT32 | simulateInsert (UINT8 key[16]) |
| This is a modified copy of insert() which simulates the insert() function as close as possible without actually changing the replay database. | |
Private Attributes | |
| UINT64 | m_lastSwitch |
| t_databaseInfo * | m_currDatabase |
| t_databaseInfo * | m_nextDatabase |
| t_databaseInfo * | m_prevDatabase |
| volatile bool | m_bRun |
| volatile SINT32 | m_currentClock |
| CAMutex * | m_pMutex |
| CAThread * | m_pThread |
Friends | |
| THREAD_RETURN | db_loopMaintenance (void *param) |
References createDBInfo(), m_currDatabase, m_currentClock, m_lastSwitch, m_nextDatabase, m_pMutex, m_prevDatabase, and m_pThread.
Referenced by measurePerformance().
References deleteDB(), CAMutex::lock(), m_currDatabase, m_nextDatabase, m_pMutex, m_prevDatabase, stop(), and CAMutex::unlock().
| SINT32 CADatabase::clearDB | ( | t_databaseInfo * | pDB | ) | [private] |
clears the whole database pDB - but does not delete the hashtable pDB
| pDB | database to delete |
References E_SUCCESS, _t_database_info::m_pHashTable, _t_database_info::m_u32Size, and _t_database_entry::next.
Referenced by deleteDB(), and nextClock().
| t_databaseInfo * CADatabase::createDBInfo | ( | ) | [private] |
Creates and initialises a dbinfo struct.
Referenced by CADatabase().
| SINT32 CADatabase::deleteDB | ( | t_databaseInfo *& | pDB | ) | [private] |
Deletes the whole database pDB.
| pDB | database to delete |
References clearDB(), and E_SUCCESS.
Referenced by ~CADatabase().
| SINT32 CADatabase::fill | ( | UINT32 | nrOfEntries | ) | [private] |
Pre fills the database with nrOfEntries random entries.
| nrOfEntries | number of entries to put in the database |
References E_SUCCESS, getRandom(), and insert().
Referenced by measurePerformance(), and test().
| SINT32 CADatabase::insert | ( | UINT8 | key[16], |
| UINT64 | timestamp | ||
| ) |
Inserts this key in the replay DB.
References E_SUCCESS, E_UNKNOWN, FUTURE_TOLERANCE, _t_database_entry::key, CAMutex::lock(), m_currDatabase, m_lastSwitch, m_nextDatabase, _t_database_info::m_pHashTable, m_pMutex, m_prevDatabase, _t_database_info::m_u32Size, _t_database_entry::next, SECONDS_PER_INTERVALL, and CAMutex::unlock().
Referenced by fill(), CALastMixA::loop(), CAFirstMixA::loop(), CALastMixB::loop(), and mm_loopReadFromMixBefore().
| SINT32 CADatabase::measurePerformance | ( | UINT8 * | strLogFile, |
| UINT32 | lowerBoundEntries, | ||
| UINT32 | upperBoundEntries, | ||
| UINT32 | stepBy, | ||
| UINT32 | meassuresPerStep, | ||
| UINT32 | insertsPerMeasure | ||
| ) | [static] |
This mehtod can be used to measure the performance of the Replay database.
The results are stored in a file in csv format. Ths method will do several measures with different numbers of elements in the database. These number could be specified using owerBoundEntries,upperBoundEntries and stepBy.
| strLogFile | the log file name |
| lowerBoundEntries | the number of entries in the database (at beginn) |
| upperBoundEntries | the number of entries in the database (at end) |
| stepBy | how many entries should be added for each new measurement |
| meassuresPerStep | how many measure values should be generate per step. That means that the experiement is repeated this many times. |
| insertsPerMeasure | one measure value will be the time: (Total Insertion Time)/insertsPerMeasure |
References CADatabase(), diff64(), E_SUCCESS, fill(), getcurrentTimeMicros(), getRandom(), initRandom(), CAMsg::printMsg(), and simulateInsert().
| SINT32 CADatabase::nextClock | ( | ) | [private] |
References clearDB(), E_SUCCESS, CAMutex::lock(), m_currDatabase, m_lastSwitch, m_nextDatabase, m_pMutex, m_prevDatabase, _t_database_info::m_u32Size, CAMsg::printMsg(), SECONDS_PER_INTERVALL, and CAMutex::unlock().
Referenced by db_loopMaintenance().
| SINT32 CADatabase::simulateInsert | ( | UINT8 | key[16] | ) | [private] |
This is a modified copy of insert() which simulates the insert() function as close as possible without actually changing the replay database.
References E_SUCCESS, CAMutex::lock(), m_currDatabase, m_currentClock, m_pMutex, _t_database_info::m_u32Size, and CAMutex::unlock().
Referenced by measurePerformance().
References db_loopMaintenance, m_bRun, m_pThread, CAThread::setMainLoop(), and CAThread::start().
Referenced by CAMiddleMix::init(), CALastMix::init(), and CAFirstMix::init().
References E_SUCCESS, CAThread::join(), m_bRun, and m_pThread.
Referenced by ~CADatabase().
| THREAD_RETURN db_loopMaintenance | ( | void * | param | ) | [friend] |
Referenced by start().
volatile bool CADatabase::m_bRun [private] |
Referenced by db_loopMaintenance(), start(), and stop().
t_databaseInfo* CADatabase::m_currDatabase [private] |
Referenced by CADatabase(), insert(), nextClock(), simulateInsert(), and ~CADatabase().
volatile SINT32 CADatabase::m_currentClock [private] |
Referenced by CADatabase(), and simulateInsert().
UINT64 CADatabase::m_lastSwitch [private] |
Referenced by CADatabase(), db_loopMaintenance(), insert(), and nextClock().
t_databaseInfo* CADatabase::m_nextDatabase [private] |
Referenced by CADatabase(), insert(), nextClock(), and ~CADatabase().
CAMutex* CADatabase::m_pMutex [private] |
Referenced by CADatabase(), insert(), nextClock(), simulateInsert(), and ~CADatabase().
t_databaseInfo* CADatabase::m_prevDatabase [private] |
Referenced by CADatabase(), insert(), nextClock(), and ~CADatabase().
CAThread* CADatabase::m_pThread [private] |
Referenced by CADatabase(), start(), and stop().
1.7.6.1