Logo
~Sockets~
~Examples~
~Contact~

db::Eventcount Class Reference

#include <libfuture.h>

Collaboration diagram for db::Eventcount:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 Eventcount (Database *)
 Begin class 'Eventcount'.
 Eventcount (Database *, const std::string &)
 Eventcount (Database *, Query *, int=0)
 Eventcount (Database &, long num)
 Eventcount (Database &, const std::string &event_name)
 ~Eventcount ()
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 ()
 Eventcount (Database *)
 Eventcount (Database *, const std::string &)
 Eventcount (Database *, Query *, int=0)
 Eventcount (Database &, long num)
 Eventcount (Database &, const std::string &event_name)
 ~Eventcount ()
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 event_name
long count

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 103 of file root/src/futuremud/libfuture/libfuture.h.


Constructor & Destructor Documentation

db::Eventcount::Eventcount ( Database *   ) 

Begin class 'Eventcount'.

Definition at line 392 of file libfuture.cpp.

References clear(), database, and new_object.

00393 {
00394         database = db;
00395         new_object = 1;
00396         clear();
00397 }

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

Definition at line 400 of file libfuture.cpp.

References database, new_object, and spawn().

00401 {
00402         database = db;
00403         new_object = 1;
00404         spawn(sql);
00405 }

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

Definition at line 408 of file libfuture.cpp.

References database, new_object, and spawn().

00409 {
00410         database = db;
00411         new_object = 0;
00412         spawn(qd, offset);
00413 }

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

Definition at line 416 of file libfuture.cpp.

References database, and spawn().

00416                                              :database(&db),new_object(1)
00417 {
00418         Query q(*database);
00419         std::string sql = "select * from eventcount where ";
00420         {
00421                 char slask[100];
00422                 sprintf(slask,"num='%ld'",i_num);
00423                 sql += slask;
00424         }
00425         spawn(sql);
00426 }

db::Eventcount::Eventcount ( Database &  ,
const std::string &  event_name 
)

Definition at line 429 of file libfuture.cpp.

References database, and spawn().

00429                                                                  :database(&db),new_object(1)
00430 {
00431         Query q(*database);
00432         std::string sql = "select * from eventcount where ";
00433         sql += "event_name='" + q.GetDatabase().safestr(i_event_name) + "'";
00434         spawn(sql);
00435 }

db::Eventcount::~Eventcount (  ) 

Definition at line 438 of file libfuture.cpp.

00439 {
00440 }

db::Eventcount::Eventcount ( Database *   ) 

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

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

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

db::Eventcount::Eventcount ( Database &  ,
const std::string &  event_name 
)

db::Eventcount::~Eventcount (  ) 


Member Function Documentation

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

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

References database.

00111 { return *database; }

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

Definition at line 449 of file libfuture.cpp.

References count, database, event_name, new_object, and num.

Referenced by save().

00450 {
00451         Query q(*database);
00452         std::string sql;
00453 
00454         sql = "insert into eventcount(event_name,count)";
00455         sql += " values('" + q.GetDatabase().safestr(this -> event_name) + "'";
00456         {
00457                 char slask[100];
00458                 sprintf(slask,", %ld",this -> count);
00459                 sql += slask;
00460         }
00461         sql += ")";
00462         q.execute(sql);
00463         new_object = 0;
00464         unsigned long long int inserted_id = q.insert_id();
00465         num = inserted_id;
00466         return inserted_id;
00467 }

void db::Eventcount::update (  ) 

Definition at line 470 of file libfuture.cpp.

References num.

Referenced by save().

00471 {
00472         update(this -> num);
00473 }

void db::Eventcount::save (  ) 

Definition at line 495 of file libfuture.cpp.

References insert(), new_object, and update().

Referenced by FutureHandler::Count().

00496 {
00497         if (new_object)
00498                 insert();
00499         else
00500                 update();
00501 }

void db::Eventcount::erase (  ) 

Definition at line 504 of file libfuture.cpp.

References database, new_object, and num.

00505 {
00506         if (!new_object)
00507         {
00508                 std::string sql = "delete from eventcount where";
00509                 Query q(*database);
00510                 {
00511                         char slask[200];
00512                         sprintf(slask," num='%ld'",this -> num);
00513                         sql += slask;
00514                 }
00515                 q.execute(sql);
00516         }
00517 }

std::string db::Eventcount::xml (  ) 

Definition at line 520 of file libfuture.cpp.

References count, database, event_name, and num.

00521 {
00522         Query q(*database);
00523         std::string dest;
00524         char slask[200];
00525         dest = "<EVENTCOUNT>";
00526         sprintf(slask,"<NUM>%ld</NUM>",this -> num);
00527         dest += slask;
00528         dest += "<EVENT_NAME>" + q.GetDatabase().xmlsafestr(this -> event_name) + "</EVENT_NAME>";
00529         sprintf(slask,"<COUNT>%ld</COUNT>",this -> count);
00530         dest += slask;
00531         dest += "</EVENTCOUNT>";
00532         return dest;
00533 }

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

Definition at line 536 of file libfuture.cpp.

References count, database, event_name, and num.

00537 {
00538         Query q(*database);
00539         std::string dest;
00540         char slask[200];
00541         dest = "<EVENTCOUNT " + tag + "=\"" + xvalx + "\">";
00542         sprintf(slask,"<NUM>%ld</NUM>",this -> num);
00543         dest += slask;
00544         dest += "<EVENT_NAME>" + q.GetDatabase().xmlsafestr(this -> event_name) + "</EVENT_NAME>";
00545         sprintf(slask,"<COUNT>%ld</COUNT>",this -> count);
00546         dest += slask;
00547         dest += "</EVENTCOUNT>";
00548         return dest;
00549 }

size_t db::Eventcount::num_cols (  ) 

Definition at line 552 of file libfuture.cpp.

00553 {
00554         return 3;
00555 }

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

Definition at line 558 of file libfuture.cpp.

References count, event_name, and num.

Referenced by Eventcount(), and spawn().

00559 {
00560         this -> num = 0;
00561         this -> event_name = "";
00562         this -> count = 0;
00563 }

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

Definition at line 566 of file libfuture.cpp.

References clear(), count, database, event_name, new_object, and num.

Referenced by Eventcount(), and select().

00567 {
00568         Query q(*database);
00569         std::string temp;
00570 
00571         clear();
00572 
00573         if (!strncasecmp(sql.c_str(),"select * ",9))
00574         {
00575                 temp = "select num,event_name,count " + sql.substr(9);
00576         } else
00577                 temp = sql;
00578         q.get_result(temp);
00579         if (q.fetch_row())
00580         {
00581                 this -> num = q.getval(0);                                                                                                                                                              // 0 - num integer
00582                 this -> event_name = q.getstr(1);                                                                                                                                                               // 1 - event_name varchar(255)
00583                 this -> count = q.getval(2);                                                                                                                                                            // 2 - count integer
00584                 new_object = 0;
00585         } else
00586                 clear();
00587         q.free_result();
00588 }

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

Definition at line 591 of file libfuture.cpp.

References clear(), count, event_name, and num.

00592 {
00593         clear();
00594 
00595         this -> num = qd -> getval(0 + offset);                                                                                                                                                         // 0 - num integer
00596         this -> event_name = qd -> getstr(1 + offset);                                                                                                                                                          // 1 - event_name varchar(255)
00597         this -> count = qd -> getval(2 + offset);                                                                                                                                                               // 2 - count integer
00598 }

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

Definition at line 443 of file libfuture.cpp.

References spawn().

00444 {
00445         spawn(sql);
00446 }

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

Definition at line 476 of file libfuture.cpp.

References count, database, and event_name.

00477 {
00478         Query q(*database);
00479         std::string sql;
00480         sql += "update eventcount set event_name='" + q.GetDatabase().safestr(this -> event_name) + "'";
00481         {
00482                 char slask[200];
00483                 sprintf(slask,", count=%ld",this -> count);
00484                 sql += slask;
00485         }
00486         {
00487                 char slask[200];
00488                 sprintf(slask," where num='%ld'",i_num);
00489                 sql += slask;
00490         }
00491         q.execute(sql);
00492 }

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

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

References database.

00111 { return *database; }

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

void db::Eventcount::update (  ) 

void db::Eventcount::save (  ) 

void db::Eventcount::erase (  ) 

std::string db::Eventcount::xml (  ) 

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

size_t db::Eventcount::num_cols (  ) 

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

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

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

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

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


Member Data Documentation

short db::Eventcount::new_object [private]

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

Referenced by erase(), Eventcount(), insert(), save(), and spawn().

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

Definition at line 133 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