Major changes to socket scheduling in EPoll.

This commit is contained in:
Brad Arant 2020-02-29 19:27:58 -08:00
parent 790906a6dc
commit a5a51f8aae
512 changed files with 22663 additions and 2121 deletions

View File

@ -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;

View File

@ -4,6 +4,7 @@
#include "includes"
#include "Object.h"
#include "TCPSession.h"
#include "PString.h"
namespace core {

View File

@ -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;
}
}

View File

@ -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;
};

View File

@ -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());
}
}

View File

@ -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};

View File

@ -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.";
}
}

View File

@ -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);
};

58
INotify.cpp Normal file
View File

@ -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));
}
}
}

37
INotify.h Normal file
View File

@ -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

View File

@ -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

View File

@ -1 +0,0 @@

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -1,7 +0,0 @@
Release/File.cpp.o: File.cpp File.h includes Exception.h
File.h:
includes:
Exception.h:

View File

@ -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:

View File

@ -1,7 +0,0 @@
Release/IPAddress.cpp.o: IPAddress.cpp IPAddress.h includes Object.h
IPAddress.h:
includes:
Object.h:

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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;
}

View File

@ -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;
};
}

View File

@ -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) {

View File

@ -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

View File

@ -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);
}
}

View File

@ -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;
};

View File

@ -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) {

View File

@ -22,6 +22,7 @@ namespace core {
public:
TCPSocket(EPoll &ePoll);
TCPSocket(EPoll &ePoll, std::string text);
~TCPSocket();
void connect(IPAddress &address);

View File

@ -82,7 +82,7 @@ namespace core {
}
void TLSSession::protocol(std::string data) {
void TLSSession::protocol(std::stringstream &out, std::string data) {
}

View File

@ -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;

View File

@ -46,6 +46,8 @@ namespace core {
void PreviousLine(int lines);
void scrollArea(int start, int end);
std::stringstream out;
};
}

View File

@ -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]);
}
}

View File

@ -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);

View File

@ -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"

BIN
docs/latex/html/bc_s.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 676 B

BIN
docs/latex/html/bdwn.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 B

BIN
docs/latex/html/closed.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 B

BIN
docs/latex/html/doc.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 746 B

1596
docs/latex/html/doxygen.css Normal file

File diff suppressed because it is too large Load Diff

BIN
docs/latex/html/doxygen.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

@ -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('&#9660;');
$(this).show();
} else if (l==level+1) {
i.removeClass('iconfclosed iconfopen').addClass('iconfclosed');
a.html('&#9658;');
$(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('&#9658;');
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('&#9660;');
// 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('&#9658;');
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');
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 616 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 597 B

View File

@ -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&lt;class T&gt; 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&lt;int&gt;</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 &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>

View File

@ -0,0 +1 @@
387ff8eb65306fa251338d3c9bd7bfff

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

View File

@ -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 &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>

87
docs/latex/html/jquery.js vendored Normal file

File diff suppressed because one or more lines are too long

26
docs/latex/html/menu.js Normal file
View File

@ -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();
}

View File

@ -0,0 +1,2 @@
var menudata={children:[
{text:"Main Page",url:"index.html"}]}

BIN
docs/latex/html/nav_f.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 B

BIN
docs/latex/html/nav_g.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 B

BIN
docs/latex/html/nav_h.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 B

BIN
docs/latex/html/open.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 273 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 563 B

View File

@ -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>

View File

@ -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;
}

View File

@ -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='&#8226;';
}
else
{
node.innerHTML='&#160;';
}
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">&#160;</span>'+indexSectionLabels[key];
results.appendChild(link);
}
searchBox.OnSelectItem(0);
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 604 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 612 B

View File

@ -0,0 +1,12 @@
var indexSectionsWithContent =
{
};
var indexSectionNames =
{
};
var indexSectionLabels =
{
};

Binary file not shown.

After

Width:  |  Height:  |  Size: 314 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 853 B

BIN
docs/latex/html/sync_on.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 845 B

BIN
docs/latex/html/tab_a.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 B

BIN
docs/latex/html/tab_b.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 B

BIN
docs/latex/html/tab_h.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 B

BIN
docs/latex/html/tab_s.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 184 B

1
docs/latex/html/tabs.css Normal file

File diff suppressed because one or more lines are too long

21
docs/latex/latex/Makefile Normal file
View File

@ -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

View File

@ -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

151
docs/latex/latex/refman.tex Normal file
View File

@ -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}

View File

@ -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}}

BIN
docs/latex/refman.dvi Normal file

Binary file not shown.

View File

@ -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}

View File

@ -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).

View File

@ -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

Binary file not shown.

View File

@ -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}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -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>&#160;<span class="preprocessor">#ifndef __ConsoleSession_h__</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __ConsoleSession_h__</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;TerminalSession.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &quot;TCPSession.h&quot;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;CommandList.h&quot;</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<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>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"><a class="line" href="classcore_1_1ConsoleSession.html"> 18</a></span>&#160; <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>&#160; </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <a class="code" href="classcore_1_1ConsoleSession.html">ConsoleSession</a>(<a class="code" href="classcore_1_1EPoll.html">EPoll</a> &amp;ePoll, <a class="code" href="classcore_1_1TCPServer.html">TCPServer</a> &amp;server);</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; ~<a class="code" href="classcore_1_1ConsoleSession.html">ConsoleSession</a>(); </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keywordtype">void</span> writeLog(std::string data);</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classcore_1_1ConsoleSession.html#a9fc306ab91d0f2a6990984040ecb3e47">protocol</a>(std::stringstream &amp;out, std::string data) <span class="keyword">override</span>; </div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <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>&#160; Status status = WELCOME; </div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordtype">void</span> doCommand(std::string request);</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; std::string command;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; </div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; };</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;}</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<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 &amp;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 &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show More