Mixe for Privacy and Anonymity in the Internet
Classes | Defines | Typedefs | Functions
CAFirstMixChannelList.hpp File Reference
#include "doxygen.h"
#include "CAMuxSocket.hpp"
#include "CAQueue.hpp"
#include "CASymCipher.hpp"
#include "CAMutex.hpp"
#include "CAMsg.hpp"
#include "CAControlChannelDispatcher.hpp"
#include "CAThread.hpp"
Include dependency graph for CAFirstMixChannelList.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  t_fmhashtableentry
struct  t_firstmixchannellist
class  CAFirstMixChannelList
 Data structure that stores all information about the currently open Mix channels. More...

Defines

#define KICKOUT_FORCED   true
#define MAX_KICKOUT_RETRIES   4

Typedefs

typedef struct t_fmhashtableentry fmHashTableEntry
typedef fmHashTableEntryLP_fmHashTableEntry
typedef struct
t_firstmixchannellist 
fmChannelList
typedef struct
t_firstmixchannellist 
fmChannelListEntry
typedef fmChannelListEntryLP_fmChannelListEntry

Functions

THREAD_RETURN fml_loopDelayBuckets (void *param)

Define Documentation

#define KICKOUT_FORCED   true
#define MAX_KICKOUT_RETRIES   4

Definition at line 48 of file CAFirstMixChannelList.hpp.

Referenced by CAFirstMixChannelList::add().


Typedef Documentation

Definition at line 168 of file CAFirstMixChannelList.hpp.

Definition at line 169 of file CAFirstMixChannelList.hpp.

Definition at line 127 of file CAFirstMixChannelList.hpp.

Definition at line 170 of file CAFirstMixChannelList.hpp.

Definition at line 128 of file CAFirstMixChannelList.hpp.


Function Documentation

Definition at line 1172 of file CAFirstMixChannelList.cpp.

References BEGIN_STACK, FINISH_STACK, INIT_STACK, CAMutex::lock(), CAFirstMixChannelList::m_bDelayBucketsLoopRun, CAFirstMixChannelList::m_pDelayBuckets, CAFirstMixChannelList::m_pMutexDelayChannel, CAFirstMixChannelList::m_u32DelayChannelBucketGrow, CAFirstMixChannelList::m_u32DelayChannelBucketGrowIntervall, MAX_POLLFD, msSleep(), THREAD_RETURN_SUCCESS, and CAMutex::unlock().

    {
      INIT_STACK;
      BEGIN_STACK("CAFirstMixChannelList::fml_loopDelayBuckets");

      CAFirstMixChannelList* pChannelList=(CAFirstMixChannelList*)param;
      volatile UINT32** pDelayBuckets=pChannelList->m_pDelayBuckets;
      while(pChannelList->m_bDelayBucketsLoopRun)
        {
          pChannelList->m_pMutexDelayChannel->lock();
          UINT32 u32BucketGrow=pChannelList->m_u32DelayChannelBucketGrow;
          UINT32 u32MaxBucket=u32BucketGrow*10;
          for(UINT32 i=0;i<MAX_POLLFD;i++)
            {
              if(pDelayBuckets[i]!=NULL&&*(pDelayBuckets[i])<u32MaxBucket)
              {
                *(pDelayBuckets[i])+=u32BucketGrow;
              }
            }
          pChannelList->m_pMutexDelayChannel->unlock();
          msSleep(pChannelList->m_u32DelayChannelBucketGrowIntervall);
        }

      FINISH_STACK("CAFirstMixChannelList::fml_loopDelayBuckets");

      THREAD_RETURN_SUCCESS;
    }

Here is the call graph for this function: