Major changes to socket scheduling in EPoll.
No files matched your search
@@ -1,4 +1,5 @@
|
||||
#include "Command.h"
|
||||
#include "Log.h"
|
||||
|
||||
namespace core {
|
||||
|
||||
@@ -7,15 +8,12 @@ namespace core {
|
||||
void Command::output(Session *session) {}
|
||||
|
||||
bool Command::check(std::string request) {
|
||||
if(request != "") {
|
||||
if(name.length() > 0) {
|
||||
size_t start = request.find_first_not_of(" ");
|
||||
if(name == request.substr(start, name.length()))
|
||||
if(request.size() > 0)
|
||||
if(request == name)
|
||||
if(name.length() > 0)
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
void Command::setName(std::string name) {
|
||||
this->name = name;
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
#include "includes"
|
||||
#include "Object.h"
|
||||
#include "TCPSession.h"
|
||||
#include "PString.h"
|
||||
|
||||
namespace core {
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#include "CommandList.h"\
|
||||
#include "CommandList.h"
|
||||
#include "Log.h"
|
||||
|
||||
namespace core {
|
||||
|
||||
@@ -12,13 +13,29 @@ namespace core {
|
||||
}
|
||||
|
||||
bool CommandList::processRequest(std::string request, TCPSession *session, std::stringstream &data) {
|
||||
for(auto *command : commands) {
|
||||
if(command->check(request)) {
|
||||
command->processCommand(request, session, data);
|
||||
std::stringstream input = std::stringstream(request);
|
||||
while(!input.eof()) {
|
||||
std::string requests;
|
||||
std::getline(input, requests);
|
||||
if(session->grab != NULL)
|
||||
session->grab->processCommand(requests, session, data);
|
||||
else {
|
||||
int pos = requests.find(" ");
|
||||
std::string function = pos == requests.npos ? requests: requests.substr(0, pos);
|
||||
for(auto *command : commands)
|
||||
if(command->check(function))
|
||||
command->processCommand(requests, session, data);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CommandList::grabInput(TCPSession *session, Command &command) {
|
||||
session->grab = &command;
|
||||
}
|
||||
return false;
|
||||
|
||||
void CommandList::clearGrab(TCPSession *session) {
|
||||
session->grab = NULL;
|
||||
}
|
||||
|
||||
int CommandList::processCommand(std::string request, TCPSession *session, std::stringstream &data) {
|
||||
@@ -26,6 +43,8 @@ namespace core {
|
||||
data << command->getName() << std::endl;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -25,13 +25,47 @@ namespace core {
|
||||
|
||||
void add(Command &command, std::string name = "");
|
||||
|
||||
///
|
||||
/// Remove a command object from the command list.
|
||||
///
|
||||
|
||||
void remove(Command &command);
|
||||
|
||||
///
|
||||
/// Use this method to apply a parsed PString to the command set and execute
|
||||
/// the matching parameter. The selected command will return a true on a call
|
||||
/// to check(). If there is a handler that has a grab on the process handler
|
||||
/// then control is given to the process handler holding the grab on the input.
|
||||
///
|
||||
|
||||
bool processRequest(std::string request, TCPSession *session, std::stringstream &data);
|
||||
|
||||
///
|
||||
/// Use grabInput() within a Command object to force the requesting handler to receive
|
||||
/// all further input from the socket. Use releaseGrab() method to release the session
|
||||
/// back to normal command processing.
|
||||
///
|
||||
|
||||
bool grabInput(TCPSession *session, Command &command);
|
||||
|
||||
///
|
||||
///
|
||||
///
|
||||
|
||||
void clearGrab(TCPSession *session);
|
||||
|
||||
///
|
||||
///
|
||||
///
|
||||
|
||||
int processCommand(std::string request, TCPSession *session, std::stringstream &data);
|
||||
|
||||
protected:
|
||||
|
||||
///
|
||||
/// The vector of all registered commands.
|
||||
///
|
||||
|
||||
std::vector<Command *> commands;
|
||||
|
||||
};
|
||||
|
||||
@@ -9,7 +9,7 @@ namespace core {
|
||||
|
||||
ConsoleSession::~ConsoleSession() {}
|
||||
|
||||
void ConsoleSession::protocol(std::string data = "") {
|
||||
void ConsoleSession::protocol(std::stringstream &out, std::string data = "") {
|
||||
|
||||
switch (status) {
|
||||
|
||||
@@ -23,25 +23,23 @@ namespace core {
|
||||
setCursorLocation(2, 1);
|
||||
setBackColor(BG_BLACK);
|
||||
status = LOGIN;
|
||||
protocol();
|
||||
protocol(out);
|
||||
break;
|
||||
|
||||
case LOGIN:
|
||||
setCursorLocation(3, 3);
|
||||
out << "Enter User Profile: ";
|
||||
send();
|
||||
status = WAIT_USER_PROFILE;
|
||||
break;
|
||||
|
||||
case WAIT_USER_PROFILE:
|
||||
status = PASSWORD;
|
||||
protocol();
|
||||
protocol(out);
|
||||
break;
|
||||
|
||||
case PASSWORD:
|
||||
setCursorLocation(4, 7);
|
||||
out << "Enter Password: ";
|
||||
send();
|
||||
status = WAIT_PASSWORD;
|
||||
break;
|
||||
|
||||
@@ -56,14 +54,13 @@ namespace core {
|
||||
setBackColor(BG_BLACK);
|
||||
scrollArea(2, 16);
|
||||
status = PROMPT;
|
||||
protocol();
|
||||
protocol(out);
|
||||
break;
|
||||
|
||||
case PROMPT:
|
||||
setCursorLocation(17, 1);
|
||||
clearEOL();
|
||||
out << ("--> ");
|
||||
send();
|
||||
status = INPUT;
|
||||
break;
|
||||
|
||||
@@ -71,13 +68,13 @@ namespace core {
|
||||
command = std::string(data);
|
||||
command.erase(command.find_last_not_of("\r\n\t") + 1);
|
||||
status = PROCESS;
|
||||
protocol();
|
||||
protocol(out);
|
||||
break;
|
||||
|
||||
case PROCESS:
|
||||
doCommand(command);
|
||||
status = (command == "exit")? DONE: PROMPT;
|
||||
protocol();
|
||||
protocol(out);
|
||||
break;
|
||||
|
||||
case DONE:
|
||||
@@ -93,18 +90,18 @@ namespace core {
|
||||
void ConsoleSession::writeLog(std::string data) {
|
||||
saveCursor();
|
||||
setCursorLocation(16, 1);
|
||||
out << data;
|
||||
restoreCursor();
|
||||
send();
|
||||
send(data);
|
||||
}
|
||||
|
||||
void ConsoleSession::doCommand(std::string request) {
|
||||
saveCursor();
|
||||
setCursorLocation(16, 1);
|
||||
std::stringstream out;
|
||||
out << "--> " << request << std::endl;
|
||||
server.commands.processRequest(request, this, out);
|
||||
restoreCursor();
|
||||
send();
|
||||
send(out.str());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -24,7 +24,7 @@ namespace core {
|
||||
void writeLog(std::string data);
|
||||
|
||||
protected:
|
||||
void protocol(std::string data) override;
|
||||
void protocol(std::stringstream &out, std::string data) override;
|
||||
|
||||
private:
|
||||
enum Status {WELCOME, LOGIN, WAIT_USER_PROFILE, PASSWORD, WAIT_PASSWORD, PROMPT, INPUT, PROCESS, DONE};
|
||||
|
||||
@@ -69,20 +69,23 @@ namespace core {
|
||||
}
|
||||
|
||||
bool EPoll::registerSocket(Socket *socket) {
|
||||
lock.lock();
|
||||
coreutils::Log(coreutils::LOG_DEBUG_2) << "0001-" << socket->getDescriptor();
|
||||
std::map<int, Socket *>::iterator temp = sockets.find(socket->getDescriptor());
|
||||
coreutils::Log(coreutils::LOG_DEBUG_2) << "0002-" << socket->getDescriptor();
|
||||
if(temp != sockets.end())
|
||||
throw coreutils::Exception("Attempt to register socket that is already registered.");
|
||||
coreutils::Log(coreutils::LOG_DEBUG_2) << "0003-" << socket->getDescriptor();
|
||||
coreutils::Log(coreutils::LOG_DEBUG_3) << "Registering socket " << socket->getDescriptor() << ".";
|
||||
sockets.insert(std::pair<int, Socket *>(socket->getDescriptor(), socket));
|
||||
lock.unlock();
|
||||
socket->enable(true);
|
||||
coreutils::Log(coreutils::LOG_DEBUG_2) << "0004-" << socket->getDescriptor();
|
||||
enableSocket(socket);
|
||||
coreutils::Log(coreutils::LOG_DEBUG_2) << "0005-" << socket->getDescriptor();
|
||||
return true;
|
||||
}
|
||||
|
||||
bool EPoll::unregisterSocket(Socket *socket /**< The Socket to unregister. */) {
|
||||
lock.lock();
|
||||
socket->enable(false);
|
||||
disableSocket(socket);
|
||||
coreutils::Log(coreutils::LOG_DEBUG_3) << "Unregistering socket " << socket->getDescriptor() << ".";
|
||||
std::map<int, Socket *>::iterator temp = sockets.find(socket->getDescriptor());
|
||||
if(temp == sockets.end())
|
||||
@@ -93,16 +96,17 @@ namespace core {
|
||||
}
|
||||
|
||||
void EPoll::eventReceived(struct epoll_event event) {
|
||||
lock.lock();
|
||||
std::map<int, Socket *>::iterator socket = sockets.find(event.data.fd);
|
||||
lock.unlock();
|
||||
if(socket != sockets.end()) {
|
||||
(socket->second)->eventReceived(event);
|
||||
} else {
|
||||
coreutils::Log(coreutils::LOG_WARN) << "System problem. Reference to socket " << event.data.fd << " that has no object.";
|
||||
throw coreutils::Exception("System problem occurred.");
|
||||
if(socket->second->eventReceived(event)) {
|
||||
coreutils::Log(coreutils::LOG_DEBUG_4) << "resetSocket from eventReceived.";
|
||||
resetSocket(socket->second);
|
||||
}
|
||||
}
|
||||
else
|
||||
throw coreutils::Exception("Reference to socket that has no object.");
|
||||
|
||||
}
|
||||
|
||||
int EPoll::getDescriptor() {
|
||||
return epfd;
|
||||
@@ -115,7 +119,36 @@ namespace core {
|
||||
threadx.output(data);
|
||||
data << "|" << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
void EPoll::enableSocket(Socket *socket) {
|
||||
struct epoll_event event;
|
||||
event.data.fd = socket->getDescriptor();
|
||||
event.events = EPOLLIN | EPOLLONESHOT | EPOLLRDHUP | EPOLLET;
|
||||
if(socket->needsToWrite())
|
||||
event.events |= EPOLLWRNORM;
|
||||
epoll_ctl(epfd, EPOLL_CTL_ADD, event.data.fd, &event);
|
||||
socket->active = true;
|
||||
coreutils::Log(coreutils::LOG_DEBUG_4) << "Enabling socket " << socket->getDescriptor() << " for events.";
|
||||
}
|
||||
|
||||
void EPoll::disableSocket(Socket *socket) {
|
||||
epoll_ctl(epfd, EPOLL_CTL_DEL, socket->getDescriptor(), NULL);
|
||||
socket->active = false;
|
||||
coreutils::Log(coreutils::LOG_DEBUG_4) << "Disabling socket " << socket->getDescriptor() << " from events.";
|
||||
}
|
||||
|
||||
void EPoll::resetSocket(Socket *socket) {
|
||||
if(!socket->active)
|
||||
return;
|
||||
coreutils::Log(coreutils::LOG_DEBUG_4) << "ResetSocket " << socket;
|
||||
struct epoll_event event;
|
||||
event.data.fd = socket->getDescriptor();
|
||||
event.events = EPOLLIN | EPOLLONESHOT | EPOLLRDHUP | EPOLLET;
|
||||
if(socket->needsToWrite())
|
||||
event.events |= EPOLLWRNORM;
|
||||
epoll_ctl(epfd, EPOLL_CTL_MOD, event.data.fd, &event);
|
||||
coreutils::Log(coreutils::LOG_DEBUG_4) << "Resetting socket " << socket->getDescriptor() << " for events.";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -112,6 +112,8 @@ namespace core {
|
||||
|
||||
int processCommand(std::string command, TCPSession *session, std::stringstream &data) override; ///<Output the threads array to the console.
|
||||
|
||||
void resetSocket(Socket *socket);
|
||||
|
||||
private:
|
||||
|
||||
int epfd;
|
||||
@@ -120,6 +122,8 @@ namespace core {
|
||||
std::vector<Thread> threads;
|
||||
volatile bool terminateThreads;
|
||||
std::mutex lock;
|
||||
void enableSocket(Socket *socket);
|
||||
void disableSocket(Socket *socket);
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
#include "INotify.h"
|
||||
#include "Log.h"
|
||||
|
||||
namespace core {
|
||||
|
||||
INotify::INotify(EPoll &ePoll) : Socket(ePoll, "INotify") {
|
||||
setDescriptor(inotify_init());
|
||||
}
|
||||
|
||||
INotify::~INotify() {
|
||||
shutdown();
|
||||
}
|
||||
|
||||
int INotify::addWatch(std::string watch) {
|
||||
return inotify_add_watch(getDescriptor(), watch.c_str(), IN_ALL_EVENTS);
|
||||
}
|
||||
|
||||
void INotify::removeWatch(int wd) {
|
||||
inotify_rm_watch(getDescriptor(), wd);
|
||||
}
|
||||
|
||||
void INotify::onDataReceived(char *buffer, int len) {
|
||||
const struct inotify_event *event;
|
||||
char *ptr;
|
||||
for (ptr = buffer; ptr < buffer + len;
|
||||
ptr += sizeof(struct inotify_event) + event->len) {
|
||||
event = (const struct inotify_event *) ptr;
|
||||
|
||||
if(event->mask & IN_ACCESS)
|
||||
inAccess(std::string(event->name));
|
||||
if(event->mask & IN_ATTRIB)
|
||||
inAttrib(std::string(event->name));
|
||||
if(event->mask & IN_CLOSE_WRITE)
|
||||
inCloseWrite(std::string(event->name));
|
||||
if(event->mask & IN_CLOSE_NOWRITE)
|
||||
inCloseNoWrite(std::string(event->name));
|
||||
if(event->mask & IN_CREATE)
|
||||
inCreate(std::string(event->name));
|
||||
if(event->mask & IN_DELETE)
|
||||
inDelete(std::string(event->name));
|
||||
if(event->mask & IN_DELETE_SELF)
|
||||
inDeleteSelf(std::string(event->name));
|
||||
if(event->mask & IN_MODIFY)
|
||||
inModify(std::string(event->name));
|
||||
if(event->mask & IN_MOVE_SELF)
|
||||
inMoveSelf(std::string(event->name));
|
||||
if(event->mask & IN_MOVED_FROM)
|
||||
inMovedFrom(std::string(event->name));
|
||||
if(event->mask & IN_MOVED_TO)
|
||||
inMovedTo(std::string(event->name));
|
||||
if(event->mask & IN_OPEN)
|
||||
inOpen(std::string(event->name));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
#ifndef __INotify_h__
|
||||
# define __INotify_h__
|
||||
|
||||
#include "includes"
|
||||
#include "Socket.h"
|
||||
|
||||
namespace core {
|
||||
|
||||
class INotify : Socket {
|
||||
|
||||
public:
|
||||
INotify(EPoll &ePoll);
|
||||
~INotify();
|
||||
|
||||
int addWatch(std::string watch);
|
||||
void removeWatch(int wd);
|
||||
|
||||
void onDataReceived(char *buffer, int len) override;
|
||||
|
||||
virtual void inAccess(std::string name) {}
|
||||
virtual void inAttrib(std::string name) {}
|
||||
virtual void inCloseWrite(std::string name) {}
|
||||
virtual void inCloseNoWrite(std::string name) {}
|
||||
virtual void inCreate(std::string name) {}
|
||||
virtual void inDelete(std::string name) {}
|
||||
virtual void inDeleteSelf(std::string name) {}
|
||||
virtual void inModify(std::string name) {}
|
||||
virtual void inMoveSelf(std::string name) {}
|
||||
virtual void inMovedFrom(std::string name) {}
|
||||
virtual void inMovedTo(std::string name) {}
|
||||
virtual void inOpen(std::string name) {}
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -1,49 +0,0 @@
|
||||
#ifndef __ParseString_h__
|
||||
#define __ParseString_h__
|
||||
|
||||
#include "includes"
|
||||
|
||||
namespace core {
|
||||
|
||||
class ParseString : std::string {
|
||||
|
||||
public:
|
||||
ParseString() {}
|
||||
ParseString(std::string value) : std::string(value) {}
|
||||
ParseString(std::string value, char delimiter) : std::string(value) {
|
||||
|
||||
}
|
||||
|
||||
void setDelimiter(char delimiter) {
|
||||
this->delimiter = delimiter;
|
||||
parse();
|
||||
}
|
||||
|
||||
private:
|
||||
char delimiter;
|
||||
|
||||
void parse() {
|
||||
|
||||
std::stringstream sstring((std::string)*this);
|
||||
|
||||
sstring.imbue(std::locale(sstring.getloc(), new isDelimiter(':')));
|
||||
|
||||
|
||||
}
|
||||
|
||||
struct isDelimiter : std::ctype<char> {
|
||||
char chr;
|
||||
isDelimiter(char chr) : std::ctype<char>(get_table()) {
|
||||
this->chr = chr;
|
||||
}
|
||||
static mask const* get_table() {
|
||||
static mask rc[table_size];
|
||||
rc[*chr] = std::ctype_base::space;
|
||||
rc['\n'] = std::ctype_base::space;
|
||||
return &rc[0];
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -1 +0,0 @@
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
Release/Command.cpp.o: Command.cpp Command.h includes Object.h Session.h \
|
||||
TCPSocket.h Socket.h IPAddress.h SessionFilter.h
|
||||
|
||||
Command.h:
|
||||
|
||||
includes:
|
||||
|
||||
Object.h:
|
||||
|
||||
Session.h:
|
||||
|
||||
TCPSocket.h:
|
||||
|
||||
Socket.h:
|
||||
|
||||
IPAddress.h:
|
||||
|
||||
SessionFilter.h:
|
||||
@@ -1,21 +0,0 @@
|
||||
Release/CommandList.cpp.o: CommandList.cpp CommandList.h Session.h \
|
||||
TCPSocket.h includes Socket.h Object.h IPAddress.h SessionFilter.h \
|
||||
Command.h
|
||||
|
||||
CommandList.h:
|
||||
|
||||
Session.h:
|
||||
|
||||
TCPSocket.h:
|
||||
|
||||
includes:
|
||||
|
||||
Socket.h:
|
||||
|
||||
Object.h:
|
||||
|
||||
IPAddress.h:
|
||||
|
||||
SessionFilter.h:
|
||||
|
||||
Command.h:
|
||||
@@ -1,40 +0,0 @@
|
||||
Release/ConsoleServer.cpp.o: ConsoleServer.cpp ConsoleServer.h includes \
|
||||
TCPServerSocket.h Socket.h Object.h TCPSocket.h IPAddress.h Service.h \
|
||||
CommandList.h Session.h SessionFilter.h Command.h EPoll.h Log.h File.h \
|
||||
Thread.h ConsoleSession.h TerminalSession.h
|
||||
|
||||
ConsoleServer.h:
|
||||
|
||||
includes:
|
||||
|
||||
TCPServerSocket.h:
|
||||
|
||||
Socket.h:
|
||||
|
||||
Object.h:
|
||||
|
||||
TCPSocket.h:
|
||||
|
||||
IPAddress.h:
|
||||
|
||||
Service.h:
|
||||
|
||||
CommandList.h:
|
||||
|
||||
Session.h:
|
||||
|
||||
SessionFilter.h:
|
||||
|
||||
Command.h:
|
||||
|
||||
EPoll.h:
|
||||
|
||||
Log.h:
|
||||
|
||||
File.h:
|
||||
|
||||
Thread.h:
|
||||
|
||||
ConsoleSession.h:
|
||||
|
||||
TerminalSession.h:
|
||||
@@ -1,34 +0,0 @@
|
||||
Release/ConsoleSession.cpp.o: ConsoleSession.cpp ConsoleSession.h \
|
||||
TerminalSession.h includes Session.h TCPSocket.h Socket.h Object.h \
|
||||
IPAddress.h SessionFilter.h TCPServerSocket.h Service.h CommandList.h \
|
||||
Command.h Log.h File.h
|
||||
|
||||
ConsoleSession.h:
|
||||
|
||||
TerminalSession.h:
|
||||
|
||||
includes:
|
||||
|
||||
Session.h:
|
||||
|
||||
TCPSocket.h:
|
||||
|
||||
Socket.h:
|
||||
|
||||
Object.h:
|
||||
|
||||
IPAddress.h:
|
||||
|
||||
SessionFilter.h:
|
||||
|
||||
TCPServerSocket.h:
|
||||
|
||||
Service.h:
|
||||
|
||||
CommandList.h:
|
||||
|
||||
Command.h:
|
||||
|
||||
Log.h:
|
||||
|
||||
File.h:
|
||||
@@ -1,29 +0,0 @@
|
||||
Release/EPoll.cpp.o: EPoll.cpp Thread.h includes Log.h File.h Object.h \
|
||||
Session.h TCPSocket.h Socket.h IPAddress.h SessionFilter.h EPoll.h \
|
||||
Command.h Exception.h
|
||||
|
||||
Thread.h:
|
||||
|
||||
includes:
|
||||
|
||||
Log.h:
|
||||
|
||||
File.h:
|
||||
|
||||
Object.h:
|
||||
|
||||
Session.h:
|
||||
|
||||
TCPSocket.h:
|
||||
|
||||
Socket.h:
|
||||
|
||||
IPAddress.h:
|
||||
|
||||
SessionFilter.h:
|
||||
|
||||
EPoll.h:
|
||||
|
||||
Command.h:
|
||||
|
||||
Exception.h:
|
||||
@@ -1,12 +0,0 @@
|
||||
Release/Exception.cpp.o: Exception.cpp Exception.h includes Log.h File.h \
|
||||
Object.h
|
||||
|
||||
Exception.h:
|
||||
|
||||
includes:
|
||||
|
||||
Log.h:
|
||||
|
||||
File.h:
|
||||
|
||||
Object.h:
|
||||
@@ -1,7 +0,0 @@
|
||||
Release/File.cpp.o: File.cpp File.h includes Exception.h
|
||||
|
||||
File.h:
|
||||
|
||||
includes:
|
||||
|
||||
Exception.h:
|
||||
@@ -1,11 +0,0 @@
|
||||
Release/Header.cpp.o: Header.cpp Header.h includes Object.h Log.h File.h
|
||||
|
||||
Header.h:
|
||||
|
||||
includes:
|
||||
|
||||
Object.h:
|
||||
|
||||
Log.h:
|
||||
|
||||
File.h:
|
||||
@@ -1,7 +0,0 @@
|
||||
Release/IPAddress.cpp.o: IPAddress.cpp IPAddress.h includes Object.h
|
||||
|
||||
IPAddress.h:
|
||||
|
||||
includes:
|
||||
|
||||
Object.h:
|
||||
@@ -1,40 +0,0 @@
|
||||
Release/Log.cpp.o: Log.cpp ConsoleSession.h TerminalSession.h includes \
|
||||
Session.h TCPSocket.h Socket.h Object.h IPAddress.h SessionFilter.h \
|
||||
TCPServerSocket.h Service.h CommandList.h Command.h Log.h File.h \
|
||||
ConsoleServer.h EPoll.h Thread.h
|
||||
|
||||
ConsoleSession.h:
|
||||
|
||||
TerminalSession.h:
|
||||
|
||||
includes:
|
||||
|
||||
Session.h:
|
||||
|
||||
TCPSocket.h:
|
||||
|
||||
Socket.h:
|
||||
|
||||
Object.h:
|
||||
|
||||
IPAddress.h:
|
||||
|
||||
SessionFilter.h:
|
||||
|
||||
TCPServerSocket.h:
|
||||
|
||||
Service.h:
|
||||
|
||||
CommandList.h:
|
||||
|
||||
Command.h:
|
||||
|
||||
Log.h:
|
||||
|
||||
File.h:
|
||||
|
||||
ConsoleServer.h:
|
||||
|
||||
EPoll.h:
|
||||
|
||||
Thread.h:
|
||||
@@ -1,12 +0,0 @@
|
||||
Release/Response.cpp.o: Response.cpp Response.h includes Object.h Log.h \
|
||||
File.h
|
||||
|
||||
Response.h:
|
||||
|
||||
includes:
|
||||
|
||||
Object.h:
|
||||
|
||||
Log.h:
|
||||
|
||||
File.h:
|
||||
@@ -1,27 +0,0 @@
|
||||
Release/Service.cpp.o: Service.cpp Service.h Object.h includes \
|
||||
CommandList.h Session.h TCPSocket.h Socket.h IPAddress.h SessionFilter.h \
|
||||
Command.h TCPServerSocket.h Exception.h
|
||||
|
||||
Service.h:
|
||||
|
||||
Object.h:
|
||||
|
||||
includes:
|
||||
|
||||
CommandList.h:
|
||||
|
||||
Session.h:
|
||||
|
||||
TCPSocket.h:
|
||||
|
||||
Socket.h:
|
||||
|
||||
IPAddress.h:
|
||||
|
||||
SessionFilter.h:
|
||||
|
||||
Command.h:
|
||||
|
||||
TCPServerSocket.h:
|
||||
|
||||
Exception.h:
|
||||
@@ -1,27 +0,0 @@
|
||||
Release/Session.cpp.o: Session.cpp Session.h TCPSocket.h includes \
|
||||
Socket.h Object.h IPAddress.h SessionFilter.h Log.h File.h Service.h \
|
||||
CommandList.h Command.h
|
||||
|
||||
Session.h:
|
||||
|
||||
TCPSocket.h:
|
||||
|
||||
includes:
|
||||
|
||||
Socket.h:
|
||||
|
||||
Object.h:
|
||||
|
||||
IPAddress.h:
|
||||
|
||||
SessionFilter.h:
|
||||
|
||||
Log.h:
|
||||
|
||||
File.h:
|
||||
|
||||
Service.h:
|
||||
|
||||
CommandList.h:
|
||||
|
||||
Command.h:
|
||||
@@ -1,29 +0,0 @@
|
||||
Release/Socket.cpp.o: Socket.cpp EPoll.h Log.h includes File.h Object.h \
|
||||
Socket.h Thread.h Session.h TCPSocket.h IPAddress.h SessionFilter.h \
|
||||
Command.h Exception.h
|
||||
|
||||
EPoll.h:
|
||||
|
||||
Log.h:
|
||||
|
||||
includes:
|
||||
|
||||
File.h:
|
||||
|
||||
Object.h:
|
||||
|
||||
Socket.h:
|
||||
|
||||
Thread.h:
|
||||
|
||||
Session.h:
|
||||
|
||||
TCPSocket.h:
|
||||
|
||||
IPAddress.h:
|
||||
|
||||
SessionFilter.h:
|
||||
|
||||
Command.h:
|
||||
|
||||
Exception.h:
|
||||
@@ -1,36 +0,0 @@
|
||||
Release/TCPServerSocket.cpp.o: TCPServerSocket.cpp TCPServerSocket.h \
|
||||
Socket.h includes Object.h TCPSocket.h IPAddress.h Service.h \
|
||||
CommandList.h Session.h SessionFilter.h Command.h EPoll.h Log.h File.h \
|
||||
Thread.h Exception.h
|
||||
|
||||
TCPServerSocket.h:
|
||||
|
||||
Socket.h:
|
||||
|
||||
includes:
|
||||
|
||||
Object.h:
|
||||
|
||||
TCPSocket.h:
|
||||
|
||||
IPAddress.h:
|
||||
|
||||
Service.h:
|
||||
|
||||
CommandList.h:
|
||||
|
||||
Session.h:
|
||||
|
||||
SessionFilter.h:
|
||||
|
||||
Command.h:
|
||||
|
||||
EPoll.h:
|
||||
|
||||
Log.h:
|
||||
|
||||
File.h:
|
||||
|
||||
Thread.h:
|
||||
|
||||
Exception.h:
|
||||
@@ -1,29 +0,0 @@
|
||||
Release/TCPSocket.cpp.o: TCPSocket.cpp TCPSocket.h includes Socket.h \
|
||||
Object.h IPAddress.h EPoll.h Log.h File.h Thread.h Session.h \
|
||||
SessionFilter.h Command.h Exception.h
|
||||
|
||||
TCPSocket.h:
|
||||
|
||||
includes:
|
||||
|
||||
Socket.h:
|
||||
|
||||
Object.h:
|
||||
|
||||
IPAddress.h:
|
||||
|
||||
EPoll.h:
|
||||
|
||||
Log.h:
|
||||
|
||||
File.h:
|
||||
|
||||
Thread.h:
|
||||
|
||||
Session.h:
|
||||
|
||||
SessionFilter.h:
|
||||
|
||||
Command.h:
|
||||
|
||||
Exception.h:
|
||||
@@ -1,42 +0,0 @@
|
||||
Release/TLSServerSocket.cpp.o: TLSServerSocket.cpp TLSServerSocket.h \
|
||||
Socket.h includes Object.h TCPServerSocket.h TCPSocket.h IPAddress.h \
|
||||
Service.h CommandList.h Session.h SessionFilter.h Command.h TLSSession.h \
|
||||
TLSService.h EPoll.h Log.h File.h Thread.h Exception.h
|
||||
|
||||
TLSServerSocket.h:
|
||||
|
||||
Socket.h:
|
||||
|
||||
includes:
|
||||
|
||||
Object.h:
|
||||
|
||||
TCPServerSocket.h:
|
||||
|
||||
TCPSocket.h:
|
||||
|
||||
IPAddress.h:
|
||||
|
||||
Service.h:
|
||||
|
||||
CommandList.h:
|
||||
|
||||
Session.h:
|
||||
|
||||
SessionFilter.h:
|
||||
|
||||
Command.h:
|
||||
|
||||
TLSSession.h:
|
||||
|
||||
TLSService.h:
|
||||
|
||||
EPoll.h:
|
||||
|
||||
Log.h:
|
||||
|
||||
File.h:
|
||||
|
||||
Thread.h:
|
||||
|
||||
Exception.h:
|
||||
@@ -1,42 +0,0 @@
|
||||
Release/TLSSession.cpp.o: TLSSession.cpp TLSSession.h includes Session.h \
|
||||
TCPSocket.h Socket.h Object.h IPAddress.h SessionFilter.h \
|
||||
TLSServerSocket.h TCPServerSocket.h Service.h CommandList.h Command.h \
|
||||
TLSService.h EPoll.h Log.h File.h Thread.h Exception.h
|
||||
|
||||
TLSSession.h:
|
||||
|
||||
includes:
|
||||
|
||||
Session.h:
|
||||
|
||||
TCPSocket.h:
|
||||
|
||||
Socket.h:
|
||||
|
||||
Object.h:
|
||||
|
||||
IPAddress.h:
|
||||
|
||||
SessionFilter.h:
|
||||
|
||||
TLSServerSocket.h:
|
||||
|
||||
TCPServerSocket.h:
|
||||
|
||||
Service.h:
|
||||
|
||||
CommandList.h:
|
||||
|
||||
Command.h:
|
||||
|
||||
TLSService.h:
|
||||
|
||||
EPoll.h:
|
||||
|
||||
Log.h:
|
||||
|
||||
File.h:
|
||||
|
||||
Thread.h:
|
||||
|
||||
Exception.h:
|
||||
@@ -1,27 +0,0 @@
|
||||
Release/TerminalSession.cpp.o: TerminalSession.cpp TerminalSession.h \
|
||||
includes Session.h TCPSocket.h Socket.h Object.h IPAddress.h \
|
||||
SessionFilter.h TCPServerSocket.h Service.h CommandList.h Command.h
|
||||
|
||||
TerminalSession.h:
|
||||
|
||||
includes:
|
||||
|
||||
Session.h:
|
||||
|
||||
TCPSocket.h:
|
||||
|
||||
Socket.h:
|
||||
|
||||
Object.h:
|
||||
|
||||
IPAddress.h:
|
||||
|
||||
SessionFilter.h:
|
||||
|
||||
TCPServerSocket.h:
|
||||
|
||||
Service.h:
|
||||
|
||||
CommandList.h:
|
||||
|
||||
Command.h:
|
||||
@@ -1,27 +0,0 @@
|
||||
Release/Thread.cpp.o: Thread.cpp Thread.h includes Log.h File.h Object.h \
|
||||
Session.h TCPSocket.h Socket.h IPAddress.h SessionFilter.h EPoll.h \
|
||||
Command.h
|
||||
|
||||
Thread.h:
|
||||
|
||||
includes:
|
||||
|
||||
Log.h:
|
||||
|
||||
File.h:
|
||||
|
||||
Object.h:
|
||||
|
||||
Session.h:
|
||||
|
||||
TCPSocket.h:
|
||||
|
||||
Socket.h:
|
||||
|
||||
IPAddress.h:
|
||||
|
||||
SessionFilter.h:
|
||||
|
||||
EPoll.h:
|
||||
|
||||
Command.h:
|
||||
@@ -1,29 +0,0 @@
|
||||
Release/Timer.cpp.o: Timer.cpp Timer.h Socket.h includes Object.h EPoll.h \
|
||||
Log.h File.h Thread.h Session.h TCPSocket.h IPAddress.h SessionFilter.h \
|
||||
Command.h
|
||||
|
||||
Timer.h:
|
||||
|
||||
Socket.h:
|
||||
|
||||
includes:
|
||||
|
||||
Object.h:
|
||||
|
||||
EPoll.h:
|
||||
|
||||
Log.h:
|
||||
|
||||
File.h:
|
||||
|
||||
Thread.h:
|
||||
|
||||
Session.h:
|
||||
|
||||
TCPSocket.h:
|
||||
|
||||
IPAddress.h:
|
||||
|
||||
SessionFilter.h:
|
||||
|
||||
Command.h:
|
||||
@@ -1,31 +0,0 @@
|
||||
Release/UDPServerSocket.cpp.o: UDPServerSocket.cpp UDPServerSocket.h \
|
||||
Socket.h includes Object.h UDPSocket.h Session.h TCPSocket.h IPAddress.h \
|
||||
SessionFilter.h Command.h EPoll.h Log.h File.h Thread.h
|
||||
|
||||
UDPServerSocket.h:
|
||||
|
||||
Socket.h:
|
||||
|
||||
includes:
|
||||
|
||||
Object.h:
|
||||
|
||||
UDPSocket.h:
|
||||
|
||||
Session.h:
|
||||
|
||||
TCPSocket.h:
|
||||
|
||||
IPAddress.h:
|
||||
|
||||
SessionFilter.h:
|
||||
|
||||
Command.h:
|
||||
|
||||
EPoll.h:
|
||||
|
||||
Log.h:
|
||||
|
||||
File.h:
|
||||
|
||||
Thread.h:
|
||||
@@ -1,18 +0,0 @@
|
||||
Release/UDPSocket.cpp.o: UDPSocket.cpp UDPSocket.h Socket.h includes \
|
||||
Object.h Session.h TCPSocket.h IPAddress.h SessionFilter.h
|
||||
|
||||
UDPSocket.h:
|
||||
|
||||
Socket.h:
|
||||
|
||||
includes:
|
||||
|
||||
Object.h:
|
||||
|
||||
Session.h:
|
||||
|
||||
TCPSocket.h:
|
||||
|
||||
IPAddress.h:
|
||||
|
||||
SessionFilter.h:
|
||||
@@ -11,14 +11,28 @@ namespace core {
|
||||
length = 4096;
|
||||
}
|
||||
|
||||
Socket::Socket(EPoll &ePoll, std::string text) : ePoll(ePoll), text(text) {
|
||||
coreutils::Log(coreutils::LOG_DEBUG_2) << "BMASocket object created [" << text << "].";
|
||||
buffer = (char *)malloc(4096);
|
||||
length = 4096;
|
||||
}
|
||||
|
||||
Socket::~Socket() {
|
||||
ePoll.unregisterSocket(this);
|
||||
close(descriptor);
|
||||
free(buffer);
|
||||
if(descriptor == -1)
|
||||
return;
|
||||
onUnregister();
|
||||
ePoll.unregisterSocket(this);
|
||||
coreutils::Log(coreutils::LOG_DEBUG_3) << "Socket destroyed for socket " << descriptor << ".";
|
||||
close(descriptor);
|
||||
}
|
||||
|
||||
void Socket::setDescriptor(int descriptor) {
|
||||
if((descriptor == -1) && (errno == 24)) {
|
||||
shutdown("Too many files open");
|
||||
coreutils::Exception("Too many files open. Refusing connection.");;
|
||||
}
|
||||
socketLock.lock();
|
||||
coreutils::Log(coreutils::LOG_DEBUG_3) << "Descriptor set to " << descriptor << " for Socket.";
|
||||
if(descriptor < 3)
|
||||
throw coreutils::Exception("Descriptor out of range", __FILE__, __LINE__);
|
||||
@@ -26,6 +40,7 @@ namespace core {
|
||||
onRegister();
|
||||
ePoll.registerSocket(this);
|
||||
onRegistered();
|
||||
socketLock.unlock();
|
||||
}
|
||||
|
||||
int Socket::getDescriptor() {
|
||||
@@ -43,43 +58,48 @@ namespace core {
|
||||
|
||||
void Socket::onUnregister() {}
|
||||
|
||||
void Socket::eventReceived(struct epoll_event event) {
|
||||
bool Socket::eventReceived(struct epoll_event event) {
|
||||
|
||||
coreutils::Log(coreutils::LOG_DEBUG_1) << "eventReceived on " << descriptor << "; shutDown = " << shutDown << "; active = " << active << ";";
|
||||
|
||||
socketLock.lock();
|
||||
|
||||
if(event.events & EPOLLRDHUP) {
|
||||
coreutils::Log(coreutils::LOG_DEBUG_1) << "start EPOLLRDHUP " << descriptor;
|
||||
readHangup = true;
|
||||
enable(false);
|
||||
shutdown();
|
||||
return;
|
||||
shutdown("hangup received");
|
||||
return false;
|
||||
}
|
||||
|
||||
if(event.events & EPOLLIN)
|
||||
if(event.events & EPOLLIN) {
|
||||
coreutils::Log(coreutils::LOG_DEBUG_1) << "start EPOLLIN " << descriptor;
|
||||
receiveData(buffer, length);
|
||||
}
|
||||
|
||||
if(event.events & EPOLLOUT)
|
||||
if(event.events & EPOLLWRNORM) {
|
||||
coreutils::Log(coreutils::LOG_DEBUG_1) << "start EPOLLOUT " << descriptor;
|
||||
writeSocket();
|
||||
}
|
||||
|
||||
if(event.events & EPOLLHUP) {
|
||||
coreutils::Log(coreutils::LOG_DEBUG_1) << "start EPOLLHUP " << descriptor;
|
||||
coreutils::Log(coreutils::LOG_DEBUG_1) << "end shutting down" << descriptor;
|
||||
shutdown();
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
|
||||
enable(true);
|
||||
coreutils::Log(coreutils::LOG_DEBUG_1) << "end with active = " << active << " on socket " << descriptor;
|
||||
socketLock.unlock();
|
||||
|
||||
return active;
|
||||
}
|
||||
|
||||
void Socket::enable(bool mode) {
|
||||
if(mode) {
|
||||
if(fifo.empty()) {
|
||||
if(!readHangup) {
|
||||
active ? resetRead(): setRead();
|
||||
void Socket::onDataReceived(std::string data) {
|
||||
throw coreutils::Exception("Need to override onDataReceived.", __FILE__, __LINE__, -1);
|
||||
}
|
||||
}
|
||||
else {
|
||||
active ? resetReadWrite(): setReadWrite();
|
||||
}
|
||||
active = true;
|
||||
}
|
||||
else
|
||||
clear();
|
||||
|
||||
void Socket::onDataReceived(char *buffer, int len) {
|
||||
onDataReceived(std::string(buffer, len));
|
||||
}
|
||||
|
||||
void Socket::receiveData(char *buffer, int bufferLength) {
|
||||
@@ -91,7 +111,7 @@ namespace core {
|
||||
int error = -1;
|
||||
|
||||
if((len = ::read(getDescriptor(), buffer, bufferLength)) >= 0)
|
||||
onDataReceived(std::string(buffer, len));
|
||||
onDataReceived(buffer, len);
|
||||
else {
|
||||
|
||||
error = errno;
|
||||
@@ -114,77 +134,46 @@ namespace core {
|
||||
}
|
||||
}
|
||||
|
||||
// void Socket::onConnected() {
|
||||
// }
|
||||
|
||||
void Socket::writeSocket() {
|
||||
if(shutDown)
|
||||
return;
|
||||
|
||||
lock.lock();
|
||||
if(fifo.size() > 0) {
|
||||
::write(descriptor, fifo.front().c_str(), fifo.front().length());
|
||||
fifo.pop();
|
||||
enable(true);
|
||||
coreutils::Log(coreutils::LOG_DEBUG_4) << "reseSocket from writeSocket.";
|
||||
if(active)
|
||||
ePoll.resetSocket(this);
|
||||
}
|
||||
lock.unlock();
|
||||
}
|
||||
|
||||
void Socket::write(std::string data) {
|
||||
int Socket::write(std::string data) {
|
||||
if(!active)
|
||||
return -1;
|
||||
|
||||
lock.lock();
|
||||
fifo.emplace(data);
|
||||
enable(true);
|
||||
coreutils::Log(coreutils::LOG_DEBUG_4) << "resetSocket from write. active is " << active;
|
||||
if(active)
|
||||
ePoll.resetSocket(this);
|
||||
lock.unlock();
|
||||
return 1;
|
||||
}
|
||||
|
||||
void Socket::output(std::stringstream &out) {
|
||||
out << "|" << descriptor << "|";
|
||||
}
|
||||
|
||||
void Socket::setRead() {
|
||||
event.data.fd = descriptor;
|
||||
event.events = EPOLLIN | EPOLLONESHOT | EPOLLRDHUP | EPOLLET;
|
||||
epoll_ctl(ePoll.getDescriptor(), EPOLL_CTL_DEL, descriptor, NULL);
|
||||
epoll_ctl(ePoll.getDescriptor(), EPOLL_CTL_ADD, event.data.fd, &event);
|
||||
bool Socket::needsToWrite() {
|
||||
return fifo.size() > 0;
|
||||
}
|
||||
|
||||
void Socket::setWrite() {
|
||||
event.data.fd = descriptor;
|
||||
event.events = EPOLLOUT | EPOLLONESHOT | EPOLLRDHUP | EPOLLET;
|
||||
epoll_ctl(ePoll.getDescriptor(), EPOLL_CTL_DEL, descriptor, NULL);
|
||||
epoll_ctl(ePoll.getDescriptor(), EPOLL_CTL_ADD, descriptor, &event);
|
||||
}
|
||||
|
||||
void Socket::setReadWrite() {
|
||||
event.data.fd = descriptor;
|
||||
event.events = EPOLLIN | EPOLLWRNORM | EPOLLONESHOT | EPOLLRDHUP | EPOLLET;
|
||||
epoll_ctl(ePoll.getDescriptor(), EPOLL_CTL_DEL, descriptor, NULL);
|
||||
epoll_ctl(ePoll.getDescriptor(), EPOLL_CTL_ADD, descriptor, &event);
|
||||
}
|
||||
|
||||
void Socket::resetRead() {
|
||||
event.data.fd = descriptor;
|
||||
event.events = EPOLLIN | EPOLLONESHOT | EPOLLRDHUP | EPOLLET;
|
||||
epoll_ctl(ePoll.getDescriptor(), EPOLL_CTL_MOD, descriptor, &event);
|
||||
}
|
||||
|
||||
void Socket::resetWrite() {
|
||||
event.data.fd = descriptor;
|
||||
event.events = EPOLLOUT | EPOLLONESHOT | EPOLLRDHUP | EPOLLET;
|
||||
epoll_ctl(ePoll.getDescriptor(), EPOLL_CTL_MOD, descriptor, &event);
|
||||
}
|
||||
|
||||
void Socket::resetReadWrite() {
|
||||
event.data.fd = descriptor;
|
||||
event.events = EPOLLIN | EPOLLOUT | EPOLLONESHOT | EPOLLRDHUP | EPOLLET;
|
||||
epoll_ctl(ePoll.getDescriptor(), EPOLL_CTL_MOD, descriptor, &event);
|
||||
}
|
||||
|
||||
void Socket::clear() {
|
||||
epoll_ctl(ePoll.getDescriptor(), EPOLL_CTL_DEL, descriptor, NULL);
|
||||
}
|
||||
|
||||
void Socket::shutdown() {
|
||||
coreutils::Log(coreutils::LOG_DEBUG_2) << "Shutdown requested on socket " << descriptor << ".";
|
||||
void Socket::shutdown(std::string text) {
|
||||
coreutils::Log(coreutils::LOG_DEBUG_2) << "Shutdown requested on socket " << descriptor << " with reason " << text << ".";
|
||||
shutDown = true;
|
||||
enable(false);
|
||||
active = false;
|
||||
delete this;
|
||||
}
|
||||
|
||||
|
||||
@@ -34,11 +34,16 @@ namespace core {
|
||||
public:
|
||||
|
||||
Socket(EPoll &ePoll);
|
||||
Socket(EPoll &ePoll, std::string text);
|
||||
~Socket();
|
||||
|
||||
///
|
||||
/// Use the shutdown() method to terminate the socket connection and remove resources.
|
||||
/// This method is provided to ensure that all destructors are called for all inherited
|
||||
/// objects without a virtual destructor.
|
||||
///
|
||||
|
||||
void shutdown();
|
||||
void shutdown(std::string text = "unknown");
|
||||
|
||||
///
|
||||
/// setDescriptor establishes the file descriptor for the socket and registers the socket
|
||||
@@ -68,13 +73,13 @@ namespace core {
|
||||
/// simulated.
|
||||
///
|
||||
|
||||
void eventReceived(struct epoll_event event); ///< Parse epoll event and call specified callbacks.
|
||||
bool eventReceived(struct epoll_event event); ///< Parse epoll event and call specified callbacks.
|
||||
|
||||
///
|
||||
/// Write data to the socket.
|
||||
///
|
||||
|
||||
void write(std::string data);
|
||||
int write(std::string data);
|
||||
void write(char *buffer, int length);
|
||||
|
||||
void output(std::stringstream &out);
|
||||
@@ -98,7 +103,9 @@ namespace core {
|
||||
|
||||
virtual void onUnregister(); ///< Called when the socket has finished unregistering for the epoll processing.
|
||||
|
||||
void enable(bool mode); ///< Enable the socket to read or write based upon buffer.
|
||||
bool needsToWrite();
|
||||
|
||||
bool active = false;
|
||||
|
||||
protected:
|
||||
|
||||
@@ -130,7 +137,9 @@ namespace core {
|
||||
/// @param data the data that has been received from the socket.
|
||||
///
|
||||
|
||||
virtual void onDataReceived(std::string data) = 0; ///< Called when data is received from the socket.
|
||||
virtual void onDataReceived(std::string data); ///< Called when data is received from the socket.
|
||||
|
||||
virtual void onDataReceived(char *buffer, int len);
|
||||
|
||||
///
|
||||
/// receiveData will read the data from the socket and place it in the socket buffer.
|
||||
@@ -141,23 +150,13 @@ namespace core {
|
||||
|
||||
private:
|
||||
|
||||
std::string text;
|
||||
int descriptor = -1;
|
||||
std::mutex lock;
|
||||
std::mutex socketLock;
|
||||
bool readHangup = false;
|
||||
|
||||
struct epoll_event event; // Event selection construction structure.
|
||||
|
||||
//--------------------------------------------------
|
||||
// These are used to schedule the socket activity.
|
||||
//--------------------------------------------------
|
||||
|
||||
void setRead(); ///< Queue a request to read from this socket.
|
||||
void setWrite(); ///< Queue a request to write to this socket.
|
||||
void setReadWrite();
|
||||
void resetRead();
|
||||
void resetWrite();;
|
||||
void resetReadWrite();
|
||||
void clear();
|
||||
// struct epoll_event event; // Event selection construction structure.
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
// the writeSocket is called when epoll has received a write request for a socket.
|
||||
@@ -182,8 +181,6 @@ namespace core {
|
||||
|
||||
std::queue<std::string> fifo;
|
||||
|
||||
bool active = false;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -6,17 +6,19 @@
|
||||
|
||||
namespace core {
|
||||
|
||||
TCPServer::TCPServer(EPoll &ePoll, IPAddress address) : TCPSocket(ePoll) {
|
||||
TCPServer::TCPServer(EPoll &ePoll, IPAddress address, std::string text)
|
||||
: TCPSocket(ePoll, text) {
|
||||
setDescriptor(socket(AF_INET, SOCK_STREAM, 0));
|
||||
int yes = 1;
|
||||
setsockopt(getDescriptor(), SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(int));
|
||||
if(bind(getDescriptor(), address.getPointer(), address.addressLength) < 0)
|
||||
throw coreutils::Exception("Error on bind to socket: " + std::to_string(errno));
|
||||
if(listen(getDescriptor(), 10) < 0)
|
||||
if(listen(getDescriptor(), 20) < 0)
|
||||
throw coreutils::Exception("Error on listen to socket");
|
||||
}
|
||||
|
||||
TCPServer::~TCPServer() {
|
||||
coreutils::Log(coreutils::LOG_DEBUG_2) << "Closing server socket " << getDescriptor() << ".";
|
||||
close(getDescriptor());
|
||||
}
|
||||
|
||||
@@ -52,7 +54,7 @@ namespace core {
|
||||
sessions.erase(cursor);
|
||||
}
|
||||
|
||||
void TCPServer::sessionErrorHandler(std::string errorString) {
|
||||
void TCPServer::sessionErrorHandler(std::string errorString, std::stringstream &out) {
|
||||
throw coreutils::Exception(errorString);
|
||||
}
|
||||
|
||||
@@ -61,7 +63,9 @@ namespace core {
|
||||
}
|
||||
|
||||
void TCPServer::output(TCPSession *session) {
|
||||
session->out << "|" << session->ipAddress.getClientAddressAndPort();
|
||||
std::stringstream out;
|
||||
out << "|" << session->ipAddress.getClientAddressAndPort();
|
||||
session->send(out.str());
|
||||
}
|
||||
|
||||
int TCPServer::processCommand(std::string command, TCPSession *session, std::stringstream &data) {
|
||||
|
||||
@@ -35,7 +35,7 @@ namespace core {
|
||||
/// @return the instance of the BMATCPServerSocket.
|
||||
///
|
||||
|
||||
TCPServer(EPoll &ePoll, IPAddress address);
|
||||
TCPServer(EPoll &ePoll, IPAddress address, std::string text = "");
|
||||
|
||||
///
|
||||
/// The destructor for this object.
|
||||
@@ -50,6 +50,7 @@ namespace core {
|
||||
///
|
||||
|
||||
IPAddressList *blackList;
|
||||
|
||||
///
|
||||
/// If not NULL the blacklist object can be assigned to this server socket and the server
|
||||
/// IP addresses connecting to the server attempting to accept a socket are contained in
|
||||
@@ -60,7 +61,7 @@ namespace core {
|
||||
|
||||
void removeFromSessionList(TCPSession *session);
|
||||
|
||||
virtual void sessionErrorHandler(std::string errorString);
|
||||
virtual void sessionErrorHandler(std::string errorString, std::stringstream &out);
|
||||
|
||||
///
|
||||
/// getSocketAccept is designed to allow a polymorphic extension of this object to
|
||||
|
||||
@@ -1,11 +1,14 @@
|
||||
#include "TCPSession.h"
|
||||
#include "TCPServer.h"
|
||||
#include "Log.h"
|
||||
#include "PString.h"
|
||||
|
||||
namespace core {
|
||||
|
||||
TCPSession::TCPSession(EPoll &ePoll, TCPServer &server) : TCPSocket(ePoll), server(server) {}
|
||||
|
||||
TCPSession::TCPSession(EPoll &ePoll, TCPServer &server, std::string text) : TCPSocket(ePoll, text), server(server) {}
|
||||
|
||||
TCPSession::~TCPSession() {
|
||||
server.removeFromSessionList(this);
|
||||
}
|
||||
@@ -14,43 +17,45 @@ namespace core {
|
||||
data << "|" << ipAddress.getClientAddressAndPort();
|
||||
}
|
||||
|
||||
void TCPSession::protocol(std::string data = "") {
|
||||
void TCPSession::protocol(std::stringstream &out, std::string data = "") {
|
||||
if(data.length() > 0) {
|
||||
if(!server.commands.processRequest(data, this, out))
|
||||
server.sessionErrorHandler("Invalid data received.");
|
||||
send();
|
||||
server.sessionErrorHandler("Invalid data received.", out);
|
||||
}
|
||||
else {
|
||||
onConnected(out);
|
||||
}
|
||||
}
|
||||
|
||||
void TCPSession::onRegister() {
|
||||
protocol();
|
||||
std::stringstream out;
|
||||
protocol(out);
|
||||
send(out.str());
|
||||
}
|
||||
|
||||
void TCPSession::onConnected(std::stringstream &out) {}
|
||||
|
||||
void TCPSession::onDataReceived(std::string data) {
|
||||
protocol(data);
|
||||
std::stringstream out;
|
||||
protocol(out, data);
|
||||
send(out.str());
|
||||
}
|
||||
|
||||
void TCPSession::sendToAll() {
|
||||
for(auto session : server.sessions) {
|
||||
void TCPSession::sendToAll(std::string data) {
|
||||
for(auto session : server.sessions)
|
||||
if(session != this)
|
||||
session->write(out.str());
|
||||
}
|
||||
out.str("");
|
||||
session->write(data);
|
||||
}
|
||||
|
||||
void TCPSession::sendToAll(SessionFilter filter) {
|
||||
for(auto session : server.sessions) {
|
||||
if(filter.test(*session)) {
|
||||
void TCPSession::sendToAll(SessionFilter filter, std::string data) {
|
||||
for(auto session : server.sessions)
|
||||
if(filter.test(*session))
|
||||
if(session != this)
|
||||
session->write(out.str());
|
||||
}
|
||||
}
|
||||
out.str("");
|
||||
session->write(data);
|
||||
}
|
||||
|
||||
void TCPSession::send() {
|
||||
write(out.str());
|
||||
out.str("");
|
||||
void TCPSession::send(std::string data) {
|
||||
write(data);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -6,6 +6,8 @@
|
||||
|
||||
namespace core {
|
||||
|
||||
class Command;
|
||||
|
||||
class TCPServer;
|
||||
|
||||
///
|
||||
@@ -22,8 +24,11 @@ namespace core {
|
||||
|
||||
public:
|
||||
TCPSession(EPoll &ePoll, TCPServer &server);
|
||||
TCPSession(EPoll &ePoll, TCPServer &server, std::string text);
|
||||
~TCPSession();
|
||||
|
||||
Command *grab = NULL;
|
||||
|
||||
virtual void output(std::stringstream &data);
|
||||
|
||||
///
|
||||
@@ -31,14 +36,14 @@ namespace core {
|
||||
/// to the session containing the stream.
|
||||
///
|
||||
|
||||
void send();
|
||||
void send(std::string data);
|
||||
|
||||
///
|
||||
/// Use this sendToAll method to output the contents of the out stream
|
||||
/// to all the connections on the server excluding the sender session.
|
||||
///
|
||||
|
||||
void sendToAll();
|
||||
void sendToAll(std::string data);
|
||||
|
||||
///
|
||||
/// Use this sendToAll method to output the contents of the out stream
|
||||
@@ -46,9 +51,7 @@ namespace core {
|
||||
/// and the entries identified by the passed in filter object.
|
||||
///
|
||||
|
||||
void sendToAll(SessionFilter filter);
|
||||
|
||||
std::stringstream out;
|
||||
void sendToAll(SessionFilter filter, std::string data);
|
||||
|
||||
TCPServer &server;
|
||||
|
||||
@@ -57,6 +60,14 @@ namespace core {
|
||||
virtual void onDataReceived(std::string data) override;
|
||||
virtual void onRegister() override;
|
||||
|
||||
///
|
||||
/// This method is called from within the protocol method when protocol is called
|
||||
/// on the initial connection where the data is an empty string. Use this method
|
||||
/// to deliver a message to the connection upon connection.
|
||||
///
|
||||
|
||||
virtual void onConnected(std::stringstream &out);
|
||||
|
||||
///
|
||||
/// Override the protocol method to manage and control the session communications
|
||||
/// in your inherited session. If you do not override this method then the Session
|
||||
@@ -64,7 +75,11 @@ namespace core {
|
||||
/// processRequest method on the session input.
|
||||
///
|
||||
|
||||
virtual void protocol(std::string data);
|
||||
virtual void protocol(std::stringstream &out, std::string data);
|
||||
|
||||
private:
|
||||
|
||||
std::mutex mtx;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -7,6 +7,8 @@ namespace core {
|
||||
|
||||
TCPSocket::TCPSocket(EPoll &ePoll) : Socket(ePoll) {}
|
||||
|
||||
TCPSocket::TCPSocket(EPoll &ePoll, std::string text) : Socket(ePoll, text) {}
|
||||
|
||||
TCPSocket::~TCPSocket() {}
|
||||
|
||||
void TCPSocket::connect(IPAddress &address) {
|
||||
|
||||
@@ -22,6 +22,7 @@ namespace core {
|
||||
public:
|
||||
|
||||
TCPSocket(EPoll &ePoll);
|
||||
TCPSocket(EPoll &ePoll, std::string text);
|
||||
~TCPSocket();
|
||||
|
||||
void connect(IPAddress &address);
|
||||
|
||||
@@ -82,7 +82,7 @@ namespace core {
|
||||
|
||||
}
|
||||
|
||||
void TLSSession::protocol(std::string data) {
|
||||
void TLSSession::protocol(std::stringstream &out, std::string data) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ namespace core {
|
||||
///
|
||||
|
||||
virtual void output(std::stringstream &out);
|
||||
virtual void protocol(std::string data) override;
|
||||
virtual void protocol(std::stringstream &out, std::string data) override;
|
||||
|
||||
protected:
|
||||
void receiveData(char *buffer, int bufferLength) override;
|
||||
|
||||
@@ -46,6 +46,8 @@ namespace core {
|
||||
void PreviousLine(int lines);
|
||||
void scrollArea(int start, int end);
|
||||
|
||||
std::stringstream out;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -60,12 +60,12 @@ namespace core {
|
||||
} else if(rc > 0) {
|
||||
for(int ix = 0; ix < rc; ++ix) {
|
||||
++count;
|
||||
// std::cout << "Event " << events[ix].events << " on socket " << events[ix].data.fd << " on thread " << getThreadId() << ": ";
|
||||
// std::cout << ((events[ix].events & EPOLLIN) ? "EPOLLIN ": "");
|
||||
// std::cout << ((events[ix].events & EPOLLOUT) ? "EPOLLOUT ": "");
|
||||
// std::cout << ((events[ix].events & EPOLLRDHUP) ? "EPOLLRDHUP ": "");
|
||||
// std::cout << ((events[ix].events & EPOLLHUP) ? "EPOLLHUP ": "");
|
||||
// std::cout << "." << std::endl;
|
||||
std::cout << "Event " << events[ix].events << " on socket " << events[ix].data.fd << " on thread " << getThreadId() << ": ";
|
||||
std::cout << ((events[ix].events & EPOLLIN) ? "EPOLLIN ": "");
|
||||
std::cout << ((events[ix].events & EPOLLWRNORM) ? "EPOLLWRNORM ": "");
|
||||
std::cout << ((events[ix].events & EPOLLRDHUP) ? "EPOLLRDHUP ": "");
|
||||
std::cout << ((events[ix].events & EPOLLHUP) ? "EPOLLHUP ": "");
|
||||
std::cout << "." << std::endl;
|
||||
ePoll.eventReceived(events[ix]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
namespace core {
|
||||
|
||||
Timer::Timer(EPoll &ePoll, double delay = 0.0f) : Socket(ePoll) {
|
||||
Timer::Timer(EPoll &ePoll, double delay = 0.0f) : Socket(ePoll, "Timer") {
|
||||
setDescriptor(timerfd_create(CLOCK_REALTIME, 0));
|
||||
ePoll.registerSocket(this);
|
||||
setTimer(delay);
|
||||
|
||||
@@ -27,3 +27,6 @@ else
|
||||
exit -1
|
||||
fi
|
||||
|
||||
echo -n "Building library documentation manual..."
|
||||
doxygen docs/latex/doxygen.sty >/dev/null 2>/dev/null
|
||||
echo "OK"
|
||||
|
After Width: | Height: | Size: 676 B |
|
After Width: | Height: | Size: 147 B |
|
After Width: | Height: | Size: 132 B |
|
After Width: | Height: | Size: 746 B |
|
After Width: | Height: | Size: 3.7 KiB |
@@ -0,0 +1,97 @@
|
||||
function toggleVisibility(linkObj)
|
||||
{
|
||||
var base = $(linkObj).attr('id');
|
||||
var summary = $('#'+base+'-summary');
|
||||
var content = $('#'+base+'-content');
|
||||
var trigger = $('#'+base+'-trigger');
|
||||
var src=$(trigger).attr('src');
|
||||
if (content.is(':visible')===true) {
|
||||
content.hide();
|
||||
summary.show();
|
||||
$(linkObj).addClass('closed').removeClass('opened');
|
||||
$(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
|
||||
} else {
|
||||
content.show();
|
||||
summary.hide();
|
||||
$(linkObj).removeClass('closed').addClass('opened');
|
||||
$(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function updateStripes()
|
||||
{
|
||||
$('table.directory tr').
|
||||
removeClass('even').filter(':visible:even').addClass('even');
|
||||
}
|
||||
|
||||
function toggleLevel(level)
|
||||
{
|
||||
$('table.directory tr').each(function() {
|
||||
var l = this.id.split('_').length-1;
|
||||
var i = $('#img'+this.id.substring(3));
|
||||
var a = $('#arr'+this.id.substring(3));
|
||||
if (l<level+1) {
|
||||
i.removeClass('iconfopen iconfclosed').addClass('iconfopen');
|
||||
a.html('▼');
|
||||
$(this).show();
|
||||
} else if (l==level+1) {
|
||||
i.removeClass('iconfclosed iconfopen').addClass('iconfclosed');
|
||||
a.html('►');
|
||||
$(this).show();
|
||||
} else {
|
||||
$(this).hide();
|
||||
}
|
||||
});
|
||||
updateStripes();
|
||||
}
|
||||
|
||||
function toggleFolder(id)
|
||||
{
|
||||
// the clicked row
|
||||
var currentRow = $('#row_'+id);
|
||||
|
||||
// all rows after the clicked row
|
||||
var rows = currentRow.nextAll("tr");
|
||||
|
||||
var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
|
||||
|
||||
// only match elements AFTER this one (can't hide elements before)
|
||||
var childRows = rows.filter(function() { return this.id.match(re); });
|
||||
|
||||
// first row is visible we are HIDING
|
||||
if (childRows.filter(':first').is(':visible')===true) {
|
||||
// replace down arrow by right arrow for current row
|
||||
var currentRowSpans = currentRow.find("span");
|
||||
currentRowSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
|
||||
currentRowSpans.filter(".arrow").html('►');
|
||||
rows.filter("[id^=row_"+id+"]").hide(); // hide all children
|
||||
} else { // we are SHOWING
|
||||
// replace right arrow by down arrow for current row
|
||||
var currentRowSpans = currentRow.find("span");
|
||||
currentRowSpans.filter(".iconfclosed").removeClass("iconfclosed").addClass("iconfopen");
|
||||
currentRowSpans.filter(".arrow").html('▼');
|
||||
// replace down arrows by right arrows for child rows
|
||||
var childRowsSpans = childRows.find("span");
|
||||
childRowsSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
|
||||
childRowsSpans.filter(".arrow").html('►');
|
||||
childRows.show(); //show all children
|
||||
}
|
||||
updateStripes();
|
||||
}
|
||||
|
||||
|
||||
function toggleInherit(id)
|
||||
{
|
||||
var rows = $('tr.inherit.'+id);
|
||||
var img = $('tr.inherit_header.'+id+' img');
|
||||
var src = $(img).attr('src');
|
||||
if (rows.filter(':first').is(':visible')===true) {
|
||||
rows.css('display','none');
|
||||
$(img).attr('src',src.substring(0,src.length-8)+'closed.png');
|
||||
} else {
|
||||
rows.css('display','table-row'); // using show() causes jump in firefox
|
||||
$(img).attr('src',src.substring(0,src.length-10)+'open.png');
|
||||
}
|
||||
}
|
||||
|
||||
|
After Width: | Height: | Size: 616 B |
|
After Width: | Height: | Size: 597 B |
@@ -0,0 +1,102 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<meta name="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>My Project: Graph Legend</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td id="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">My Project
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript">
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="javascript:void(0)" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">Graph Legend</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<p>This page explains how to interpret the graphs that are generated by doxygen.</p>
|
||||
<p>Consider the following example: </p><div class="fragment"><div class="line">/*! Invisible class because of truncation */</div><div class="line">class Invisible { };</div><div class="line"></div><div class="line">/*! Truncated class, inheritance relation is hidden */</div><div class="line">class Truncated : public Invisible { };</div><div class="line"></div><div class="line">/* Class not documented with doxygen comments */</div><div class="line">class Undocumented { };</div><div class="line"></div><div class="line">/*! Class that is inherited using public inheritance */</div><div class="line">class PublicBase : public Truncated { };</div><div class="line"></div><div class="line">/*! A template class */</div><div class="line">template<class T> class Templ { };</div><div class="line"></div><div class="line">/*! Class that is inherited using protected inheritance */</div><div class="line">class ProtectedBase { };</div><div class="line"></div><div class="line">/*! Class that is inherited using private inheritance */</div><div class="line">class PrivateBase { };</div><div class="line"></div><div class="line">/*! Class that is used by the Inherited class */</div><div class="line">class Used { };</div><div class="line"></div><div class="line">/*! Super class that inherits a number of other classes */</div><div class="line">class Inherited : public PublicBase,</div><div class="line"> protected ProtectedBase,</div><div class="line"> private PrivateBase,</div><div class="line"> public Undocumented,</div><div class="line"> public Templ<int></div><div class="line">{</div><div class="line"> private:</div><div class="line"> Used *m_usedClass;</div><div class="line">};</div></div><!-- fragment --><p> This will result in the following graph:</p>
|
||||
<center><div class="image">
|
||||
<img src="graph_legend.png"/>
|
||||
</div>
|
||||
</center><p>The boxes in the above graph have the following meaning: </p>
|
||||
<ul>
|
||||
<li>
|
||||
A filled gray box represents the struct or class for which the graph is generated. </li>
|
||||
<li>
|
||||
A box with a black border denotes a documented struct or class. </li>
|
||||
<li>
|
||||
A box with a gray border denotes an undocumented struct or class. </li>
|
||||
<li>
|
||||
A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries. </li>
|
||||
</ul>
|
||||
<p>The arrows have the following meaning: </p>
|
||||
<ul>
|
||||
<li>
|
||||
A dark blue arrow is used to visualize a public inheritance relation between two classes. </li>
|
||||
<li>
|
||||
A dark green arrow is used for protected inheritance. </li>
|
||||
<li>
|
||||
A dark red arrow is used for private inheritance. </li>
|
||||
<li>
|
||||
A purple dashed arrow is used if a class is contained or used by another class. The arrow is labelled with the variable(s) through which the pointed class or struct is accessible. </li>
|
||||
<li>
|
||||
A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labelled with the template parameters of the instance. </li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.13
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1 @@
|
||||
387ff8eb65306fa251338d3c9bd7bfff
|
||||
|
After Width: | Height: | Size: 20 KiB |
@@ -0,0 +1,73 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<meta name="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>My Project: Main Page</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td id="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">My Project
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript">
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="javascript:void(0)" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">My Project Documentation</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.13
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,87 @@
|
||||
/*!
|
||||
* jQuery JavaScript Library v1.7.1
|
||||
* http://jquery.com/
|
||||
*
|
||||
* Copyright 2011, John Resig
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* Includes Sizzle.js
|
||||
* http://sizzlejs.com/
|
||||
* Copyright 2011, The Dojo Foundation
|
||||
* Released under the MIT, BSD, and GPL Licenses.
|
||||
*
|
||||
* Date: Mon Nov 21 21:11:03 2011 -0500
|
||||
*/
|
||||
(function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b4<b3;b4++){if((b9=arguments[b4])!=null){for(b2 in b9){b0=b5[b2];b1=b9[b2];if(b5===b1){continue}if(b8&&b1&&(bF.isPlainObject(b1)||(b6=bF.isArray(b1)))){if(b6){b6=false;b7=b0&&bF.isArray(b0)?b0:[]}else{b7=b0&&bF.isPlainObject(b0)?b0:{}}b5[b2]=bF.extend(b8,b7,b1)}else{if(b1!==L){b5[b2]=b1}}}}}return b5};bF.extend({noConflict:function(b0){if(bb.$===bF){bb.$=bH}if(b0&&bb.jQuery===bF){bb.jQuery=bU}return bF},isReady:false,readyWait:1,holdReady:function(b0){if(b0){bF.readyWait++}else{bF.ready(true)}},ready:function(b0){if((b0===true&&!--bF.readyWait)||(b0!==true&&!bF.isReady)){if(!av.body){return setTimeout(bF.ready,1)}bF.isReady=true;if(b0!==true&&--bF.readyWait>0){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.cLine truncated
|
||||
/*!
|
||||
* Sizzle CSS Selector Engine
|
||||
* Copyright 2011, The Dojo Foundation
|
||||
* Released under the MIT, BSD, and GPL Licenses.
|
||||
* More information: http://sizzlejs.com/
|
||||
*/
|
||||
(function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e<bR.length;e++){if(bR[e]===bR[e-1]){bR.splice(e--,1)}}}}return bR};by.matches=function(e,bR){return by(e,null,null,bR)};by.matchesSelector=function(e,bR){return by(bR,null,null,[e]).length>0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS<bU;bS++){bV=bE.order[bS];if((bT=bE.leftMatch[bV].exec(bX))){bR=bT[1];bT.splice(1,1);if(bR.substr(bR.length-1)!=="\\"){bT[1]=(bT[1]||"").replace(bK,"");bW=bE.find[bV](bT,e,bY);if(bW!=null){bX=bX.replace(bE.match[bV],"");break}}}}if(!bW){bW=typeof e.getElementsByTagName!=="undefined"?e.getElementsByTagName("*"):[]}return{set:bW,expr:bX}};by.filter=function(b1,b0,b4,bU){var bW,e,bZ,b6,b3,bR,bT,bV,b2,bS=b1,b5=[],bY=b0,bX=b0&&b0[0]&&by.isXML(b0[0]);while(b1&&b0.length){for(bZ in bE.filter){if((bW=bE.leftMatch[bZ].exec(b1))!=null&&bW[2]){bR=bE.filter[bZ];bT=bW[1];e=false;bW.splice(1,1);if(bT.substr(bT.length-1)==="\\"){continue}if(bY===b5){b5=[]}if(bE.preFilter[bZ]){bW=bE.preFilter[bZ](bW,bY,b4,b5,bU,bX);if(!bW){e=b6=true}else{if(bW===true){continue}}}if(bW){for(bV=0;(b3=bY[bV])!=null;bV++){if(b3){b6=bR(b3,bW,bV,bY);b2=bU^b6;if(b4&&b6!=null){if(b2){e=true}else{bY[bV]=false}}else{if(b2){b5.push(b3);e=true}}}}}if(b6!==L){if(!b4){bY=b5}b1=b1.replace(bE.match[bZ],"");if(!e){return[]}break}}}if(b1===bS){if(e==null){by.error(b1)}else{break}}bS=b1}return bY};by.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)};var bw=by.getText=function(bU){var bS,bT,e=bU.nodeType,bR="";if(e){if(e===1||e===9){if(typeof bU.textContent==="string"){return bU.textContent}else{if(typeof bU.innerText==="string"){return bU.innerText.replace(bO,"")}else{for(bU=bU.firstChild;bU;bU=bU.nextSibling){bR+=bw(bU)}}}}else{if(e===3||e===4){return bU.nodeValue}}}else{for(bS=0;(bT=bU[bS]);bS++){if(bT.nodeType!==8){bR+=bw(bT)}}}return bR};var bE=by.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(e){return e.getAttribute("href")},type:function(e){return e.getAttribute("type")}},relative:{"+":function(bW,bR){var bT=typeof bR==="string",bV=bT&&!bQ.test(bR),bX=bT&&!bV;if(bV){bR=bR.toLowerCase()}for(var bS=0,e=bW.length,bU;bS<e;bS++){if((bU=bW[bS])){while((bU=bU.previousSibling)&&bU.nodeType!==1){}bW[bS]=bX||bU&&bU.nodeName.toLowerCase()===bR?bU||false:bU===bR}}if(bX){by.filter(bR,bW,true)}},">":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS<e;bS++){bV=bW[bS];if(bV){var bT=bV.parentNode;bW[bS]=bT.nodeName.toLowerCase()===bR?bT:false}}}elseLine truncated
|
||||
* jQuery UI 1.8.18
|
||||
*
|
||||
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI
|
||||
*/
|
||||
(function(a,d){a.ui=a.ui||{};if(a.ui.version){return}a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(e,f){return typeof e==="number"?this.each(function(){var g=this;setTimeout(function(){a(g).focus();if(f){f.call(g)}},e)}):this._focus.apply(this,arguments)},scrollParent:function(){var e;if((a.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){e=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(a.curCSS(this,"position",1))&&(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}else{e=this.parents().filter(function(){return(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!e.length?a(document):e},zIndex:function(h){if(h!==d){return this.css("zIndex",h)}if(this.length){var f=a(this[0]),e,g;while(f.length&&f[0]!==document){e=f.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){g=parseInt(f.css("zIndex"),10);if(!isNaN(g)&&g!==0){return g}}f=f.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});a.each(["Width","Height"],function(g,e){var f=e==="Width"?["Left","Right"]:["Top","Bottom"],h=e.toLowerCase(),k={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};function j(m,l,i,n){a.each(f,function(){l-=parseFloat(a.curCSS(m,"padding"+this,true))||0;if(i){l-=parseFloat(a.curCSS(m,"border"+this+"Width",true))||0}if(n){l-=parseFloat(a.curCSS(m,"margin"+this,true))||0}});return l}a.fn["inner"+e]=function(i){if(i===d){return k["inner"+e].call(this)}return this.each(function(){a(this).css(h,j(this,i)+"px")})};a.fn["outer"+e]=function(i,l){if(typeof i!=="number"){return k["outer"+e].call(this,i)}return this.each(function(){a(this).css(h,j(this,i,true,l)+"px")})}});function c(g,e){var j=g.nodeName.toLowerCase();if("area"===j){var i=g.parentNode,h=i.name,f;if(!g.href||!h||i.nodeName.toLowerCase()!=="map"){return false}f=a("img[usemap=#"+h+"]")[0];return !!f&&b(f)}return(/input|select|textarea|button|object/.test(j)?!g.disabled:"a"==j?g.href||e:e)&&b(g)}function b(e){return !a(e).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.extend(a.expr[":"],{data:function(g,f,e){return !!a.data(g,e[3])},focusable:function(e){return c(e,!isNaN(a.attr(e,"tabindex")))},tabbable:function(g){var e=a.attr(g,"tabindex"),f=isNaN(e);return(f||e>=0)&&c(g,!f)}});a(function(){var e=document.body,f=e.appendChild(f=document.createElement("div"));f.offsetHeight;a.extend(f.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});a.support.minHeight=f.offsetHeight===100;a.support.selectstart="onselectstart" in f;e.removeChild(f).style.display="none"});a.extend(a.ui,{plugin:{add:function(f,g,j){var h=a.ui[f].prototype;for(var e in j){h.plugins[e]=h.plugins[e]||[];h.plugins[e].push([g,j[e]])}},call:function(e,g,f){var j=e.plugins[g];if(!j||!e.element[0].parentNode){return}for(var h=0;h<j.length;h++){if(e.options[j[h][0]]){j[h][1].apply(e.element,f)}}}},contains:function(f,e){return document.compareDocumentPosition?f.compareDocumentPosition(e)&16:f!==e&&f.contains(e)},hasScroll:function(h,f){if(a(h).css("overflow")==="hidden"){return false}var e=(f&&f==="left")?"scrollLeft":"scrollTop",g=false;if(h[e]>0){return true}h[e]=1;g=(h[e]>0);h[e]=0;return g},isOverAxis:function(f,e,g){return(f>e)&&(f<(e+g))},isOver:function(j,f,i,h,e,g){return a.ui.isOverAxis(j,i,e)&&a.ui.isOverAxis(f,h,g)}})})(jQuery);/*!
|
||||
* jQuery UI Widget 1.8.18
|
||||
*
|
||||
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Widget
|
||||
*/
|
||||
(function(b,d){if(b.cleanData){var c=b.cleanData;b.cleanData=function(f){for(var g=0,h;(h=f[g])!=null;g++){try{b(h).triggerHandler("remove")}catch(j){}}c(f)}}else{var a=b.fn.remove;b.fn.remove=function(e,f){return this.each(function(){if(!f){if(!e||b.filter(e,[this]).length){b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(g){}})}}return a.call(b(this),e,f)})}}b.widget=function(f,h,e){var g=f.split(".")[0],j;f=f.split(".")[1];j=g+"-"+f;if(!e){e=h;h=b.Widget}b.expr[":"][j]=function(k){return !!b.data(k,f)};b[g]=b[g]||{};b[g][f]=function(k,l){if(arguments.length){this._createWidget(k,l)}};var i=new h();i.options=b.extend(true,{},i.options);b[g][f].prototype=b.extend(true,i,{namespace:g,widgetName:f,widgetEventPrefix:b[g][f].prototype.widgetEventPrefix||f,widgetBaseClass:j},e);b.widget.bridge(f,b[g][f])};b.widget.bridge=function(f,e){b.fn[f]=function(i){var g=typeof i==="string",h=Array.prototype.slice.call(arguments,1),j=this;i=!g&&h.length?b.extend.apply(null,[true,i].concat(h)):i;if(g&&i.charAt(0)==="_"){return j}if(g){this.each(function(){var k=b.data(this,f),l=k&&b.isFunction(k[i])?k[i].apply(k,h):k;if(l!==k&&l!==d){j=l;return false}})}else{this.each(function(){var k=b.data(this,f);if(k){k.option(i||{})._init()}else{b.data(this,f,new e(i,this))}})}return j}};b.Widget=function(e,f){if(arguments.length){this._createWidget(e,f)}};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(f,g){b.data(g,this.widgetName,this);this.element=b(g);this.options=b.extend(true,{},this.options,this._getCreateOptions(),f);var e=this;this.element.bind("remove."+this.widgetName,function(){e.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(f,g){var e=f;if(arguments.length===0){return b.extend({},this.options)}if(typeof f==="string"){if(g===d){return this.options[f]}e={};e[f]=g}this._setOptions(e);return this},_setOptions:function(f){var e=this;b.each(f,function(g,h){e._setOption(g,h)});return this},_setOption:function(e,f){this.options[e]=f;if(e==="disabled"){this.widget()[f?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",f)}return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(e,f,g){var j,i,h=this.options[e];g=g||{};f=b.Event(f);f.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase();f.target=this.element[0];i=f.originalEvent;if(i){for(j in i){if(!(j in f)){f[j]=i[j]}}}this.element.trigger(f,g);return !(b.isFunction(h)&&h.call(this.element[0],f,g)===false||f.isDefaultPrevented())}}})(jQuery);/*!
|
||||
* jQuery UI Mouse 1.8.18
|
||||
*
|
||||
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Mouse
|
||||
*
|
||||
* Depends:
|
||||
* jquery.ui.widget.js
|
||||
*/
|
||||
(function(b,c){var a=false;b(document).mouseup(function(d){a=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var d=this;this.element.bind("mousedown."+this.widgetName,function(e){return d._mouseDown(e)}).bind("click."+this.widgetName,function(e){if(true===b.data(e.target,d.widgetName+".preventClickEvent")){b.removeData(e.target,d.widgetName+".preventClickEvent");e.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(f){if(a){return}(this._mouseStarted&&this._mouseUp(f));this._mouseDownEvent=f;var e=this,g=(f.which==1),d=(typeof this.options.cancel=="string"&&f.target.nodeName?b(f.target).closest(this.options.cancel).length:false);if(!g||d||!this._mouseCapture(f)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(f)&&this._mouseDelayMet(f)){this._mouseStarted=(this._mouseStart(f)!==false);if(!this._mouseStarted){f.preventDefault();return true}}if(true===b.data(f.target,this.widgetName+".preventClickEvent")){b.removeData(f.target,this.widgetName+".preventClickEvent")}this._mouseMoveDelegate=function(h){return e._mouseMove(h)};this._mouseUpDelegate=function(h){return e._mouseUp(h)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);f.preventDefault();a=true;return true},_mouseMove:function(d){if(b.browser.msie&&!(document.documentMode>=9)&&!d.button){return this._mouseUp(d)}if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,d)!==false);(this._mouseStarted?this._mouseDrag(d):this._mouseUp(d))}return !this._mouseStarted},_mouseUp:function(d){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(d.target==this._mouseDownEvent.target){b.data(d.target,this.widgetName+".preventClickEvent",true)}this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return(Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance)},_mouseDelayMet:function(d){return this.mouseDelayMet},_mouseStart:function(d){},_mouseDrag:function(d){},_mouseStop:function(d){},_mouseCapture:function(d){return true}})})(jQuery);(function(c,d){c.widget("ui.resizable",c.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000},_create:function(){var f=this,k=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(k.aspectRatio),aspectRatio:k.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:k.helper||k.ghost||k.animate?k.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){this.element.wrap(c('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=k.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var l=this.handles.split(",");this.handles={};for(var g=0;g<l.length;g++){var j=c.trim(l[g]),e="ui-resizable-"+j;var h=c('<div class="ui-resizable-handle '+e+'"></div>');if(/sw|se|ne|nw/.test(j)){h.css({zIndex:++k.zIndex})}if("se"==j){h.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[j]=".ui-resizable-"+j;this.element.append(h)}}this._renderLine truncated
|
||||
* jQuery hashchange event - v1.3 - 7/21/2010
|
||||
* http://benalman.com/projects/jquery-hashchange-plugin/
|
||||
*
|
||||
* Copyright (c) 2010 "Cowboy" Ben Alman
|
||||
* Dual licensed under the MIT and GPL licenses.
|
||||
* http://benalman.com/about/license/
|
||||
*/
|
||||
(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$('<iframe tabindex="-1" title="empty"/>').hide().one("load",function(){r||l(a());n()}).attr("src",r||"javascript:0").insertAfter("body")[0].contentWindow;h.onpropertychange=function(){try{if(event.propertyName==="title"){q.document.title=h.title}}catch(s){}}}};j.stop=k;o=function(){return a(q.location.href)};l=function(v,s){var u=q.document,t=$.fn[c].domain;if(v!==s){u.title=h.title;u.open();t&&u.write('<script>document.domain="'+t+'"<\/script>');u.close();q.location.hash=v}}})();return j})()})(jQuery,this);(function(c){var a=c.scrollTo=function(f,e,d){c(window).scrollTo(f,e,d)};a.defaults={axis:"xy",duration:parseFloat(c.fn.jquery)>=1.3?0:1};a.window=function(d){return c(window)._scrollable()};c.fn._scrollable=function(){return this.map(function(){var e=this,d=!e.nodeName||c.inArray(e.nodeName.toLowerCase(),["iframe","#document","html","body"])!=-1;if(!d){return e}var f=(e.contentWindow||e).document||e.ownerDocument||e;return c.browser.safari||f.compatMode=="BackCompat"?f.body:f.documentElement})};c.fn.scrollTo=function(f,e,d){if(typeof e=="object"){d=e;e=0}if(typeof d=="function"){d={onAfter:d}}if(f=="max"){f=9000000000}d=c.extend({},a.defaults,d);e=e||d.speed||d.duration;d.queue=d.queue&&d.axis.length>1;if(d.queue){e/=2}d.offset=b(d.offset);d.over=b(d.over);return this._scrollable().each(function(){var l=this,j=c(l),k=f,i,g={},m=j.is("html,body");switch(typeof k){case"number":case"string":if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(k)){k=b(k);break}k=c(k,this);case"object":if(k.is||k.style){i=(k=c(k)).offset()}}c.each(d.axis.split(""),function(q,r){var s=r=="x"?"Left":"Top",u=s.toLowerCase(),p="scroll"+s,o=l[p],n=a.max(l,r);if(i){g[p]=i[u]+(m?0:o-j.offset()[u]);if(d.margin){g[p]-=parseInt(k.css("margin"+s))||0;g[p]-=parseInt(k.css("border"+s+"Width"))||0}g[p]+=d.offset[u]||0;if(d.over[u]){g[p]+=k[r=="x"?"width":"height"]()*d.over[u]}}else{var t=k[u];g[p]=t.slice&&t.slice(-1)=="%"?parseFloat(t)/100*n:t}if(/^\d+$/.test(g[p])){g[p]=g[p]<=0?0:Math.min(g[p],n)}if(!q&&d.queue){if(o!=g[p]){h(d.onAfterFirst)}delete g[p]}});h(d.onAfter);function h(n){j.animate(g,e,d.easing,n&&function(){n.call(this,f,d)})}}).end()};a.max=function(j,i){var h=i=="x"?"Width":"Height",e="scroll"+h;if(!c(j).is("html,body")){return j[e]-c(j)[h.toLowerCase()]()}var g="client"+h,f=j.ownerDocument.documentElement,d=j.ownerDocument.body;return Math.max(f[e],d[e])-Math.min(f[g],d[g])};function b(d){return typeof d=="object"?d:{top:d,left:d}}})(jQuery);/*!
|
||||
PowerTip - v1.2.0 - 2013-04-03
|
||||
http://stevenbenner.github.com/jquery-powertip/
|
||||
Copyright (c) 2013 Steven Benner (http://stevenbenner.com/).
|
||||
Released under MIT license.
|
||||
https://raw.github.com/stevenbenner/jquery-powertip/master/LICENSE.txt
|
||||
*/
|
||||
(function(a){if(typeof define==="function"&&define.amd){define(["jquery"],a)}else{a(jQuery)}}(function(k){var A=k(document),s=k(window),w=k("body");var n="displayController",e="hasActiveHover",d="forcedOpen",u="hasMouseMove",f="mouseOnToPopup",g="originalTitle",y="powertip",o="powertipjq",l="powertiptarget",E=180/Math.PI;var c={isTipOpen:false,isFixedTipOpen:false,isClosing:false,tipOpenImminent:false,activeHover:null,currentX:0,currentY:0,previousX:0,previousY:0,desyncTimeout:null,mouseTrackingActive:false,delayInProgress:false,windowWidth:0,windowHeight:0,scrollTop:0,scrollLeft:0};var p={none:0,top:1,bottom:2,left:4,right:8};k.fn.powerTip=function(F,N){if(!this.length){return this}if(k.type(F)==="string"&&k.powerTip[F]){return k.powerTip[F].call(this,this,N)}var O=k.extend({},k.fn.powerTip.defaults,F),G=new x(O);h();this.each(function M(){var R=k(this),Q=R.data(y),P=R.data(o),T=R.data(l),S;if(R.data(n)){k.powerTip.destroy(R)}S=R.attr("title");if(!Q&&!T&&!P&&S){R.data(y,S);R.data(g,S);R.removeAttr("title")}R.data(n,new t(R,O,G))});if(!O.manual){this.on({"mouseenter.powertip":function J(P){k.powerTip.show(this,P)},"mouseleave.powertip":function L(){k.powerTip.hide(this)},"focus.powertip":function K(){k.powerTip.show(this)},"blur.powertip":function H(){k.powerTip.hide(this,true)},"keydown.powertip":function I(P){if(P.keyCode===27){k.powerTip.hide(this,true)}}})}return this};k.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false};k.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};k.powerTip={show:function z(F,G){if(G){i(G);c.previousX=G.pageX;c.previousY=G.pageY;k(F).data(n).show()}else{k(F).first().data(n).show(true,true)}return F},reposition:function r(F){k(F).first().data(n).resetPosition();return F},hide:function D(G,F){if(G){k(G).first().data(n).hide(F)}else{if(c.activeHover){c.activeHover.data(n).hide(true)}}return G},destroy:function C(G){k(G).off(".powertip").each(function F(){var I=k(this),H=[g,n,e,d];if(I.data(g)){I.attr("title",I.data(g));H.push(y)}I.removeData(H)});return G}};k.powerTip.showTip=k.powerTip.show;k.powerTip.closeTip=k.powerTip.hide;function b(){var F=this;F.top="auto";F.left="auto";F.right="auto";F.bottom="auto";F.set=function(H,G){if(k.isNumeric(G)){F[H]=Math.round(G)}}}function t(K,N,F){var J=null;function L(P,Q){M();if(!K.data(e)){if(!P){c.tipOpenImminent=true;J=setTimeout(function O(){J=null;I()},N.intentPollInterval)}else{if(Q){K.data(d,true)}F.showTip(K)}}}function G(P){M();c.tipOpenImminent=false;if(K.data(e)){K.data(d,false);if(!P){c.delayInProgress=true;J=setTimeout(function O(){J=null;F.hideTip(K);c.delayInProgress=false},N.closeDelay)}else{F.hideTip(K)}}}function I(){var Q=Math.abs(c.previousX-c.currentX),O=Math.abs(c.previousY-c.currentY),P=Q+O;if(P<N.intentSensitivity){F.showTip(K)}else{c.previousX=c.currentX;c.previousY=c.currentY;L()}}function M(){J=clearTimeout(J);c.delayInProgress=false}function H(){F.resetPosition(K)}this.show=L;this.hide=G;this.cancel=M;this.resetPosition=H}function j(){function G(M,L,J,O,P){var K=L.split("-")[0],N=new b(),I;if(q(M)){I=H(M,K)}else{I=F(M,K)}switch(L){case"n":N.set("left",I.left-(J/2));N.set("bottom",c.windowHeight-I.top+P);break;case"e":N.set("left",I.left+P);N.set("top",I.top-(O/2));break;case"s":N.set("left",I.left-(J/2));N.set("top",I.top+P);break;case"w":N.set("top",I.top-(O/2));N.set("right",c.windowWidth-I.left+P);break;case"nw":N.set("bottom",c.windowHeight-I.top+P);N.set("right",c.windowWidth-I.left-20);break;case"nw-alt":N.set("left",I.left);N.set("bottom",c.windowHeight-I.top+P);break;case"ne":N.set("left",I.left-20);N.set("bottom",c.windowHeight-I.top+P);break;case"ne-alt":N.set("bottom",c.windowHeight-I.top+P);N.set("right",c.windowWidth-I.left);break;case"sw":N.set("top",I.top+P);N.set("right",c.windowWidth-I.left-20);break;case"sw-alt":N.set("left",I.left);N.set("top",I.top+P);break;case"se":N.set("left",I.left-20);N.set("top",I.top+P);break;case"se-alt":N.set("top",I.top+P);N.set("right",c.windowWidth-I.left);break}return N}function F(K,J){var O=K.offset(),N=K.outerWidth(),I=K.outerHeight(),M,L;switch(J){case"n":M=O.left+N/2;L=O.top;break;case"e":M=O.left+N;L=O.top+I/2;break;case"s":M=O.left+N/2;L=O.top+I;break;case"w":M=O.left;L=O.top+I/2;break;case"nw":M=O.left;L=O.top;break;case"ne":M=O.left+N;L=O.top;break;case"sw":M=O.left;L=O.top+I;bLine truncated
|
||||
* jQuery UI Touch Punch 0.2.3
|
||||
*
|
||||
* Copyright 2011–2014, Dave Furfero
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
*
|
||||
* Depends:
|
||||
* jquery.ui.widget.js
|
||||
* jquery.ui.mouse.js
|
||||
*/
|
||||
(function(b){b.support.touch="ontouchend" in document;if(!b.support.touch){return}var d=b.ui.mouse.prototype,f=d._mouseInit,c=d._mouseDestroy,a;function e(h,i){if(h.originalEvent.touches.length>1){return}h.preventDefault();var j=h.originalEvent.changedTouches[0],g=document.createEvent("MouseEvents");g.initMouseEvent(i,true,true,window,1,j.screenX,j.screenY,j.clientX,j.clientY,false,false,false,false,0,null);h.target.dispatchEvent(g)}d._touchStart=function(h){var g=this;if(a||!g._mouseCapture(h.originalEvent.changedTouches[0])){return}a=true;g._touchMoved=false;e(h,"mouseover");e(h,"mousemove");e(h,"mousedown")};d._touchMove=function(g){if(!a){return}this._touchMoved=true;e(g,"mousemove")};d._touchEnd=function(g){if(!a){return}e(g,"mouseup");e(g,"mouseout");if(!this._touchMoved){e(g,"click")}a=false};d._mouseInit=function(){var g=this;g.element.bind({touchstart:b.proxy(g,"_touchStart"),touchmove:b.proxy(g,"_touchMove"),touchend:b.proxy(g,"_touchEnd")});f.call(g)};d._mouseDestroy=function(){var g=this;g.element.unbind({touchstart:b.proxy(g,"_touchStart"),touchmove:b.proxy(g,"_touchMove"),touchend:b.proxy(g,"_touchEnd")});c.call(g)}})(jQuery);/*!
|
||||
* SmartMenus jQuery Plugin - v1.0.0 - January 27, 2016
|
||||
* http://www.smartmenus.org/
|
||||
*
|
||||
* Copyright Vasil Dinkov, Vadikom Web Ltd.
|
||||
* http://vadikom.com
|
||||
*
|
||||
* Licensed MIT
|
||||
*/
|
||||
(function(a){if(typeof define==="function"&&define.amd){define(["jquery"],a)}else{if(typeof module==="object"&&typeof module.exports==="object"){module.exports=a(require("jquery"))}else{a(jQuery)}}}(function(a){var b=[],e=!!window.createPopup,f=false,d="ontouchstart" in window,h=false,g=window.requestAnimationFrame||function(l){return setTimeout(l,1000/60)},c=window.cancelAnimationFrame||function(l){clearTimeout(l)};function k(m){var n=".smartmenus_mouse";if(!h&&!m){var o=true,l=null;a(document).bind(i([["mousemove",function(s){var t={x:s.pageX,y:s.pageY,timeStamp:new Date().getTime()};if(l){var q=Math.abs(l.x-t.x),p=Math.abs(l.y-t.y);if((q>0||p>0)&&q<=2&&p<=2&&t.timeStamp-l.timeStamp<=300){f=true;if(o){var r=a(s.target).closest("a");if(r.is("a")){a.each(b,function(){if(a.contains(this.$root[0],r[0])){this.itemEnter({currentTarget:r[0]});return false}})}o=false}}}l=t}],[d?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut",function(p){if(j(p.originalEvent)){f=false}}]],n));h=true}else{if(h&&m){a(document).unbind(n);h=false}}}function j(l){return !/^(4|mouse)$/.test(l.pointerType)}function i(l,n){if(!n){n=""}var m={};a.each(l,function(o,p){m[p[0].split(" ").join(n+" ")+n]=p[1]});return m}a.SmartMenus=function(m,l){this.$root=a(m);this.opts=l;this.rootId="";this.accessIdPrefix="";this.$subArrow=null;this.activatedItems=[];this.visibleSubMenus=[];this.showTimeout=0;this.hideTimeout=0;this.scrollTimeout=0;this.clickActivated=false;this.focusActivated=false;this.zIndexInc=0;this.idInc=0;this.$firstLink=null;this.$firstSub=null;this.disabled=false;this.$disableOverlay=null;this.$touchScrollingSub=null;this.cssTransforms3d="perspective" in m.style||"webkitPerspective" in m.style;this.wasCollapsible=false;this.init()};a.extend(a.SmartMenus,{hideAll:function(){a.each(b,function(){this.menuHideAll()})},destroy:function(){while(b.length){b[0].destroy()}k(true)},prototype:{init:function(n){var l=this;if(!n){b.push(this);this.rootId=(new Date().getTime()+Math.random()+"").replace(/\D/g,"");this.accessIdPrefix="sm-"+this.rootId+"-";if(this.$root.hasClass("sm-rtl")){this.opts.rightToLeftSubMenus=true}var r=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).bind(i([["mouseover focusin",a.proxy(this.rootOver,this)],["mouseout focusout",a.proxy(this.rootOut,this)],["keydown",a.proxy(this.rootKeyDown,this)]],r)).delegate("a",i([["mouseenter",a.proxy(this.itemEnter,this)],["mouseleave",a.proxy(this.itemLeave,this)],["mousedown",a.proxy(this.itemDown,this)],["focus",a.proxy(this.itemFocus,this)],["blur",a.proxy(this.itemBlur,this)],["click",a.proxy(this.itemClick,this)]],r));r+=this.rootId;if(this.opts.hideOnClick){a(document).bind(i([["touchstart",a.proxy(this.docTouchStart,this)],["touchmove",a.proxy(this.docTouchMove,this)],["touchend",a.proxy(this.docTouchEnd,this)],["click",a.proxy(this.docClick,this)]],r))}a(window).bind(i([["resize orientationchange",a.proxy(this.winResize,this)]],r));if(this.opts.subIndicators){this.$subArrow=a("<span/>").addClass("sub-arrow");if(this.opts.subIndicatorsText){this.$subArrow.html(this.opts.subIndicatorsText)}}k()}this.$firstSub=this.$root.find("ul").each(function(){l.menuInit(a(this))}).eq(0);this.$firstLink=this.$root.find("a").eq(0);if(this.opts.markCurrentItem){var p=/(index|default)\.[^#\?\/]*/i,m=/#.*/,q=window.location.href.replace(p,""),o=q.replace(m,"");this.$root.find("a").each(function(){var s=this.href.replace(p,""),t=a(this);if(s==q||s==o){t.addClass("current");if(l.opts.markCurrentTree){t.parentsUntil("[data-smartmenus-id]","ul").each(function(){a(this).dataSM("parent-a").addClass("current")})}}})}this.wasCollapsible=this.isCollapsible()},destroy:function(m){if(!m){var n=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").unbind(n).undelegate(n);n+=this.rootId;a(document).unbind(n);a(window).unbind(n);if(this.opts.subIndicators){this.$subArrow=null}}this.menuHideAll();var l=this;this.$root.find("ul").each(function(){var o=a(this);if(o.dataSM("scroll-arrows")){o.dataSM("scroll-arrows").remove()}if(o.dataSM("shown-before")){if(l.opts.subMenusMinWidth||l.opts.subMenusMaxWidth){o.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap")}if(o.dataSM("scroll-arrows")){o.dataSM("scroll-arrows").remove()}o.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})}if((o.attr("id")||"").indexOf(l.accessIdPrefix)==0){o.removeAttr("id")}}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("ie-shim").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded");this.$root.find("a.has-submenu").each(function(){var o=a(this);if(o.attr("id").indexOf(l.accessIdPrefix)==0){o.removeAttr("id")}}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspLine truncated
|
||||
@@ -0,0 +1,26 @@
|
||||
function initMenu(relPath,searchEnabled,serverSide,searchPage,search) {
|
||||
function makeTree(data,relPath) {
|
||||
var result='';
|
||||
if ('children' in data) {
|
||||
result+='<ul>';
|
||||
for (var i in data.children) {
|
||||
result+='<li><a href="'+relPath+data.children[i].url+'">'+
|
||||
data.children[i].text+'</a>'+
|
||||
makeTree(data.children[i],relPath)+'</li>';
|
||||
}
|
||||
result+='</ul>';
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
$('#main-nav').append(makeTree(menudata,relPath));
|
||||
$('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu');
|
||||
if (searchEnabled) {
|
||||
if (serverSide) {
|
||||
$('#main-menu').append('<li style="float:right"><div id="MSearchBox" class="MSearchBoxInactive"><div class="left"><form id="FSearchBox" action="'+searchPage+'" method="get"><img id="MSearchSelect" src="'+relPath+'search/mag.png" alt=""/><input type="text" id="MSearchField" name="query" value="'+search+'" size="20" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)"></form></div><div class="right"></div></div></li>');
|
||||
} else {
|
||||
$('#main-menu').append('<li style="float:right"><div id="MSearchBox" class="MSearchBoxInactive"><span class="left"><img id="MSearchSelect" src="'+relPath+'search/mag_sel.png" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" alt=""/><input type="text" id="MSearchField" value="'+search+'" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)" onkeyup="searchBox.OnSearchFieldChange(event)"/></span><span class="right"><a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="'+relPath+'search/close.png" alt=""/></a></span></div></li>');
|
||||
}
|
||||
}
|
||||
$('#main-menu').smartmenus();
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
var menudata={children:[
|
||||
{text:"Main Page",url:"index.html"}]}
|
||||
|
After Width: | Height: | Size: 153 B |
|
After Width: | Height: | Size: 95 B |
|
After Width: | Height: | Size: 98 B |
|
After Width: | Height: | Size: 123 B |
|
After Width: | Height: | Size: 273 B |
|
After Width: | Height: | Size: 563 B |
@@ -0,0 +1,12 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html><head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,271 @@
|
||||
/*---------------- Search Box */
|
||||
|
||||
#FSearchBox {
|
||||
float: left;
|
||||
}
|
||||
|
||||
#MSearchBox {
|
||||
white-space : nowrap;
|
||||
float: none;
|
||||
margin-top: 8px;
|
||||
right: 0px;
|
||||
width: 170px;
|
||||
height: 24px;
|
||||
z-index: 102;
|
||||
}
|
||||
|
||||
#MSearchBox .left
|
||||
{
|
||||
display:block;
|
||||
position:absolute;
|
||||
left:10px;
|
||||
width:20px;
|
||||
height:19px;
|
||||
background:url('search_l.png') no-repeat;
|
||||
background-position:right;
|
||||
}
|
||||
|
||||
#MSearchSelect {
|
||||
display:block;
|
||||
position:absolute;
|
||||
width:20px;
|
||||
height:19px;
|
||||
}
|
||||
|
||||
.left #MSearchSelect {
|
||||
left:4px;
|
||||
}
|
||||
|
||||
.right #MSearchSelect {
|
||||
right:5px;
|
||||
}
|
||||
|
||||
#MSearchField {
|
||||
display:block;
|
||||
position:absolute;
|
||||
height:19px;
|
||||
background:url('search_m.png') repeat-x;
|
||||
border:none;
|
||||
width:115px;
|
||||
margin-left:20px;
|
||||
padding-left:4px;
|
||||
color: #909090;
|
||||
outline: none;
|
||||
font: 9pt Arial, Verdana, sans-serif;
|
||||
-webkit-border-radius: 0px;
|
||||
}
|
||||
|
||||
#FSearchBox #MSearchField {
|
||||
margin-left:15px;
|
||||
}
|
||||
|
||||
#MSearchBox .right {
|
||||
display:block;
|
||||
position:absolute;
|
||||
right:10px;
|
||||
top:8px;
|
||||
width:20px;
|
||||
height:19px;
|
||||
background:url('search_r.png') no-repeat;
|
||||
background-position:left;
|
||||
}
|
||||
|
||||
#MSearchClose {
|
||||
display: none;
|
||||
position: absolute;
|
||||
top: 4px;
|
||||
background : none;
|
||||
border: none;
|
||||
margin: 0px 4px 0px 0px;
|
||||
padding: 0px 0px;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.left #MSearchClose {
|
||||
left: 6px;
|
||||
}
|
||||
|
||||
.right #MSearchClose {
|
||||
right: 2px;
|
||||
}
|
||||
|
||||
.MSearchBoxActive #MSearchField {
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
/*---------------- Search filter selection */
|
||||
|
||||
#MSearchSelectWindow {
|
||||
display: none;
|
||||
position: absolute;
|
||||
left: 0; top: 0;
|
||||
border: 1px solid #90A5CE;
|
||||
background-color: #F9FAFC;
|
||||
z-index: 10001;
|
||||
padding-top: 4px;
|
||||
padding-bottom: 4px;
|
||||
-moz-border-radius: 4px;
|
||||
-webkit-border-top-left-radius: 4px;
|
||||
-webkit-border-top-right-radius: 4px;
|
||||
-webkit-border-bottom-left-radius: 4px;
|
||||
-webkit-border-bottom-right-radius: 4px;
|
||||
-webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
|
||||
}
|
||||
|
||||
.SelectItem {
|
||||
font: 8pt Arial, Verdana, sans-serif;
|
||||
padding-left: 2px;
|
||||
padding-right: 12px;
|
||||
border: 0px;
|
||||
}
|
||||
|
||||
span.SelectionMark {
|
||||
margin-right: 4px;
|
||||
font-family: monospace;
|
||||
outline-style: none;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a.SelectItem {
|
||||
display: block;
|
||||
outline-style: none;
|
||||
color: #000000;
|
||||
text-decoration: none;
|
||||
padding-left: 6px;
|
||||
padding-right: 12px;
|
||||
}
|
||||
|
||||
a.SelectItem:focus,
|
||||
a.SelectItem:active {
|
||||
color: #000000;
|
||||
outline-style: none;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a.SelectItem:hover {
|
||||
color: #FFFFFF;
|
||||
background-color: #3D578C;
|
||||
outline-style: none;
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
display: block;
|
||||
}
|
||||
|
||||
/*---------------- Search results window */
|
||||
|
||||
iframe#MSearchResults {
|
||||
width: 60ex;
|
||||
height: 15em;
|
||||
}
|
||||
|
||||
#MSearchResultsWindow {
|
||||
display: none;
|
||||
position: absolute;
|
||||
left: 0; top: 0;
|
||||
border: 1px solid #000;
|
||||
background-color: #EEF1F7;
|
||||
z-index:10000;
|
||||
}
|
||||
|
||||
/* ----------------------------------- */
|
||||
|
||||
|
||||
#SRIndex {
|
||||
clear:both;
|
||||
padding-bottom: 15px;
|
||||
}
|
||||
|
||||
.SREntry {
|
||||
font-size: 10pt;
|
||||
padding-left: 1ex;
|
||||
}
|
||||
|
||||
.SRPage .SREntry {
|
||||
font-size: 8pt;
|
||||
padding: 1px 5px;
|
||||
}
|
||||
|
||||
body.SRPage {
|
||||
margin: 5px 2px;
|
||||
}
|
||||
|
||||
.SRChildren {
|
||||
padding-left: 3ex; padding-bottom: .5em
|
||||
}
|
||||
|
||||
.SRPage .SRChildren {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.SRSymbol {
|
||||
font-weight: bold;
|
||||
color: #425E97;
|
||||
font-family: Arial, Verdana, sans-serif;
|
||||
text-decoration: none;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
a.SRScope {
|
||||
display: block;
|
||||
color: #425E97;
|
||||
font-family: Arial, Verdana, sans-serif;
|
||||
text-decoration: none;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
a.SRSymbol:focus, a.SRSymbol:active,
|
||||
a.SRScope:focus, a.SRScope:active {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
span.SRScope {
|
||||
padding-left: 4px;
|
||||
}
|
||||
|
||||
.SRPage .SRStatus {
|
||||
padding: 2px 5px;
|
||||
font-size: 8pt;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.SRResult {
|
||||
display: none;
|
||||
}
|
||||
|
||||
DIV.searchresults {
|
||||
margin-left: 10px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
/*---------------- External search page results */
|
||||
|
||||
.searchresult {
|
||||
background-color: #F0F3F8;
|
||||
}
|
||||
|
||||
.pages b {
|
||||
color: white;
|
||||
padding: 5px 5px 3px 5px;
|
||||
background-image: url("../tab_a.png");
|
||||
background-repeat: repeat-x;
|
||||
text-shadow: 0 1px 1px #000000;
|
||||
}
|
||||
|
||||
.pages {
|
||||
line-height: 17px;
|
||||
margin-left: 4px;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.hl {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#searchresults {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.searchpages {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,791 @@
|
||||
function convertToId(search)
|
||||
{
|
||||
var result = '';
|
||||
for (i=0;i<search.length;i++)
|
||||
{
|
||||
var c = search.charAt(i);
|
||||
var cn = c.charCodeAt(0);
|
||||
if (c.match(/[a-z0-9\u0080-\uFFFF]/))
|
||||
{
|
||||
result+=c;
|
||||
}
|
||||
else if (cn<16)
|
||||
{
|
||||
result+="_0"+cn.toString(16);
|
||||
}
|
||||
else
|
||||
{
|
||||
result+="_"+cn.toString(16);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
function getXPos(item)
|
||||
{
|
||||
var x = 0;
|
||||
if (item.offsetWidth)
|
||||
{
|
||||
while (item && item!=document.body)
|
||||
{
|
||||
x += item.offsetLeft;
|
||||
item = item.offsetParent;
|
||||
}
|
||||
}
|
||||
return x;
|
||||
}
|
||||
|
||||
function getYPos(item)
|
||||
{
|
||||
var y = 0;
|
||||
if (item.offsetWidth)
|
||||
{
|
||||
while (item && item!=document.body)
|
||||
{
|
||||
y += item.offsetTop;
|
||||
item = item.offsetParent;
|
||||
}
|
||||
}
|
||||
return y;
|
||||
}
|
||||
|
||||
/* A class handling everything associated with the search panel.
|
||||
|
||||
Parameters:
|
||||
name - The name of the global variable that will be
|
||||
storing this instance. Is needed to be able to set timeouts.
|
||||
resultPath - path to use for external files
|
||||
*/
|
||||
function SearchBox(name, resultsPath, inFrame, label)
|
||||
{
|
||||
if (!name || !resultsPath) { alert("Missing parameters to SearchBox."); }
|
||||
|
||||
// ---------- Instance variables
|
||||
this.name = name;
|
||||
this.resultsPath = resultsPath;
|
||||
this.keyTimeout = 0;
|
||||
this.keyTimeoutLength = 500;
|
||||
this.closeSelectionTimeout = 300;
|
||||
this.lastSearchValue = "";
|
||||
this.lastResultsPage = "";
|
||||
this.hideTimeout = 0;
|
||||
this.searchIndex = 0;
|
||||
this.searchActive = false;
|
||||
this.insideFrame = inFrame;
|
||||
this.searchLabel = label;
|
||||
|
||||
// ----------- DOM Elements
|
||||
|
||||
this.DOMSearchField = function()
|
||||
{ return document.getElementById("MSearchField"); }
|
||||
|
||||
this.DOMSearchSelect = function()
|
||||
{ return document.getElementById("MSearchSelect"); }
|
||||
|
||||
this.DOMSearchSelectWindow = function()
|
||||
{ return document.getElementById("MSearchSelectWindow"); }
|
||||
|
||||
this.DOMPopupSearchResults = function()
|
||||
{ return document.getElementById("MSearchResults"); }
|
||||
|
||||
this.DOMPopupSearchResultsWindow = function()
|
||||
{ return document.getElementById("MSearchResultsWindow"); }
|
||||
|
||||
this.DOMSearchClose = function()
|
||||
{ return document.getElementById("MSearchClose"); }
|
||||
|
||||
this.DOMSearchBox = function()
|
||||
{ return document.getElementById("MSearchBox"); }
|
||||
|
||||
// ------------ Event Handlers
|
||||
|
||||
// Called when focus is added or removed from the search field.
|
||||
this.OnSearchFieldFocus = function(isActive)
|
||||
{
|
||||
this.Activate(isActive);
|
||||
}
|
||||
|
||||
this.OnSearchSelectShow = function()
|
||||
{
|
||||
var searchSelectWindow = this.DOMSearchSelectWindow();
|
||||
var searchField = this.DOMSearchSelect();
|
||||
|
||||
if (this.insideFrame)
|
||||
{
|
||||
var left = getXPos(searchField);
|
||||
var top = getYPos(searchField);
|
||||
left += searchField.offsetWidth + 6;
|
||||
top += searchField.offsetHeight;
|
||||
|
||||
// show search selection popup
|
||||
searchSelectWindow.style.display='block';
|
||||
left -= searchSelectWindow.offsetWidth;
|
||||
searchSelectWindow.style.left = left + 'px';
|
||||
searchSelectWindow.style.top = top + 'px';
|
||||
}
|
||||
else
|
||||
{
|
||||
var left = getXPos(searchField);
|
||||
var top = getYPos(searchField);
|
||||
top += searchField.offsetHeight;
|
||||
|
||||
// show search selection popup
|
||||
searchSelectWindow.style.display='block';
|
||||
searchSelectWindow.style.left = left + 'px';
|
||||
searchSelectWindow.style.top = top + 'px';
|
||||
}
|
||||
|
||||
// stop selection hide timer
|
||||
if (this.hideTimeout)
|
||||
{
|
||||
clearTimeout(this.hideTimeout);
|
||||
this.hideTimeout=0;
|
||||
}
|
||||
return false; // to avoid "image drag" default event
|
||||
}
|
||||
|
||||
this.OnSearchSelectHide = function()
|
||||
{
|
||||
this.hideTimeout = setTimeout(this.name +".CloseSelectionWindow()",
|
||||
this.closeSelectionTimeout);
|
||||
}
|
||||
|
||||
// Called when the content of the search field is changed.
|
||||
this.OnSearchFieldChange = function(evt)
|
||||
{
|
||||
if (this.keyTimeout) // kill running timer
|
||||
{
|
||||
clearTimeout(this.keyTimeout);
|
||||
this.keyTimeout = 0;
|
||||
}
|
||||
|
||||
var e = (evt) ? evt : window.event; // for IE
|
||||
if (e.keyCode==40 || e.keyCode==13)
|
||||
{
|
||||
if (e.shiftKey==1)
|
||||
{
|
||||
this.OnSearchSelectShow();
|
||||
var win=this.DOMSearchSelectWindow();
|
||||
for (i=0;i<win.childNodes.length;i++)
|
||||
{
|
||||
var child = win.childNodes[i]; // get span within a
|
||||
if (child.className=='SelectItem')
|
||||
{
|
||||
child.focus();
|
||||
return;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
else if (window.frames.MSearchResults.searchResults)
|
||||
{
|
||||
var elem = window.frames.MSearchResults.searchResults.NavNext(0);
|
||||
if (elem) elem.focus();
|
||||
}
|
||||
}
|
||||
else if (e.keyCode==27) // Escape out of the search field
|
||||
{
|
||||
this.DOMSearchField().blur();
|
||||
this.DOMPopupSearchResultsWindow().style.display = 'none';
|
||||
this.DOMSearchClose().style.display = 'none';
|
||||
this.lastSearchValue = '';
|
||||
this.Activate(false);
|
||||
return;
|
||||
}
|
||||
|
||||
// strip whitespaces
|
||||
var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
|
||||
|
||||
if (searchValue != this.lastSearchValue) // search value has changed
|
||||
{
|
||||
if (searchValue != "") // non-empty search
|
||||
{
|
||||
// set timer for search update
|
||||
this.keyTimeout = setTimeout(this.name + '.Search()',
|
||||
this.keyTimeoutLength);
|
||||
}
|
||||
else // empty search field
|
||||
{
|
||||
this.DOMPopupSearchResultsWindow().style.display = 'none';
|
||||
this.DOMSearchClose().style.display = 'none';
|
||||
this.lastSearchValue = '';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.SelectItemCount = function(id)
|
||||
{
|
||||
var count=0;
|
||||
var win=this.DOMSearchSelectWindow();
|
||||
for (i=0;i<win.childNodes.length;i++)
|
||||
{
|
||||
var child = win.childNodes[i]; // get span within a
|
||||
if (child.className=='SelectItem')
|
||||
{
|
||||
count++;
|
||||
}
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
this.SelectItemSet = function(id)
|
||||
{
|
||||
var i,j=0;
|
||||
var win=this.DOMSearchSelectWindow();
|
||||
for (i=0;i<win.childNodes.length;i++)
|
||||
{
|
||||
var child = win.childNodes[i]; // get span within a
|
||||
if (child.className=='SelectItem')
|
||||
{
|
||||
var node = child.firstChild;
|
||||
if (j==id)
|
||||
{
|
||||
node.innerHTML='•';
|
||||
}
|
||||
else
|
||||
{
|
||||
node.innerHTML=' ';
|
||||
}
|
||||
j++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Called when an search filter selection is made.
|
||||
// set item with index id as the active item
|
||||
this.OnSelectItem = function(id)
|
||||
{
|
||||
this.searchIndex = id;
|
||||
this.SelectItemSet(id);
|
||||
var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
|
||||
if (searchValue!="" && this.searchActive) // something was found -> do a search
|
||||
{
|
||||
this.Search();
|
||||
}
|
||||
}
|
||||
|
||||
this.OnSearchSelectKey = function(evt)
|
||||
{
|
||||
var e = (evt) ? evt : window.event; // for IE
|
||||
if (e.keyCode==40 && this.searchIndex<this.SelectItemCount()) // Down
|
||||
{
|
||||
this.searchIndex++;
|
||||
this.OnSelectItem(this.searchIndex);
|
||||
}
|
||||
else if (e.keyCode==38 && this.searchIndex>0) // Up
|
||||
{
|
||||
this.searchIndex--;
|
||||
this.OnSelectItem(this.searchIndex);
|
||||
}
|
||||
else if (e.keyCode==13 || e.keyCode==27)
|
||||
{
|
||||
this.OnSelectItem(this.searchIndex);
|
||||
this.CloseSelectionWindow();
|
||||
this.DOMSearchField().focus();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// --------- Actions
|
||||
|
||||
// Closes the results window.
|
||||
this.CloseResultsWindow = function()
|
||||
{
|
||||
this.DOMPopupSearchResultsWindow().style.display = 'none';
|
||||
this.DOMSearchClose().style.display = 'none';
|
||||
this.Activate(false);
|
||||
}
|
||||
|
||||
this.CloseSelectionWindow = function()
|
||||
{
|
||||
this.DOMSearchSelectWindow().style.display = 'none';
|
||||
}
|
||||
|
||||
// Performs a search.
|
||||
this.Search = function()
|
||||
{
|
||||
this.keyTimeout = 0;
|
||||
|
||||
// strip leading whitespace
|
||||
var searchValue = this.DOMSearchField().value.replace(/^ +/, "");
|
||||
|
||||
var code = searchValue.toLowerCase().charCodeAt(0);
|
||||
var idxChar = searchValue.substr(0, 1).toLowerCase();
|
||||
if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair
|
||||
{
|
||||
idxChar = searchValue.substr(0, 2);
|
||||
}
|
||||
|
||||
var resultsPage;
|
||||
var resultsPageWithSearch;
|
||||
var hasResultsPage;
|
||||
|
||||
var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar);
|
||||
if (idx!=-1)
|
||||
{
|
||||
var hexCode=idx.toString(16);
|
||||
resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html';
|
||||
resultsPageWithSearch = resultsPage+'?'+escape(searchValue);
|
||||
hasResultsPage = true;
|
||||
}
|
||||
else // nothing available for this search term
|
||||
{
|
||||
resultsPage = this.resultsPath + '/nomatches.html';
|
||||
resultsPageWithSearch = resultsPage;
|
||||
hasResultsPage = false;
|
||||
}
|
||||
|
||||
window.frames.MSearchResults.location = resultsPageWithSearch;
|
||||
var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
|
||||
|
||||
if (domPopupSearchResultsWindow.style.display!='block')
|
||||
{
|
||||
var domSearchBox = this.DOMSearchBox();
|
||||
this.DOMSearchClose().style.display = 'inline';
|
||||
if (this.insideFrame)
|
||||
{
|
||||
var domPopupSearchResults = this.DOMPopupSearchResults();
|
||||
domPopupSearchResultsWindow.style.position = 'relative';
|
||||
domPopupSearchResultsWindow.style.display = 'block';
|
||||
var width = document.body.clientWidth - 8; // the -8 is for IE :-(
|
||||
domPopupSearchResultsWindow.style.width = width + 'px';
|
||||
domPopupSearchResults.style.width = width + 'px';
|
||||
}
|
||||
else
|
||||
{
|
||||
var domPopupSearchResults = this.DOMPopupSearchResults();
|
||||
var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth;
|
||||
var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1;
|
||||
domPopupSearchResultsWindow.style.display = 'block';
|
||||
left -= domPopupSearchResults.offsetWidth;
|
||||
domPopupSearchResultsWindow.style.top = top + 'px';
|
||||
domPopupSearchResultsWindow.style.left = left + 'px';
|
||||
}
|
||||
}
|
||||
|
||||
this.lastSearchValue = searchValue;
|
||||
this.lastResultsPage = resultsPage;
|
||||
}
|
||||
|
||||
// -------- Activation Functions
|
||||
|
||||
// Activates or deactivates the search panel, resetting things to
|
||||
// their default values if necessary.
|
||||
this.Activate = function(isActive)
|
||||
{
|
||||
if (isActive || // open it
|
||||
this.DOMPopupSearchResultsWindow().style.display == 'block'
|
||||
)
|
||||
{
|
||||
this.DOMSearchBox().className = 'MSearchBoxActive';
|
||||
|
||||
var searchField = this.DOMSearchField();
|
||||
|
||||
if (searchField.value == this.searchLabel) // clear "Search" term upon entry
|
||||
{
|
||||
searchField.value = '';
|
||||
this.searchActive = true;
|
||||
}
|
||||
}
|
||||
else if (!isActive) // directly remove the panel
|
||||
{
|
||||
this.DOMSearchBox().className = 'MSearchBoxInactive';
|
||||
this.DOMSearchField().value = this.searchLabel;
|
||||
this.searchActive = false;
|
||||
this.lastSearchValue = ''
|
||||
this.lastResultsPage = '';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
|
||||
// The class that handles everything on the search results page.
|
||||
function SearchResults(name)
|
||||
{
|
||||
// The number of matches from the last run of <Search()>.
|
||||
this.lastMatchCount = 0;
|
||||
this.lastKey = 0;
|
||||
this.repeatOn = false;
|
||||
|
||||
// Toggles the visibility of the passed element ID.
|
||||
this.FindChildElement = function(id)
|
||||
{
|
||||
var parentElement = document.getElementById(id);
|
||||
var element = parentElement.firstChild;
|
||||
|
||||
while (element && element!=parentElement)
|
||||
{
|
||||
if (element.nodeName == 'DIV' && element.className == 'SRChildren')
|
||||
{
|
||||
return element;
|
||||
}
|
||||
|
||||
if (element.nodeName == 'DIV' && element.hasChildNodes())
|
||||
{
|
||||
element = element.firstChild;
|
||||
}
|
||||
else if (element.nextSibling)
|
||||
{
|
||||
element = element.nextSibling;
|
||||
}
|
||||
else
|
||||
{
|
||||
do
|
||||
{
|
||||
element = element.parentNode;
|
||||
}
|
||||
while (element && element!=parentElement && !element.nextSibling);
|
||||
|
||||
if (element && element!=parentElement)
|
||||
{
|
||||
element = element.nextSibling;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.Toggle = function(id)
|
||||
{
|
||||
var element = this.FindChildElement(id);
|
||||
if (element)
|
||||
{
|
||||
if (element.style.display == 'block')
|
||||
{
|
||||
element.style.display = 'none';
|
||||
}
|
||||
else
|
||||
{
|
||||
element.style.display = 'block';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Searches for the passed string. If there is no parameter,
|
||||
// it takes it from the URL query.
|
||||
//
|
||||
// Always returns true, since other documents may try to call it
|
||||
// and that may or may not be possible.
|
||||
this.Search = function(search)
|
||||
{
|
||||
if (!search) // get search word from URL
|
||||
{
|
||||
search = window.location.search;
|
||||
search = search.substring(1); // Remove the leading '?'
|
||||
search = unescape(search);
|
||||
}
|
||||
|
||||
search = search.replace(/^ +/, ""); // strip leading spaces
|
||||
search = search.replace(/ +$/, ""); // strip trailing spaces
|
||||
search = search.toLowerCase();
|
||||
search = convertToId(search);
|
||||
|
||||
var resultRows = document.getElementsByTagName("div");
|
||||
var matches = 0;
|
||||
|
||||
var i = 0;
|
||||
while (i < resultRows.length)
|
||||
{
|
||||
var row = resultRows.item(i);
|
||||
if (row.className == "SRResult")
|
||||
{
|
||||
var rowMatchName = row.id.toLowerCase();
|
||||
rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_'
|
||||
|
||||
if (search.length<=rowMatchName.length &&
|
||||
rowMatchName.substr(0, search.length)==search)
|
||||
{
|
||||
row.style.display = 'block';
|
||||
matches++;
|
||||
}
|
||||
else
|
||||
{
|
||||
row.style.display = 'none';
|
||||
}
|
||||
}
|
||||
i++;
|
||||
}
|
||||
document.getElementById("Searching").style.display='none';
|
||||
if (matches == 0) // no results
|
||||
{
|
||||
document.getElementById("NoMatches").style.display='block';
|
||||
}
|
||||
else // at least one result
|
||||
{
|
||||
document.getElementById("NoMatches").style.display='none';
|
||||
}
|
||||
this.lastMatchCount = matches;
|
||||
return true;
|
||||
}
|
||||
|
||||
// return the first item with index index or higher that is visible
|
||||
this.NavNext = function(index)
|
||||
{
|
||||
var focusItem;
|
||||
while (1)
|
||||
{
|
||||
var focusName = 'Item'+index;
|
||||
focusItem = document.getElementById(focusName);
|
||||
if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
|
||||
{
|
||||
break;
|
||||
}
|
||||
else if (!focusItem) // last element
|
||||
{
|
||||
break;
|
||||
}
|
||||
focusItem=null;
|
||||
index++;
|
||||
}
|
||||
return focusItem;
|
||||
}
|
||||
|
||||
this.NavPrev = function(index)
|
||||
{
|
||||
var focusItem;
|
||||
while (1)
|
||||
{
|
||||
var focusName = 'Item'+index;
|
||||
focusItem = document.getElementById(focusName);
|
||||
if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
|
||||
{
|
||||
break;
|
||||
}
|
||||
else if (!focusItem) // last element
|
||||
{
|
||||
break;
|
||||
}
|
||||
focusItem=null;
|
||||
index--;
|
||||
}
|
||||
return focusItem;
|
||||
}
|
||||
|
||||
this.ProcessKeys = function(e)
|
||||
{
|
||||
if (e.type == "keydown")
|
||||
{
|
||||
this.repeatOn = false;
|
||||
this.lastKey = e.keyCode;
|
||||
}
|
||||
else if (e.type == "keypress")
|
||||
{
|
||||
if (!this.repeatOn)
|
||||
{
|
||||
if (this.lastKey) this.repeatOn = true;
|
||||
return false; // ignore first keypress after keydown
|
||||
}
|
||||
}
|
||||
else if (e.type == "keyup")
|
||||
{
|
||||
this.lastKey = 0;
|
||||
this.repeatOn = false;
|
||||
}
|
||||
return this.lastKey!=0;
|
||||
}
|
||||
|
||||
this.Nav = function(evt,itemIndex)
|
||||
{
|
||||
var e = (evt) ? evt : window.event; // for IE
|
||||
if (e.keyCode==13) return true;
|
||||
if (!this.ProcessKeys(e)) return false;
|
||||
|
||||
if (this.lastKey==38) // Up
|
||||
{
|
||||
var newIndex = itemIndex-1;
|
||||
var focusItem = this.NavPrev(newIndex);
|
||||
if (focusItem)
|
||||
{
|
||||
var child = this.FindChildElement(focusItem.parentNode.parentNode.id);
|
||||
if (child && child.style.display == 'block') // children visible
|
||||
{
|
||||
var n=0;
|
||||
var tmpElem;
|
||||
while (1) // search for last child
|
||||
{
|
||||
tmpElem = document.getElementById('Item'+newIndex+'_c'+n);
|
||||
if (tmpElem)
|
||||
{
|
||||
focusItem = tmpElem;
|
||||
}
|
||||
else // found it!
|
||||
{
|
||||
break;
|
||||
}
|
||||
n++;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (focusItem)
|
||||
{
|
||||
focusItem.focus();
|
||||
}
|
||||
else // return focus to search field
|
||||
{
|
||||
parent.document.getElementById("MSearchField").focus();
|
||||
}
|
||||
}
|
||||
else if (this.lastKey==40) // Down
|
||||
{
|
||||
var newIndex = itemIndex+1;
|
||||
var focusItem;
|
||||
var item = document.getElementById('Item'+itemIndex);
|
||||
var elem = this.FindChildElement(item.parentNode.parentNode.id);
|
||||
if (elem && elem.style.display == 'block') // children visible
|
||||
{
|
||||
focusItem = document.getElementById('Item'+itemIndex+'_c0');
|
||||
}
|
||||
if (!focusItem) focusItem = this.NavNext(newIndex);
|
||||
if (focusItem) focusItem.focus();
|
||||
}
|
||||
else if (this.lastKey==39) // Right
|
||||
{
|
||||
var item = document.getElementById('Item'+itemIndex);
|
||||
var elem = this.FindChildElement(item.parentNode.parentNode.id);
|
||||
if (elem) elem.style.display = 'block';
|
||||
}
|
||||
else if (this.lastKey==37) // Left
|
||||
{
|
||||
var item = document.getElementById('Item'+itemIndex);
|
||||
var elem = this.FindChildElement(item.parentNode.parentNode.id);
|
||||
if (elem) elem.style.display = 'none';
|
||||
}
|
||||
else if (this.lastKey==27) // Escape
|
||||
{
|
||||
parent.searchBox.CloseResultsWindow();
|
||||
parent.document.getElementById("MSearchField").focus();
|
||||
}
|
||||
else if (this.lastKey==13) // Enter
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
this.NavChild = function(evt,itemIndex,childIndex)
|
||||
{
|
||||
var e = (evt) ? evt : window.event; // for IE
|
||||
if (e.keyCode==13) return true;
|
||||
if (!this.ProcessKeys(e)) return false;
|
||||
|
||||
if (this.lastKey==38) // Up
|
||||
{
|
||||
if (childIndex>0)
|
||||
{
|
||||
var newIndex = childIndex-1;
|
||||
document.getElementById('Item'+itemIndex+'_c'+newIndex).focus();
|
||||
}
|
||||
else // already at first child, jump to parent
|
||||
{
|
||||
document.getElementById('Item'+itemIndex).focus();
|
||||
}
|
||||
}
|
||||
else if (this.lastKey==40) // Down
|
||||
{
|
||||
var newIndex = childIndex+1;
|
||||
var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex);
|
||||
if (!elem) // last child, jump to parent next parent
|
||||
{
|
||||
elem = this.NavNext(itemIndex+1);
|
||||
}
|
||||
if (elem)
|
||||
{
|
||||
elem.focus();
|
||||
}
|
||||
}
|
||||
else if (this.lastKey==27) // Escape
|
||||
{
|
||||
parent.searchBox.CloseResultsWindow();
|
||||
parent.document.getElementById("MSearchField").focus();
|
||||
}
|
||||
else if (this.lastKey==13) // Enter
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function setKeyActions(elem,action)
|
||||
{
|
||||
elem.setAttribute('onkeydown',action);
|
||||
elem.setAttribute('onkeypress',action);
|
||||
elem.setAttribute('onkeyup',action);
|
||||
}
|
||||
|
||||
function setClassAttr(elem,attr)
|
||||
{
|
||||
elem.setAttribute('class',attr);
|
||||
elem.setAttribute('className',attr);
|
||||
}
|
||||
|
||||
function createResults()
|
||||
{
|
||||
var results = document.getElementById("SRResults");
|
||||
for (var e=0; e<searchData.length; e++)
|
||||
{
|
||||
var id = searchData[e][0];
|
||||
var srResult = document.createElement('div');
|
||||
srResult.setAttribute('id','SR_'+id);
|
||||
setClassAttr(srResult,'SRResult');
|
||||
var srEntry = document.createElement('div');
|
||||
setClassAttr(srEntry,'SREntry');
|
||||
var srLink = document.createElement('a');
|
||||
srLink.setAttribute('id','Item'+e);
|
||||
setKeyActions(srLink,'return searchResults.Nav(event,'+e+')');
|
||||
setClassAttr(srLink,'SRSymbol');
|
||||
srLink.innerHTML = searchData[e][1][0];
|
||||
srEntry.appendChild(srLink);
|
||||
if (searchData[e][1].length==2) // single result
|
||||
{
|
||||
srLink.setAttribute('href',searchData[e][1][1][0]);
|
||||
if (searchData[e][1][1][1])
|
||||
{
|
||||
srLink.setAttribute('target','_parent');
|
||||
}
|
||||
var srScope = document.createElement('span');
|
||||
setClassAttr(srScope,'SRScope');
|
||||
srScope.innerHTML = searchData[e][1][1][2];
|
||||
srEntry.appendChild(srScope);
|
||||
}
|
||||
else // multiple results
|
||||
{
|
||||
srLink.setAttribute('href','javascript:searchResults.Toggle("SR_'+id+'")');
|
||||
var srChildren = document.createElement('div');
|
||||
setClassAttr(srChildren,'SRChildren');
|
||||
for (var c=0; c<searchData[e][1].length-1; c++)
|
||||
{
|
||||
var srChild = document.createElement('a');
|
||||
srChild.setAttribute('id','Item'+e+'_c'+c);
|
||||
setKeyActions(srChild,'return searchResults.NavChild(event,'+e+','+c+')');
|
||||
setClassAttr(srChild,'SRScope');
|
||||
srChild.setAttribute('href',searchData[e][1][c+1][0]);
|
||||
if (searchData[e][1][c+1][1])
|
||||
{
|
||||
srChild.setAttribute('target','_parent');
|
||||
}
|
||||
srChild.innerHTML = searchData[e][1][c+1][2];
|
||||
srChildren.appendChild(srChild);
|
||||
}
|
||||
srEntry.appendChild(srChildren);
|
||||
}
|
||||
srResult.appendChild(srEntry);
|
||||
results.appendChild(srResult);
|
||||
}
|
||||
}
|
||||
|
||||
function init_search()
|
||||
{
|
||||
var results = document.getElementById("MSearchSelectWindow");
|
||||
for (var key in indexSectionLabels)
|
||||
{
|
||||
var link = document.createElement('a');
|
||||
link.setAttribute('class','SelectItem');
|
||||
link.setAttribute('onclick','searchBox.OnSelectItem('+key+')');
|
||||
link.href='javascript:void(0)';
|
||||
link.innerHTML='<span class="SelectionMark"> </span>'+indexSectionLabels[key];
|
||||
results.appendChild(link);
|
||||
}
|
||||
searchBox.OnSelectItem(0);
|
||||
}
|
||||
|
||||
|
After Width: | Height: | Size: 604 B |
|
After Width: | Height: | Size: 158 B |
|
After Width: | Height: | Size: 612 B |
@@ -0,0 +1,12 @@
|
||||
var indexSectionsWithContent =
|
||||
{
|
||||
};
|
||||
|
||||
var indexSectionNames =
|
||||
{
|
||||
};
|
||||
|
||||
var indexSectionLabels =
|
||||
{
|
||||
};
|
||||
|
||||
|
After Width: | Height: | Size: 314 B |
|
After Width: | Height: | Size: 853 B |
|
After Width: | Height: | Size: 845 B |
|
After Width: | Height: | Size: 142 B |
|
After Width: | Height: | Size: 169 B |
|
After Width: | Height: | Size: 177 B |
|
After Width: | Height: | Size: 184 B |
@@ -0,0 +1 @@
|
||||
.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:transparent}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0px/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0px 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0px 1px 1px rgba(255,255,255,0.9);color:#283A5D;outline:none}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox a.current{color:#D23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media (min-width: 768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283A5D transparent transparent transparent;background:transparent;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0px 12px;background-image:url("tab_s.png"Line truncated
|
||||
@@ -0,0 +1,21 @@
|
||||
all: refman.pdf
|
||||
|
||||
pdf: refman.pdf
|
||||
|
||||
refman.pdf: clean refman.tex
|
||||
pdflatex refman
|
||||
makeindex refman.idx
|
||||
pdflatex refman
|
||||
latex_count=8 ; \
|
||||
while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\
|
||||
do \
|
||||
echo "Rerunning latex...." ;\
|
||||
pdflatex refman ;\
|
||||
latex_count=`expr $$latex_count - 1` ;\
|
||||
done
|
||||
makeindex refman.idx
|
||||
pdflatex refman
|
||||
|
||||
|
||||
clean:
|
||||
rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl refman.pdf
|
||||
@@ -0,0 +1,503 @@
|
||||
\NeedsTeXFormat{LaTeX2e}
|
||||
\ProvidesPackage{doxygen}
|
||||
|
||||
% Packages used by this style file
|
||||
\RequirePackage{alltt}
|
||||
\RequirePackage{array}
|
||||
\RequirePackage{calc}
|
||||
\RequirePackage{float}
|
||||
\RequirePackage{ifthen}
|
||||
\RequirePackage{verbatim}
|
||||
\RequirePackage[table]{xcolor}
|
||||
\RequirePackage{longtable}
|
||||
\RequirePackage{tabu}
|
||||
\RequirePackage{tabularx}
|
||||
\RequirePackage{multirow}
|
||||
|
||||
%---------- Internal commands used in this style file ----------------
|
||||
|
||||
\newcommand{\ensurespace}[1]{%
|
||||
\begingroup%
|
||||
\setlength{\dimen@}{#1}%
|
||||
\vskip\z@\@plus\dimen@%
|
||||
\penalty -100\vskip\z@\@plus -\dimen@%
|
||||
\vskip\dimen@%
|
||||
\penalty 9999%
|
||||
\vskip -\dimen@%
|
||||
\vskip\z@skip% hide the previous |\vskip| from |\addvspace|
|
||||
\endgroup%
|
||||
}
|
||||
|
||||
\newcommand{\DoxyLabelFont}{}
|
||||
\newcommand{\entrylabel}[1]{%
|
||||
{%
|
||||
\parbox[b]{\labelwidth-4pt}{%
|
||||
\makebox[0pt][l]{\DoxyLabelFont#1}%
|
||||
\vspace{1.5\baselineskip}%
|
||||
}%
|
||||
}%
|
||||
}
|
||||
|
||||
\newenvironment{DoxyDesc}[1]{%
|
||||
\ensurespace{4\baselineskip}%
|
||||
\begin{list}{}{%
|
||||
\settowidth{\labelwidth}{20pt}%
|
||||
\setlength{\parsep}{0pt}%
|
||||
\setlength{\itemsep}{0pt}%
|
||||
\setlength{\leftmargin}{\labelwidth+\labelsep}%
|
||||
\renewcommand{\makelabel}{\entrylabel}%
|
||||
}%
|
||||
\item[#1]%
|
||||
}{%
|
||||
\end{list}%
|
||||
}
|
||||
|
||||
\newsavebox{\xrefbox}
|
||||
\newlength{\xreflength}
|
||||
\newcommand{\xreflabel}[1]{%
|
||||
\sbox{\xrefbox}{#1}%
|
||||
\setlength{\xreflength}{\wd\xrefbox}%
|
||||
\ifthenelse{\xreflength>\labelwidth}{%
|
||||
\begin{minipage}{\textwidth}%
|
||||
\setlength{\parindent}{0pt}%
|
||||
\hangindent=15pt\bfseries #1\vspace{1.2\itemsep}%
|
||||
\end{minipage}%
|
||||
}{%
|
||||
\parbox[b]{\labelwidth}{\makebox[0pt][l]{\textbf{#1}}}%
|
||||
}%
|
||||
}
|
||||
|
||||
%---------- Commands used by doxygen LaTeX output generator ----------
|
||||
|
||||
% Used by <pre> ... </pre>
|
||||
\newenvironment{DoxyPre}{%
|
||||
\small%
|
||||
\begin{alltt}%
|
||||
}{%
|
||||
\end{alltt}%
|
||||
\normalsize%
|
||||
}
|
||||
|
||||
% Used by @code ... @endcode
|
||||
\newenvironment{DoxyCode}{%
|
||||
\par%
|
||||
\scriptsize%
|
||||
\begin{alltt}%
|
||||
}{%
|
||||
\end{alltt}%
|
||||
\normalsize%
|
||||
}
|
||||
|
||||
% Used by @example, @include, @includelineno and @dontinclude
|
||||
\newenvironment{DoxyCodeInclude}{%
|
||||
\DoxyCode%
|
||||
}{%
|
||||
\endDoxyCode%
|
||||
}
|
||||
|
||||
% Used by @verbatim ... @endverbatim
|
||||
\newenvironment{DoxyVerb}{%
|
||||
\footnotesize%
|
||||
\verbatim%
|
||||
}{%
|
||||
\endverbatim%
|
||||
\normalsize%
|
||||
}
|
||||
|
||||
% Used by @verbinclude
|
||||
\newenvironment{DoxyVerbInclude}{%
|
||||
\DoxyVerb%
|
||||
}{%
|
||||
\endDoxyVerb%
|
||||
}
|
||||
|
||||
% Used by numbered lists (using '-#' or <ol> ... </ol>)
|
||||
\newenvironment{DoxyEnumerate}{%
|
||||
\enumerate%
|
||||
}{%
|
||||
\endenumerate%
|
||||
}
|
||||
|
||||
% Used by bullet lists (using '-', @li, @arg, or <ul> ... </ul>)
|
||||
\newenvironment{DoxyItemize}{%
|
||||
\itemize%
|
||||
}{%
|
||||
\enditemize%
|
||||
}
|
||||
|
||||
% Used by description lists (using <dl> ... </dl>)
|
||||
\newenvironment{DoxyDescription}{%
|
||||
\description%
|
||||
}{%
|
||||
\enddescription%
|
||||
}
|
||||
|
||||
% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc
|
||||
% (only if caption is specified)
|
||||
\newenvironment{DoxyImage}{%
|
||||
\begin{figure}[H]%
|
||||
\begin{center}%
|
||||
}{%
|
||||
\end{center}%
|
||||
\end{figure}%
|
||||
}
|
||||
|
||||
% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc
|
||||
% (only if no caption is specified)
|
||||
\newenvironment{DoxyImageNoCaption}{%
|
||||
\begin{center}%
|
||||
}{%
|
||||
\end{center}%
|
||||
}
|
||||
|
||||
% Used by @attention
|
||||
\newenvironment{DoxyAttention}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @author and @authors
|
||||
\newenvironment{DoxyAuthor}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @date
|
||||
\newenvironment{DoxyDate}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @invariant
|
||||
\newenvironment{DoxyInvariant}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @note
|
||||
\newenvironment{DoxyNote}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @post
|
||||
\newenvironment{DoxyPostcond}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @pre
|
||||
\newenvironment{DoxyPrecond}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @copyright
|
||||
\newenvironment{DoxyCopyright}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @remark
|
||||
\newenvironment{DoxyRemark}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @return and @returns
|
||||
\newenvironment{DoxyReturn}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @since
|
||||
\newenvironment{DoxySince}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @see
|
||||
\newenvironment{DoxySeeAlso}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @version
|
||||
\newenvironment{DoxyVersion}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @warning
|
||||
\newenvironment{DoxyWarning}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @internal
|
||||
\newenvironment{DoxyInternal}[1]{%
|
||||
\paragraph*{#1}%
|
||||
}{%
|
||||
}
|
||||
|
||||
% Used by @par and @paragraph
|
||||
\newenvironment{DoxyParagraph}[1]{%
|
||||
\begin{list}{}{%
|
||||
\settowidth{\labelwidth}{40pt}%
|
||||
\setlength{\leftmargin}{\labelwidth}%
|
||||
\setlength{\parsep}{0pt}%
|
||||
\setlength{\itemsep}{-4pt}%
|
||||
\renewcommand{\makelabel}{\entrylabel}%
|
||||
}%
|
||||
\item[#1]%
|
||||
}{%
|
||||
\end{list}%
|
||||
}
|
||||
|
||||
% Used by parameter lists
|
||||
\newenvironment{DoxyParams}[2][]{%
|
||||
\tabulinesep=1mm%
|
||||
\par%
|
||||
\ifthenelse{\equal{#1}{}}%
|
||||
{\begin{longtabu} spread 0pt [l]{|X[-1,l]|X[-1,l]|}}% name + description
|
||||
{\ifthenelse{\equal{#1}{1}}%
|
||||
{\begin{longtabu} spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + name + desc
|
||||
{\begin{longtabu} spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + type + name + desc
|
||||
}
|
||||
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]%
|
||||
\hline%
|
||||
\endfirsthead%
|
||||
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]%
|
||||
\hline%
|
||||
\endhead%
|
||||
}{%
|
||||
\end{longtabu}%
|
||||
\vspace{6pt}%
|
||||
}
|
||||
|
||||
% Used for fields of simple structs
|
||||
\newenvironment{DoxyFields}[1]{%
|
||||
\tabulinesep=1mm%
|
||||
\par%
|
||||
\begin{longtabu} spread 0pt [l]{|X[-1,r]|X[-1,l]|X[-1,l]|}%
|
||||
\multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
|
||||
\hline%
|
||||
\endfirsthead%
|
||||
\multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
|
||||
\hline%
|
||||
\endhead%
|
||||
}{%
|
||||
\end{longtabu}%
|
||||
\vspace{6pt}%
|
||||
}
|
||||
|
||||
% Used for fields simple class style enums
|
||||
\newenvironment{DoxyEnumFields}[1]{%
|
||||
\tabulinesep=1mm%
|
||||
\par%
|
||||
\begin{longtabu} spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
|
||||
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
|
||||
\hline%
|
||||
\endfirsthead%
|
||||
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
|
||||
\hline%
|
||||
\endhead%
|
||||
}{%
|
||||
\end{longtabu}%
|
||||
\vspace{6pt}%
|
||||
}
|
||||
|
||||
% Used for parameters within a detailed function description
|
||||
\newenvironment{DoxyParamCaption}{%
|
||||
\renewcommand{\item}[2][]{\\ \hspace*{2.0cm} ##1 {\em ##2}}%
|
||||
}{%
|
||||
}
|
||||
|
||||
% Used by return value lists
|
||||
\newenvironment{DoxyRetVals}[1]{%
|
||||
\tabulinesep=1mm%
|
||||
\par%
|
||||
\begin{longtabu} spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
|
||||
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
|
||||
\hline%
|
||||
\endfirsthead%
|
||||
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
|
||||
\hline%
|
||||
\endhead%
|
||||
}{%
|
||||
\end{longtabu}%
|
||||
\vspace{6pt}%
|
||||
}
|
||||
|
||||
% Used by exception lists
|
||||
\newenvironment{DoxyExceptions}[1]{%
|
||||
\tabulinesep=1mm%
|
||||
\par%
|
||||
\begin{longtabu} spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
|
||||
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
|
||||
\hline%
|
||||
\endfirsthead%
|
||||
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
|
||||
\hline%
|
||||
\endhead%
|
||||
}{%
|
||||
\end{longtabu}%
|
||||
\vspace{6pt}%
|
||||
}
|
||||
|
||||
% Used by template parameter lists
|
||||
\newenvironment{DoxyTemplParams}[1]{%
|
||||
\tabulinesep=1mm%
|
||||
\par%
|
||||
\begin{longtabu} spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
|
||||
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
|
||||
\hline%
|
||||
\endfirsthead%
|
||||
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
|
||||
\hline%
|
||||
\endhead%
|
||||
}{%
|
||||
\end{longtabu}%
|
||||
\vspace{6pt}%
|
||||
}
|
||||
|
||||
% Used for member lists
|
||||
\newenvironment{DoxyCompactItemize}{%
|
||||
\begin{itemize}%
|
||||
\setlength{\itemsep}{-3pt}%
|
||||
\setlength{\parsep}{0pt}%
|
||||
\setlength{\topsep}{0pt}%
|
||||
\setlength{\partopsep}{0pt}%
|
||||
}{%
|
||||
\end{itemize}%
|
||||
}
|
||||
|
||||
% Used for member descriptions
|
||||
\newenvironment{DoxyCompactList}{%
|
||||
\begin{list}{}{%
|
||||
\setlength{\leftmargin}{0.5cm}%
|
||||
\setlength{\itemsep}{0pt}%
|
||||
\setlength{\parsep}{0pt}%
|
||||
\setlength{\topsep}{0pt}%
|
||||
\renewcommand{\makelabel}{\hfill}%
|
||||
}%
|
||||
}{%
|
||||
\end{list}%
|
||||
}
|
||||
|
||||
% Used for reference lists (@bug, @deprecated, @todo, etc.)
|
||||
\newenvironment{DoxyRefList}{%
|
||||
\begin{list}{}{%
|
||||
\setlength{\labelwidth}{10pt}%
|
||||
\setlength{\leftmargin}{\labelwidth}%
|
||||
\addtolength{\leftmargin}{\labelsep}%
|
||||
\renewcommand{\makelabel}{\xreflabel}%
|
||||
}%
|
||||
}{%
|
||||
\end{list}%
|
||||
}
|
||||
|
||||
% Used by @bug, @deprecated, @todo, etc.
|
||||
\newenvironment{DoxyRefDesc}[1]{%
|
||||
\begin{list}{}{%
|
||||
\renewcommand\makelabel[1]{\textbf{##1}}%
|
||||
\settowidth\labelwidth{\makelabel{#1}}%
|
||||
\setlength\leftmargin{\labelwidth+\labelsep}%
|
||||
}%
|
||||
}{%
|
||||
\end{list}%
|
||||
}
|
||||
|
||||
% Used by parameter lists and simple sections
|
||||
\newenvironment{Desc}
|
||||
{\begin{list}{}{%
|
||||
\settowidth{\labelwidth}{20pt}%
|
||||
\setlength{\parsep}{0pt}%
|
||||
\setlength{\itemsep}{0pt}%
|
||||
\setlength{\leftmargin}{\labelwidth+\labelsep}%
|
||||
\renewcommand{\makelabel}{\entrylabel}%
|
||||
}
|
||||
}{%
|
||||
\end{list}%
|
||||
}
|
||||
|
||||
% Used by tables
|
||||
\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp}%
|
||||
\newenvironment{TabularC}[1]%
|
||||
{\tabulinesep=1mm
|
||||
\begin{longtabu} spread 0pt [c]{*#1{|X[-1]}|}}%
|
||||
{\end{longtabu}\par}%
|
||||
|
||||
\newenvironment{TabularNC}[1]%
|
||||
{\begin{tabu} spread 0pt [l]{*#1{|X[-1]}|}}%
|
||||
{\end{tabu}\par}%
|
||||
|
||||
% Used for member group headers
|
||||
\newenvironment{Indent}{%
|
||||
\begin{list}{}{%
|
||||
\setlength{\leftmargin}{0.5cm}%
|
||||
}%
|
||||
\item[]\ignorespaces%
|
||||
}{%
|
||||
\unskip%
|
||||
\end{list}%
|
||||
}
|
||||
|
||||
% Used when hyperlinks are turned off
|
||||
\newcommand{\doxyref}[3]{%
|
||||
\textbf{#1} (\textnormal{#2}\,\pageref{#3})%
|
||||
}
|
||||
|
||||
% Used to link to a table when hyperlinks are turned on
|
||||
\newcommand{\doxytablelink}[2]{%
|
||||
\ref{#1}%
|
||||
}
|
||||
|
||||
% Used to link to a table when hyperlinks are turned off
|
||||
\newcommand{\doxytableref}[3]{%
|
||||
\ref{#3}%
|
||||
}
|
||||
|
||||
% Used by @addindex
|
||||
\newcommand{\lcurly}{\{}
|
||||
\newcommand{\rcurly}{\}}
|
||||
|
||||
% Colors used for syntax highlighting
|
||||
\definecolor{comment}{rgb}{0.5,0.0,0.0}
|
||||
\definecolor{keyword}{rgb}{0.0,0.5,0.0}
|
||||
\definecolor{keywordtype}{rgb}{0.38,0.25,0.125}
|
||||
\definecolor{keywordflow}{rgb}{0.88,0.5,0.0}
|
||||
\definecolor{preprocessor}{rgb}{0.5,0.38,0.125}
|
||||
\definecolor{stringliteral}{rgb}{0.0,0.125,0.25}
|
||||
\definecolor{charliteral}{rgb}{0.0,0.5,0.5}
|
||||
\definecolor{vhdldigit}{rgb}{1.0,0.0,1.0}
|
||||
\definecolor{vhdlkeyword}{rgb}{0.43,0.0,0.43}
|
||||
\definecolor{vhdllogic}{rgb}{1.0,0.0,0.0}
|
||||
\definecolor{vhdlchar}{rgb}{0.0,0.0,0.0}
|
||||
|
||||
% Color used for table heading
|
||||
\newcommand{\tableheadbgcolor}{lightgray}%
|
||||
|
||||
% Version of hypertarget with correct landing location
|
||||
\newcommand{\Hypertarget}[1]{\Hy@raisedlink{\hypertarget{#1}{}}}
|
||||
|
||||
% Define caption that is also suitable in a table
|
||||
\makeatletter
|
||||
\def\doxyfigcaption{%
|
||||
\refstepcounter{figure}%
|
||||
\@dblarg{\@caption{figure}}}
|
||||
\makeatother
|
||||
@@ -0,0 +1,151 @@
|
||||
\documentclass[twoside]{book}
|
||||
|
||||
% Packages required by doxygen
|
||||
\usepackage{fixltx2e}
|
||||
\usepackage{calc}
|
||||
\usepackage{doxygen}
|
||||
\usepackage[export]{adjustbox} % also loads graphicx
|
||||
\usepackage{graphicx}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage{makeidx}
|
||||
\usepackage{multicol}
|
||||
\usepackage{multirow}
|
||||
\PassOptionsToPackage{warn}{textcomp}
|
||||
\usepackage{textcomp}
|
||||
\usepackage[nointegrals]{wasysym}
|
||||
\usepackage[table]{xcolor}
|
||||
|
||||
% Font selection
|
||||
\usepackage[T1]{fontenc}
|
||||
\usepackage[scaled=.90]{helvet}
|
||||
\usepackage{courier}
|
||||
\usepackage{amssymb}
|
||||
\usepackage{sectsty}
|
||||
\renewcommand{\familydefault}{\sfdefault}
|
||||
\allsectionsfont{%
|
||||
\fontseries{bc}\selectfont%
|
||||
\color{darkgray}%
|
||||
}
|
||||
\renewcommand{\DoxyLabelFont}{%
|
||||
\fontseries{bc}\selectfont%
|
||||
\color{darkgray}%
|
||||
}
|
||||
\newcommand{\+}{\discretionary{\mbox{\scriptsize$\hookleftarrow$}}{}{}}
|
||||
|
||||
% Page & text layout
|
||||
\usepackage{geometry}
|
||||
\geometry{%
|
||||
a4paper,%
|
||||
top=2.5cm,%
|
||||
bottom=2.5cm,%
|
||||
left=2.5cm,%
|
||||
right=2.5cm%
|
||||
}
|
||||
\tolerance=750
|
||||
\hfuzz=15pt
|
||||
\hbadness=750
|
||||
\setlength{\emergencystretch}{15pt}
|
||||
\setlength{\parindent}{0cm}
|
||||
\setlength{\parskip}{3ex plus 2ex minus 2ex}
|
||||
\makeatletter
|
||||
\renewcommand{\paragraph}{%
|
||||
\@startsection{paragraph}{4}{0ex}{-1.0ex}{1.0ex}{%
|
||||
\normalfont\normalsize\bfseries\SS@parafont%
|
||||
}%
|
||||
}
|
||||
\renewcommand{\subparagraph}{%
|
||||
\@startsection{subparagraph}{5}{0ex}{-1.0ex}{1.0ex}{%
|
||||
\normalfont\normalsize\bfseries\SS@subparafont%
|
||||
}%
|
||||
}
|
||||
\makeatother
|
||||
|
||||
% Headers & footers
|
||||
\usepackage{fancyhdr}
|
||||
\pagestyle{fancyplain}
|
||||
\fancyhead[LE]{\fancyplain{}{\bfseries\thepage}}
|
||||
\fancyhead[CE]{\fancyplain{}{}}
|
||||
\fancyhead[RE]{\fancyplain{}{\bfseries\leftmark}}
|
||||
\fancyhead[LO]{\fancyplain{}{\bfseries\rightmark}}
|
||||
\fancyhead[CO]{\fancyplain{}{}}
|
||||
\fancyhead[RO]{\fancyplain{}{\bfseries\thepage}}
|
||||
\fancyfoot[LE]{\fancyplain{}{}}
|
||||
\fancyfoot[CE]{\fancyplain{}{}}
|
||||
\fancyfoot[RE]{\fancyplain{}{\bfseries\scriptsize Generated by Doxygen }}
|
||||
\fancyfoot[LO]{\fancyplain{}{\bfseries\scriptsize Generated by Doxygen }}
|
||||
\fancyfoot[CO]{\fancyplain{}{}}
|
||||
\fancyfoot[RO]{\fancyplain{}{}}
|
||||
\renewcommand{\footrulewidth}{0.4pt}
|
||||
\renewcommand{\chaptermark}[1]{%
|
||||
\markboth{#1}{}%
|
||||
}
|
||||
\renewcommand{\sectionmark}[1]{%
|
||||
\markright{\thesection\ #1}%
|
||||
}
|
||||
|
||||
% Indices & bibliography
|
||||
\usepackage{natbib}
|
||||
\usepackage[titles]{tocloft}
|
||||
\setcounter{tocdepth}{3}
|
||||
\setcounter{secnumdepth}{5}
|
||||
\makeindex
|
||||
|
||||
% Hyperlinks (required, but should be loaded last)
|
||||
\usepackage{ifpdf}
|
||||
\ifpdf
|
||||
\usepackage[pdftex,pagebackref=true]{hyperref}
|
||||
\else
|
||||
\usepackage[ps2pdf,pagebackref=true]{hyperref}
|
||||
\fi
|
||||
\hypersetup{%
|
||||
colorlinks=true,%
|
||||
linkcolor=blue,%
|
||||
citecolor=blue,%
|
||||
unicode%
|
||||
}
|
||||
|
||||
% Custom commands
|
||||
\newcommand{\clearemptydoublepage}{%
|
||||
\newpage{\pagestyle{empty}\cleardoublepage}%
|
||||
}
|
||||
|
||||
\usepackage{caption}
|
||||
\captionsetup{labelsep=space,justification=centering,font={bf},singlelinecheck=off,skip=4pt,position=top}
|
||||
|
||||
%===== C O N T E N T S =====
|
||||
|
||||
\begin{document}
|
||||
|
||||
% Titlepage & ToC
|
||||
\hypersetup{pageanchor=false,
|
||||
bookmarksnumbered=true,
|
||||
pdfencoding=unicode
|
||||
}
|
||||
\pagenumbering{alph}
|
||||
\begin{titlepage}
|
||||
\vspace*{7cm}
|
||||
\begin{center}%
|
||||
{\Large My Project }\\
|
||||
\vspace*{1cm}
|
||||
{\large Generated by Doxygen 1.8.13}\\
|
||||
\end{center}
|
||||
\end{titlepage}
|
||||
\clearemptydoublepage
|
||||
\pagenumbering{roman}
|
||||
\tableofcontents
|
||||
\clearemptydoublepage
|
||||
\pagenumbering{arabic}
|
||||
\hypersetup{pageanchor=true}
|
||||
|
||||
%--- Begin generated contents ---
|
||||
%--- End generated contents ---
|
||||
|
||||
% Index
|
||||
\backmatter
|
||||
\newpage
|
||||
\phantomsection
|
||||
\clearemptydoublepage
|
||||
\addcontentsline{toc}{chapter}{Index}
|
||||
\printindex
|
||||
|
||||
\end{document}
|
||||
@@ -14,293 +14,9 @@
|
||||
\fi}
|
||||
\global\let\hyper@last\relax
|
||||
\gdef\HyperFirstAtBeginDocument#1{#1}
|
||||
\providecommand\HyField@AuxAddToFields[1]{}
|
||||
\providecommand\HyField@AuxAddToCoFields[2]{}
|
||||
\providecommand*\HyPL@Entry[1]{}
|
||||
\HyPL@Entry{0<</S/a>>}
|
||||
\providecommand \oddpage@label [2]{}
|
||||
\@writefile{toc}{\contentsline {chapter}{\numberline {1}Hierarchical Index}{1}{chapter.1}}
|
||||
\@writefile{lof}{\addvspace {10\p@ }}
|
||||
\@writefile{lot}{\addvspace {10\p@ }}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {1.1}Class Hierarchy}{1}{section.1.1}}
|
||||
\@writefile{toc}{\contentsline {chapter}{\numberline {2}Class Index}{3}{chapter.2}}
|
||||
\@writefile{lof}{\addvspace {10\p@ }}
|
||||
\@writefile{lot}{\addvspace {10\p@ }}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {2.1}Class List}{3}{section.2.1}}
|
||||
\@writefile{toc}{\contentsline {chapter}{\numberline {3}Class Documentation}{5}{chapter.3}}
|
||||
\@writefile{lof}{\addvspace {10\p@ }}
|
||||
\@writefile{lot}{\addvspace {10\p@ }}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {3.1}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Account Class Reference}{5}{section.3.1}}
|
||||
\newlabel{class_b_m_a_account}{{3.1}{5}{B\+M\+A\+Account Class Reference}{section.3.1}{}}
|
||||
\newlabel{class_b_m_a_account_acdcaaf6a9fedf15d6ee90c2d1f9d2a97}{{3.1}{6}{Public Member Functions}{section*.4}{}}
|
||||
\newlabel{class_b_m_a_account_a7062aa89e22f1b11ae30a79091166381}{{3.1}{6}{Public Member Functions}{section*.4}{}}
|
||||
\newlabel{class_b_m_a_account_af83294d09c8b84373e98962f7bd4ab7e}{{3.1}{6}{Public Member Functions}{section*.4}{}}
|
||||
\newlabel{class_b_m_a_account_a31ee9351a201acb7925d8c38553756d2}{{3.1}{6}{Public Member Functions}{section*.4}{}}
|
||||
\newlabel{class_b_m_a_account_ab7b9ba2663dcf94219ea2ceb1a8828a2}{{3.1}{6}{Public Attributes}{section*.5}{}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {3.2}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Authenticate Class Reference}{6}{section.3.2}}
|
||||
\newlabel{class_b_m_a_authenticate}{{3.2}{6}{B\+M\+A\+Authenticate Class Reference}{section.3.2}{}}
|
||||
\newlabel{class_b_m_a_authenticate_a2acd6bf9aea96a672168dae0c5bd50f1}{{3.2}{7}{Public Member Functions}{section*.8}{}}
|
||||
\newlabel{class_b_m_a_authenticate_a755008a6a07bd70bafc47d6407a8605a}{{3.2}{7}{Public Member Functions}{section*.8}{}}
|
||||
\newlabel{class_b_m_a_authenticate_ae7ebe776ce594736a04798027c99c7c4}{{3.2}{7}{Public Member Functions}{section*.8}{}}
|
||||
\newlabel{class_b_m_a_authenticate_aa69fdaed4e769f5b1d9aff3da54eaa79}{{3.2}{7}{Public Member Functions}{section*.8}{}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {3.3}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Command Class Reference}{7}{section.3.3}}
|
||||
\newlabel{class_b_m_a_command}{{3.3}{7}{B\+M\+A\+Command Class Reference}{section.3.3}{}}
|
||||
\newlabel{class_b_m_a_command_a99873e43fd8b067ed358fdea9269518a}{{3.3}{8}{Public Member Functions}{section*.12}{}}
|
||||
\newlabel{class_b_m_a_command_ac99309bf4f9c1a98eda85b17c7160ee4}{{3.3}{8}{Public Member Functions}{section*.12}{}}
|
||||
\newlabel{class_b_m_a_command_a919e1d8451d9b145aa2ae81b51070736}{{3.3}{8}{Public Attributes}{section*.13}{}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {3.4}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Console\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Server Class Reference}{8}{section.3.4}}
|
||||
\newlabel{class_b_m_a_console_server}{{3.4}{8}{B\+M\+A\+Console\+Server Class Reference}{section.3.4}{}}
|
||||
\newlabel{class_b_m_a_console_server_ac9fc1d451b766c81f1c4f1bd805f320c}{{3.4}{9}{Public Member Functions}{section*.16}{}}
|
||||
\newlabel{class_b_m_a_console_server_a6affcd7bd92d12973e66cbc0b8ec2827}{{3.4}{9}{Public Member Functions}{section*.16}{}}
|
||||
\newlabel{class_b_m_a_console_server_a587d9606f601e2bf1f1ab835b706284d}{{3.4}{9}{Public Member Functions}{section*.16}{}}
|
||||
\newlabel{class_b_m_a_console_server_a97d97798a1e1b034ab3d80e17d78c3dc}{{3.4}{9}{Public Member Functions}{section*.16}{}}
|
||||
\newlabel{class_b_m_a_console_server_a7a4f30ac15fbe7ffa91cf010dfa4f123}{{3.4}{9}{Public Attributes}{section*.17}{}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {3.5}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Console\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Session Class Reference}{10}{section.3.5}}
|
||||
\newlabel{class_b_m_a_console_session}{{3.5}{10}{B\+M\+A\+Console\+Session Class Reference}{section.3.5}{}}
|
||||
\newlabel{class_b_m_a_console_session_a8733cc143a3b2eefc2cf8e057d024d1f}{{3.5}{11}{Public Member Functions}{section*.21}{}}
|
||||
\newlabel{class_b_m_a_console_session_a87369ca5cf534c3c1736cd197933b0d9}{{3.5}{11}{Protected Member Functions}{section*.22}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.5.1}Detailed Description}{11}{subsection.3.5.1}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.5.2}Member Function Documentation}{11}{subsection.3.5.2}}
|
||||
\newlabel{class_b_m_a_console_session_a38fee4b41375c4c14b4be42fd0a23669}{{3.5.2}{11}{Member Function Documentation}{subsection.3.5.2}{}}
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.5.2.1}output()}{12}{subsubsection.3.5.2.1}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {3.6}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}E\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Poll Class Reference}{12}{section.3.6}}
|
||||
\newlabel{class_b_m_a_e_poll}{{3.6}{12}{B\+M\+A\+E\+Poll Class Reference}{section.3.6}{}}
|
||||
\newlabel{class_b_m_a_e_poll_af47f8a2e6b6945ac0cd9b507d085759b}{{3.6}{13}{Public Member Functions}{section*.26}{}}
|
||||
\newlabel{class_b_m_a_e_poll_a86db128e32aceb4203258900dce9cb9f}{{3.6}{13}{Public Member Functions}{section*.26}{}}
|
||||
\newlabel{class_b_m_a_e_poll_a0cb441876d88e2d483eca02958836649}{{3.6}{13}{Public Member Functions}{section*.26}{}}
|
||||
\newlabel{class_b_m_a_e_poll_ad2feb77e1283f3245c516b585bd7ce42}{{3.6}{13}{Public Member Functions}{section*.26}{}}
|
||||
\newlabel{class_b_m_a_e_poll_ae740718bff5544929664b35dd89ac69f}{{3.6}{13}{Public Member Functions}{section*.26}{}}
|
||||
\newlabel{class_b_m_a_e_poll_ad95e44649fb029c8bbdccfa952109fe8}{{3.6}{13}{Public Attributes}{section*.27}{}}
|
||||
\newlabel{class_b_m_a_e_poll_a07e83e4b9fdad9550c7b383b0ee2d437}{{3.6}{13}{Public Attributes}{section*.27}{}}
|
||||
\newlabel{class_b_m_a_e_poll_ac18fcf68c61333d86955dc83443bfefc}{{3.6}{13}{Public Attributes}{section*.27}{}}
|
||||
\gdef \LT@i {\LT@entry
|
||||
{3}{38.44968pt}\LT@entry
|
||||
{3}{121.63078pt}}
|
||||
\gdef \LT@ii {\LT@entry
|
||||
{3}{38.44968pt}\LT@entry
|
||||
{3}{131.6386pt}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.6.1}Detailed Description}{14}{subsection.3.6.1}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.6.2}Member Function Documentation}{14}{subsection.3.6.2}}
|
||||
\newlabel{class_b_m_a_e_poll_a3eaabc21ed4f292346b708ebe5e70601}{{3.6.2}{14}{Member Function Documentation}{subsection.3.6.2}{}}
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.6.2.1}register\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Socket()}{14}{subsubsection.3.6.2.1}}
|
||||
\newlabel{class_b_m_a_e_poll_a791e51a702810e36f2f4220528ee998d}{{3.6.2.1}{14}{\texorpdfstring {register\+Socket()}{registerSocket()}}{table.3.1}{}}
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.6.2.2}unregister\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Socket()}{14}{subsubsection.3.6.2.2}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {3.7}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}File Class Reference}{15}{section.3.7}}
|
||||
\newlabel{class_b_m_a_file}{{3.7}{15}{B\+M\+A\+File Class Reference}{section.3.7}{}}
|
||||
\newlabel{class_b_m_a_file_a0fc501b25aa5802620e0a00872fd5a09}{{3.7}{15}{Public Member Functions}{section*.29}{}}
|
||||
\newlabel{class_b_m_a_file_a638a2fdf9e90aecc90d20028203f9094}{{3.7}{15}{Public Member Functions}{section*.29}{}}
|
||||
\newlabel{class_b_m_a_file_a0f5fe9196f887e465997b87f3ad45efc}{{3.7}{15}{Public Member Functions}{section*.29}{}}
|
||||
\newlabel{class_b_m_a_file_ab15e09e076166c5bb514a2cadd6b9dbf}{{3.7}{15}{Public Attributes}{section*.30}{}}
|
||||
\newlabel{class_b_m_a_file_ae57b53f5e14e9bd0a5082946e53c292e}{{3.7}{15}{Public Attributes}{section*.30}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.7.1}Detailed Description}{15}{subsection.3.7.1}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {3.8}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Header Class Reference}{16}{section.3.8}}
|
||||
\newlabel{class_b_m_a_header}{{3.8}{16}{B\+M\+A\+Header Class Reference}{section.3.8}{}}
|
||||
\newlabel{class_b_m_a_header_af1855cf4b98690190e94bef81ca2c1a9}{{3.8}{16}{Public Member Functions}{section*.33}{}}
|
||||
\newlabel{class_b_m_a_header_aa09b5818984a2cace6c888c110118781}{{3.8}{16}{Public Member Functions}{section*.33}{}}
|
||||
\newlabel{class_b_m_a_header_a17b7c2981a73f2da91d2dc9afb89b75c}{{3.8}{16}{Public Member Functions}{section*.33}{}}
|
||||
\newlabel{class_b_m_a_header_a34056833977a78115dc8eec4a0821419}{{3.8}{16}{Public Attributes}{section*.34}{}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {3.9}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}H\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}T\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}T\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}P\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Request\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Handler Class Reference}{17}{section.3.9}}
|
||||
\newlabel{class_b_m_a_h_t_t_p_request_handler}{{3.9}{17}{B\+M\+A\+H\+T\+T\+P\+Request\+Handler Class Reference}{section.3.9}{}}
|
||||
\newlabel{class_b_m_a_h_t_t_p_request_handler_a66aab795b5ad8dbad0c93037a6154b8b}{{3.9}{17}{Public Member Functions}{section*.37}{}}
|
||||
\newlabel{class_b_m_a_h_t_t_p_request_handler_a11a7dd0c9ac073b3df06bf289af930ec}{{3.9}{17}{Public Member Functions}{section*.37}{}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {3.10}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}H\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}T\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}T\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}P\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Server Class Reference}{18}{section.3.10}}
|
||||
\newlabel{class_b_m_a_h_t_t_p_server}{{3.10}{18}{B\+M\+A\+H\+T\+T\+P\+Server Class Reference}{section.3.10}{}}
|
||||
\newlabel{class_b_m_a_h_t_t_p_server_a3c87f61bd95e6b6b7063767107be888f}{{3.10}{19}{Public Member Functions}{section*.41}{}}
|
||||
\newlabel{class_b_m_a_h_t_t_p_server_af96543117f0ac993e6739671b0fd2cce}{{3.10}{19}{Public Member Functions}{section*.41}{}}
|
||||
\newlabel{class_b_m_a_h_t_t_p_server_a52503f63c721e256c215f365c248c684}{{3.10}{19}{Public Member Functions}{section*.41}{}}
|
||||
\newlabel{class_b_m_a_h_t_t_p_server_a97d50eaf2bbfdc82df19a13233e986b8}{{3.10}{19}{Public Member Functions}{section*.41}{}}
|
||||
\newlabel{class_b_m_a_h_t_t_p_server_a9769e9ff4c6dc4b662f1332daa0801d0}{{3.10}{19}{Public Attributes}{section*.42}{}}
|
||||
\newlabel{class_b_m_a_h_t_t_p_server_a0131e030bf8ee9850059e33f4d160a88}{{3.10}{19}{Protected Member Functions}{section*.43}{}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {3.11}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}H\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}T\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}T\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}P\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Session Class Reference}{20}{section.3.11}}
|
||||
\newlabel{class_b_m_a_h_t_t_p_session}{{3.11}{20}{B\+M\+A\+H\+T\+T\+P\+Session Class Reference}{section.3.11}{}}
|
||||
\newlabel{class_b_m_a_h_t_t_p_session_ae8fc4ff1379c124378f0aa3306733582}{{3.11}{21}{Public Member Functions}{section*.47}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.11.1}Member Function Documentation}{21}{subsection.3.11.1}}
|
||||
\newlabel{class_b_m_a_h_t_t_p_session_a286e62fb76240b2c1c9dd95aa055bdc1}{{3.11.1}{21}{Member Function Documentation}{subsection.3.11.1}{}}
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.11.1.1}on\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Data\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Received()}{22}{subsubsection.3.11.1.1}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {3.12}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Log Class Reference}{22}{section.3.12}}
|
||||
\newlabel{class_b_m_a_log}{{3.12}{22}{B\+M\+A\+Log Class Reference}{section.3.12}{}}
|
||||
\newlabel{class_b_m_a_log_af5e7c9307853910db81bda2bd6beb648}{{3.12}{22}{Public Member Functions}{section*.50}{}}
|
||||
\newlabel{class_b_m_a_log_a4585462cb35053b43fe4408627758bb2}{{3.12}{22}{Public Member Functions}{section*.50}{}}
|
||||
\newlabel{class_b_m_a_log_a15390b2f11c86acd18adf54265933c68}{{3.12}{22}{Protected Attributes}{section*.51}{}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {3.13}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}P3\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}File Class Reference}{22}{section.3.13}}
|
||||
\newlabel{class_b_m_a_m_p3_file}{{3.13}{22}{B\+M\+A\+M\+P3\+File Class Reference}{section.3.13}{}}
|
||||
\newlabel{class_b_m_a_m_p3_file_af3ef02c8a1c57d5050979b69e5c81527}{{3.13}{23}{Public Member Functions}{section*.54}{}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {3.14}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}P3\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Stream\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Content\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Provider Class Reference}{23}{section.3.14}}
|
||||
\newlabel{class_b_m_a_m_p3_stream_content_provider}{{3.14}{23}{B\+M\+A\+M\+P3\+Stream\+Content\+Provider Class Reference}{section.3.14}{}}
|
||||
\newlabel{class_b_m_a_m_p3_stream_content_provider_afc7ad357bbf07a8099a0ff7982b05b05}{{3.14}{24}{Public Member Functions}{section*.58}{}}
|
||||
\newlabel{class_b_m_a_m_p3_stream_content_provider_ac2d0a4c0f53f539b350a14d716dbba05}{{3.14}{24}{Public Member Functions}{section*.58}{}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {3.15}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}P3\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Stream\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Frame Class Reference}{24}{section.3.15}}
|
||||
\newlabel{class_b_m_a_m_p3_stream_frame}{{3.15}{24}{B\+M\+A\+M\+P3\+Stream\+Frame Class Reference}{section.3.15}{}}
|
||||
\newlabel{class_b_m_a_m_p3_stream_frame_a5b11e66e8391b33310c1883a7fc8dca6}{{3.15}{25}{Public Member Functions}{section*.62}{}}
|
||||
\newlabel{class_b_m_a_m_p3_stream_frame_afd7a44b65e7c4d14a5ae292bd2c6e6b1}{{3.15}{25}{Public Member Functions}{section*.62}{}}
|
||||
\newlabel{class_b_m_a_m_p3_stream_frame_a05f80355dbaaaff53b78d6a6235f0a22}{{3.15}{25}{Public Member Functions}{section*.62}{}}
|
||||
\newlabel{class_b_m_a_m_p3_stream_frame_a25078af894af1cee647bbf95d4027180}{{3.15}{25}{Public Member Functions}{section*.62}{}}
|
||||
\newlabel{class_b_m_a_m_p3_stream_frame_a6c4e0c1861ac3b4e6e3c7205b871d010}{{3.15}{25}{Public Member Functions}{section*.62}{}}
|
||||
\newlabel{class_b_m_a_m_p3_stream_frame_ae635c402b39b4f055f557a6cfecdbe85}{{3.15}{25}{Public Member Functions}{section*.62}{}}
|
||||
\newlabel{class_b_m_a_m_p3_stream_frame_a23dd3cf1289f0a7ed4c9745754f1baed}{{3.15}{25}{Public Member Functions}{section*.62}{}}
|
||||
\newlabel{class_b_m_a_m_p3_stream_frame_a3e45284a7c806f41e0229d121b63b274}{{3.15}{25}{Public Member Functions}{section*.62}{}}
|
||||
\newlabel{class_b_m_a_m_p3_stream_frame_a0570cfb188709b1eeab2a4f2af68aae4}{{3.15}{25}{Public Member Functions}{section*.62}{}}
|
||||
\newlabel{class_b_m_a_m_p3_stream_frame_af75f5b80a34ea8f7e76527014d93d0c9}{{3.15}{25}{Protected Attributes}{section*.63}{}}
|
||||
\newlabel{class_b_m_a_m_p3_stream_frame_a4c570bcdc77665c207d84d1ed046abbf}{{3.15}{25}{Protected Attributes}{section*.63}{}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {3.16}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Object Class Reference}{26}{section.3.16}}
|
||||
\newlabel{class_b_m_a_object}{{3.16}{26}{B\+M\+A\+Object Class Reference}{section.3.16}{}}
|
||||
\newlabel{class_b_m_a_object_aedf39fba0d2dda8c3d9048746c1b8957}{{3.16}{26}{Public Attributes}{section*.66}{}}
|
||||
\newlabel{class_b_m_a_object_acc0e38c2263588ba9ff1792b17d64f6e}{{3.16}{26}{Public Attributes}{section*.66}{}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {3.17}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Parse\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Header Class Reference}{26}{section.3.17}}
|
||||
\newlabel{class_b_m_a_parse_header}{{3.17}{26}{B\+M\+A\+Parse\+Header Class Reference}{section.3.17}{}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {3.18}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Property$<$ T $>$ Class Template Reference}{26}{section.3.18}}
|
||||
\newlabel{class_b_m_a_property}{{3.18}{26}{B\+M\+A\+Property$<$ T $>$ Class Template Reference}{section.3.18}{}}
|
||||
\newlabel{class_b_m_a_property_ace93e2bf5d7e9931213019bb8e3a10e7}{{3.18}{26}{Public Member Functions}{section*.67}{}}
|
||||
\newlabel{class_b_m_a_property_aee5ee1d866a247257b243b1ad3c7fa52}{{3.18}{26}{Public Member Functions}{section*.67}{}}
|
||||
\newlabel{class_b_m_a_property_abf0982ca4a88c38d3b61b52661dc50f0}{{3.18}{27}{Protected Attributes}{section*.68}{}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {3.19}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Session Class Reference}{27}{section.3.19}}
|
||||
\newlabel{class_b_m_a_session}{{3.19}{27}{B\+M\+A\+Session Class Reference}{section.3.19}{}}
|
||||
\newlabel{class_b_m_a_session_a21391b7697a52fe8adca0b124d91260d}{{3.19}{28}{Public Member Functions}{section*.71}{}}
|
||||
\newlabel{class_b_m_a_session_a3a63e1fb3a64bc4922654aa0d8462364}{{3.19}{28}{Public Attributes}{section*.72}{}}
|
||||
\newlabel{class_b_m_a_session_a258007030bcebbf172f38b028063773a}{{3.19}{28}{Public Attributes}{section*.72}{}}
|
||||
\newlabel{class_b_m_a_session_a790eff4b5d8bf2870c00547131c2fc1a}{{3.19}{28}{Protected Member Functions}{section*.73}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.19.1}Detailed Description}{28}{subsection.3.19.1}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.19.2}Member Function Documentation}{28}{subsection.3.19.2}}
|
||||
\newlabel{class_b_m_a_session_a0d382f77e98c53e966119c2563cbfef5}{{3.19.2}{28}{Member Function Documentation}{subsection.3.19.2}{}}
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.19.2.1}on\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Connected()}{28}{subsubsection.3.19.2.1}}
|
||||
\newlabel{class_b_m_a_session_a5813c378c254e9ec2c516ffd15e334e6}{{3.19.2.1}{28}{\texorpdfstring {on\+Connected()}{onConnected()}}{subsubsection.3.19.2.1}{}}
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.19.2.2}on\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Data\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Received()}{29}{subsubsection.3.19.2.2}}
|
||||
\newlabel{class_b_m_a_session_a9400cb2731b687d6717dcefda749a31c}{{3.19.2.2}{29}{\texorpdfstring {on\+Data\+Received()}{onDataReceived()}}{subsubsection.3.19.2.2}{}}
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.19.2.3}output()}{29}{subsubsection.3.19.2.3}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {3.20}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}S\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}I\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}P\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}I\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}N\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}V\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}I\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}TE Class Reference}{29}{section.3.20}}
|
||||
\newlabel{class_b_m_a_s_i_p_i_n_v_i_t_e}{{3.20}{29}{B\+M\+A\+S\+I\+P\+I\+N\+V\+I\+TE Class Reference}{section.3.20}{}}
|
||||
\newlabel{class_b_m_a_s_i_p_i_n_v_i_t_e_a336c75edbb990afc5f7c23a9e9526ab6}{{3.20}{30}{Public Member Functions}{section*.77}{}}
|
||||
\newlabel{class_b_m_a_s_i_p_i_n_v_i_t_e_afddfa168dc18d636cd77fb6347ceb9f0}{{3.20}{30}{Public Member Functions}{section*.77}{}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {3.21}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}S\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}I\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}P\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}R\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}E\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}G\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}I\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}S\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}T\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}ER Class Reference}{30}{section.3.21}}
|
||||
\newlabel{class_b_m_a_s_i_p_r_e_g_i_s_t_e_r}{{3.21}{30}{B\+M\+A\+S\+I\+P\+R\+E\+G\+I\+S\+T\+ER Class Reference}{section.3.21}{}}
|
||||
\newlabel{class_b_m_a_s_i_p_r_e_g_i_s_t_e_r_ad47b3f2be59334c8c3dc25ba11c1425f}{{3.21}{31}{Public Member Functions}{section*.81}{}}
|
||||
\newlabel{class_b_m_a_s_i_p_r_e_g_i_s_t_e_r_a996ec80f279fcebf8101280928cb4593}{{3.21}{31}{Public Member Functions}{section*.81}{}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {3.22}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}S\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}I\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}P\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Request\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Handler Class Reference}{31}{section.3.22}}
|
||||
\newlabel{class_b_m_a_s_i_p_request_handler}{{3.22}{31}{B\+M\+A\+S\+I\+P\+Request\+Handler Class Reference}{section.3.22}{}}
|
||||
\newlabel{class_b_m_a_s_i_p_request_handler_af1c7197ea97c4bd03a9d96fc544111d5}{{3.22}{32}{Public Member Functions}{section*.85}{}}
|
||||
\newlabel{class_b_m_a_s_i_p_request_handler_a52f44d394c70dafa17a2ef19974703de}{{3.22}{32}{Public Member Functions}{section*.85}{}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {3.23}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}S\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}I\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}P\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Server Class Reference}{33}{section.3.23}}
|
||||
\newlabel{class_b_m_a_s_i_p_server}{{3.23}{33}{B\+M\+A\+S\+I\+P\+Server Class Reference}{section.3.23}{}}
|
||||
\newlabel{class_b_m_a_s_i_p_server_ae196b9426443d3d155fc15eca55efb72}{{3.23}{34}{Public Member Functions}{section*.89}{}}
|
||||
\newlabel{class_b_m_a_s_i_p_server_a5a137ffb4a5e6465ed56bfbea3d31529}{{3.23}{34}{Public Member Functions}{section*.89}{}}
|
||||
\newlabel{class_b_m_a_s_i_p_server_a89024135ffa80f3423e5623ae0720728}{{3.23}{34}{Public Member Functions}{section*.89}{}}
|
||||
\newlabel{class_b_m_a_s_i_p_server_a5279cc6f08b3d8b87ec3ca5c2345cabd}{{3.23}{34}{Public Member Functions}{section*.89}{}}
|
||||
\newlabel{class_b_m_a_s_i_p_server_a6b19c46961b603bcad6b268761d0e2ed}{{3.23}{34}{Protected Member Functions}{section*.90}{}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {3.24}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}S\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}I\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}P\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Session Class Reference}{35}{section.3.24}}
|
||||
\newlabel{class_b_m_a_s_i_p_session}{{3.24}{35}{B\+M\+A\+S\+I\+P\+Session Class Reference}{section.3.24}{}}
|
||||
\newlabel{class_b_m_a_s_i_p_session_a5c81150e2d965d70c25d84c95734b0a7}{{3.24}{36}{Public Member Functions}{section*.94}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.24.1}Member Function Documentation}{36}{subsection.3.24.1}}
|
||||
\newlabel{class_b_m_a_s_i_p_session_a7eda33cab36e5794744819673f1d9d47}{{3.24.1}{36}{Member Function Documentation}{subsection.3.24.1}{}}
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.24.1.1}on\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Data\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Received()}{37}{subsubsection.3.24.1.1}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {3.25}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Socket Class Reference}{37}{section.3.25}}
|
||||
\newlabel{class_b_m_a_socket}{{3.25}{37}{B\+M\+A\+Socket Class Reference}{section.3.25}{}}
|
||||
\newlabel{class_b_m_a_socket_adb2a05588a86a3f8b595ecd8e12b1c51}{{3.25}{38}{Public Member Functions}{section*.99}{}}
|
||||
\newlabel{class_b_m_a_socket_a67e45d5eeeb26964e3509d58abe7762a}{{3.25}{38}{Public Member Functions}{section*.99}{}}
|
||||
\newlabel{class_b_m_a_socket_aaf06616205d8bc97d305d77c94996cb0}{{3.25}{38}{Public Member Functions}{section*.99}{}}
|
||||
\newlabel{class_b_m_a_socket_a525cbedfa4b3f62e81f34734a69110ab}{{3.25}{38}{Public Member Functions}{section*.99}{}}
|
||||
\newlabel{class_b_m_a_socket_ace059125ad6036f1d628169afdc3c891}{{3.25}{38}{Public Member Functions}{section*.99}{}}
|
||||
\newlabel{class_b_m_a_socket_a2f9f17ca8819f2b1b11bf5b09ff2bb37}{{3.25}{38}{Public Attributes}{section*.100}{}}
|
||||
\newlabel{class_b_m_a_socket_a0ab8695ad43d7c0a7999673ea023fda4}{{3.25}{38}{Protected Member Functions}{section*.101}{}}
|
||||
\newlabel{class_b_m_a_socket_a6a8f431adc915983ad25bd25523d40dd}{{3.25}{39}{Protected Attributes}{section*.102}{}}
|
||||
\newlabel{class_b_m_a_socket_acfd4416961ce5ad1f25d0a0f35a574d2}{{3.25}{39}{Protected Attributes}{section*.102}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.25.1}Constructor \& Destructor Documentation}{39}{subsection.3.25.1}}
|
||||
\newlabel{class_b_m_a_socket_ae07ca3bf2bdf294e256f4fd1a3cff896}{{3.25.1}{39}{Constructor \& Destructor Documentation}{subsection.3.25.1}{}}
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.25.1.1}$\sim $\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Socket()}{39}{subsubsection.3.25.1.1}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.25.2}Member Function Documentation}{39}{subsection.3.25.2}}
|
||||
\newlabel{class_b_m_a_socket_ac1e63c2e54aff72c18cadc5f3bc9001f}{{3.25.2}{39}{Member Function Documentation}{subsection.3.25.2}{}}
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.25.2.1}event\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Received()}{39}{subsubsection.3.25.2.1}}
|
||||
\newlabel{class_b_m_a_socket_ac2206da05ab857ec64c5d4addb04a4bf}{{3.25.2.1}{39}{\texorpdfstring {event\+Received()}{eventReceived()}}{subsubsection.3.25.2.1}{}}
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.25.2.2}on\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Connected()}{39}{subsubsection.3.25.2.2}}
|
||||
\newlabel{class_b_m_a_socket_a06c18fd08fa4b32d4e436425c64262ff}{{3.25.2.2}{39}{\texorpdfstring {on\+Connected()}{onConnected()}}{subsubsection.3.25.2.2}{}}
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.25.2.3}on\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Data\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Received()}{40}{subsubsection.3.25.2.3}}
|
||||
\newlabel{class_b_m_a_socket_acde955606cbe6ded534a08dff158796d}{{3.25.2.3}{40}{\texorpdfstring {on\+Data\+Received()}{onDataReceived()}}{subsubsection.3.25.2.3}{}}
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.25.2.4}on\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Registered()}{40}{subsubsection.3.25.2.4}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {3.26}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Stream\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Content\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Provider Class Reference}{40}{section.3.26}}
|
||||
\newlabel{class_b_m_a_stream_content_provider}{{3.26}{40}{B\+M\+A\+Stream\+Content\+Provider Class Reference}{section.3.26}{}}
|
||||
\newlabel{class_b_m_a_stream_content_provider_a591402a921437be32b4c5212a370529d}{{3.26}{40}{Public Member Functions}{section*.104}{}}
|
||||
\newlabel{class_b_m_a_stream_content_provider_aad23c59e622ce1adcf17444648d517ad}{{3.26}{40}{Public Member Functions}{section*.104}{}}
|
||||
\newlabel{class_b_m_a_stream_content_provider_aa883b991dcb2b8876deb45f47c9804d4}{{3.26}{40}{Public Member Functions}{section*.104}{}}
|
||||
\newlabel{class_b_m_a_stream_content_provider_a1ade88dfec2372bdd3733dd99669a3a6}{{3.26}{41}{Public Attributes}{section*.105}{}}
|
||||
\newlabel{class_b_m_a_stream_content_provider_a79befceb5147af3910ae1bc57db8b934}{{3.26}{41}{Public Attributes}{section*.105}{}}
|
||||
\newlabel{class_b_m_a_stream_content_provider_aec7f301261d2ed2915aa082c65165657}{{3.26}{41}{Public Attributes}{section*.105}{}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {3.27}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Stream\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Frame Class Reference}{41}{section.3.27}}
|
||||
\newlabel{class_b_m_a_stream_frame}{{3.27}{41}{B\+M\+A\+Stream\+Frame Class Reference}{section.3.27}{}}
|
||||
\newlabel{class_b_m_a_stream_frame_a7f5a4fd691993ef0ba72b8d176df0da1}{{3.27}{41}{Public Member Functions}{section*.107}{}}
|
||||
\newlabel{class_b_m_a_stream_frame_a137a0bc0232b1988e1592b5eb7edad2d}{{3.27}{41}{Public Member Functions}{section*.107}{}}
|
||||
\newlabel{class_b_m_a_stream_frame_a9028c15407e7c86bbd513610c5d1d37d}{{3.27}{41}{Public Member Functions}{section*.107}{}}
|
||||
\newlabel{class_b_m_a_stream_frame_a42767d408575fb59a37f398d867f51a7}{{3.27}{41}{Public Attributes}{section*.108}{}}
|
||||
\newlabel{class_b_m_a_stream_frame_a2f790b9f525141edec746b18843a2169}{{3.27}{41}{Public Attributes}{section*.108}{}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {3.28}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Stream\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Server Class Reference}{42}{section.3.28}}
|
||||
\newlabel{class_b_m_a_stream_server}{{3.28}{42}{B\+M\+A\+Stream\+Server Class Reference}{section.3.28}{}}
|
||||
\newlabel{class_b_m_a_stream_server_a53088bc75ca8a77ace2045f88dc5daec}{{3.28}{43}{Public Member Functions}{section*.111}{}}
|
||||
\newlabel{class_b_m_a_stream_server_ac6cdba284f178898a73c928ea7d32dac}{{3.28}{43}{Public Member Functions}{section*.111}{}}
|
||||
\newlabel{class_b_m_a_stream_server_a1359cfb8a98edc68a0eea88e9c8e94ca}{{3.28}{43}{Public Member Functions}{section*.111}{}}
|
||||
\newlabel{class_b_m_a_stream_server_a91e16f2a0e42e6875c7746f1d344619e}{{3.28}{43}{Public Member Functions}{section*.111}{}}
|
||||
\newlabel{class_b_m_a_stream_server_a49786d83fb2231f4f26d01ee515707dd}{{3.28}{43}{Public Member Functions}{section*.111}{}}
|
||||
\newlabel{class_b_m_a_stream_server_a6dc57637a87aa9fc963a1c887277583e}{{3.28}{43}{Public Member Functions}{section*.111}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.28.1}Detailed Description}{43}{subsection.3.28.1}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {3.29}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Stream\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Session Class Reference}{44}{section.3.29}}
|
||||
\newlabel{class_b_m_a_stream_session}{{3.29}{44}{B\+M\+A\+Stream\+Session Class Reference}{section.3.29}{}}
|
||||
\newlabel{class_b_m_a_stream_session_a2d9cbb3811f5ffc816cd8d1f7aa945c5}{{3.29}{45}{Public Member Functions}{section*.115}{}}
|
||||
\newlabel{class_b_m_a_stream_session_a5bee25cf2cc4412e553fa5ff482e2d09}{{3.29}{45}{Public Member Functions}{section*.115}{}}
|
||||
\newlabel{class_b_m_a_stream_session_a18e858e8be7d175f0be6b78e7a2d176f}{{3.29}{45}{Protected Member Functions}{section*.116}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.29.1}Member Function Documentation}{45}{subsection.3.29.1}}
|
||||
\newlabel{class_b_m_a_stream_session_a3cdbd3fec1e12da366bcb31de15274e9}{{3.29.1}{45}{Member Function Documentation}{subsection.3.29.1}{}}
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.29.1.1}on\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Data\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Received()}{46}{subsubsection.3.29.1.1}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {3.30}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}T\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}C\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}P\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Server\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Socket Class Reference}{46}{section.3.30}}
|
||||
\newlabel{class_b_m_a_t_c_p_server_socket}{{3.30}{46}{B\+M\+A\+T\+C\+P\+Server\+Socket Class Reference}{section.3.30}{}}
|
||||
\newlabel{class_b_m_a_t_c_p_server_socket_a48e6fa160a86accb51f81724c3af51fd}{{3.30}{47}{Public Member Functions}{section*.120}{}}
|
||||
\newlabel{class_b_m_a_t_c_p_server_socket_a4784820c3098af2d9debde61a417c82d}{{3.30}{47}{Protected Member Functions}{section*.121}{}}
|
||||
\newlabel{class_b_m_a_t_c_p_server_socket_a9004558c1152d4f8662531970250defc}{{3.30}{47}{Protected Member Functions}{section*.121}{}}
|
||||
\newlabel{class_b_m_a_t_c_p_server_socket_a8719aeb1b87b9f0d7e0b38aa28ab9a35}{{3.30}{47}{Protected Attributes}{section*.122}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.30.1}Detailed Description}{47}{subsection.3.30.1}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.30.2}Member Function Documentation}{48}{subsection.3.30.2}}
|
||||
\newlabel{class_b_m_a_t_c_p_server_socket_a3ef3f70a0ffeaf1c56e74b22a2337959}{{3.30.2}{48}{Member Function Documentation}{subsection.3.30.2}{}}
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.30.2.1}accept()}{48}{subsubsection.3.30.2.1}}
|
||||
\newlabel{class_b_m_a_t_c_p_server_socket_a0f70ff512174afe7be50b523234d45df}{{3.30.2.1}{48}{\texorpdfstring {accept()}{accept()}}{subsubsection.3.30.2.1}{}}
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.30.2.2}on\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Data\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Received()}{48}{subsubsection.3.30.2.2}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {3.31}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}T\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}C\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}P\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Socket Class Reference}{48}{section.3.31}}
|
||||
\newlabel{class_b_m_a_t_c_p_socket}{{3.31}{48}{B\+M\+A\+T\+C\+P\+Socket Class Reference}{section.3.31}{}}
|
||||
\newlabel{class_b_m_a_t_c_p_socket_a3e553a95ec29cb931c828b750f6ab524}{{3.31}{49}{Public Member Functions}{section*.126}{}}
|
||||
\newlabel{class_b_m_a_t_c_p_socket_abf6b5c7be1ed054bf40994b94e1da67b}{{3.31}{49}{Public Member Functions}{section*.126}{}}
|
||||
\newlabel{class_b_m_a_t_c_p_socket_ad730b3ef80d884a2490f0e07f783ef2d}{{3.31}{49}{Public Member Functions}{section*.126}{}}
|
||||
\newlabel{class_b_m_a_t_c_p_socket_a50761b35bd02d8785240c5e3be3ceb07}{{3.31}{49}{Public Member Functions}{section*.126}{}}
|
||||
\newlabel{class_b_m_a_t_c_p_socket_a637e5fe1fffa09f6cc89e2b3389e731e}{{3.31}{49}{Public Attributes}{section*.127}{}}
|
||||
\newlabel{class_b_m_a_t_c_p_socket_afc155f5a4961f54c77ed92acd852488a}{{3.31}{49}{Public Attributes}{section*.127}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.31.1}Detailed Description}{49}{subsection.3.31.1}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.31.2}Member Function Documentation}{50}{subsection.3.31.2}}
|
||||
\newlabel{class_b_m_a_t_c_p_socket_a0acd8f2fd367a5f3a42027979a0dc14b}{{3.31.2}{50}{Member Function Documentation}{subsection.3.31.2}{}}
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.31.2.1}on\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Connected()}{50}{subsubsection.3.31.2.1}}
|
||||
\newlabel{class_b_m_a_t_c_p_socket_a017112b916d42b9e86b39da747c364c1}{{3.31.2.1}{50}{\texorpdfstring {on\+Connected()}{onConnected()}}{subsubsection.3.31.2.1}{}}
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.31.2.2}output()}{50}{subsubsection.3.31.2.2}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {3.32}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Thread Class Reference}{50}{section.3.32}}
|
||||
\newlabel{class_b_m_a_thread}{{3.32}{50}{B\+M\+A\+Thread Class Reference}{section.3.32}{}}
|
||||
\newlabel{class_b_m_a_thread_aa7e0a54fa8b787d94dc7ed8f7f320ba6}{{3.32}{50}{Public Member Functions}{section*.129}{}}
|
||||
\newlabel{class_b_m_a_thread_a71945ff6553b22563f2140f8eafc2413}{{3.32}{50}{Public Member Functions}{section*.129}{}}
|
||||
\newlabel{class_b_m_a_thread_a3b2d129bf06d98080b618099b901057d}{{3.32}{50}{Public Member Functions}{section*.129}{}}
|
||||
\newlabel{class_b_m_a_thread_ae1136fec7fc4fa071ea51d4b5422ab4f}{{3.32}{50}{Public Member Functions}{section*.129}{}}
|
||||
\newlabel{class_b_m_a_thread_a3c13d1a99e7cfe8d1466fabd2f0133ae}{{3.32}{50}{Public Member Functions}{section*.129}{}}
|
||||
\newlabel{class_b_m_a_thread_ab093e79785c0cf389ec2ea1f39839112}{{3.32}{50}{Public Member Functions}{section*.129}{}}
|
||||
\newlabel{class_b_m_a_thread_aad5d1046c39a26074aa86722db964423}{{3.32}{50}{Public Member Functions}{section*.129}{}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {3.33}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Timer Class Reference}{51}{section.3.33}}
|
||||
\newlabel{class_b_m_a_timer}{{3.33}{51}{B\+M\+A\+Timer Class Reference}{section.3.33}{}}
|
||||
\newlabel{class_b_m_a_timer_a23b70762f6bca2ec9eee5642cda6e915}{{3.33}{51}{Public Member Functions}{section*.132}{}}
|
||||
\newlabel{class_b_m_a_timer_a52096d26eabfb5a938091d6160705b43}{{3.33}{52}{Public Member Functions}{section*.132}{}}
|
||||
\newlabel{class_b_m_a_timer_acbfec79cd4b7834e35c05cab6ffdf0b1}{{3.33}{52}{Public Member Functions}{section*.132}{}}
|
||||
\newlabel{class_b_m_a_timer_abc80e4ca7b8820ffe50e48e51f625b6b}{{3.33}{52}{Public Member Functions}{section*.132}{}}
|
||||
\newlabel{class_b_m_a_timer_a506c954ebdddc111f87e59717d40edef}{{3.33}{52}{Protected Member Functions}{section*.133}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.33.1}Detailed Description}{52}{subsection.3.33.1}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.33.2}Member Function Documentation}{52}{subsection.3.33.2}}
|
||||
\newlabel{class_b_m_a_timer_a64c71fecfafad873712b6f0051de6546}{{3.33.2}{52}{Member Function Documentation}{subsection.3.33.2}{}}
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.33.2.1}on\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Data\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Received()}{52}{subsubsection.3.33.2.1}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {3.34}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}U\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}D\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}P\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Server\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Socket Class Reference}{53}{section.3.34}}
|
||||
\newlabel{class_b_m_a_u_d_p_server_socket}{{3.34}{53}{B\+M\+A\+U\+D\+P\+Server\+Socket Class Reference}{section.3.34}{}}
|
||||
\newlabel{class_b_m_a_u_d_p_server_socket_a7f32b0ee1fe9d6b7707f0c7742c5b370}{{3.34}{54}{Public Member Functions}{section*.136}{}}
|
||||
\newlabel{class_b_m_a_u_d_p_server_socket_a3db066aff261a9109fe28d5db137e01c}{{3.34}{54}{Protected Member Functions}{section*.137}{}}
|
||||
\newlabel{class_b_m_a_u_d_p_server_socket_a546c253f0e165daef0dc9f60651a23f7}{{3.34}{54}{Protected Attributes}{section*.138}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.34.1}Detailed Description}{54}{subsection.3.34.1}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.34.2}Member Function Documentation}{54}{subsection.3.34.2}}
|
||||
\newlabel{class_b_m_a_u_d_p_server_socket_a9700a1c3fb775596d562f750bd08ebe7}{{3.34.2}{54}{Member Function Documentation}{subsection.3.34.2}{}}
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.34.2.1}on\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Data\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Received()}{54}{subsubsection.3.34.2.1}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {3.35}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}U\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}D\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}P\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Socket Class Reference}{55}{section.3.35}}
|
||||
\newlabel{class_b_m_a_u_d_p_socket}{{3.35}{55}{B\+M\+A\+U\+D\+P\+Socket Class Reference}{section.3.35}{}}
|
||||
\newlabel{class_b_m_a_u_d_p_socket_a1526f880001526ef7c5180b3a2124f38}{{3.35}{55}{Public Member Functions}{section*.142}{}}
|
||||
\@writefile{toc}{\contentsline {chapter}{Index}{57}{section*.144}}
|
||||
\HyPL@Entry{2<</S/r>>}
|
||||
\HyPL@Entry{4<</S/D>>}
|
||||
\@writefile{toc}{\contentsline {chapter}{Index}{1}{section*.2}}
|
||||
@@ -1,75 +0,0 @@
|
||||
\indexentry{B\+M\+A\+Account@{B\+M\+A\+Account}|hyperpage}{5}
|
||||
\indexentry{B\+M\+A\+Authenticate@{B\+M\+A\+Authenticate}|hyperpage}{6}
|
||||
\indexentry{B\+M\+A\+Command@{B\+M\+A\+Command}|hyperpage}{7}
|
||||
\indexentry{B\+M\+A\+Console\+Server@{B\+M\+A\+Console\+Server}|hyperpage}{8}
|
||||
\indexentry{B\+M\+A\+Console\+Session@{B\+M\+A\+Console\+Session}|hyperpage}{10}
|
||||
\indexentry{B\+M\+A\+Console\+Session@{B\+M\+A\+Console\+Session}!output@{output}|hyperpage}{11}
|
||||
\indexentry{output@{output}!B\+M\+A\+Console\+Session@{B\+M\+A\+Console\+Session}|hyperpage}{11}
|
||||
\indexentry{B\+M\+A\+E\+Poll@{B\+M\+A\+E\+Poll}|hyperpage}{12}
|
||||
\indexentry{B\+M\+A\+E\+Poll@{B\+M\+A\+E\+Poll}!register\+Socket@{register\+Socket}|hyperpage}{14}
|
||||
\indexentry{register\+Socket@{register\+Socket}!B\+M\+A\+E\+Poll@{B\+M\+A\+E\+Poll}|hyperpage}{14}
|
||||
\indexentry{B\+M\+A\+E\+Poll@{B\+M\+A\+E\+Poll}!unregister\+Socket@{unregister\+Socket}|hyperpage}{14}
|
||||
\indexentry{unregister\+Socket@{unregister\+Socket}!B\+M\+A\+E\+Poll@{B\+M\+A\+E\+Poll}|hyperpage}{14}
|
||||
\indexentry{B\+M\+A\+File@{B\+M\+A\+File}|hyperpage}{15}
|
||||
\indexentry{B\+M\+A\+Header@{B\+M\+A\+Header}|hyperpage}{16}
|
||||
\indexentry{B\+M\+A\+H\+T\+T\+P\+Request\+Handler@{B\+M\+A\+H\+T\+T\+P\+Request\+Handler}|hyperpage}{17}
|
||||
\indexentry{B\+M\+A\+H\+T\+T\+P\+Server@{B\+M\+A\+H\+T\+T\+P\+Server}|hyperpage}{18}
|
||||
\indexentry{B\+M\+A\+H\+T\+T\+P\+Session@{B\+M\+A\+H\+T\+T\+P\+Session}|hyperpage}{20}
|
||||
\indexentry{B\+M\+A\+H\+T\+T\+P\+Session@{B\+M\+A\+H\+T\+T\+P\+Session}!on\+Data\+Received@{on\+Data\+Received}|hyperpage}{21}
|
||||
\indexentry{on\+Data\+Received@{on\+Data\+Received}!B\+M\+A\+H\+T\+T\+P\+Session@{B\+M\+A\+H\+T\+T\+P\+Session}|hyperpage}{21}
|
||||
\indexentry{B\+M\+A\+Log@{B\+M\+A\+Log}|hyperpage}{22}
|
||||
\indexentry{B\+M\+A\+M\+P3\+File@{B\+M\+A\+M\+P3\+File}|hyperpage}{22}
|
||||
\indexentry{B\+M\+A\+M\+P3\+Stream\+Content\+Provider@{B\+M\+A\+M\+P3\+Stream\+Content\+Provider}|hyperpage}{23}
|
||||
\indexentry{B\+M\+A\+M\+P3\+Stream\+Frame@{B\+M\+A\+M\+P3\+Stream\+Frame}|hyperpage}{24}
|
||||
\indexentry{B\+M\+A\+Object@{B\+M\+A\+Object}|hyperpage}{26}
|
||||
\indexentry{B\+M\+A\+Parse\+Header@{B\+M\+A\+Parse\+Header}|hyperpage}{26}
|
||||
\indexentry{B\+M\+A\+Property$<$ T $>$@{B\+M\+A\+Property$<$ T $>$}|hyperpage}{26}
|
||||
\indexentry{B\+M\+A\+Session@{B\+M\+A\+Session}|hyperpage}{27}
|
||||
\indexentry{B\+M\+A\+Session@{B\+M\+A\+Session}!on\+Connected@{on\+Connected}|hyperpage}{28}
|
||||
\indexentry{on\+Connected@{on\+Connected}!B\+M\+A\+Session@{B\+M\+A\+Session}|hyperpage}{28}
|
||||
\indexentry{B\+M\+A\+Session@{B\+M\+A\+Session}!on\+Data\+Received@{on\+Data\+Received}|hyperpage}{28}
|
||||
\indexentry{on\+Data\+Received@{on\+Data\+Received}!B\+M\+A\+Session@{B\+M\+A\+Session}|hyperpage}{28}
|
||||
\indexentry{B\+M\+A\+Session@{B\+M\+A\+Session}!output@{output}|hyperpage}{29}
|
||||
\indexentry{output@{output}!B\+M\+A\+Session@{B\+M\+A\+Session}|hyperpage}{29}
|
||||
\indexentry{B\+M\+A\+S\+I\+P\+I\+N\+V\+I\+TE@{B\+M\+A\+S\+I\+P\+I\+N\+V\+I\+TE}|hyperpage}{29}
|
||||
\indexentry{B\+M\+A\+S\+I\+P\+R\+E\+G\+I\+S\+T\+ER@{B\+M\+A\+S\+I\+P\+R\+E\+G\+I\+S\+T\+ER}|hyperpage}{30}
|
||||
\indexentry{B\+M\+A\+S\+I\+P\+Request\+Handler@{B\+M\+A\+S\+I\+P\+Request\+Handler}|hyperpage}{31}
|
||||
\indexentry{B\+M\+A\+S\+I\+P\+Server@{B\+M\+A\+S\+I\+P\+Server}|hyperpage}{33}
|
||||
\indexentry{B\+M\+A\+S\+I\+P\+Session@{B\+M\+A\+S\+I\+P\+Session}|hyperpage}{35}
|
||||
\indexentry{B\+M\+A\+S\+I\+P\+Session@{B\+M\+A\+S\+I\+P\+Session}!on\+Data\+Received@{on\+Data\+Received}|hyperpage}{36}
|
||||
\indexentry{on\+Data\+Received@{on\+Data\+Received}!B\+M\+A\+S\+I\+P\+Session@{B\+M\+A\+S\+I\+P\+Session}|hyperpage}{36}
|
||||
\indexentry{B\+M\+A\+Socket@{B\+M\+A\+Socket}|hyperpage}{37}
|
||||
\indexentry{B\+M\+A\+Socket@{B\+M\+A\+Socket}!````~B\+M\+A\+Socket@{$\sim$\+B\+M\+A\+Socket}|hyperpage}{39}
|
||||
\indexentry{````~B\+M\+A\+Socket@{$\sim$\+B\+M\+A\+Socket}!B\+M\+A\+Socket@{B\+M\+A\+Socket}|hyperpage}{39}
|
||||
\indexentry{B\+M\+A\+Socket@{B\+M\+A\+Socket}!event\+Received@{event\+Received}|hyperpage}{39}
|
||||
\indexentry{event\+Received@{event\+Received}!B\+M\+A\+Socket@{B\+M\+A\+Socket}|hyperpage}{39}
|
||||
\indexentry{B\+M\+A\+Socket@{B\+M\+A\+Socket}!on\+Connected@{on\+Connected}|hyperpage}{39}
|
||||
\indexentry{on\+Connected@{on\+Connected}!B\+M\+A\+Socket@{B\+M\+A\+Socket}|hyperpage}{39}
|
||||
\indexentry{B\+M\+A\+Socket@{B\+M\+A\+Socket}!on\+Data\+Received@{on\+Data\+Received}|hyperpage}{39}
|
||||
\indexentry{on\+Data\+Received@{on\+Data\+Received}!B\+M\+A\+Socket@{B\+M\+A\+Socket}|hyperpage}{39}
|
||||
\indexentry{B\+M\+A\+Socket@{B\+M\+A\+Socket}!on\+Registered@{on\+Registered}|hyperpage}{40}
|
||||
\indexentry{on\+Registered@{on\+Registered}!B\+M\+A\+Socket@{B\+M\+A\+Socket}|hyperpage}{40}
|
||||
\indexentry{B\+M\+A\+Stream\+Content\+Provider@{B\+M\+A\+Stream\+Content\+Provider}|hyperpage}{40}
|
||||
\indexentry{B\+M\+A\+Stream\+Frame@{B\+M\+A\+Stream\+Frame}|hyperpage}{41}
|
||||
\indexentry{B\+M\+A\+Stream\+Server@{B\+M\+A\+Stream\+Server}|hyperpage}{42}
|
||||
\indexentry{B\+M\+A\+Stream\+Session@{B\+M\+A\+Stream\+Session}|hyperpage}{44}
|
||||
\indexentry{B\+M\+A\+Stream\+Session@{B\+M\+A\+Stream\+Session}!on\+Data\+Received@{on\+Data\+Received}|hyperpage}{45}
|
||||
\indexentry{on\+Data\+Received@{on\+Data\+Received}!B\+M\+A\+Stream\+Session@{B\+M\+A\+Stream\+Session}|hyperpage}{45}
|
||||
\indexentry{B\+M\+A\+T\+C\+P\+Server\+Socket@{B\+M\+A\+T\+C\+P\+Server\+Socket}|hyperpage}{46}
|
||||
\indexentry{B\+M\+A\+T\+C\+P\+Server\+Socket@{B\+M\+A\+T\+C\+P\+Server\+Socket}!accept@{accept}|hyperpage}{48}
|
||||
\indexentry{accept@{accept}!B\+M\+A\+T\+C\+P\+Server\+Socket@{B\+M\+A\+T\+C\+P\+Server\+Socket}|hyperpage}{48}
|
||||
\indexentry{B\+M\+A\+T\+C\+P\+Server\+Socket@{B\+M\+A\+T\+C\+P\+Server\+Socket}!on\+Data\+Received@{on\+Data\+Received}|hyperpage}{48}
|
||||
\indexentry{on\+Data\+Received@{on\+Data\+Received}!B\+M\+A\+T\+C\+P\+Server\+Socket@{B\+M\+A\+T\+C\+P\+Server\+Socket}|hyperpage}{48}
|
||||
\indexentry{B\+M\+A\+T\+C\+P\+Socket@{B\+M\+A\+T\+C\+P\+Socket}|hyperpage}{48}
|
||||
\indexentry{B\+M\+A\+T\+C\+P\+Socket@{B\+M\+A\+T\+C\+P\+Socket}!on\+Connected@{on\+Connected}|hyperpage}{50}
|
||||
\indexentry{on\+Connected@{on\+Connected}!B\+M\+A\+T\+C\+P\+Socket@{B\+M\+A\+T\+C\+P\+Socket}|hyperpage}{50}
|
||||
\indexentry{B\+M\+A\+T\+C\+P\+Socket@{B\+M\+A\+T\+C\+P\+Socket}!output@{output}|hyperpage}{50}
|
||||
\indexentry{output@{output}!B\+M\+A\+T\+C\+P\+Socket@{B\+M\+A\+T\+C\+P\+Socket}|hyperpage}{50}
|
||||
\indexentry{B\+M\+A\+Thread@{B\+M\+A\+Thread}|hyperpage}{50}
|
||||
\indexentry{B\+M\+A\+Timer@{B\+M\+A\+Timer}|hyperpage}{51}
|
||||
\indexentry{B\+M\+A\+Timer@{B\+M\+A\+Timer}!on\+Data\+Received@{on\+Data\+Received}|hyperpage}{52}
|
||||
\indexentry{on\+Data\+Received@{on\+Data\+Received}!B\+M\+A\+Timer@{B\+M\+A\+Timer}|hyperpage}{52}
|
||||
\indexentry{B\+M\+A\+U\+D\+P\+Server\+Socket@{B\+M\+A\+U\+D\+P\+Server\+Socket}|hyperpage}{53}
|
||||
\indexentry{B\+M\+A\+U\+D\+P\+Server\+Socket@{B\+M\+A\+U\+D\+P\+Server\+Socket}!on\+Data\+Received@{on\+Data\+Received}|hyperpage}{54}
|
||||
\indexentry{on\+Data\+Received@{on\+Data\+Received}!B\+M\+A\+U\+D\+P\+Server\+Socket@{B\+M\+A\+U\+D\+P\+Server\+Socket}|hyperpage}{54}
|
||||
\indexentry{B\+M\+A\+U\+D\+P\+Socket@{B\+M\+A\+U\+D\+P\+Socket}|hyperpage}{55}
|
||||
@@ -1,11 +1,11 @@
|
||||
This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/Debian) (preloaded format=pdflatex 2018.4.10) 19 APR 2018 10:45
|
||||
This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/Debian) (preloaded format=latex 2019.5.23) 5 JAN 2020 18:40
|
||||
entering extended mode
|
||||
restricted \write18 enabled.
|
||||
%&-line parsing enabled.
|
||||
**refman
|
||||
**refman.tex
|
||||
(./refman.tex
|
||||
LaTeX2e <2017-04-15>
|
||||
Babel <3.18> and hyphenation patterns for 3 language(s) loaded.
|
||||
Babel <3.18> and hyphenation patterns for 5 language(s) loaded.
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/base/book.cls
|
||||
Document Class: book 2014/09/29 v1.4h Standard LaTeX document class
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/base/bk10.clo
|
||||
@@ -83,10 +83,10 @@ Package: xcolor 2016/05/11 v2.12 LaTeX color extensions (UK)
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg
|
||||
File: color.cfg 2016/01/02 v1.6 sample color configuration
|
||||
)
|
||||
Package xcolor Info: Driver file: pdftex.def on input line 225.
|
||||
Package xcolor Info: Driver file: dvips.def on input line 225.
|
||||
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def
|
||||
File: pdftex.def 2018/01/08 v1.0l Graphics/color driver for pdftex
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/dvips.def
|
||||
File: dvips.def 2017/06/20 v3.1d Graphics/color driver for dvips
|
||||
)
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/colortbl/colortbl.sty
|
||||
Package: colortbl 2012/02/13 v1.0a Color table columns (DPC)
|
||||
@@ -95,7 +95,6 @@ Package: colortbl 2012/02/13 v1.0a Color table columns (DPC)
|
||||
)
|
||||
\rownum=\count92
|
||||
Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1348.
|
||||
Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1352.
|
||||
Package xcolor Info: Model `RGB' extended on input line 1364.
|
||||
Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1366.
|
||||
Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1367.
|
||||
@@ -209,7 +208,7 @@ Package: trig 2016/01/03 v1.10 sin cos tan (DPC)
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg
|
||||
File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration
|
||||
)
|
||||
Package graphics Info: Driver file: pdftex.def on input line 99.
|
||||
Package graphics Info: Driver file: dvips.def on input line 99.
|
||||
)
|
||||
\Gin@req@height=\dimen125
|
||||
\Gin@req@width=\dimen126
|
||||
@@ -222,10 +221,10 @@ Package: collectbox 2012/05/17 v0.4b Collect macro arguments as boxes
|
||||
\tc@lly=\dimen128
|
||||
\tc@urx=\dimen129
|
||||
\tc@ury=\dimen130
|
||||
Package trimclip Info: Using driver 'tc-pdftex.def'.
|
||||
Package trimclip Info: Using driver 'tc-dvips.def'.
|
||||
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/adjustbox/tc-pdftex.def
|
||||
File: tc-pdftex.def 2012/05/13 v1.0 Clipping driver for pdftex
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/adjustbox/tc-dvips.def
|
||||
File: tc-dvips.def 2012/05/13 v1.0 Clipping driver for dvips
|
||||
))
|
||||
\adjbox@Width=\dimen131
|
||||
\adjbox@Height=\dimen132
|
||||
@@ -916,7 +915,7 @@ Package: pdftexcmds 2018/01/21 v0.26 Utility functions of pdfTeX for LuaTeX (HO
|
||||
Package pdftexcmds Info: LuaTeX not detected.
|
||||
Package pdftexcmds Info: \pdf@primitive is available.
|
||||
Package pdftexcmds Info: \pdf@ifprimitive is available.
|
||||
Package pdftexcmds Info: \pdfdraftmode found.
|
||||
Package pdftexcmds Info: \pdfdraftmode is ignored in DVI mode.
|
||||
Package: pdfescape 2016/05/16 v1.14 Implements pdfTeX's escape features (HO)
|
||||
Package: bigintcalc 2016/05/16 v1.4 Expandable calculations on big integers (HO
|
||||
)
|
||||
@@ -993,14 +992,22 @@ LaTeX Info: Redefining \pageref on input line 6443.
|
||||
\c@Item=\count130
|
||||
\c@Hfootnote=\count131
|
||||
)
|
||||
Package hyperref Info: Driver: hpdftex.
|
||||
Package hyperref Info: Driver: hdvips.
|
||||
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def
|
||||
File: hpdftex.def 2018/02/06 v6.86b Hyperref driver for pdfTeX
|
||||
\Fld@listcount=\count132
|
||||
\c@bookmark@seq@number=\count133
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hdvips.def
|
||||
File: hdvips.def 2018/02/06 v6.86b Hyperref driver for dvips
|
||||
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/hyperref/pdfmark.def
|
||||
File: pdfmark.def 2018/02/06 v6.86b Hyperref definitions for pdfmark specials
|
||||
\pdf@docset=\toks30
|
||||
\pdf@box=\box65
|
||||
\pdf@toks=\toks31
|
||||
\pdf@defaulttoks=\toks32
|
||||
\HyField@AnnotCount=\count132
|
||||
\Fld@listcount=\count133
|
||||
\c@bookmark@seq@number=\count134
|
||||
\Hy@SectionHShift=\skip104
|
||||
)
|
||||
))
|
||||
Package hyperref Info: Option `colorlinks' set `true' on input line 105.
|
||||
Package hyperref Info: Option `unicode' set `true' on input line 105.
|
||||
|
||||
@@ -1023,7 +1030,7 @@ Package caption3 Info: TeX engine: e-TeX on input line 67.
|
||||
\caption@parindent=\dimen161
|
||||
\caption@hangindent=\dimen162
|
||||
)
|
||||
\c@ContinuedFloat=\count134
|
||||
\c@ContinuedFloat=\count135
|
||||
Package caption Info: float package is loaded.
|
||||
Package caption Info: hyperref package is loaded.
|
||||
Package caption Info: longtable package is loaded.
|
||||
@@ -1064,40 +1071,10 @@ File: t1phv.fd 2001/06/04 scalable font definitions for T1/phv.
|
||||
LaTeX Font Info: Font shape `T1/phv/m/n' will be
|
||||
(Font) scaled to size 8.99994pt on input line 117.
|
||||
|
||||
(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
|
||||
[Loading MPS to PDF converter (version 2006.09.02).]
|
||||
\scratchcounter=\count135
|
||||
\scratchdimen=\dimen163
|
||||
\scratchbox=\box65
|
||||
\nofMPsegments=\count136
|
||||
\nofMParguments=\count137
|
||||
\everyMPshowfont=\toks30
|
||||
\MPscratchCnt=\count138
|
||||
\MPscratchDim=\dimen164
|
||||
\MPnumerator=\count139
|
||||
\makeMPintoPDFobject=\count140
|
||||
\everyMPtoPDFconversion=\toks31
|
||||
) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty
|
||||
Package: epstopdf-base 2016/05/15 v2.6 Base part for package epstopdf
|
||||
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/grfext.sty
|
||||
Package: grfext 2016/05/16 v1.2 Manage graphics extensions (HO)
|
||||
)
|
||||
Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4
|
||||
38.
|
||||
Package grfext Info: Graphics extension search list:
|
||||
(grfext) [.pdf,.png,.jpg,.mps,.jpeg,.jbig2,.jb2,.PDF,.PNG,.JPG,.JPE
|
||||
G,.JBIG2,.JB2,.eps]
|
||||
(grfext) \AppendGraphicsExtensions on input line 456.
|
||||
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
|
||||
File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv
|
||||
e
|
||||
))
|
||||
*geometry* driver: auto-detecting
|
||||
*geometry* detected driver: pdftex
|
||||
*geometry* detected driver: dvips
|
||||
*geometry* verbose mode - [ preamble ] result:
|
||||
* driver: pdftex
|
||||
* driver: dvips
|
||||
* paper: a4paper
|
||||
* layout: <same size as paper>
|
||||
* layoutoffset:(h,v)=(0.0pt,0.0pt)
|
||||
@@ -1137,7 +1114,7 @@ Package: nameref 2016/05/21 v2.44 Cross-referencing by name of section
|
||||
(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/gettitlestring.sty
|
||||
Package: gettitlestring 2016/05/16 v1.5 Cleanup title references (HO)
|
||||
)
|
||||
\c@section@level=\count141
|
||||
\c@section@level=\count136
|
||||
)
|
||||
LaTeX Info: Redefining \ref on input line 117.
|
||||
LaTeX Info: Redefining \pageref on input line 117.
|
||||
@@ -1156,28 +1133,11 @@ Package hyperref Info: Option `unicode' set `true' on input line 123.
|
||||
LaTeX Font Info: Font shape `T1/phv/m/n' will be
|
||||
(Font) scaled to size 12.9599pt on input line 128.
|
||||
LaTeX Font Info: Font shape `T1/phv/m/n' will be
|
||||
(Font) scaled to size 6.29996pt on input line 128.
|
||||
LaTeX Font Info: Try loading font information for U+wasy on input line 128.
|
||||
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/wasysym/uwasy.fd
|
||||
File: uwasy.fd 2003/10/30 v2.0 Wasy-2 symbol font definitions
|
||||
)
|
||||
LaTeX Font Info: Try loading font information for U+msa on input line 128.
|
||||
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd
|
||||
File: umsa.fd 2013/01/14 v3.01 AMS symbols A
|
||||
)
|
||||
LaTeX Font Info: Try loading font information for U+msb on input line 128.
|
||||
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd
|
||||
File: umsb.fd 2013/01/14 v3.01 AMS symbols B
|
||||
)
|
||||
LaTeX Font Info: Font shape `T1/phv/m/n' will be
|
||||
(Font) scaled to size 10.79993pt on input line 130.
|
||||
[1
|
||||
|
||||
|
||||
{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] [2
|
||||
] [2
|
||||
|
||||
]
|
||||
LaTeX Font Info: Font shape `T1/phv/m/n' will be
|
||||
@@ -1193,692 +1153,55 @@ LaTeX Font Info: Font shape `T1/phv/bx/n' in size <10> not available
|
||||
(Font) Font shape `T1/phv/b/n' tried instead on input line 1.
|
||||
LaTeX Font Info: Font shape `T1/phv/b/n' will be
|
||||
(Font) scaled to size 8.99994pt on input line 1.
|
||||
[1
|
||||
LaTeX Font Info: Try loading font information for U+wasy on input line 1.
|
||||
|
||||
]
|
||||
LaTeX Font Info: Font shape `T1/phv/bx/n' in size <7> not available
|
||||
(Font) Font shape `T1/phv/b/n' tried instead on input line 67.
|
||||
LaTeX Font Info: Font shape `T1/phv/b/n' will be
|
||||
(Font) scaled to size 6.29996pt on input line 67.
|
||||
[2])
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/wasysym/uwasy.fd
|
||||
File: uwasy.fd 2003/10/30 v2.0 Wasy-2 symbol font definitions
|
||||
)
|
||||
LaTeX Font Info: Try loading font information for U+msa on input line 1.
|
||||
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd
|
||||
File: umsa.fd 2013/01/14 v3.01 AMS symbols A
|
||||
)
|
||||
LaTeX Font Info: Try loading font information for U+msb on input line 1.
|
||||
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd
|
||||
File: umsb.fd 2013/01/14 v3.01 AMS symbols B
|
||||
))
|
||||
\tf@toc=\write5
|
||||
\openout5 = `refman.toc'.
|
||||
|
||||
[3] [4
|
||||
[1
|
||||
|
||||
] [2
|
||||
|
||||
]
|
||||
Package hyperref Info: Option `pageanchor' set `true' on input line 138.
|
||||
|
||||
Chapter 1.
|
||||
(./refman.ind
|
||||
LaTeX Font Info: Font shape `T1/phv/m/n' will be
|
||||
(Font) scaled to size 18.66588pt on input line 141.
|
||||
LaTeX Font Info: Font shape `T1/phv/bx/n' in size <20.74> not available
|
||||
(Font) Font shape `T1/phv/b/n' tried instead on input line 141.
|
||||
LaTeX Font Info: Font shape `T1/phv/b/n' will be
|
||||
(Font) scaled to size 18.66588pt on input line 141.
|
||||
LaTeX Font Info: Font shape `T1/phv/bc/n' will be
|
||||
(Font) scaled to size 18.66588pt on input line 141.
|
||||
(./hierarchy.tex
|
||||
LaTeX Font Info: Font shape `T1/phv/bx/n' in size <14.4> not available
|
||||
(Font) Font shape `T1/phv/b/n' tried instead on input line 1.
|
||||
LaTeX Font Info: Font shape `T1/phv/b/n' will be
|
||||
(Font) scaled to size 12.9599pt on input line 1.
|
||||
LaTeX Font Info: Font shape `T1/phv/bc/n' will be
|
||||
(Font) scaled to size 12.9599pt on input line 1.
|
||||
(Font) scaled to size 6.29996pt on input line 3.
|
||||
[1
|
||||
|
||||
]) [2]
|
||||
Chapter 2.
|
||||
(./annotated.tex) [3
|
||||
|
||||
] [4
|
||||
|
||||
]
|
||||
Chapter 3.
|
||||
(./class_b_m_a_account.tex
|
||||
LaTeX Font Info: Font shape `T1/phv/bc/n' will be
|
||||
(Font) scaled to size 6.29996pt on input line 1.
|
||||
<class_b_m_a_account__inherit__graph.pdf, id=604, 154.5775pt x 156.585pt>
|
||||
File: class_b_m_a_account__inherit__graph.pdf Graphic file (type pdf)
|
||||
<use class_b_m_a_account__inherit__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_account__inherit__graph.pdf used on input
|
||||
line 9.
|
||||
(pdftex.def) Requested size: 154.0pt x 156.01357pt.
|
||||
<class_b_m_a_account__coll__graph.pdf, id=605, 154.5775pt x 156.585pt>
|
||||
File: class_b_m_a_account__coll__graph.pdf Graphic file (type pdf)
|
||||
<use class_b_m_a_account__coll__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_account__coll__graph.pdf used on input li
|
||||
ne 18.
|
||||
(pdftex.def) Requested size: 154.0pt x 156.01357pt.
|
||||
LaTeX Font Info: Font shape `T1/phv/bx/n' in size <12> not available
|
||||
(Font) Font shape `T1/phv/b/n' tried instead on input line 21.
|
||||
LaTeX Font Info: Font shape `T1/phv/b/n' will be
|
||||
(Font) scaled to size 10.79993pt on input line 21.
|
||||
LaTeX Font Info: Font shape `T1/phv/bc/n' will be
|
||||
(Font) scaled to size 10.79993pt on input line 21.
|
||||
LaTeX Font Info: Try loading font information for TS1+phv on input line 24.
|
||||
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/psnfss/ts1phv.fd
|
||||
File: ts1phv.fd 2001/06/04 scalable font definitions for TS1/phv.
|
||||
)
|
||||
LaTeX Font Info: Font shape `TS1/phv/m/n' will be
|
||||
(Font) scaled to size 8.99994pt on input line 24.
|
||||
[5 <./class_b_m_a_account__inherit__graph.pdf> <./class_b_m_a_account__coll__g
|
||||
raph.pdf
|
||||
|
||||
pdfTeX warning: pdflatex (file ./class_b_m_a_account__coll__graph.pdf): PDF inc
|
||||
lusion: multiple pdfs with page group included in a single page
|
||||
>]) (./class_b_m_a_authenticate.tex
|
||||
<class_b_m_a_authenticate__inherit__graph.pdf, id=626, 173.64874pt x 156.585pt>
|
||||
|
||||
File: class_b_m_a_authenticate__inherit__graph.pdf Graphic file (type pdf)
|
||||
<use class_b_m_a_authenticate__inherit__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_authenticate__inherit__graph.pdf used on
|
||||
input line 9.
|
||||
(pdftex.def) Requested size: 173.0pt x 156.0064pt.
|
||||
<class_b_m_a_authenticate__coll__graph.pdf, id=627, 173.64874pt x 156.585pt>
|
||||
File: class_b_m_a_authenticate__coll__graph.pdf Graphic file (type pdf)
|
||||
<use class_b_m_a_authenticate__coll__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_authenticate__coll__graph.pdf used on inp
|
||||
ut line 18.
|
||||
(pdftex.def) Requested size: 173.0pt x 156.0064pt.
|
||||
[6 <./class_b_m_a_authenticate__inherit__graph.pdf> <./class_b_m_a_authenticat
|
||||
e__coll__graph.pdf
|
||||
|
||||
pdfTeX warning: pdflatex (file ./class_b_m_a_authenticate__coll__graph.pdf): PD
|
||||
F inclusion: multiple pdfs with page group included in a single page
|
||||
>]) (./class_b_m_a_command.tex
|
||||
<class_b_m_a_command__inherit__graph.pdf, id=653, 513.92pt x 269.005pt>
|
||||
File: class_b_m_a_command__inherit__graph.pdf Graphic file (type pdf)
|
||||
<use class_b_m_a_command__inherit__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_command__inherit__graph.pdf used on input
|
||||
line 9.
|
||||
(pdftex.def) Requested size: 350.0pt x 183.2042pt.
|
||||
<class_b_m_a_command__coll__graph.pdf, id=654, 163.61125pt x 156.585pt>
|
||||
File: class_b_m_a_command__coll__graph.pdf Graphic file (type pdf)
|
||||
<use class_b_m_a_command__coll__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_command__coll__graph.pdf used on input li
|
||||
ne 18.
|
||||
(pdftex.def) Requested size: 163.0pt x 155.99922pt.
|
||||
[7 <./class_b_m_a_command__inherit__graph.pdf> <./class_b_m_a_command__coll__g
|
||||
raph.pdf
|
||||
|
||||
pdfTeX warning: pdflatex (file ./class_b_m_a_command__coll__graph.pdf): PDF inc
|
||||
lusion: multiple pdfs with page group included in a single page
|
||||
>]) (./class_b_m_a_console_server.tex
|
||||
<class_b_m_a_console_server__inherit__graph.pdf, id=680, 271.0125pt x 325.215pt
|
||||
>
|
||||
File: class_b_m_a_console_server__inherit__graph.pdf Graphic file (type pdf)
|
||||
<use class_b_m_a_console_server__inherit__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_console_server__inherit__graph.pdf used o
|
||||
n input line 9.
|
||||
(pdftex.def) Requested size: 270.0pt x 324.0133pt.
|
||||
<class_b_m_a_console_server__coll__graph.pdf, id=681, 355.3275pt x 339.2675pt>
|
||||
File: class_b_m_a_console_server__coll__graph.pdf Graphic file (type pdf)
|
||||
<use class_b_m_a_console_server__coll__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_console_server__coll__graph.pdf used on i
|
||||
nput line 18.
|
||||
(pdftex.def) Requested size: 350.0pt x 334.19339pt.
|
||||
[8 <./class_b_m_a_console_server__inherit__graph.pdf>]
|
||||
LaTeX Font Info: Font shape `T1/phv/m/n' will be
|
||||
(Font) scaled to size 8.09995pt on input line 35.
|
||||
LaTeX Font Info: Font shape `T1/phv/m/it' in size <9> not available
|
||||
(Font) Font shape `T1/phv/m/sl' tried instead on input line 35.
|
||||
LaTeX Font Info: Font shape `T1/phv/m/sl' will be
|
||||
(Font) scaled to size 8.09995pt on input line 35.
|
||||
) (./class_b_m_a_console_session.tex
|
||||
LaTeX Font Info: Try loading font information for T1+pcr on input line 5.
|
||||
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/psnfss/t1pcr.fd
|
||||
File: t1pcr.fd 2001/06/04 font definitions for T1/pcr.
|
||||
)
|
||||
<class_b_m_a_console_session__inherit__graph.pdf, id=704, 246.9225pt x 325.215p
|
||||
t>
|
||||
File: class_b_m_a_console_session__inherit__graph.pdf Graphic file (type pdf)
|
||||
<use class_b_m_a_console_session__inherit__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_console_session__inherit__graph.pdf used
|
||||
on input line 13.
|
||||
(pdftex.def) Requested size: 246.0pt x 323.99841pt.
|
||||
[9 <./class_b_m_a_console_server__coll__graph.pdf>]
|
||||
<class_b_m_a_console_session__coll__graph.pdf, id=725, 399.4925pt x 339.2675pt>
|
||||
|
||||
File: class_b_m_a_console_session__coll__graph.pdf Graphic file (type pdf)
|
||||
<use class_b_m_a_console_session__coll__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_console_session__coll__graph.pdf used on
|
||||
input line 22.
|
||||
(pdftex.def) Requested size: 350.0pt x 297.25175pt.
|
||||
|
||||
Underfull \vbox (badness 10000) has occurred while \output is active []
|
||||
|
||||
[10 <./class_b_m_a_console_session__inherit__graph.pdf>]
|
||||
LaTeX Font Info: Font shape `T1/phv/bc/n' will be
|
||||
(Font) scaled to size 8.99994pt on input line 51.
|
||||
LaTeX Font Info: Font shape `T1/phv/m/n' will be
|
||||
(Font) scaled to size 7.19995pt on input line 52.
|
||||
LaTeX Font Info: Font shape `T1/pcr/m/it' in size <8> not available
|
||||
(Font) Font shape `T1/pcr/m/sl' tried instead on input line 52.
|
||||
[11 <./class_b_m_a_console_session__coll__graph.pdf>]) (./class_b_m_a_e_poll.t
|
||||
ex
|
||||
<class_b_m_a_e_poll__inherit__graph.pdf, id=765, 163.61125pt x 212.795pt>
|
||||
File: class_b_m_a_e_poll__inherit__graph.pdf Graphic file (type pdf)
|
||||
<use class_b_m_a_e_poll__inherit__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_e_poll__inherit__graph.pdf used on input
|
||||
line 13.
|
||||
(pdftex.def) Requested size: 163.0pt x 211.99895pt.
|
||||
<class_b_m_a_e_poll__coll__graph.pdf, id=766, 291.0875pt x 292.09125pt>
|
||||
File: class_b_m_a_e_poll__coll__graph.pdf Graphic file (type pdf)
|
||||
<use class_b_m_a_e_poll__coll__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_e_poll__coll__graph.pdf used on input lin
|
||||
e 22.
|
||||
(pdftex.def) Requested size: 290.0pt x 291.02084pt.
|
||||
[12 <./class_b_m_a_e_poll__inherit__graph.pdf>]
|
||||
LaTeX Font Info: Font shape `T1/phv/m/it' in size <7> not available
|
||||
(Font) Font shape `T1/phv/m/sl' tried instead on input line 30.
|
||||
LaTeX Font Info: Font shape `T1/phv/m/sl' will be
|
||||
(Font) scaled to size 6.29996pt on input line 30.
|
||||
[13 <./class_b_m_a_e_poll__coll__graph.pdf>])
|
||||
(./class_b_m_a_file.tex [14]
|
||||
<class_b_m_a_file__inherit__graph.pdf, id=847, 154.5775pt x 156.585pt>
|
||||
File: class_b_m_a_file__inherit__graph.pdf Graphic file (type pdf)
|
||||
<use class_b_m_a_file__inherit__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_file__inherit__graph.pdf used on input li
|
||||
ne 13.
|
||||
(pdftex.def) Requested size: 154.0pt x 156.01357pt.
|
||||
) (./class_b_m_a_header.tex
|
||||
<class_b_m_a_header__inherit__graph.pdf, id=849, 150.5625pt x 156.585pt>
|
||||
File: class_b_m_a_header__inherit__graph.pdf Graphic file (type pdf)
|
||||
<use class_b_m_a_header__inherit__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_header__inherit__graph.pdf used on input
|
||||
line 9.
|
||||
(pdftex.def) Requested size: 150.0pt x 156.01357pt.
|
||||
[15 <./class_b_m_a_file__inherit__graph.pdf>]
|
||||
<class_b_m_a_header__coll__graph.pdf, id=868, 150.5625pt x 156.585pt>
|
||||
File: class_b_m_a_header__coll__graph.pdf Graphic file (type pdf)
|
||||
<use class_b_m_a_header__coll__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_header__coll__graph.pdf used on input lin
|
||||
e 18.
|
||||
(pdftex.def) Requested size: 150.0pt x 156.01357pt.
|
||||
) (./class_b_m_a_h_t_t_p_request_handler.tex
|
||||
<class_b_m_a_h_t_t_p_request_handler__inherit__graph.pdf, id=869, 215.80624pt x
|
||||
156.585pt>
|
||||
File: class_b_m_a_h_t_t_p_request_handler__inherit__graph.pdf Graphic file (typ
|
||||
e pdf)
|
||||
<use class_b_m_a_h_t_t_p_request_handler__inherit__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_h_t_t_p_request_handler__inherit__graph.pd
|
||||
f used on input line 9.
|
||||
(pdftex.def) Requested size: 215.0pt x 156.004pt.
|
||||
[16 <./class_b_m_a_header__inherit__graph.pdf> <./class_b_m_a_header__coll__gr
|
||||
aph.pdf
|
||||
|
||||
pdfTeX warning: pdflatex (file ./class_b_m_a_header__coll__graph.pdf): PDF incl
|
||||
usion: multiple pdfs with page group included in a single page
|
||||
>]
|
||||
<class_b_m_a_h_t_t_p_request_handler__coll__graph.pdf, id=893, 215.80624pt x 15
|
||||
6.585pt>
|
||||
File: class_b_m_a_h_t_t_p_request_handler__coll__graph.pdf Graphic file (type p
|
||||
df)
|
||||
<use class_b_m_a_h_t_t_p_request_handler__coll__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_h_t_t_p_request_handler__coll__graph.pdf
|
||||
used on input line 18.
|
||||
(pdftex.def) Requested size: 215.0pt x 156.004pt.
|
||||
) (./class_b_m_a_h_t_t_p_server.tex
|
||||
<class_b_m_a_h_t_t_p_server__inherit__graph.pdf, id=895, 271.0125pt x 325.215pt
|
||||
>
|
||||
File: class_b_m_a_h_t_t_p_server__inherit__graph.pdf Graphic file (type pdf)
|
||||
<use class_b_m_a_h_t_t_p_server__inherit__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_h_t_t_p_server__inherit__graph.pdf used o
|
||||
n input line 9.
|
||||
(pdftex.def) Requested size: 270.0pt x 324.0133pt.
|
||||
[17 <./class_b_m_a_h_t_t_p_request_handler__inherit__graph.pdf> <./class_b_m_a
|
||||
_h_t_t_p_request_handler__coll__graph.pdf
|
||||
|
||||
pdfTeX warning: pdflatex (file ./class_b_m_a_h_t_t_p_request_handler__coll__gra
|
||||
ph.pdf): PDF inclusion: multiple pdfs with page group included in a single page
|
||||
|
||||
>]
|
||||
<class_b_m_a_h_t_t_p_server__coll__graph.pdf, id=917, 355.3275pt x 339.2675pt>
|
||||
File: class_b_m_a_h_t_t_p_server__coll__graph.pdf Graphic file (type pdf)
|
||||
<use class_b_m_a_h_t_t_p_server__coll__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_h_t_t_p_server__coll__graph.pdf used on i
|
||||
nput line 18.
|
||||
(pdftex.def) Requested size: 350.0pt x 334.19339pt.
|
||||
|
||||
Underfull \vbox (badness 10000) has occurred while \output is active []
|
||||
|
||||
[18 <./class_b_m_a_h_t_t_p_server__inherit__graph.pdf>])
|
||||
(./class_b_m_a_h_t_t_p_session.tex
|
||||
<class_b_m_a_h_t_t_p_session__inherit__graph.pdf, id=935, 246.9225pt x 325.215p
|
||||
t>
|
||||
File: class_b_m_a_h_t_t_p_session__inherit__graph.pdf Graphic file (type pdf)
|
||||
<use class_b_m_a_h_t_t_p_session__inherit__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_h_t_t_p_session__inherit__graph.pdf used
|
||||
on input line 9.
|
||||
(pdftex.def) Requested size: 246.0pt x 323.99841pt.
|
||||
[19 <./class_b_m_a_h_t_t_p_server__coll__graph.pdf>]
|
||||
<class_b_m_a_h_t_t_p_session__coll__graph.pdf, id=958, 394.47375pt x 339.2675pt
|
||||
>
|
||||
File: class_b_m_a_h_t_t_p_session__coll__graph.pdf Graphic file (type pdf)
|
||||
<use class_b_m_a_h_t_t_p_session__coll__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_h_t_t_p_session__coll__graph.pdf used on
|
||||
input line 18.
|
||||
(pdftex.def) Requested size: 350.0pt x 301.02046pt.
|
||||
|
||||
Underfull \vbox (badness 10000) has occurred while \output is active []
|
||||
|
||||
[20 <./class_b_m_a_h_t_t_p_session__inherit__graph.pdf>] [21 <./class_b_m_a_h_
|
||||
t_t_p_session__coll__graph.pdf>]) (./class_b_m_a_log.tex) (./class_b_m_a_m_p3_f
|
||||
ile.tex
|
||||
<class_b_m_a_m_p3_file__inherit__graph.pdf, id=991, 293.095pt x 156.585pt>
|
||||
File: class_b_m_a_m_p3_file__inherit__graph.pdf Graphic file (type pdf)
|
||||
<use class_b_m_a_m_p3_file__inherit__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_m_p3_file__inherit__graph.pdf used on inp
|
||||
ut line 9.
|
||||
(pdftex.def) Requested size: 292.0pt x 155.99922pt.
|
||||
<class_b_m_a_m_p3_file__coll__graph.pdf, id=992, 293.095pt x 156.585pt>
|
||||
File: class_b_m_a_m_p3_file__coll__graph.pdf Graphic file (type pdf)
|
||||
<use class_b_m_a_m_p3_file__coll__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_m_p3_file__coll__graph.pdf used on input
|
||||
line 18.
|
||||
(pdftex.def) Requested size: 292.0pt x 155.99922pt.
|
||||
|
||||
[22 <./class_b_m_a_m_p3_file__inherit__graph.pdf>])
|
||||
(./class_b_m_a_m_p3_stream_content_provider.tex
|
||||
<class_b_m_a_m_p3_stream_content_provider__inherit__graph.pdf, id=1011, 241.903
|
||||
75pt x 156.585pt>
|
||||
File: class_b_m_a_m_p3_stream_content_provider__inherit__graph.pdf Graphic file
|
||||
(type pdf)
|
||||
<use class_b_m_a_m_p3_stream_content_provider__inherit__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_m_p3_stream_content_provider__inherit__gra
|
||||
ph.pdf used on input line 9.
|
||||
(pdftex.def) Requested size: 241.0pt x 156.0064pt.
|
||||
<class_b_m_a_m_p3_stream_content_provider__coll__graph.pdf, id=1012, 241.90375p
|
||||
t x 156.585pt>
|
||||
File: class_b_m_a_m_p3_stream_content_provider__coll__graph.pdf Graphic file (t
|
||||
ype pdf)
|
||||
<use class_b_m_a_m_p3_stream_content_provider__coll__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_m_p3_stream_content_provider__coll__graph.
|
||||
pdf used on input line 18.
|
||||
(pdftex.def) Requested size: 241.0pt x 156.0064pt.
|
||||
[23 <./class_b_m_a_m_p3_file__coll__graph.pdf> <./class_b_m_a_m_p3_stream_cont
|
||||
ent_provider__inherit__graph.pdf
|
||||
|
||||
pdfTeX warning: pdflatex (file ./class_b_m_a_m_p3_stream_content_provider__inhe
|
||||
rit__graph.pdf): PDF inclusion: multiple pdfs with page group included in a sin
|
||||
gle page
|
||||
>]) (./class_b_m_a_m_p3_stream_frame.tex
|
||||
<class_b_m_a_m_p3_stream_frame__inherit__graph.pdf, id=1035, 198.7425pt x 156.5
|
||||
85pt>
|
||||
File: class_b_m_a_m_p3_stream_frame__inherit__graph.pdf Graphic file (type pdf)
|
||||
|
||||
<use class_b_m_a_m_p3_stream_frame__inherit__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_m_p3_stream_frame__inherit__graph.pdf use
|
||||
d on input line 9.
|
||||
(pdftex.def) Requested size: 198.0pt x 156.004pt.
|
||||
<class_b_m_a_m_p3_stream_frame__coll__graph.pdf, id=1036, 198.7425pt x 156.585p
|
||||
t>
|
||||
File: class_b_m_a_m_p3_stream_frame__coll__graph.pdf Graphic file (type pdf)
|
||||
<use class_b_m_a_m_p3_stream_frame__coll__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_m_p3_stream_frame__coll__graph.pdf used o
|
||||
n input line 18.
|
||||
(pdftex.def) Requested size: 198.0pt x 156.004pt.
|
||||
[24 <./class_b_m_a_m_p3_stream_content_provider__coll__graph.pdf> <./class_b_m
|
||||
_a_m_p3_stream_frame__inherit__graph.pdf
|
||||
|
||||
pdfTeX warning: pdflatex (file ./class_b_m_a_m_p3_stream_frame__inherit__graph.
|
||||
pdf): PDF inclusion: multiple pdfs with page group included in a single page
|
||||
>]) (./class_b_m_a_object.tex
|
||||
<class_b_m_a_object__inherit__graph.pdf, id=1058, 764.8575pt x 415.5525pt>
|
||||
File: class_b_m_a_object__inherit__graph.pdf Graphic file (type pdf)
|
||||
<use class_b_m_a_object__inherit__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_object__inherit__graph.pdf used on input
|
||||
line 10.
|
||||
(pdftex.def) Requested size: 350.0pt x 190.15462pt.
|
||||
[25 <./class_b_m_a_m_p3_stream_frame__coll__graph.pdf>]) (./class_b_m_a_parse_
|
||||
header.tex) (./class_b_m_a_property.tex
|
||||
|
||||
Package hyperref Warning: Token not allowed in a PDF string (Unicode):
|
||||
(hyperref) removing `math shift' on input line 1.
|
||||
|
||||
|
||||
Package hyperref Warning: Token not allowed in a PDF string (Unicode):
|
||||
(hyperref) removing `math shift' on input line 1.
|
||||
|
||||
|
||||
Package hyperref Warning: Token not allowed in a PDF string (Unicode):
|
||||
(hyperref) removing `math shift' on input line 1.
|
||||
|
||||
|
||||
Package hyperref Warning: Token not allowed in a PDF string (Unicode):
|
||||
(hyperref) removing `math shift' on input line 1.
|
||||
|
||||
) (./class_b_m_a_session.tex
|
||||
<class_b_m_a_session__inherit__graph.pdf, id=1086, 542.025pt x 325.215pt>
|
||||
File: class_b_m_a_session__inherit__graph.pdf Graphic file (type pdf)
|
||||
<use class_b_m_a_session__inherit__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_session__inherit__graph.pdf used on input
|
||||
line 13.
|
||||
(pdftex.def) Requested size: 350.0pt x 210.0077pt.
|
||||
[26 <./class_b_m_a_object__inherit__graph.pdf>]
|
||||
<class_b_m_a_session__coll__graph.pdf, id=1105, 388.45125pt x 282.05376pt>
|
||||
File: class_b_m_a_session__coll__graph.pdf Graphic file (type pdf)
|
||||
<use class_b_m_a_session__coll__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_session__coll__graph.pdf used on input li
|
||||
ne 22.
|
||||
(pdftex.def) Requested size: 350.0pt x 254.13867pt.
|
||||
|
||||
[27 <./class_b_m_a_session__inherit__graph.pdf> <./class_b_m_a_session__coll__g
|
||||
raph.pdf
|
||||
|
||||
pdfTeX warning: pdflatex (file ./class_b_m_a_session__coll__graph.pdf): PDF inc
|
||||
lusion: multiple pdfs with page group included in a single page
|
||||
>] [28]) (./class_b_m_a_s_i_p_i_n_v_i_t_e.tex
|
||||
<class_b_m_a_s_i_p_i_n_v_i_t_e__inherit__graph.pdf, id=1156, 205.76875pt x 212.
|
||||
795pt>
|
||||
File: class_b_m_a_s_i_p_i_n_v_i_t_e__inherit__graph.pdf Graphic file (type pdf)
|
||||
|
||||
<use class_b_m_a_s_i_p_i_n_v_i_t_e__inherit__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_s_i_p_i_n_v_i_t_e__inherit__graph.pdf use
|
||||
d on input line 10.
|
||||
(pdftex.def) Requested size: 205.0pt x 212.0022pt.
|
||||
<class_b_m_a_s_i_p_i_n_v_i_t_e__coll__graph.pdf, id=1157, 205.76875pt x 212.795
|
||||
pt>
|
||||
File: class_b_m_a_s_i_p_i_n_v_i_t_e__coll__graph.pdf Graphic file (type pdf)
|
||||
<use class_b_m_a_s_i_p_i_n_v_i_t_e__coll__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_s_i_p_i_n_v_i_t_e__coll__graph.pdf used o
|
||||
n input line 20.
|
||||
(pdftex.def) Requested size: 205.0pt x 212.0022pt.
|
||||
[29 <./class_b_m_a_s_i_p_i_n_v_i_t_e__inherit__graph.pdf>]) (./class_b_m_a_s_i
|
||||
_p_r_e_g_i_s_t_e_r.tex
|
||||
<class_b_m_a_s_i_p_r_e_g_i_s_t_e_r__inherit__graph.pdf, id=1173, 205.76875pt x
|
||||
212.795pt>
|
||||
File: class_b_m_a_s_i_p_r_e_g_i_s_t_e_r__inherit__graph.pdf Graphic file (type
|
||||
pdf)
|
||||
<use class_b_m_a_s_i_p_r_e_g_i_s_t_e_r__inherit__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_s_i_p_r_e_g_i_s_t_e_r__inherit__graph.pdf
|
||||
used on input line 9.
|
||||
(pdftex.def) Requested size: 205.0pt x 212.0022pt.
|
||||
<class_b_m_a_s_i_p_r_e_g_i_s_t_e_r__coll__graph.pdf, id=1174, 205.76875pt x 212
|
||||
.795pt>
|
||||
File: class_b_m_a_s_i_p_r_e_g_i_s_t_e_r__coll__graph.pdf Graphic file (type pdf
|
||||
)
|
||||
<use class_b_m_a_s_i_p_r_e_g_i_s_t_e_r__coll__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_s_i_p_r_e_g_i_s_t_e_r__coll__graph.pdf us
|
||||
ed on input line 18.
|
||||
(pdftex.def) Requested size: 205.0pt x 212.0022pt.
|
||||
[30 <./class_b_m_a_s_i_p_i_n_v_i_t_e__coll__graph.pdf> <./class_b_m_a_s_i_p_r_
|
||||
e_g_i_s_t_e_r__inherit__graph.pdf
|
||||
|
||||
pdfTeX warning: pdflatex (file ./class_b_m_a_s_i_p_r_e_g_i_s_t_e_r__inherit__gr
|
||||
aph.pdf): PDF inclusion: multiple pdfs with page group included in a single pag
|
||||
e
|
||||
>]) (./class_b_m_a_s_i_p_request_handler.tex
|
||||
<class_b_m_a_s_i_p_request_handler__inherit__graph.pdf, id=1198, 294.09875pt x
|
||||
212.795pt>
|
||||
File: class_b_m_a_s_i_p_request_handler__inherit__graph.pdf Graphic file (type
|
||||
pdf)
|
||||
<use class_b_m_a_s_i_p_request_handler__inherit__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_s_i_p_request_handler__inherit__graph.pdf
|
||||
used on input line 10.
|
||||
(pdftex.def) Requested size: 293.0pt x 212.0022pt.
|
||||
<class_b_m_a_s_i_p_request_handler__coll__graph.pdf, id=1199, 205.76875pt x 156
|
||||
.585pt>
|
||||
File: class_b_m_a_s_i_p_request_handler__coll__graph.pdf Graphic file (type pdf
|
||||
)
|
||||
<use class_b_m_a_s_i_p_request_handler__coll__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_s_i_p_request_handler__coll__graph.pdf us
|
||||
ed on input line 20.
|
||||
(pdftex.def) Requested size: 205.0pt x 156.00162pt.
|
||||
[31 <./class_b_m_a_s_i_p_r_e_g_i_s_t_e_r__coll__graph.pdf> <./class_b_m_a_s_i_
|
||||
p_request_handler__inherit__graph.pdf
|
||||
|
||||
pdfTeX warning: pdflatex (file ./class_b_m_a_s_i_p_request_handler__inherit__gr
|
||||
aph.pdf): PDF inclusion: multiple pdfs with page group included in a single pag
|
||||
e
|
||||
>]) (./class_b_m_a_s_i_p_server.tex
|
||||
<class_b_m_a_s_i_p_server__inherit__graph.pdf, id=1223, 271.0125pt x 325.215pt>
|
||||
|
||||
File: class_b_m_a_s_i_p_server__inherit__graph.pdf Graphic file (type pdf)
|
||||
<use class_b_m_a_s_i_p_server__inherit__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_s_i_p_server__inherit__graph.pdf used on
|
||||
input line 9.
|
||||
(pdftex.def) Requested size: 270.0pt x 324.0133pt.
|
||||
|
||||
Underfull \vbox (badness 10000) has occurred while \output is active []
|
||||
|
||||
[32 <./class_b_m_a_s_i_p_request_handler__coll__graph.pdf>]
|
||||
<class_b_m_a_s_i_p_server__coll__graph.pdf, id=1239, 355.3275pt x 339.2675pt>
|
||||
File: class_b_m_a_s_i_p_server__coll__graph.pdf Graphic file (type pdf)
|
||||
<use class_b_m_a_s_i_p_server__coll__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_s_i_p_server__coll__graph.pdf used on inp
|
||||
ut line 18.
|
||||
(pdftex.def) Requested size: 350.0pt x 334.19339pt.
|
||||
|
||||
Underfull \vbox (badness 10000) has occurred while \output is active []
|
||||
|
||||
[33 <./class_b_m_a_s_i_p_server__inherit__graph.pdf>]) (./class_b_m_a_s_i_p_se
|
||||
ssion.tex
|
||||
<class_b_m_a_s_i_p_session__inherit__graph.pdf, id=1256, 246.9225pt x 325.215pt
|
||||
>
|
||||
File: class_b_m_a_s_i_p_session__inherit__graph.pdf Graphic file (type pdf)
|
||||
<use class_b_m_a_s_i_p_session__inherit__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_s_i_p_session__inherit__graph.pdf used on
|
||||
input line 9.
|
||||
(pdftex.def) Requested size: 246.0pt x 323.99841pt.
|
||||
|
||||
[34 <./class_b_m_a_s_i_p_server__coll__graph.pdf>]
|
||||
<class_b_m_a_s_i_p_session__coll__graph.pdf, id=1276, 389.455pt x 339.2675pt>
|
||||
File: class_b_m_a_s_i_p_session__coll__graph.pdf Graphic file (type pdf)
|
||||
<use class_b_m_a_s_i_p_session__coll__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_s_i_p_session__coll__graph.pdf used on in
|
||||
put line 18.
|
||||
(pdftex.def) Requested size: 350.0pt x 304.90825pt.
|
||||
|
||||
Underfull \vbox (badness 10000) has occurred while \output is active []
|
||||
|
||||
[35 <./class_b_m_a_s_i_p_session__inherit__graph.pdf>] [36 <./class_b_m_a_s_i_
|
||||
p_session__coll__graph.pdf>]) (./class_b_m_a_socket.tex
|
||||
<class_b_m_a_socket__inherit__graph.pdf, id=1308, 695.59875pt x 395.4775pt>
|
||||
File: class_b_m_a_socket__inherit__graph.pdf Graphic file (type pdf)
|
||||
<use class_b_m_a_socket__inherit__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_socket__inherit__graph.pdf used on input
|
||||
line 9.
|
||||
(pdftex.def) Requested size: 350.0pt x 198.9874pt.
|
||||
<class_b_m_a_socket__coll__graph.pdf, id=1309, 324.21124pt x 224.84pt>
|
||||
File: class_b_m_a_socket__coll__graph.pdf Graphic file (type pdf)
|
||||
<use class_b_m_a_socket__coll__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_socket__coll__graph.pdf used on input lin
|
||||
e 18.
|
||||
(pdftex.def) Requested size: 323.0pt x 224.01262pt.
|
||||
[37 <./class_b_m_a_socket__inherit__graph.pdf>] [38 <./class_b_m_a_socket__col
|
||||
l__graph.pdf>] [39])
|
||||
(./class_b_m_a_stream_content_provider.tex
|
||||
<class_b_m_a_stream_content_provider__inherit__graph.pdf, id=1373, 335.2525pt x
|
||||
156.585pt>
|
||||
File: class_b_m_a_stream_content_provider__inherit__graph.pdf Graphic file (typ
|
||||
e pdf)
|
||||
<use class_b_m_a_stream_content_provider__inherit__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_stream_content_provider__inherit__graph.pd
|
||||
f used on input line 9.
|
||||
(pdftex.def) Requested size: 334.0pt x 155.99922pt.
|
||||
[40 <./class_b_m_a_stream_content_provider__inherit__graph.pdf>]) (./class_b_m
|
||||
_a_stream_frame.tex
|
||||
<class_b_m_a_stream_frame__inherit__graph.pdf, id=1396, 198.7425pt x 156.585pt>
|
||||
|
||||
File: class_b_m_a_stream_frame__inherit__graph.pdf Graphic file (type pdf)
|
||||
<use class_b_m_a_stream_frame__inherit__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_stream_frame__inherit__graph.pdf used on
|
||||
input line 9.
|
||||
(pdftex.def) Requested size: 198.0pt x 156.004pt.
|
||||
)
|
||||
(./class_b_m_a_stream_server.tex
|
||||
<class_b_m_a_stream_server__inherit__graph.pdf, id=1397, 331.2375pt x 325.215pt
|
||||
>
|
||||
File: class_b_m_a_stream_server__inherit__graph.pdf Graphic file (type pdf)
|
||||
<use class_b_m_a_stream_server__inherit__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_stream_server__inherit__graph.pdf used on
|
||||
input line 13.
|
||||
(pdftex.def) Requested size: 330.0pt x 324.0133pt.
|
||||
[41 <./class_b_m_a_stream_frame__inherit__graph.pdf>]
|
||||
<class_b_m_a_stream_server__coll__graph.pdf, id=1420, 454.69875pt x 358.33875pt
|
||||
>
|
||||
File: class_b_m_a_stream_server__coll__graph.pdf Graphic file (type pdf)
|
||||
<use class_b_m_a_stream_server__coll__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_stream_server__coll__graph.pdf used on in
|
||||
put line 22.
|
||||
(pdftex.def) Requested size: 350.0pt x 275.82874pt.
|
||||
|
||||
Underfull \vbox (badness 10000) has occurred while \output is active []
|
||||
|
||||
[42 <./class_b_m_a_stream_server__inherit__graph.pdf>]) (./class_b_m_a_stream_
|
||||
session.tex
|
||||
<class_b_m_a_stream_session__inherit__graph.pdf, id=1437, 246.9225pt x 325.215p
|
||||
t>
|
||||
File: class_b_m_a_stream_session__inherit__graph.pdf Graphic file (type pdf)
|
||||
<use class_b_m_a_stream_session__inherit__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_stream_session__inherit__graph.pdf used o
|
||||
n input line 9.
|
||||
(pdftex.def) Requested size: 246.0pt x 323.99841pt.
|
||||
[43 <./class_b_m_a_stream_server__coll__graph.pdf>]
|
||||
<class_b_m_a_stream_session__coll__graph.pdf, id=1458, 396.48125pt x 339.2675pt
|
||||
>
|
||||
File: class_b_m_a_stream_session__coll__graph.pdf Graphic file (type pdf)
|
||||
<use class_b_m_a_stream_session__coll__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_stream_session__coll__graph.pdf used on i
|
||||
nput line 18.
|
||||
(pdftex.def) Requested size: 350.0pt x 299.49849pt.
|
||||
|
||||
Underfull \vbox (badness 10000) has occurred while \output is active []
|
||||
|
||||
[44 <./class_b_m_a_stream_session__inherit__graph.pdf>] [45 <./class_b_m_a_str
|
||||
eam_session__coll__graph.pdf>]) (./class_b_m_a_t_c_p_server_socket.tex
|
||||
<class_b_m_a_t_c_p_server_socket__inherit__graph.pdf, id=1492, 513.92pt x 325.2
|
||||
15pt>
|
||||
File: class_b_m_a_t_c_p_server_socket__inherit__graph.pdf Graphic file (type pd
|
||||
f)
|
||||
<use class_b_m_a_t_c_p_server_socket__inherit__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_t_c_p_server_socket__inherit__graph.pdf u
|
||||
sed on input line 13.
|
||||
(pdftex.def) Requested size: 350.0pt x 221.48567pt.
|
||||
<class_b_m_a_t_c_p_server_socket__coll__graph.pdf, id=1493, 355.3275pt x 282.05
|
||||
376pt>
|
||||
File: class_b_m_a_t_c_p_server_socket__coll__graph.pdf Graphic file (type pdf)
|
||||
<use class_b_m_a_t_c_p_server_socket__coll__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_t_c_p_server_socket__coll__graph.pdf used
|
||||
on input line 22.
|
||||
(pdftex.def) Requested size: 350.0pt x 277.83534pt.
|
||||
[46 <./class_b_m_a_t_c_p_server_socket__inherit__graph.pdf>] [47 <./class_b_m_
|
||||
a_t_c_p_server_socket__coll__graph.pdf>]) (./class_b_m_a_t_c_p_socket.tex
|
||||
<class_b_m_a_t_c_p_socket__inherit__graph.pdf, id=1536, 692.5875pt x 367.3725pt
|
||||
>
|
||||
File: class_b_m_a_t_c_p_socket__inherit__graph.pdf Graphic file (type pdf)
|
||||
<use class_b_m_a_t_c_p_socket__inherit__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_t_c_p_socket__inherit__graph.pdf used on
|
||||
input line 13.
|
||||
(pdftex.def) Requested size: 350.0pt x 185.65337pt.
|
||||
<class_b_m_a_t_c_p_socket__coll__graph.pdf, id=1537, 388.45125pt x 224.84pt>
|
||||
File: class_b_m_a_t_c_p_socket__coll__graph.pdf Graphic file (type pdf)
|
||||
<use class_b_m_a_t_c_p_socket__coll__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_t_c_p_socket__coll__graph.pdf used on inp
|
||||
ut line 22.
|
||||
(pdftex.def) Requested size: 350.0pt x 202.58742pt.
|
||||
[48 <./class_b_m_a_t_c_p_socket__inherit__graph.pdf>] [49 <./class_b_m_a_t_c_p
|
||||
_socket__coll__graph.pdf>]) (./class_b_m_a_thread.tex) (./class_b_m_a_timer.tex
|
||||
<class_b_m_a_timer__inherit__graph.pdf, id=1584, 246.9225pt x 269.005pt>
|
||||
File: class_b_m_a_timer__inherit__graph.pdf Graphic file (type pdf)
|
||||
<use class_b_m_a_timer__inherit__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_timer__inherit__graph.pdf used on input l
|
||||
ine 13.
|
||||
(pdftex.def) Requested size: 246.0pt x 267.99867pt.
|
||||
[50]
|
||||
<class_b_m_a_timer__coll__graph.pdf, id=1597, 375.4025pt x 224.84pt>
|
||||
File: class_b_m_a_timer__coll__graph.pdf Graphic file (type pdf)
|
||||
<use class_b_m_a_timer__coll__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_timer__coll__graph.pdf used on input line
|
||||
22.
|
||||
(pdftex.def) Requested size: 350.0pt x 209.63766pt.
|
||||
[51 <./class_b_m_a_timer__inherit__graph.pdf> <./class_b_m_a_timer__coll__grap
|
||||
h.pdf
|
||||
|
||||
pdfTeX warning: pdflatex (file ./class_b_m_a_timer__coll__graph.pdf): PDF inclu
|
||||
sion: multiple pdfs with page group included in a single page
|
||||
>]) (./class_b_m_a_u_d_p_server_socket.tex
|
||||
<class_b_m_a_u_d_p_server_socket__inherit__graph.pdf, id=1624, 273.02pt x 269.0
|
||||
05pt>
|
||||
File: class_b_m_a_u_d_p_server_socket__inherit__graph.pdf Graphic file (type pd
|
||||
f)
|
||||
<use class_b_m_a_u_d_p_server_socket__inherit__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_u_d_p_server_socket__inherit__graph.pdf u
|
||||
sed on input line 13.
|
||||
(pdftex.def) Requested size: 272.0pt x 268.01509pt.
|
||||
[52]
|
||||
<class_b_m_a_u_d_p_server_socket__coll__graph.pdf, id=1634, 356.33125pt x 282.0
|
||||
5376pt>
|
||||
File: class_b_m_a_u_d_p_server_socket__coll__graph.pdf Graphic file (type pdf)
|
||||
<use class_b_m_a_u_d_p_server_socket__coll__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_u_d_p_server_socket__coll__graph.pdf used
|
||||
on input line 22.
|
||||
(pdftex.def) Requested size: 350.0pt x 277.05205pt.
|
||||
[53 <./class_b_m_a_u_d_p_server_socket__inherit__graph.pdf> <./class_b_m_a_u_d
|
||||
_p_server_socket__coll__graph.pdf
|
||||
|
||||
pdfTeX warning: pdflatex (file ./class_b_m_a_u_d_p_server_socket__coll__graph.p
|
||||
df): PDF inclusion: multiple pdfs with page group included in a single page
|
||||
>]) (./class_b_m_a_u_d_p_socket.tex
|
||||
<class_b_m_a_u_d_p_socket__inherit__graph.pdf, id=1658, 246.9225pt x 269.005pt>
|
||||
|
||||
File: class_b_m_a_u_d_p_socket__inherit__graph.pdf Graphic file (type pdf)
|
||||
<use class_b_m_a_u_d_p_socket__inherit__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_u_d_p_socket__inherit__graph.pdf used on
|
||||
input line 9.
|
||||
(pdftex.def) Requested size: 246.0pt x 267.99867pt.
|
||||
[54]
|
||||
<class_b_m_a_u_d_p_socket__coll__graph.pdf, id=1670, 389.455pt x 224.84pt>
|
||||
File: class_b_m_a_u_d_p_socket__coll__graph.pdf Graphic file (type pdf)
|
||||
<use class_b_m_a_u_d_p_socket__coll__graph.pdf>
|
||||
Package pdftex.def Info: class_b_m_a_u_d_p_socket__coll__graph.pdf used on inp
|
||||
ut line 18.
|
||||
(pdftex.def) Requested size: 350.0pt x 202.06937pt.
|
||||
[55 <./class_b_m_a_u_d_p_socket__inherit__graph.pdf> <./class_b_m_a_u_d_p_sock
|
||||
et__coll__graph.pdf
|
||||
|
||||
pdfTeX warning: pdflatex (file ./class_b_m_a_u_d_p_socket__coll__graph.pdf): PD
|
||||
F inclusion: multiple pdfs with page group included in a single page
|
||||
>]) [56] (./refman.ind [57
|
||||
|
||||
|
||||
|
||||
])
|
||||
Package atveryend Info: Empty hook `BeforeClearDocument' on input line 191.
|
||||
Package atveryend Info: Empty hook `AfterLastShipout' on input line 191.
|
||||
Package atveryend Info: Empty hook `BeforeClearDocument' on input line 151.
|
||||
Package atveryend Info: Empty hook `AfterLastShipout' on input line 151.
|
||||
(./refman.aux)
|
||||
Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 191.
|
||||
Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 191.
|
||||
Package atveryend Info: Empty hook `AtVeryEndDocument' on input line 151.
|
||||
Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 151.
|
||||
Package rerunfilecheck Info: File `refman.out' has not changed.
|
||||
(rerunfilecheck) Checksum: 2C849180BC5920A18DC5FFB13575487F;17904.
|
||||
Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 191.
|
||||
(rerunfilecheck) Checksum: DA7143E9C4104565666D1CA756475EF9;69.
|
||||
Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 151.
|
||||
)
|
||||
Here is how much of TeX's memory you used:
|
||||
15909 strings out of 494923
|
||||
251521 string characters out of 6180742
|
||||
319588 words of memory out of 5000000
|
||||
18369 multiletter control sequences out of 15000+600000
|
||||
67105 words of font info for 90 fonts, out of 8000000 for 9000
|
||||
14 hyphenation exceptions out of 8191
|
||||
53i,16n,92p,1496b,580s stack positions out of 5000i,500n,10000p,200000b,80000s
|
||||
{/usr/share/texlive/texmf-dist/fonts/enc/dvips/base/8r.enc}</usr/share/texliv
|
||||
e/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb></usr/share/texlive/texm
|
||||
f-dist/fonts/type1/public/amsfonts/cm/cmmi12.pfb></usr/share/texlive/texmf-dist
|
||||
/fonts/type1/public/amsfonts/cm/cmsy10.pfb></usr/share/texlive/texmf-dist/fonts
|
||||
/type1/public/amsfonts/cm/cmsy8.pfb></usr/share/texlive/texmf-dist/fonts/type1/
|
||||
urw/courier/ucrr8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/courier/u
|
||||
crro8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/helvetic/uhvb8a.pfb><
|
||||
/usr/share/texlive/texmf-dist/fonts/type1/urw/helvetic/uhvb8ac.pfb></usr/share/
|
||||
texlive/texmf-dist/fonts/type1/urw/helvetic/uhvr8a.pfb></usr/share/texlive/texm
|
||||
f-dist/fonts/type1/urw/helvetic/uhvro8a.pfb>
|
||||
Output written on refman.pdf (63 pages, 332551 bytes).
|
||||
PDF statistics:
|
||||
1915 PDF objects out of 2073 (max. 8388607)
|
||||
1702 compressed objects within 18 object streams
|
||||
478 named destinations out of 1000 (max. 500000)
|
||||
947 words of extra memory for PDF output out of 10000 (max. 10000000)
|
||||
14229 strings out of 494881
|
||||
200893 string characters out of 6179627
|
||||
312141 words of memory out of 5000000
|
||||
17357 multiletter control sequences out of 15000+600000
|
||||
20323 words of font info for 34 fonts, out of 8000000 for 9000
|
||||
36 hyphenation exceptions out of 8191
|
||||
53i,11n,92p,296b,371s stack positions out of 5000i,500n,10000p,200000b,80000s
|
||||
|
||||
Output written on refman.dvi (5 pages, 26720 bytes).
|
||||
@@ -1,82 +1 @@
|
||||
\BOOKMARK [0][-]{chapter.1}{\376\377\0001\000\040\000H\000i\000e\000r\000a\000r\000c\000h\000i\000c\000a\000l\000\040\000I\000n\000d\000e\000x}{}% 1
|
||||
\BOOKMARK [1][-]{section.1.1}{\376\377\0001\000.\0001\000\040\000C\000l\000a\000s\000s\000\040\000H\000i\000e\000r\000a\000r\000c\000h\000y}{chapter.1}% 2
|
||||
\BOOKMARK [0][-]{chapter.2}{\376\377\0002\000\040\000C\000l\000a\000s\000s\000\040\000I\000n\000d\000e\000x}{}% 3
|
||||
\BOOKMARK [1][-]{section.2.1}{\376\377\0002\000.\0001\000\040\000C\000l\000a\000s\000s\000\040\000L\000i\000s\000t}{chapter.2}% 4
|
||||
\BOOKMARK [0][-]{chapter.3}{\376\377\0003\000\040\000C\000l\000a\000s\000s\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n}{}% 5
|
||||
\BOOKMARK [1][-]{section.3.1}{\376\377\0003\000.\0001\000\040\000B\000M\000A\000A\000c\000c\000o\000u\000n\000t\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.3}% 6
|
||||
\BOOKMARK [1][-]{section.3.2}{\376\377\0003\000.\0002\000\040\000B\000M\000A\000A\000u\000t\000h\000e\000n\000t\000i\000c\000a\000t\000e\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.3}% 7
|
||||
\BOOKMARK [1][-]{section.3.3}{\376\377\0003\000.\0003\000\040\000B\000M\000A\000C\000o\000m\000m\000a\000n\000d\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.3}% 8
|
||||
\BOOKMARK [1][-]{section.3.4}{\376\377\0003\000.\0004\000\040\000B\000M\000A\000C\000o\000n\000s\000o\000l\000e\000S\000e\000r\000v\000e\000r\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.3}% 9
|
||||
\BOOKMARK [1][-]{section.3.5}{\376\377\0003\000.\0005\000\040\000B\000M\000A\000C\000o\000n\000s\000o\000l\000e\000S\000e\000s\000s\000i\000o\000n\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.3}% 10
|
||||
\BOOKMARK [2][-]{subsection.3.5.1}{\376\377\0003\000.\0005\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n}{section.3.5}% 11
|
||||
\BOOKMARK [2][-]{subsection.3.5.2}{\376\377\0003\000.\0005\000.\0002\000\040\000M\000e\000m\000b\000e\000r\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n}{section.3.5}% 12
|
||||
\BOOKMARK [3][-]{subsubsection.3.5.2.1}{\376\377\0003\000.\0005\000.\0002\000.\0001\000\040\000o\000u\000t\000p\000u\000t\000\050\000\051}{subsection.3.5.2}% 13
|
||||
\BOOKMARK [1][-]{section.3.6}{\376\377\0003\000.\0006\000\040\000B\000M\000A\000E\000P\000o\000l\000l\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.3}% 14
|
||||
\BOOKMARK [2][-]{subsection.3.6.1}{\376\377\0003\000.\0006\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n}{section.3.6}% 15
|
||||
\BOOKMARK [2][-]{subsection.3.6.2}{\376\377\0003\000.\0006\000.\0002\000\040\000M\000e\000m\000b\000e\000r\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n}{section.3.6}% 16
|
||||
\BOOKMARK [3][-]{subsubsection.3.6.2.1}{\376\377\0003\000.\0006\000.\0002\000.\0001\000\040\000r\000e\000g\000i\000s\000t\000e\000r\000S\000o\000c\000k\000e\000t\000\050\000\051}{subsection.3.6.2}% 17
|
||||
\BOOKMARK [3][-]{subsubsection.3.6.2.2}{\376\377\0003\000.\0006\000.\0002\000.\0002\000\040\000u\000n\000r\000e\000g\000i\000s\000t\000e\000r\000S\000o\000c\000k\000e\000t\000\050\000\051}{subsection.3.6.2}% 18
|
||||
\BOOKMARK [1][-]{section.3.7}{\376\377\0003\000.\0007\000\040\000B\000M\000A\000F\000i\000l\000e\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.3}% 19
|
||||
\BOOKMARK [2][-]{subsection.3.7.1}{\376\377\0003\000.\0007\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n}{section.3.7}% 20
|
||||
\BOOKMARK [1][-]{section.3.8}{\376\377\0003\000.\0008\000\040\000B\000M\000A\000H\000e\000a\000d\000e\000r\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.3}% 21
|
||||
\BOOKMARK [1][-]{section.3.9}{\376\377\0003\000.\0009\000\040\000B\000M\000A\000H\000T\000T\000P\000R\000e\000q\000u\000e\000s\000t\000H\000a\000n\000d\000l\000e\000r\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.3}% 22
|
||||
\BOOKMARK [1][-]{section.3.10}{\376\377\0003\000.\0001\0000\000\040\000B\000M\000A\000H\000T\000T\000P\000S\000e\000r\000v\000e\000r\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.3}% 23
|
||||
\BOOKMARK [1][-]{section.3.11}{\376\377\0003\000.\0001\0001\000\040\000B\000M\000A\000H\000T\000T\000P\000S\000e\000s\000s\000i\000o\000n\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.3}% 24
|
||||
\BOOKMARK [2][-]{subsection.3.11.1}{\376\377\0003\000.\0001\0001\000.\0001\000\040\000M\000e\000m\000b\000e\000r\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n}{section.3.11}% 25
|
||||
\BOOKMARK [3][-]{subsubsection.3.11.1.1}{\376\377\0003\000.\0001\0001\000.\0001\000.\0001\000\040\000o\000n\000D\000a\000t\000a\000R\000e\000c\000e\000i\000v\000e\000d\000\050\000\051}{subsection.3.11.1}% 26
|
||||
\BOOKMARK [1][-]{section.3.12}{\376\377\0003\000.\0001\0002\000\040\000B\000M\000A\000L\000o\000g\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.3}% 27
|
||||
\BOOKMARK [1][-]{section.3.13}{\376\377\0003\000.\0001\0003\000\040\000B\000M\000A\000M\000P\0003\000F\000i\000l\000e\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.3}% 28
|
||||
\BOOKMARK [1][-]{section.3.14}{\376\377\0003\000.\0001\0004\000\040\000B\000M\000A\000M\000P\0003\000S\000t\000r\000e\000a\000m\000C\000o\000n\000t\000e\000n\000t\000P\000r\000o\000v\000i\000d\000e\000r\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.3}% 29
|
||||
\BOOKMARK [1][-]{section.3.15}{\376\377\0003\000.\0001\0005\000\040\000B\000M\000A\000M\000P\0003\000S\000t\000r\000e\000a\000m\000F\000r\000a\000m\000e\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.3}% 30
|
||||
\BOOKMARK [1][-]{section.3.16}{\376\377\0003\000.\0001\0006\000\040\000B\000M\000A\000O\000b\000j\000e\000c\000t\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.3}% 31
|
||||
\BOOKMARK [1][-]{section.3.17}{\376\377\0003\000.\0001\0007\000\040\000B\000M\000A\000P\000a\000r\000s\000e\000H\000e\000a\000d\000e\000r\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.3}% 32
|
||||
\BOOKMARK [1][-]{section.3.18}{\376\377\0003\000.\0001\0008\000\040\000B\000M\000A\000P\000r\000o\000p\000e\000r\000t\000y\000<\000\040\000T\000\040\000>\000\040\000C\000l\000a\000s\000s\000\040\000T\000e\000m\000p\000l\000a\000t\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.3}% 33
|
||||
\BOOKMARK [1][-]{section.3.19}{\376\377\0003\000.\0001\0009\000\040\000B\000M\000A\000S\000e\000s\000s\000i\000o\000n\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.3}% 34
|
||||
\BOOKMARK [2][-]{subsection.3.19.1}{\376\377\0003\000.\0001\0009\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n}{section.3.19}% 35
|
||||
\BOOKMARK [2][-]{subsection.3.19.2}{\376\377\0003\000.\0001\0009\000.\0002\000\040\000M\000e\000m\000b\000e\000r\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n}{section.3.19}% 36
|
||||
\BOOKMARK [3][-]{subsubsection.3.19.2.1}{\376\377\0003\000.\0001\0009\000.\0002\000.\0001\000\040\000o\000n\000C\000o\000n\000n\000e\000c\000t\000e\000d\000\050\000\051}{subsection.3.19.2}% 37
|
||||
\BOOKMARK [3][-]{subsubsection.3.19.2.2}{\376\377\0003\000.\0001\0009\000.\0002\000.\0002\000\040\000o\000n\000D\000a\000t\000a\000R\000e\000c\000e\000i\000v\000e\000d\000\050\000\051}{subsection.3.19.2}% 38
|
||||
\BOOKMARK [3][-]{subsubsection.3.19.2.3}{\376\377\0003\000.\0001\0009\000.\0002\000.\0003\000\040\000o\000u\000t\000p\000u\000t\000\050\000\051}{subsection.3.19.2}% 39
|
||||
\BOOKMARK [1][-]{section.3.20}{\376\377\0003\000.\0002\0000\000\040\000B\000M\000A\000S\000I\000P\000I\000N\000V\000I\000T\000E\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.3}% 40
|
||||
\BOOKMARK [1][-]{section.3.21}{\376\377\0003\000.\0002\0001\000\040\000B\000M\000A\000S\000I\000P\000R\000E\000G\000I\000S\000T\000E\000R\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.3}% 41
|
||||
\BOOKMARK [1][-]{section.3.22}{\376\377\0003\000.\0002\0002\000\040\000B\000M\000A\000S\000I\000P\000R\000e\000q\000u\000e\000s\000t\000H\000a\000n\000d\000l\000e\000r\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.3}% 42
|
||||
\BOOKMARK [1][-]{section.3.23}{\376\377\0003\000.\0002\0003\000\040\000B\000M\000A\000S\000I\000P\000S\000e\000r\000v\000e\000r\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.3}% 43
|
||||
\BOOKMARK [1][-]{section.3.24}{\376\377\0003\000.\0002\0004\000\040\000B\000M\000A\000S\000I\000P\000S\000e\000s\000s\000i\000o\000n\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.3}% 44
|
||||
\BOOKMARK [2][-]{subsection.3.24.1}{\376\377\0003\000.\0002\0004\000.\0001\000\040\000M\000e\000m\000b\000e\000r\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n}{section.3.24}% 45
|
||||
\BOOKMARK [3][-]{subsubsection.3.24.1.1}{\376\377\0003\000.\0002\0004\000.\0001\000.\0001\000\040\000o\000n\000D\000a\000t\000a\000R\000e\000c\000e\000i\000v\000e\000d\000\050\000\051}{subsection.3.24.1}% 46
|
||||
\BOOKMARK [1][-]{section.3.25}{\376\377\0003\000.\0002\0005\000\040\000B\000M\000A\000S\000o\000c\000k\000e\000t\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.3}% 47
|
||||
\BOOKMARK [2][-]{subsection.3.25.1}{\376\377\0003\000.\0002\0005\000.\0001\000\040\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n}{section.3.25}% 48
|
||||
\BOOKMARK [3][-]{subsubsection.3.25.1.1}{\376\377\0003\000.\0002\0005\000.\0001\000.\0001\000\040\000\040\000B\000M\000A\000S\000o\000c\000k\000e\000t\000\050\000\051}{subsection.3.25.1}% 49
|
||||
\BOOKMARK [2][-]{subsection.3.25.2}{\376\377\0003\000.\0002\0005\000.\0002\000\040\000M\000e\000m\000b\000e\000r\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n}{section.3.25}% 50
|
||||
\BOOKMARK [3][-]{subsubsection.3.25.2.1}{\376\377\0003\000.\0002\0005\000.\0002\000.\0001\000\040\000e\000v\000e\000n\000t\000R\000e\000c\000e\000i\000v\000e\000d\000\050\000\051}{subsection.3.25.2}% 51
|
||||
\BOOKMARK [3][-]{subsubsection.3.25.2.2}{\376\377\0003\000.\0002\0005\000.\0002\000.\0002\000\040\000o\000n\000C\000o\000n\000n\000e\000c\000t\000e\000d\000\050\000\051}{subsection.3.25.2}% 52
|
||||
\BOOKMARK [3][-]{subsubsection.3.25.2.3}{\376\377\0003\000.\0002\0005\000.\0002\000.\0003\000\040\000o\000n\000D\000a\000t\000a\000R\000e\000c\000e\000i\000v\000e\000d\000\050\000\051}{subsection.3.25.2}% 53
|
||||
\BOOKMARK [3][-]{subsubsection.3.25.2.4}{\376\377\0003\000.\0002\0005\000.\0002\000.\0004\000\040\000o\000n\000R\000e\000g\000i\000s\000t\000e\000r\000e\000d\000\050\000\051}{subsection.3.25.2}% 54
|
||||
\BOOKMARK [1][-]{section.3.26}{\376\377\0003\000.\0002\0006\000\040\000B\000M\000A\000S\000t\000r\000e\000a\000m\000C\000o\000n\000t\000e\000n\000t\000P\000r\000o\000v\000i\000d\000e\000r\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.3}% 55
|
||||
\BOOKMARK [1][-]{section.3.27}{\376\377\0003\000.\0002\0007\000\040\000B\000M\000A\000S\000t\000r\000e\000a\000m\000F\000r\000a\000m\000e\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.3}% 56
|
||||
\BOOKMARK [1][-]{section.3.28}{\376\377\0003\000.\0002\0008\000\040\000B\000M\000A\000S\000t\000r\000e\000a\000m\000S\000e\000r\000v\000e\000r\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.3}% 57
|
||||
\BOOKMARK [2][-]{subsection.3.28.1}{\376\377\0003\000.\0002\0008\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n}{section.3.28}% 58
|
||||
\BOOKMARK [1][-]{section.3.29}{\376\377\0003\000.\0002\0009\000\040\000B\000M\000A\000S\000t\000r\000e\000a\000m\000S\000e\000s\000s\000i\000o\000n\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.3}% 59
|
||||
\BOOKMARK [2][-]{subsection.3.29.1}{\376\377\0003\000.\0002\0009\000.\0001\000\040\000M\000e\000m\000b\000e\000r\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n}{section.3.29}% 60
|
||||
\BOOKMARK [3][-]{subsubsection.3.29.1.1}{\376\377\0003\000.\0002\0009\000.\0001\000.\0001\000\040\000o\000n\000D\000a\000t\000a\000R\000e\000c\000e\000i\000v\000e\000d\000\050\000\051}{subsection.3.29.1}% 61
|
||||
\BOOKMARK [1][-]{section.3.30}{\376\377\0003\000.\0003\0000\000\040\000B\000M\000A\000T\000C\000P\000S\000e\000r\000v\000e\000r\000S\000o\000c\000k\000e\000t\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.3}% 62
|
||||
\BOOKMARK [2][-]{subsection.3.30.1}{\376\377\0003\000.\0003\0000\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n}{section.3.30}% 63
|
||||
\BOOKMARK [2][-]{subsection.3.30.2}{\376\377\0003\000.\0003\0000\000.\0002\000\040\000M\000e\000m\000b\000e\000r\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n}{section.3.30}% 64
|
||||
\BOOKMARK [3][-]{subsubsection.3.30.2.1}{\376\377\0003\000.\0003\0000\000.\0002\000.\0001\000\040\000a\000c\000c\000e\000p\000t\000\050\000\051}{subsection.3.30.2}% 65
|
||||
\BOOKMARK [3][-]{subsubsection.3.30.2.2}{\376\377\0003\000.\0003\0000\000.\0002\000.\0002\000\040\000o\000n\000D\000a\000t\000a\000R\000e\000c\000e\000i\000v\000e\000d\000\050\000\051}{subsection.3.30.2}% 66
|
||||
\BOOKMARK [1][-]{section.3.31}{\376\377\0003\000.\0003\0001\000\040\000B\000M\000A\000T\000C\000P\000S\000o\000c\000k\000e\000t\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.3}% 67
|
||||
\BOOKMARK [2][-]{subsection.3.31.1}{\376\377\0003\000.\0003\0001\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n}{section.3.31}% 68
|
||||
\BOOKMARK [2][-]{subsection.3.31.2}{\376\377\0003\000.\0003\0001\000.\0002\000\040\000M\000e\000m\000b\000e\000r\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n}{section.3.31}% 69
|
||||
\BOOKMARK [3][-]{subsubsection.3.31.2.1}{\376\377\0003\000.\0003\0001\000.\0002\000.\0001\000\040\000o\000n\000C\000o\000n\000n\000e\000c\000t\000e\000d\000\050\000\051}{subsection.3.31.2}% 70
|
||||
\BOOKMARK [3][-]{subsubsection.3.31.2.2}{\376\377\0003\000.\0003\0001\000.\0002\000.\0002\000\040\000o\000u\000t\000p\000u\000t\000\050\000\051}{subsection.3.31.2}% 71
|
||||
\BOOKMARK [1][-]{section.3.32}{\376\377\0003\000.\0003\0002\000\040\000B\000M\000A\000T\000h\000r\000e\000a\000d\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.3}% 72
|
||||
\BOOKMARK [1][-]{section.3.33}{\376\377\0003\000.\0003\0003\000\040\000B\000M\000A\000T\000i\000m\000e\000r\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.3}% 73
|
||||
\BOOKMARK [2][-]{subsection.3.33.1}{\376\377\0003\000.\0003\0003\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n}{section.3.33}% 74
|
||||
\BOOKMARK [2][-]{subsection.3.33.2}{\376\377\0003\000.\0003\0003\000.\0002\000\040\000M\000e\000m\000b\000e\000r\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n}{section.3.33}% 75
|
||||
\BOOKMARK [3][-]{subsubsection.3.33.2.1}{\376\377\0003\000.\0003\0003\000.\0002\000.\0001\000\040\000o\000n\000D\000a\000t\000a\000R\000e\000c\000e\000i\000v\000e\000d\000\050\000\051}{subsection.3.33.2}% 76
|
||||
\BOOKMARK [1][-]{section.3.34}{\376\377\0003\000.\0003\0004\000\040\000B\000M\000A\000U\000D\000P\000S\000e\000r\000v\000e\000r\000S\000o\000c\000k\000e\000t\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.3}% 77
|
||||
\BOOKMARK [2][-]{subsection.3.34.1}{\376\377\0003\000.\0003\0004\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n}{section.3.34}% 78
|
||||
\BOOKMARK [2][-]{subsection.3.34.2}{\376\377\0003\000.\0003\0004\000.\0002\000\040\000M\000e\000m\000b\000e\000r\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n}{section.3.34}% 79
|
||||
\BOOKMARK [3][-]{subsubsection.3.34.2.1}{\376\377\0003\000.\0003\0004\000.\0002\000.\0001\000\040\000o\000n\000D\000a\000t\000a\000R\000e\000c\000e\000i\000v\000e\000d\000\050\000\051}{subsection.3.34.2}% 80
|
||||
\BOOKMARK [1][-]{section.3.35}{\376\377\0003\000.\0003\0005\000\040\000B\000M\000A\000U\000D\000P\000S\000o\000c\000k\000e\000t\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.3}% 81
|
||||
\BOOKMARK [0][-]{section*.144}{\376\377\000I\000n\000d\000e\000x}{}% 82
|
||||
\BOOKMARK [0][-]{section*.2}{\376\377\000I\000n\000d\000e\000x}{}% 1
|
||||
@@ -1,82 +1 @@
|
||||
\contentsline {chapter}{\numberline {1}Hierarchical Index}{1}{chapter.1}
|
||||
\contentsline {section}{\numberline {1.1}Class Hierarchy}{1}{section.1.1}
|
||||
\contentsline {chapter}{\numberline {2}Class Index}{3}{chapter.2}
|
||||
\contentsline {section}{\numberline {2.1}Class List}{3}{section.2.1}
|
||||
\contentsline {chapter}{\numberline {3}Class Documentation}{5}{chapter.3}
|
||||
\contentsline {section}{\numberline {3.1}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Account Class Reference}{5}{section.3.1}
|
||||
\contentsline {section}{\numberline {3.2}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Authenticate Class Reference}{6}{section.3.2}
|
||||
\contentsline {section}{\numberline {3.3}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Command Class Reference}{7}{section.3.3}
|
||||
\contentsline {section}{\numberline {3.4}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Console\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Server Class Reference}{8}{section.3.4}
|
||||
\contentsline {section}{\numberline {3.5}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Console\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Session Class Reference}{10}{section.3.5}
|
||||
\contentsline {subsection}{\numberline {3.5.1}Detailed Description}{11}{subsection.3.5.1}
|
||||
\contentsline {subsection}{\numberline {3.5.2}Member Function Documentation}{11}{subsection.3.5.2}
|
||||
\contentsline {subsubsection}{\numberline {3.5.2.1}output()}{12}{subsubsection.3.5.2.1}
|
||||
\contentsline {section}{\numberline {3.6}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}E\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Poll Class Reference}{12}{section.3.6}
|
||||
\contentsline {subsection}{\numberline {3.6.1}Detailed Description}{14}{subsection.3.6.1}
|
||||
\contentsline {subsection}{\numberline {3.6.2}Member Function Documentation}{14}{subsection.3.6.2}
|
||||
\contentsline {subsubsection}{\numberline {3.6.2.1}register\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Socket()}{14}{subsubsection.3.6.2.1}
|
||||
\contentsline {subsubsection}{\numberline {3.6.2.2}unregister\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Socket()}{14}{subsubsection.3.6.2.2}
|
||||
\contentsline {section}{\numberline {3.7}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}File Class Reference}{15}{section.3.7}
|
||||
\contentsline {subsection}{\numberline {3.7.1}Detailed Description}{15}{subsection.3.7.1}
|
||||
\contentsline {section}{\numberline {3.8}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Header Class Reference}{16}{section.3.8}
|
||||
\contentsline {section}{\numberline {3.9}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}H\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}T\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}T\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}P\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Request\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Handler Class Reference}{17}{section.3.9}
|
||||
\contentsline {section}{\numberline {3.10}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}H\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}T\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}T\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}P\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Server Class Reference}{18}{section.3.10}
|
||||
\contentsline {section}{\numberline {3.11}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}H\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}T\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}T\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}P\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Session Class Reference}{20}{section.3.11}
|
||||
\contentsline {subsection}{\numberline {3.11.1}Member Function Documentation}{21}{subsection.3.11.1}
|
||||
\contentsline {subsubsection}{\numberline {3.11.1.1}on\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Data\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Received()}{22}{subsubsection.3.11.1.1}
|
||||
\contentsline {section}{\numberline {3.12}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Log Class Reference}{22}{section.3.12}
|
||||
\contentsline {section}{\numberline {3.13}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}P3\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}File Class Reference}{22}{section.3.13}
|
||||
\contentsline {section}{\numberline {3.14}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}P3\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Stream\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Content\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Provider Class Reference}{23}{section.3.14}
|
||||
\contentsline {section}{\numberline {3.15}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}P3\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Stream\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Frame Class Reference}{24}{section.3.15}
|
||||
\contentsline {section}{\numberline {3.16}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Object Class Reference}{26}{section.3.16}
|
||||
\contentsline {section}{\numberline {3.17}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Parse\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Header Class Reference}{26}{section.3.17}
|
||||
\contentsline {section}{\numberline {3.18}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Property$<$ T $>$ Class Template Reference}{26}{section.3.18}
|
||||
\contentsline {section}{\numberline {3.19}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Session Class Reference}{27}{section.3.19}
|
||||
\contentsline {subsection}{\numberline {3.19.1}Detailed Description}{28}{subsection.3.19.1}
|
||||
\contentsline {subsection}{\numberline {3.19.2}Member Function Documentation}{28}{subsection.3.19.2}
|
||||
\contentsline {subsubsection}{\numberline {3.19.2.1}on\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Connected()}{28}{subsubsection.3.19.2.1}
|
||||
\contentsline {subsubsection}{\numberline {3.19.2.2}on\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Data\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Received()}{29}{subsubsection.3.19.2.2}
|
||||
\contentsline {subsubsection}{\numberline {3.19.2.3}output()}{29}{subsubsection.3.19.2.3}
|
||||
\contentsline {section}{\numberline {3.20}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}S\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}I\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}P\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}I\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}N\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}V\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}I\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}TE Class Reference}{29}{section.3.20}
|
||||
\contentsline {section}{\numberline {3.21}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}S\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}I\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}P\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}R\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}E\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}G\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}I\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}S\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}T\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}ER Class Reference}{30}{section.3.21}
|
||||
\contentsline {section}{\numberline {3.22}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}S\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}I\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}P\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Request\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Handler Class Reference}{31}{section.3.22}
|
||||
\contentsline {section}{\numberline {3.23}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}S\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}I\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}P\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Server Class Reference}{33}{section.3.23}
|
||||
\contentsline {section}{\numberline {3.24}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}S\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}I\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}P\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Session Class Reference}{35}{section.3.24}
|
||||
\contentsline {subsection}{\numberline {3.24.1}Member Function Documentation}{36}{subsection.3.24.1}
|
||||
\contentsline {subsubsection}{\numberline {3.24.1.1}on\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Data\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Received()}{37}{subsubsection.3.24.1.1}
|
||||
\contentsline {section}{\numberline {3.25}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Socket Class Reference}{37}{section.3.25}
|
||||
\contentsline {subsection}{\numberline {3.25.1}Constructor \& Destructor Documentation}{39}{subsection.3.25.1}
|
||||
\contentsline {subsubsection}{\numberline {3.25.1.1}$\sim $\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Socket()}{39}{subsubsection.3.25.1.1}
|
||||
\contentsline {subsection}{\numberline {3.25.2}Member Function Documentation}{39}{subsection.3.25.2}
|
||||
\contentsline {subsubsection}{\numberline {3.25.2.1}event\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Received()}{39}{subsubsection.3.25.2.1}
|
||||
\contentsline {subsubsection}{\numberline {3.25.2.2}on\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Connected()}{39}{subsubsection.3.25.2.2}
|
||||
\contentsline {subsubsection}{\numberline {3.25.2.3}on\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Data\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Received()}{40}{subsubsection.3.25.2.3}
|
||||
\contentsline {subsubsection}{\numberline {3.25.2.4}on\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Registered()}{40}{subsubsection.3.25.2.4}
|
||||
\contentsline {section}{\numberline {3.26}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Stream\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Content\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Provider Class Reference}{40}{section.3.26}
|
||||
\contentsline {section}{\numberline {3.27}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Stream\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Frame Class Reference}{41}{section.3.27}
|
||||
\contentsline {section}{\numberline {3.28}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Stream\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Server Class Reference}{42}{section.3.28}
|
||||
\contentsline {subsection}{\numberline {3.28.1}Detailed Description}{43}{subsection.3.28.1}
|
||||
\contentsline {section}{\numberline {3.29}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Stream\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Session Class Reference}{44}{section.3.29}
|
||||
\contentsline {subsection}{\numberline {3.29.1}Member Function Documentation}{45}{subsection.3.29.1}
|
||||
\contentsline {subsubsection}{\numberline {3.29.1.1}on\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Data\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Received()}{46}{subsubsection.3.29.1.1}
|
||||
\contentsline {section}{\numberline {3.30}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}T\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}C\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}P\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Server\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Socket Class Reference}{46}{section.3.30}
|
||||
\contentsline {subsection}{\numberline {3.30.1}Detailed Description}{47}{subsection.3.30.1}
|
||||
\contentsline {subsection}{\numberline {3.30.2}Member Function Documentation}{48}{subsection.3.30.2}
|
||||
\contentsline {subsubsection}{\numberline {3.30.2.1}accept()}{48}{subsubsection.3.30.2.1}
|
||||
\contentsline {subsubsection}{\numberline {3.30.2.2}on\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Data\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Received()}{48}{subsubsection.3.30.2.2}
|
||||
\contentsline {section}{\numberline {3.31}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}T\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}C\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}P\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Socket Class Reference}{48}{section.3.31}
|
||||
\contentsline {subsection}{\numberline {3.31.1}Detailed Description}{49}{subsection.3.31.1}
|
||||
\contentsline {subsection}{\numberline {3.31.2}Member Function Documentation}{50}{subsection.3.31.2}
|
||||
\contentsline {subsubsection}{\numberline {3.31.2.1}on\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Connected()}{50}{subsubsection.3.31.2.1}
|
||||
\contentsline {subsubsection}{\numberline {3.31.2.2}output()}{50}{subsubsection.3.31.2.2}
|
||||
\contentsline {section}{\numberline {3.32}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Thread Class Reference}{50}{section.3.32}
|
||||
\contentsline {section}{\numberline {3.33}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Timer Class Reference}{51}{section.3.33}
|
||||
\contentsline {subsection}{\numberline {3.33.1}Detailed Description}{52}{subsection.3.33.1}
|
||||
\contentsline {subsection}{\numberline {3.33.2}Member Function Documentation}{52}{subsection.3.33.2}
|
||||
\contentsline {subsubsection}{\numberline {3.33.2.1}on\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Data\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Received()}{52}{subsubsection.3.33.2.1}
|
||||
\contentsline {section}{\numberline {3.34}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}U\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}D\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}P\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Server\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Socket Class Reference}{53}{section.3.34}
|
||||
\contentsline {subsection}{\numberline {3.34.1}Detailed Description}{54}{subsection.3.34.1}
|
||||
\contentsline {subsection}{\numberline {3.34.2}Member Function Documentation}{54}{subsection.3.34.2}
|
||||
\contentsline {subsubsection}{\numberline {3.34.2.1}on\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Data\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Received()}{54}{subsubsection.3.34.2.1}
|
||||
\contentsline {section}{\numberline {3.35}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}U\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}D\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}P\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Socket Class Reference}{55}{section.3.35}
|
||||
\contentsline {chapter}{Index}{57}{section*.144}
|
||||
\contentsline {chapter}{Index}{1}{section*.2}
|
||||
@@ -0,0 +1,82 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<meta name="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>My Project: CommandList.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td id="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">My Project
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript">
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="javascript:void(0)" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">CommandList.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="preprocessor">#ifndef __CommandList_h__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="preprocessor">#define __CommandList_h__</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> </div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#include "TCPSession.h"</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="preprocessor">#include "Command.h"</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "Log.h"</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="keyword">namespace </span><a class="code" href="namespacecore.html">core</a> {</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>  </div><div class="line"><a name="l00018"></a><span class="lineno"><a class="line" href="classcore_1_1CommandList.html"> 18</a></span>  <span class="keyword">class </span><a class="code" href="classcore_1_1CommandList.html">CommandList</a> : <span class="keyword">public</span> <a class="code" href="classcore_1_1Command.html">Command</a> {</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>  </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  <span class="keywordtype">void</span> <a class="code" href="classcore_1_1CommandList.html#a7a45e75e3d21a25fd3f7e887acf395e9">add</a>(<a class="code" href="classcore_1_1Command.html">Command</a> &command, std::string name = <span class="stringliteral">""</span>);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  <span class="keywordtype">void</span> <span class="keyword">remove</span>(<a class="code" href="classcore_1_1Command.html">Command</a> &command);</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  </div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keywordtype">bool</span> <a class="code" href="classcore_1_1CommandList.html#a589f3eba55beebad94a5978970e0650d">processRequest</a>(std::string request, <a class="code" href="classcore_1_1TCPSession.html">TCPSession</a> *session, std::stringstream &data);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  </div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keywordtype">bool</span> <a class="code" href="classcore_1_1CommandList.html#a40211d843807cd65f6614c17efcb00e4">grabInput</a>(<a class="code" href="classcore_1_1TCPSession.html">TCPSession</a> *session, <a class="code" href="classcore_1_1Command.html">Command</a> &command);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  </div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keywordtype">void</span> clearGrab(<a class="code" href="classcore_1_1TCPSession.html">TCPSession</a> *session);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  </div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  </div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keywordtype">int</span> <a class="code" href="classcore_1_1CommandList.html#a98939555ca061b445019a841726e3ef6">processCommand</a>(std::string request, <a class="code" href="classcore_1_1TCPSession.html">TCPSession</a> *session, std::stringstream &data);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  </div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span clasLine truncated
|
||||
<div class="ttc" id="classcore_1_1CommandList_html_a40211d843807cd65f6614c17efcb00e4"><div class="ttname"><a href="classcore_1_1CommandList.html#a40211d843807cd65f6614c17efcb00e4">core::CommandList::grabInput</a></div><div class="ttdeci">bool grabInput(TCPSession *session, Command &command)</div><div class="ttdef"><b>Definition:</b> CommandList.cpp:33</div></div>
|
||||
<div class="ttc" id="namespacecore_html"><div class="ttname"><a href="namespacecore.html">core</a></div><div class="ttdef"><b>Definition:</b> Command.cpp:4</div></div>
|
||||
<div class="ttc" id="classcore_1_1CommandList_html"><div class="ttname"><a href="classcore_1_1CommandList.html">core::CommandList</a></div><div class="ttdef"><b>Definition:</b> CommandList.h:18</div></div>
|
||||
<div class="ttc" id="classcore_1_1TCPSession_html"><div class="ttname"><a href="classcore_1_1TCPSession.html">core::TCPSession</a></div><div class="ttdef"><b>Definition:</b> TCPSession.h:23</div></div>
|
||||
<div class="ttc" id="classcore_1_1Command_html"><div class="ttname"><a href="classcore_1_1Command.html">core::Command</a></div><div class="ttdef"><b>Definition:</b> Command.h:20</div></div>
|
||||
<div class="ttc" id="classcore_1_1CommandList_html_a435f09d15c78dad43e7bca4977d6bdf1"><div class="ttname"><a href="classcore_1_1CommandList.html#a435f09d15c78dad43e7bca4977d6bdf1">core::CommandList::commands</a></div><div class="ttdeci">std::vector< Command * > commands</div><div class="ttdef"><b>Definition:</b> CommandList.h:69</div></div>
|
||||
<div class="ttc" id="classcore_1_1CommandList_html_a7a45e75e3d21a25fd3f7e887acf395e9"><div class="ttname"><a href="classcore_1_1CommandList.html#a7a45e75e3d21a25fd3f7e887acf395e9">core::CommandList::add</a></div><div class="ttdeci">void add(Command &command, std::string name="")</div><div class="ttdef"><b>Definition:</b> CommandList.cpp:6</div></div>
|
||||
<div class="ttc" id="classcore_1_1CommandList_html_a98939555ca061b445019a841726e3ef6"><div class="ttname"><a href="classcore_1_1CommandList.html#a98939555ca061b445019a841726e3ef6">core::CommandList::processCommand</a></div><div class="ttdeci">int processCommand(std::string request, TCPSession *session, std::stringstream &data)</div><div class="ttdef"><b>Definition:</b> CommandList.cpp:41</div></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.13
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,81 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<meta name="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>My Project: Command.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td id="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">My Project
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript">
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="javascript:void(0)" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">Command.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="preprocessor">#ifndef __Command_h__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="preprocessor">#define __Command_h__</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> </div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#include "includes"</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="preprocessor">#include "Object.h"</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "TCPSession.h"</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="preprocessor">#include "PString.h"</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> </div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="keyword">namespace </span><a class="code" href="namespacecore.html">core</a> {</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>  </div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  <span class="keyword">class </span>Session;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>  </div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>  </div><div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="classcore_1_1Command.html"> 20</a></span>  <span class="keyword">class </span><a class="code" href="classcore_1_1Command.html">Command</a> : <span class="keyword">public</span> <a class="code" href="classcore_1_1Object.html">Object</a> {</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  <span class="keyword">public</span>: </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  </div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classcore_1_1Command.html#abdc0d7a4693a7f7940bbae20c4a667c0">check</a>(std::string request);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  </div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  </div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classcore_1_1Command.html#a068ebc22f7a067cf23ed2c17f95b06e9">processCommand</a>(std::string request, <a class="code" href="classcore_1_1TCPSession.html">TCPSession</a> *session, std::stringstream &data);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  </div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  </div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classcore_1_1Command.html#a314aef05f78aacb802097f8ae0875291">output</a>(Session *session);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  </div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  </div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keywordtype">void</span> <a class="code" href="classcore_1_1Command.html#ad8b0321c64838f4d5c8f93461b97cfef">setName</a>(std::string name);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  </div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  std::string getName();</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  </div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keyword">private</span>:</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  std::string name;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  </div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  };</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  </div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> }</div><div class="line"><a name="l00080"><Line truncated
|
||||
<div class="ttc" id="classcore_1_1Object_html"><div class="ttname"><a href="classcore_1_1Object.html">core::Object</a></div><div class="ttdef"><b>Definition:</b> Object.h:8</div></div>
|
||||
<div class="ttc" id="classcore_1_1TCPSession_html"><div class="ttname"><a href="classcore_1_1TCPSession.html">core::TCPSession</a></div><div class="ttdef"><b>Definition:</b> TCPSession.h:23</div></div>
|
||||
<div class="ttc" id="classcore_1_1Command_html_ad8b0321c64838f4d5c8f93461b97cfef"><div class="ttname"><a href="classcore_1_1Command.html#ad8b0321c64838f4d5c8f93461b97cfef">core::Command::setName</a></div><div class="ttdeci">void setName(std::string name)</div><div class="ttdef"><b>Definition:</b> Command.cpp:18</div></div>
|
||||
<div class="ttc" id="classcore_1_1Command_html"><div class="ttname"><a href="classcore_1_1Command.html">core::Command</a></div><div class="ttdef"><b>Definition:</b> Command.h:20</div></div>
|
||||
<div class="ttc" id="classcore_1_1Command_html_a314aef05f78aacb802097f8ae0875291"><div class="ttname"><a href="classcore_1_1Command.html#a314aef05f78aacb802097f8ae0875291">core::Command::output</a></div><div class="ttdeci">virtual void output(Session *session)</div><div class="ttdef"><b>Definition:</b> Command.cpp:8</div></div>
|
||||
<div class="ttc" id="classcore_1_1Command_html_a068ebc22f7a067cf23ed2c17f95b06e9"><div class="ttname"><a href="classcore_1_1Command.html#a068ebc22f7a067cf23ed2c17f95b06e9">core::Command::processCommand</a></div><div class="ttdeci">virtual int processCommand(std::string request, TCPSession *session, std::stringstream &data)</div><div class="ttdef"><b>Definition:</b> Command.cpp:6</div></div>
|
||||
<div class="ttc" id="classcore_1_1Command_html_abdc0d7a4693a7f7940bbae20c4a667c0"><div class="ttname"><a href="classcore_1_1Command.html#abdc0d7a4693a7f7940bbae20c4a667c0">core::Command::check</a></div><div class="ttdeci">virtual bool check(std::string request)</div><div class="ttdef"><b>Definition:</b> Command.cpp:10</div></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.13
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,80 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<meta name="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>My Project: ConsoleServer.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td id="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">My Project
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript">
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="javascript:void(0)" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">ConsoleServer.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="preprocessor">#ifndef __ConsoleServer_h__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="preprocessor">#define __ConsoleServer_h__</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> </div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#include "includes"</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="preprocessor">#include "TLSServer.h"</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "Command.h"</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="preprocessor">#include "EPoll.h"</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#include "LogListener.h"</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> </div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="keyword">namespace </span><a class="code" href="namespacecore.html">core</a> {</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>  <span class="keyword">class </span>TCPSocket;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>  <span class="keyword">class </span>TCPSession;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>  </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>  </div><div class="line"><a name="l00019"></a><span class="lineno"><a class="line" href="classcore_1_1ConsoleServer.html"> 19</a></span>  <span class="keyword">class </span><a class="code" href="classcore_1_1ConsoleServer.html">ConsoleServer</a> : <span class="keyword">public</span> <a class="code" href="classcore_1_1TLSServer.html">TLSServer</a>, <span class="keyword">public</span> coreutils::LogListener {</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  </div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  <span class="comment">//</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  <span class="comment">//</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  <span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  <a class="code" href="classcore_1_1ConsoleServer.html">ConsoleServer</a>(<a class="code" href="classcore_1_1EPoll.html">EPoll</a> &ePoll, <a class="code" href="classcore_1_1IPAddress.html">IPAddress</a> address);</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="comment">//</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <span class="comment">//</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <span class="comment">//</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  </div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <span class="keywordtype">void</span> logSend(std::string out) <span class="keyword">override</span>;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  </div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <a class="code" href="classcore_1_1TCPSession.html">TCPSession</a> * <a class="code" href="classcore_1_1ConsoleServer.html#a80d9ea7f3fc5e07c50d5b9e0d4943ca8">getSocketAccept</a>(<a class="code" href="classcore_1_1EPoll.html">EPoll</a> &ePoll) <span class="keyword">override</span>;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  };</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> }</div><div class="line"><a name="l00040">Line truncated
|
||||
<div class="ttc" id="namespacecore_html"><div class="ttname"><a href="namespacecore.html">core</a></div><div class="ttdef"><b>Definition:</b> Command.cpp:4</div></div>
|
||||
<div class="ttc" id="classcore_1_1EPoll_html"><div class="ttname"><a href="classcore_1_1EPoll.html">core::EPoll</a></div><div class="ttdef"><b>Definition:</b> EPoll.h:31</div></div>
|
||||
<div class="ttc" id="classcore_1_1IPAddress_html"><div class="ttname"><a href="classcore_1_1IPAddress.html">core::IPAddress</a></div><div class="ttdef"><b>Definition:</b> IPAddress.h:9</div></div>
|
||||
<div class="ttc" id="classcore_1_1TCPSession_html"><div class="ttname"><a href="classcore_1_1TCPSession.html">core::TCPSession</a></div><div class="ttdef"><b>Definition:</b> TCPSession.h:23</div></div>
|
||||
<div class="ttc" id="classcore_1_1ConsoleServer_html_a80d9ea7f3fc5e07c50d5b9e0d4943ca8"><div class="ttname"><a href="classcore_1_1ConsoleServer.html#a80d9ea7f3fc5e07c50d5b9e0d4943ca8">core::ConsoleServer::getSocketAccept</a></div><div class="ttdeci">TCPSession * getSocketAccept(EPoll &ePoll) override</div><div class="ttdef"><b>Definition:</b> ConsoleServer.cpp:17</div></div>
|
||||
<div class="ttc" id="classcore_1_1ConsoleServer_html"><div class="ttname"><a href="classcore_1_1ConsoleServer.html">core::ConsoleServer</a></div><div class="ttdef"><b>Definition:</b> ConsoleServer.h:19</div></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.13
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,79 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<meta name="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>My Project: ConsoleSession.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td id="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">My Project
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript">
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="javascript:void(0)" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">ConsoleSession.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="preprocessor">#ifndef __ConsoleSession_h__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="preprocessor">#define __ConsoleSession_h__</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> </div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#include "TerminalSession.h"</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="preprocessor">#include "TCPSession.h"</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "CommandList.h"</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="keyword">namespace </span><a class="code" href="namespacecore.html">core</a> {</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"><a class="line" href="classcore_1_1ConsoleSession.html"> 18</a></span>  <span class="keyword">class </span><a class="code" href="classcore_1_1ConsoleSession.html">ConsoleSession</a> : <span class="keyword">public</span> <a class="code" href="classcore_1_1TerminalSession.html">TerminalSession</a> {</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>  </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  <a class="code" href="classcore_1_1ConsoleSession.html">ConsoleSession</a>(<a class="code" href="classcore_1_1EPoll.html">EPoll</a> &ePoll, <a class="code" href="classcore_1_1TCPServer.html">TCPServer</a> &server);</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  ~<a class="code" href="classcore_1_1ConsoleSession.html">ConsoleSession</a>(); </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  <span class="keywordtype">void</span> writeLog(std::string data);</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  <span class="keyword">protected</span>:</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  <span class="keywordtype">void</span> <a class="code" href="classcore_1_1ConsoleSession.html#a9fc306ab91d0f2a6990984040ecb3e47">protocol</a>(std::stringstream &out, std::string data) <span class="keyword">override</span>; </div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keyword">private</span>:</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <span class="keyword">enum</span> Status {WELCOME, LOGIN, WAIT_USER_PROFILE, PASSWORD, WAIT_PASSWORD, PROMPT, INPUT, PROCESS, DONE};</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  Status status = WELCOME; </div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  <span class="keywordtype">void</span> doCommand(std::string request);</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  std::string command;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  </div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  };</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> }</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#endif</span></div><div class="ttc" id="classcore_1_1ConsoleSession_html"><div class="ttname"><a href="classcore_1_1ConsoleSession.html">core::ConsoleSession</a></div><div class="ttdef"><b>Definition:</b> ConsoleSession.h:18</div></div>
|
||||
<div class="ttc" id="namespacecore_html"><div class="ttname"><a href="namespacecore.html">core</a></div><div class="ttdef"><b>Definition:</b> Command.cpp:4</div></div>
|
||||
<div class="ttc" id="classcore_1_1EPoll_html"><div class="ttname"><a href="classcore_1_1EPoll.html">core::EPoll</a></div><div class="ttdef"><b>Definition:</b> EPoll.h:31</div></div>
|
||||
<div class="ttc" id="classcore_1_1ConsoleSession_html_a9fc306ab91d0f2a6990984040ecb3e47"><div class="ttname"><a href="classcore_1_1ConsoleSession.html#a9fc306ab91d0f2a6990984040ecb3e47">core::ConsoleSession::protocol</a></div><div class="ttdeci">void protocol(std::stringstream &out, std::string data) override</div><div class="ttdef"><b>Definition:</b> ConsoleSession.cpp:12</div></div>
|
||||
<div class="ttc" id="classcore_1_1TCPServer_html"><div class="ttname"><a href="classcore_1_1TCPServer.html">core::TCPServer</a></div><div class="ttdef"><b>Definition:</b> TCPServer.h:24</div></div>
|
||||
<div class="ttc" id="classcore_1_1TerminalSession_html"><div class="ttname"><a href="classcore_1_1TerminalSession.html">core::TerminalSession</a></div><div class="ttdef"><b>Definition:</b> TerminalSession.h:30</div></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.13
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||