Google
Web alhem.net

Cgi::Link Class Reference

#include <Link.h>

Inheritance diagram for Cgi::Link:

Inheritance graph
Collaboration diagram for Cgi::Link:

Collaboration graph
List of all members.

Public Member Functions

 Link (WebForm *, const std::string &action, const std::string &linktext)
 ~Link ()
void AddParam (const std::string &name)
void AddParam (const std::string &name, const std::string &value)
void AddParam (const std::string &name, long value)
const std::string & GetLink ()

Private Types

typedef std::list< Param * > param_v

Private Member Functions

 Link (const Link &)
Linkoperator= (const Link &)

Private Attributes

WebFormm_webform
std::string m_action
std::string m_linktext
param_v m_params
std::string m_link

Classes

class  Param
class  Param2

Detailed Description

Definition at line 37 of file Link.h.


Member Typedef Documentation

typedef std::list<Param *> Cgi::Link::param_v [private]

Definition at line 62 of file Link.h.


Constructor & Destructor Documentation

Cgi::Link::Link ( WebForm ,
const std::string &  action,
const std::string &  linktext 
)

Definition at line 32 of file Link.cpp.

00033 :Styled()
00034 ,m_webform(p)
00035 ,m_action(action)
00036 ,m_linktext(linktext)
00037 {
00038 }

Cgi::Link::~Link (  ) 

Definition at line 41 of file Link.cpp.

References m_params.

00042 {
00043         while (m_params.size())
00044         {
00045                 param_v::iterator it = m_params.begin();
00046                 Param *p = *it;
00047                 delete p;
00048                 m_params.erase(it);
00049         }
00050 }

Cgi::Link::Link ( const Link  )  [inline, private]

Definition at line 74 of file Link.h.

00074 {} // copy constructor


Member Function Documentation

void Cgi::Link::AddParam ( const std::string &  name  ) 

Definition at line 53 of file Link.cpp.

References m_params.

00054 {
00055         m_params.push_back(new Param(name));
00056 }

void Cgi::Link::AddParam ( const std::string &  name,
const std::string &  value 
)

Definition at line 59 of file Link.cpp.

References m_params.

00060 {
00061         m_params.push_back(new Param2(name, value));
00062 }

void Cgi::Link::AddParam ( const std::string &  name,
long  value 
)

Definition at line 65 of file Link.cpp.

References m_params.

00066 {
00067         char slask[100];
00068         sprintf(slask, "%ld", value);
00069         m_params.push_back(new Param2(name, slask));
00070 }

const std::string & Cgi::Link::GetLink (  ) 

Definition at line 73 of file Link.cpp.

References Cgi::Styled::GetStyle(), m_action, m_link, m_linktext, m_params, and m_webform.

00074 {
00075         Web *web = m_webform -> GetWeb();
00076         char slask[1000];
00077         sprintf(slask, "<a");
00078         if (GetStyle().size())
00079         {
00080                 sprintf(slask + strlen(slask), " style='%s'", GetStyle().c_str());
00081         }
00082         sprintf(slask + strlen(slask), " href='%s?%s=%s", web -> GetCgiName().c_str(),
00083                 m_webform -> GetFormName().c_str(), m_action.c_str());
00084         for (param_v::iterator it = m_params.begin(); it != m_params.end(); it++)
00085         {
00086                 Param *p = *it;
00087                 strcat(slask, p -> Print().c_str());
00088         }
00089         sprintf(slask + strlen(slask), "'>%s</a>", m_linktext.c_str());
00090         m_link = slask;
00091         return m_link;
00092 }

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

Definition at line 75 of file Link.h.

00075 { return *this; } // assignment operator


Member Data Documentation

WebForm* Cgi::Link::m_webform [private]

Definition at line 76 of file Link.h.

Referenced by GetLink().

std::string Cgi::Link::m_action [private]

Definition at line 77 of file Link.h.

Referenced by GetLink().

std::string Cgi::Link::m_linktext [private]

Definition at line 78 of file Link.h.

Referenced by GetLink().

param_v Cgi::Link::m_params [private]

Definition at line 79 of file Link.h.

Referenced by AddParam(), GetLink(), and ~Link().

std::string Cgi::Link::m_link [private]

Definition at line 80 of file Link.h.

Referenced by GetLink().


The documentation for this class was generated from the following files:
Generated for cgi++ by doxygen 1.3.7

Page, code, and content Copyright (C) 2004 by Anders Hedström