Logo
~Sockets~
~Examples~
~Contact~

db::Area Class Reference

#include <libfuture.h>

Collaboration diagram for db::Area:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 Area (Database *)
 Begin class 'Area'.
 Area (Database *, const std::string &)
 Area (Database *, Query *, int=0)
 Area (Database &, long num)
 Area (Database &, const std::string &name)
 ~Area ()
Database & GetDatabase ()
unsigned long long int insert ()
void update ()
void save ()
void erase ()
std::string xml ()
std::string xml (const std::string &, const std::string &)
size_t num_cols ()
 Area (Database *)
 Area (Database *, const std::string &)
 Area (Database *, Query *, int=0)
 Area (Database &, long num)
 Area (Database &, const std::string &name)
 ~Area ()
Database & GetDatabase ()
unsigned long long int insert ()
void update ()
void save ()
void erase ()
std::string xml ()
std::string xml (const std::string &, const std::string &)
size_t num_cols ()

Public Attributes

long num
std::string name
long width
long height

Private Member Functions

void clear ()
void spawn (const std::string &)
void spawn (Query *, int=0)
void select (const std::string &)
void update (long num)
void clear ()
void spawn (const std::string &)
void spawn (Query *, int=0)
void select (const std::string &)
void update (long num)

Private Attributes

Database * database
short new_object
Database * database

Detailed Description

Definition at line 145 of file root/src/futuremud/libfuture/libfuture.h.


Constructor & Destructor Documentation

Area::Area ( Database *   ) 

Begin class 'Area'.

Definition at line 610 of file libfuture.cpp.

00611 {
00612         database = db;
00613         new_object = 1;
00614         clear();
00615 }

Area::Area ( Database *  ,
const std::string &   
)

Definition at line 618 of file libfuture.cpp.

00619 {
00620         database = db;
00621         new_object = 1;
00622         spawn(sql);
00623 }

Area::Area ( Database *  ,
Query *  ,
int  = 0 
)

Definition at line 626 of file libfuture.cpp.

00627 {
00628         database = db;
00629         new_object = 0;
00630         spawn(qd, offset);
00631 }

Area::Area ( Database &  ,
long  num 
)

Definition at line 634 of file libfuture.cpp.

References database, and spawn().

00634                                  :database(&db),new_object(1)
00635 {
00636         Query q(*database);
00637         std::string sql = "select * from area where ";
00638         {
00639                 char slask[100];
00640                 sprintf(slask,"num='%ld'",i_num);
00641                 sql += slask;
00642         }
00643         spawn(sql);
00644 }

Area::Area ( Database &  ,
const std::string &  name 
)

Definition at line 647 of file libfuture.cpp.

References database, and spawn().

00647                                                :database(&db),new_object(1)
00648 {
00649         Query q(*database);
00650         std::string sql = "select * from area where ";
00651         sql += "name='" + q.GetDatabase().safestr(i_name) + "'";
00652         spawn(sql);
00653 }

Area::~Area (  ) 

Definition at line 656 of file libfuture.cpp.

00657 {
00658 }

db::Area::Area ( Database *   ) 

db::Area::Area ( Database *  ,
const std::string &   
)

db::Area::Area ( Database *  ,
Query *  ,
int  = 0 
)

db::Area::Area ( Database &  ,
long  num 
)

db::Area::Area ( Database &  ,
const std::string &  name 
)

db::Area::~Area (  ) 


Member Function Documentation

Database& db::Area::GetDatabase (  )  [inline]

Definition at line 153 of file root/src/futuremud/libfuture/libfuture.h.

References database.

00153 { return *database; }

unsigned long long int Area::insert (  ) 

Definition at line 667 of file libfuture.cpp.

00668 {
00669         Query q(*database);
00670         std::string sql;
00671 
00672         sql = "insert into area(name,width,height)";
00673         sql += " values('" + q.GetDatabase().safestr(this -> name) + "'";
00674         {
00675                 char slask[100];
00676                 sprintf(slask,", %ld",this -> width);
00677                 sql += slask;
00678         }
00679         {
00680                 char slask[100];
00681                 sprintf(slask,", %ld",this -> height);
00682                 sql += slask;
00683         }
00684         sql += ")";
00685         q.execute(sql);
00686         new_object = 0;
00687         unsigned long long int inserted_id = q.insert_id();
00688         num = inserted_id;
00689         return inserted_id;
00690 }

void Area::update (  ) 

Definition at line 693 of file libfuture.cpp.

00694 {
00695         update(this -> num);
00696 }

void Area::save (  ) 

Definition at line 723 of file libfuture.cpp.

00724 {
00725         if (new_object)
00726                 insert();
00727         else
00728                 update();
00729 }

void Area::erase (  ) 

Definition at line 732 of file libfuture.cpp.

00733 {
00734         if (!new_object)
00735         {
00736                 std::string sql = "delete from area where";
00737                 Query q(*database);
00738                 {
00739                         char slask[200];
00740                         sprintf(slask," num='%ld'",this -> num);
00741                         sql += slask;
00742                 }
00743                 q.execute(sql);
00744         }
00745 }

std::string Area::xml (  ) 

Definition at line 748 of file libfuture.cpp.

00749 {
00750         Query q(*database);
00751         std::string dest;
00752         char slask[200];
00753         dest = "<AREA>";
00754         sprintf(slask,"<NUM>%ld</NUM>",this -> num);
00755         dest += slask;
00756         dest += "<NAME>" + q.GetDatabase().xmlsafestr(this -> name) + "</NAME>";
00757         sprintf(slask,"<WIDTH>%ld</WIDTH>",this -> width);
00758         dest += slask;
00759         sprintf(slask,"<HEIGHT>%ld</HEIGHT>",this -> height);
00760         dest += slask;
00761         dest += "</AREA>";
00762         return dest;
00763 }

std::string Area::xml ( const std::string &  ,
const std::string &   
)

Definition at line 766 of file libfuture.cpp.

00767 {
00768         Query q(*database);
00769         std::string dest;
00770         char slask[200];
00771         dest = "<AREA " + tag + "=\"" + xvalx + "\">";
00772         sprintf(slask,"<NUM>%ld</NUM>",this -> num);
00773         dest += slask;
00774         dest += "<NAME>" + q.GetDatabase().xmlsafestr(this -> name) + "</NAME>";
00775         sprintf(slask,"<WIDTH>%ld</WIDTH>",this -> width);
00776         dest += slask;
00777         sprintf(slask,"<HEIGHT>%ld</HEIGHT>",this -> height);
00778         dest += slask;
00779         dest += "</AREA>";
00780         return dest;
00781 }

size_t Area::num_cols (  ) 

Definition at line 784 of file libfuture.cpp.

00785 {
00786         return 4;
00787 }

void Area::clear (  )  [private]

Definition at line 790 of file libfuture.cpp.

00791 {
00792         this -> num = 0;
00793         this -> name = "";
00794         this -> width = 0;
00795         this -> height = 0;
00796 }

void Area::spawn ( const std::string &   )  [private]

Definition at line 799 of file libfuture.cpp.

Referenced by Area().

00800 {
00801         Query q(*database);
00802         std::string temp;
00803 
00804         clear();
00805 
00806         if (!strncasecmp(sql.c_str(),"select * ",9))
00807         {
00808                 temp = "select num,name,width,height " + sql.substr(9);
00809         } else
00810                 temp = sql;
00811         q.get_result(temp);
00812         if (q.fetch_row())
00813         {
00814                 this -> num = q.getval(0);                                                                                                                                                              // 0 - num integer
00815                 this -> name = q.getstr(1);                                                                                                                                                             // 1 - name varchar(255)
00816                 this -> width = q.getval(2);                                                                                                                                                            // 2 - width integer
00817                 this -> height = q.getval(3);                                                                                                                                                           // 3 - height integer
00818                 new_object = 0;
00819         } else
00820                 clear();
00821         q.free_result();
00822 }

void Area::spawn ( Query *  ,
int  = 0 
) [private]

Definition at line 825 of file libfuture.cpp.

00826 {
00827         clear();
00828 
00829         this -> num = qd -> getval(0 + offset);                                                                                                                                                         // 0 - num integer
00830         this -> name = qd -> getstr(1 + offset);                                                                                                                                                                // 1 - name varchar(255)
00831         this -> width = qd -> getval(2 + offset);                                                                                                                                                               // 2 - width integer
00832         this -> height = qd -> getval(3 + offset);                                                                                                                                                              // 3 - height integer
00833 }

void Area::select ( const std::string &   )  [private]

Definition at line 661 of file libfuture.cpp.

00662 {
00663         spawn(sql);
00664 }

void Area::update ( long  num  )  [private]

Definition at line 699 of file libfuture.cpp.

00700 {
00701         Query q(*database);
00702         std::string sql;
00703         sql += "update area set name='" + q.GetDatabase().safestr(this -> name) + "'";
00704         {
00705                 char slask[200];
00706                 sprintf(slask,", width=%ld",this -> width);
00707                 sql += slask;
00708         }
00709         {
00710                 char slask[200];
00711                 sprintf(slask,", height=%ld",this -> height);
00712                 sql += slask;
00713         }
00714         {
00715                 char slask[200];
00716                 sprintf(slask," where num='%ld'",i_num);
00717                 sql += slask;
00718         }
00719         q.execute(sql);
00720 }

Database& db::Area::GetDatabase (  )  [inline]

Definition at line 153 of file usr/devel/include/libfuture.h.

References database.

00153 { return *database; }

unsigned long long int db::Area::insert (  ) 

void db::Area::update (  ) 

void db::Area::save (  ) 

void db::Area::erase (  ) 

std::string db::Area::xml (  ) 

std::string db::Area::xml ( const std::string &  ,
const std::string &   
)

size_t db::Area::num_cols (  ) 

void db::Area::clear (  )  [private]

void db::Area::spawn ( const std::string &   )  [private]

void db::Area::spawn ( Query *  ,
int  = 0 
) [private]

void db::Area::select ( const std::string &   )  [private]

void db::Area::update ( long  num  )  [private]


Member Data Documentation

long Area::num

Definition at line 164 of file root/src/futuremud/libfuture/libfuture.h.

std::string Area::name

Definition at line 165 of file root/src/futuremud/libfuture/libfuture.h.

Definition at line 166 of file root/src/futuremud/libfuture/libfuture.h.

Definition at line 167 of file root/src/futuremud/libfuture/libfuture.h.

Database* db::Area::database [private]

Definition at line 176 of file root/src/futuremud/libfuture/libfuture.h.

Referenced by Area(), and GetDatabase().

short Area::new_object [private]

Definition at line 177 of file root/src/futuremud/libfuture/libfuture.h.

Database* db::Area::database [private]

Definition at line 176 of file usr/devel/include/libfuture.h.


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