Logo
~Apps~
~Projects~
~Contact~


bitmap_t Class Reference

'have' bitmap array More...

#include <bitmap_t.h>

List of all members.


Public Member Functions

 bitmap_t (size_t number_of_pieces)
 ~bitmap_t ()
unsigned char * GetBitmap ()
size_t GetBitmapSize ()
void set (size_t piece)
bool IsSet (size_t piece)
void Load (const std::string &)
void Save (const std::string &)
size_t GetSet ()
size_t GetNumberOfPieces ()

Private Member Functions

 bitmap_t (const bitmap_t &)
bitmap_toperator= (const bitmap_t &)

Private Attributes

unsigned char * m_bitmap
size_t m_bitmap_size
size_t m_number_of_pieces

Detailed Description

'have' bitmap array

File ......... bitmap_t.h Published .... 2005-06-14 Author ....... grymse@alhem.net

Definition at line 31 of file bitmap_t.h.


Constructor & Destructor Documentation

bitmap_t::bitmap_t ( size_t  number_of_pieces  ) 

File ......... bitmap_t.cpp Published .... 2005-06-14 Author ....... grymse@alhem.net

Definition at line 30 of file bitmap_t.cpp.

References m_bitmap, and m_bitmap_size.

00031 :m_bitmap(NULL)
00032 ,m_bitmap_size(0)
00033 ,m_number_of_pieces(number_of_pieces)
00034 {
00035         m_bitmap_size = number_of_pieces / 8;
00036         if (number_of_pieces % 8)
00037                 m_bitmap_size++;
00038         m_bitmap = new unsigned char[m_bitmap_size];
00039         memset(m_bitmap, 0, m_bitmap_size);
00040 }

bitmap_t::~bitmap_t (  ) 

Definition at line 43 of file bitmap_t.cpp.

References m_bitmap.

00044 {
00045         if (m_bitmap)
00046                 delete[] m_bitmap;
00047 }

bitmap_t::bitmap_t ( const bitmap_t  )  [inline, private]

Definition at line 51 of file bitmap_t.h.

00051 {} // copy constructor


Member Function Documentation

unsigned char* bitmap_t::GetBitmap (  )  [inline]

Definition at line 37 of file bitmap_t.h.

References m_bitmap.

Referenced by pSocket::SendBitmap().

00037 { return m_bitmap; }

size_t bitmap_t::GetBitmapSize (  )  [inline]

Definition at line 38 of file bitmap_t.h.

References m_bitmap_size.

Referenced by pSocket::SendBitmap().

00038 { return m_bitmap_size; }

void bitmap_t::set ( size_t  piece  ) 

Definition at line 50 of file bitmap_t.cpp.

References m_bitmap.

Referenced by pSocket::SendBitmap().

00051 {
00052         size_t n = piece / 8;
00053         int bit[] = {128,64,32,16,8,4,2,1};
00054         m_bitmap[n] |= bit[piece % 8];
00055 }

bool bitmap_t::IsSet ( size_t  piece  ) 

Definition at line 80 of file bitmap_t.cpp.

References m_bitmap.

Referenced by GetSet().

00081 {
00082         size_t n = piece / 8;
00083         int bit[] = {128,64,32,16,8,4,2,1};
00084         return (m_bitmap[n] & bit[piece % 8]) ? true : false;
00085 }

void bitmap_t::Load ( const std::string &   ) 

Definition at line 58 of file bitmap_t.cpp.

References m_bitmap, and m_bitmap_size.

00059 {
00060         FILE *fil = fopen(filename.c_str(), "rb");
00061         if (fil)
00062         {
00063                 fread(m_bitmap, 1, m_bitmap_size, fil);
00064                 fclose(fil);
00065         }
00066 }

void bitmap_t::Save ( const std::string &   ) 

Definition at line 69 of file bitmap_t.cpp.

References m_bitmap, and m_bitmap_size.

00070 {
00071         FILE *fil = fopen(filename.c_str(), "wb");
00072         if (fil)
00073         {
00074                 fwrite(m_bitmap, 1, m_bitmap_size, fil);
00075                 fclose(fil);
00076         }
00077 }

size_t bitmap_t::GetSet (  ) 

return number of set bits

Definition at line 88 of file bitmap_t.cpp.

References IsSet(), and m_number_of_pieces.

00089 {
00090         size_t q = 0;
00091         for (size_t i = 0; i < m_number_of_pieces; i++)
00092                 if (IsSet(i))
00093                         q++;
00094         return q;
00095 }

size_t bitmap_t::GetNumberOfPieces (  )  [inline]

Definition at line 48 of file bitmap_t.h.

References m_number_of_pieces.

00048 { return m_number_of_pieces; }

bitmap_t& bitmap_t::operator= ( const bitmap_t  )  [inline, private]

Definition at line 52 of file bitmap_t.h.

00052 { return *this; } // assignment operator


Member Data Documentation

unsigned char* bitmap_t::m_bitmap [private]

Definition at line 54 of file bitmap_t.h.

Referenced by bitmap_t(), GetBitmap(), IsSet(), Load(), Save(), set(), and ~bitmap_t().

size_t bitmap_t::m_bitmap_size [private]

Definition at line 55 of file bitmap_t.h.

Referenced by bitmap_t(), GetBitmapSize(), Load(), and Save().

size_t bitmap_t::m_number_of_pieces [private]

Definition at line 56 of file bitmap_t.h.

Referenced by GetNumberOfPieces(), and GetSet().


The documentation for this class was generated from the following files:
Page, code, and content Copyright (C) 2006 by Anders Hedström
Generated on Mon Aug 29 20:21:47 2005 for C++ Sockets by  doxygen 1.4.4