|
Mixes for Privacy and Anonymity in the Internet
|
Public Member Functions | |
| CAReplayDatabase () | |
| ~CAReplayDatabase () | |
| SINT32 | insert (UINT8 key[16]) |
| Inserts this key in the replay DB. | |
| SINT32 | start () |
| SINT32 | stop () |
| SINT32 | getCurrentReplayTimestamp (tReplayTimestamp &replayTimestamp) const |
| Returns the current Replay timestamp for this database. | |
| UINT32 | getRefTime () const |
| Returns the local time in seconds since epoch for replay timestamp='0' for this database. | |
Static Public Member Functions | |
| static SINT32 | getReplayTimestampForTime (tReplayTimestamp &replayTimestamp, UINT32 aktTime, UINT32 refTime) |
| Returns the replay timestamp for this reference time (seconds since epoch) and time. | |
| static SINT32 | getTimeForReplayTimestamp (UINT32 &refTime, tReplayTimestamp replayTimestamp) |
| Returns the refernce time (seconds since epoch) for the given replay timestamp. | |
| static SINT32 | test () |
| 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 | |
| LP_replay_databaseEntry | getNewDBEntry (t_replay_databaseInfo *pDB) |
| t_replay_databaseInfo * | createDBInfo () |
| Creates and initialises a dbinfo struct. | |
| SINT32 | clearDB (t_replay_databaseInfo *pDB) |
| clears the whole database pDB - but does not delete the hashtable pDB | |
| SINT32 | deleteDB (t_replay_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 | |
| t_replay_databaseInfo * | m_currDatabase |
| t_replay_databaseInfo * | m_nextDatabase |
| t_replay_databaseInfo * | m_prevDatabase |
| volatile bool | m_bRun |
| UINT32 | m_refTime |
| volatile SINT32 | m_currentClock |
| CAMutex * | m_pMutex |
| CAThread * | m_pThread |
Friends | |
| THREAD_RETURN | replaydb_loopMaintenance (void *param) |
References createDBInfo(), m_currDatabase, m_currentClock, m_nextDatabase, m_pMutex, m_prevDatabase, m_pThread, and m_refTime.
Referenced by measurePerformance().
References deleteDB(), CAMutex::lock(), m_currDatabase, m_nextDatabase, m_pMutex, m_prevDatabase, stop(), and CAMutex::unlock().
| SINT32 CAReplayDatabase::clearDB | ( | t_replay_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_pHeap, __t_database_info::m_pLastHeap, and __t_replay_database_heap::next.
Referenced by deleteDB(), and nextClock().
| t_replay_databaseInfo * CAReplayDatabase::createDBInfo | ( | ) | [private] |
Creates and initialises a dbinfo struct.
Referenced by CAReplayDatabase().
| SINT32 CAReplayDatabase::deleteDB | ( | t_replay_databaseInfo *& | pDB | ) | [private] |
Deletes the whole database pDB.
| pDB | database to delete |
References clearDB(), and E_SUCCESS.
Referenced by ~CAReplayDatabase().
| SINT32 CAReplayDatabase::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().
| SINT32 CAReplayDatabase::getCurrentReplayTimestamp | ( | tReplayTimestamp & | replayTimestamp | ) | const |
Returns the current Replay timestamp for this database.
Returns the current replay timestamp for this database.
| replayTimestamp | stores the current replay timestamp |
References getReplayTimestampForTime(), and m_refTime.
Referenced by nextClock(), and replaydb_loopMaintenance().
| LP_replay_databaseEntry CAReplayDatabase::getNewDBEntry | ( | t_replay_databaseInfo * | pDB | ) | [private] |
| UINT32 CAReplayDatabase::getRefTime | ( | ) | const |
Returns the local time in seconds since epoch for replay timestamp='0' for this database.
References m_refTime.
| SINT32 CAReplayDatabase::getReplayTimestampForTime | ( | tReplayTimestamp & | replayTimestamp, |
| UINT32 | aktTime, | ||
| UINT32 | refTime | ||
| ) | [static] |
Returns the replay timestamp for this reference time (seconds since epoch) and time.
References E_SUCCESS, t_replay_timestamp::interval, t_replay_timestamp::offset, and SECONDS_PER_INTERVALL.
Referenced by getCurrentReplayTimestamp().
| static SINT32 CAReplayDatabase::getTimeForReplayTimestamp | ( | UINT32 & | refTime, |
| tReplayTimestamp | replayTimestamp | ||
| ) | [static] |
Returns the refernce time (seconds since epoch) for the given replay timestamp.
References E_SUCCESS, t_replay_timestamp::interval, t_replay_timestamp::offset, and SECONDS_PER_INTERVALL.
| SINT32 CAReplayDatabase::insert | ( | UINT8 | key[16] | ) |
Inserts this key in the replay DB.
The last two bytes are the timestamp
References E_SUCCESS, E_UNKNOWN, getNewDBEntry(), __t_replay_database_entry::key, __t_replay_database_entry::left, CAMutex::lock(), m_currDatabase, m_currentClock, m_nextDatabase, __t_database_info::m_pHashTable, m_pMutex, m_prevDatabase, __t_database_info::m_u32Size, __t_replay_database_entry::right, and CAMutex::unlock().
| SINT32 CAReplayDatabase::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 CAReplayDatabase(), diff64(), E_SUCCESS, fill(), getcurrentTimeMicros(), getRandom(), initRandom(), m_currentClock, CAMsg::printMsg(), and simulateInsert().
Referenced by main().
| SINT32 CAReplayDatabase::nextClock | ( | ) | [private] |
| SINT32 CAReplayDatabase::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, E_UNKNOWN, getNewDBEntry(), __t_replay_database_entry::key, __t_replay_database_entry::left, CAMutex::lock(), m_currDatabase, m_currentClock, m_nextDatabase, __t_database_info::m_pHashTable, m_pMutex, m_prevDatabase, __t_database_info::m_u32Size, __t_replay_database_entry::right, and CAMutex::unlock().
Referenced by measurePerformance().
References m_bRun, m_pThread, replaydb_loopMaintenance, CAThread::setMainLoop(), and CAThread::start().
Referenced by test().
References E_SUCCESS, CAThread::join(), m_bRun, and m_pThread.
Referenced by test(), and ~CAReplayDatabase().
| SINT32 CAReplayDatabase::test | ( | ) | [static] |
TODO WRONG - fixme
References E_SUCCESS, getRandom(), insert(), start(), and stop().
| THREAD_RETURN replaydb_loopMaintenance | ( | void * | param | ) | [friend] |
Referenced by start().
volatile bool CAReplayDatabase::m_bRun [private] |
Referenced by replaydb_loopMaintenance(), start(), and stop().
Referenced by CAReplayDatabase(), insert(), nextClock(), simulateInsert(), and ~CAReplayDatabase().
volatile SINT32 CAReplayDatabase::m_currentClock [private] |
Referenced by CAReplayDatabase(), insert(), measurePerformance(), nextClock(), replaydb_loopMaintenance(), and simulateInsert().
Referenced by CAReplayDatabase(), insert(), nextClock(), simulateInsert(), and ~CAReplayDatabase().
CAMutex* CAReplayDatabase::m_pMutex [private] |
Referenced by CAReplayDatabase(), insert(), nextClock(), simulateInsert(), and ~CAReplayDatabase().
Referenced by CAReplayDatabase(), insert(), nextClock(), simulateInsert(), and ~CAReplayDatabase().
CAThread* CAReplayDatabase::m_pThread [private] |
Referenced by CAReplayDatabase(), start(), and stop().
UINT32 CAReplayDatabase::m_refTime [private] |
Referenced by CAReplayDatabase(), getCurrentReplayTimestamp(), getRefTime(), and replaydb_loopMaintenance().
1.7.6.1