diff --git a/html/CommandList_8h_source.html b/html/CommandList_8h_source.html deleted file mode 100644 index 4ed110d..0000000 --- a/html/CommandList_8h_source.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - -My Project: CommandList.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
CommandList.h
-
-
-
1 #ifndef __CommandList_h__
-
2 #define __CommandList_h__
-
3 
-
4 #include "TCPSession.h"
-
5 #include "Command.h"
-
6 #include "Log.h"
-
7 
-
8 namespace core {
-
9 
-
17 
-
18  class CommandList : public Command {
-
19 
-
20  public:
-
21 
-
22  CommandList(std::string delimiter = "", int depth = 0);
-
23 
-
27 
-
28  void add(Command &command, std::string name = "");
-
29 
-
33 
-
34  void remove(Command &command);
-
35 
-
42 
-
43  bool processRequest(coreutils::ZString &request, TCPSession &session);
-
44 
-
50 
-
51  bool grabInput(TCPSession &session, Command &command);
-
52 
-
56 
-
57  void clearGrab(TCPSession &session);
-
58 
-
62 
-
63  int processCommand(coreutils::ZString &request, TCPSession &session);
-
64 
-
65  protected:
-
66 
-
70 
-
71  std::map<std::string, Command *> commands;
-
72  std::string delimiter;
-
73  int depth;
-
74 
-
75  };
-
76 
-
77 }
-
78 
-
79 #endif
-
Definition: CommandList.h:18
-
int processCommand(coreutils::ZString &request, TCPSession &session)
Definition: CommandList.cpp:42
-
bool grabInput(TCPSession &session, Command &command)
Definition: CommandList.cpp:33
-
void add(Command &command, std::string name="")
Definition: CommandList.cpp:8
-
bool processRequest(coreutils::ZString &request, TCPSession &session)
Definition: CommandList.cpp:14
-
void remove(Command &command)
Definition: CommandList.cpp:12
-
std::map< std::string, Command * > commands
Definition: CommandList.h:71
-
Definition: Command.h:22
-
Definition: TCPSession.h:24
-
- - - - diff --git a/html/Command_8h_source.html b/html/Command_8h_source.html deleted file mode 100644 index 9c0b13e..0000000 --- a/html/Command_8h_source.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - -My Project: Command.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
Command.h
-
-
-
1 #ifndef __Command_h__
-
2 #define __Command_h__
-
3 
-
4 #include "includes"
-
5 #include "Object.h"
-
6 #include "TCPSession.h"
-
7 #include "ZString.h"
-
8 
-
9 namespace core {
-
10 
-
11  class CommandList;
-
12 
-
13  class Session;
-
14 
-
21 
-
22  class Command {
-
23 
-
24  public:
-
25 
-
36 
-
37  virtual int processCommand(coreutils::ZString &request, TCPSession &session);
-
38 
-
44 
-
45  virtual void output(std::stringstream &out);
-
46 
-
47  };
-
48 
-
49 }
-
50 
-
51 #endif
-
Definition: Command.h:22
-
virtual int processCommand(coreutils::ZString &request, TCPSession &session)
Definition: Command.cpp:7
-
virtual void output(std::stringstream &out)
Definition: Command.cpp:11
-
Definition: TCPSession.h:24
-
- - - - diff --git a/html/ConsoleServer_8h_source.html b/html/ConsoleServer_8h_source.html deleted file mode 100644 index bb44490..0000000 --- a/html/ConsoleServer_8h_source.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - - -My Project: ConsoleServer.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
ConsoleServer.h
-
-
-
1 #ifndef __ConsoleServer_h__
-
2 #define __ConsoleServer_h__
-
3 
-
4 #include "includes"
-
5 #include "TLSServer.h"
-
6 #include "Command.h"
-
7 #include "EPoll.h"
-
8 #include "LogListener.h"
-
9 
-
10 namespace core {
-
11 
-
12  class TCPSocket;
-
13  class TCPSession;
-
14 
-
18 
-
19  class ConsoleServer : public TCPServer, public coreutils::LogListener {
-
20 
-
21  public:
-
22 
-
23  //
-
24  //
-
25  //
-
26 
-
27  ConsoleServer(EPoll &ePoll, IPAddress address);
-
28 
-
29  //
-
30  //
-
31  //
-
32 
-
33  void logSend(std::string out) override;
-
34 
-
35  TCPSession * getSocketAccept(EPoll &ePoll) override;
-
36 
-
37  };
-
38 
-
39 }
-
40 
-
41 #endif
-
Definition: ConsoleServer.h:19
-
TCPSession * getSocketAccept(EPoll &ePoll) override
Definition: ConsoleServer.cpp:17
-
Definition: EPoll.h:31
-
Definition: IPAddress.h:9
-
Definition: TCPServer.h:25
-
Definition: TCPSession.h:24
-
- - - - diff --git a/html/ConsoleSession_8h_source.html b/html/ConsoleSession_8h_source.html deleted file mode 100644 index 9dfb454..0000000 --- a/html/ConsoleSession_8h_source.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - - -My Project: ConsoleSession.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
ConsoleSession.h
-
-
-
1 #ifndef __ConsoleSession_h__
-
2 #define __ConsoleSession_h__
-
3 
-
4 #include "TerminalSession.h"
-
5 //#include "TCPServer.h"
-
6 #include "CommandList.h"
-
7 
-
8 namespace core {
-
9 
-
10  class TCPServer;
-
11 
-
19 
- -
21 
-
22  public:
-
23  ConsoleSession(EPoll &ePoll, TCPServer &server);
-
24  ~ConsoleSession();
-
25 
-
26  void writeLog(std::string data);
-
27 
-
28  protected:
-
29  void protocol(coreutils::ZString &data) override;
-
30 
-
31  private:
-
32  enum Status {WELCOME, LOGIN, WAIT_USER_PROFILE, PASSWORD, WAIT_PASSWORD, PROMPT, INPUT, PROCESS, DONE};
-
33  Status status = WELCOME;
-
34  void doCommand(coreutils::ZString &request);
-
35  coreutils::ZString command;
-
36 
-
37  };
-
38 
-
39 }
-
40 
-
41 #endif
-
Definition: ConsoleSession.h:20
-
void protocol(coreutils::ZString &data) override
Definition: ConsoleSession.cpp:11
-
Definition: EPoll.h:31
-
Definition: TCPServer.h:25
-
Definition: TerminalSession.h:30
-
- - - - diff --git a/html/EPoll_8h_source.html b/html/EPoll_8h_source.html deleted file mode 100644 index 757633f..0000000 --- a/html/EPoll_8h_source.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - - - -My Project: EPoll.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
EPoll.h
-
-
-
1 #ifndef __EPoll_h__
-
2 #define __EPoll_h__
-
3 
-
4 #include "Log.h"
-
5 #include "Socket.h"
-
6 #include "Thread.h"
-
7 #include "TCPSession.h"
-
8 #include "Command.h"
-
9 
-
10 namespace core {
-
11 
-
30 
-
31  class EPoll : public Command {
-
32 
-
33  public:
-
34 
-
38 
-
39  EPoll();
-
40 
-
44 
-
45  ~EPoll();
-
46 
-
53 
-
54  bool start(int numberOfThreads, int maxSockets);
-
55 
-
61 
-
62  bool stop();
-
63 
-
68 
-
69  bool isStopping();
-
70 
-
79 
-
80  bool registerSocket(Socket *socket);
-
81 
-
85 
-
86  bool unregisterSocket(Socket *socket);
-
87 
-
91 
-
92  int getDescriptor();
-
93 
-
97 
-
98  int maxSockets;
-
99 
-
103 
-
104  void eventReceived(struct epoll_event event);
-
105 
-
112 
-
113  int processCommand(coreutils::ZString &request, TCPSession &session) override;
-
114 
-
115  void resetSocket(Socket *socket);
-
116 
-
117  private:
-
118 
-
119  int epfd;
-
120  int numberOfThreads;
-
121  std::vector<Thread> threads;
-
122  volatile bool terminateThreads;
-
123  void enableSocket(Socket *socket);
-
124  void disableSocket(Socket *socket);
-
125 
-
126  };
-
127 
-
128 }
-
129 
-
130 #endif
-
131 
-
Definition: Command.h:22
-
Definition: EPoll.h:31
-
bool stop()
Stop and shut down the BMAEPoll processing.
Definition: EPoll.cpp:46
-
int getDescriptor()
Return the descriptor for the ePoll socket.
Definition: EPoll.cpp:80
-
int processCommand(coreutils::ZString &request, TCPSession &session) override
Output the threads array to the console.
Definition: EPoll.cpp:84
-
EPoll()
Definition: EPoll.cpp:9
-
bool isStopping()
Returns a true if the stop command has been requested.
Definition: EPoll.cpp:66
-
void eventReceived(struct epoll_event event)
Dispatch event to appropriate socket.
-
bool registerSocket(Socket *socket)
Register a BMASocket for monitoring by BMAEPoll.
Definition: EPoll.cpp:70
-
bool unregisterSocket(Socket *socket)
Unregister a BMASocket from monitoring by BMAEPoll.
Definition: EPoll.cpp:75
-
~EPoll()
Definition: EPoll.cpp:18
-
bool start(int numberOfThreads, int maxSockets)
Start the BMAEPoll processing.
Definition: EPoll.cpp:20
-
int maxSockets
The maximum number of socket allowed.
Definition: EPoll.h:98
-
Definition: Socket.h:34
-
Definition: TCPSession.h:24
-
- - - - diff --git a/html/INotify_8h_source.html b/html/INotify_8h_source.html deleted file mode 100644 index 1f79a59..0000000 --- a/html/INotify_8h_source.html +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - - -My Project: INotify.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
INotify.h
-
-
-
1 #ifndef __INotify_h__
-
2 # define __INotify_h__
-
3 
-
4 #include "includes"
-
5 #include "Socket.h"
-
6 
-
7 namespace core {
-
8 
-
9  class INotify : Socket {
-
10 
-
11  public:
-
12  INotify(EPoll &ePoll);
-
13  ~INotify();
-
14 
-
15  int addWatch(std::string watch);
-
16  void removeWatch(int wd);
-
17 
-
18  void onDataReceived(coreutils::ZString &data) override;
-
19 
-
20  virtual void inAccess(std::string name) {}
-
21  virtual void inAttrib(std::string name) {}
-
22  virtual void inCloseWrite(std::string name) {}
-
23  virtual void inCloseNoWrite(std::string name) {}
-
24  virtual void inCreate(std::string name) {}
-
25  virtual void inDelete(std::string name) {}
-
26  virtual void inDeleteSelf(std::string name) {}
-
27  virtual void inModify(std::string name) {}
-
28  virtual void inMoveSelf(std::string name) {}
-
29  virtual void inMovedFrom(std::string name) {}
-
30  virtual void inMovedTo(std::string name) {}
-
31  virtual void inOpen(std::string name) {}
-
32 
-
33  };
-
34 
-
35 }
-
36 
-
37 #endif
-
Definition: EPoll.h:31
-
Definition: INotify.h:9
-
Definition: Socket.h:34
-
- - - - diff --git a/html/IPAddressList_8h_source.html b/html/IPAddressList_8h_source.html deleted file mode 100644 index 09eb44b..0000000 --- a/html/IPAddressList_8h_source.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - -My Project: IPAddressList.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
IPAddressList.h
-
-
-
1 #ifndef __IPAddressList_h__
-
2 #define __IPAddressList_h__
-
3 
-
4 #include "includes"
-
5 #include "IPAddress.h"
-
6 
-
7 namespace core {
-
8 
-
9  class IPAddressList {
-
10 
-
11  public:
-
12  IPAddressList();
-
13 
-
14  std::map<std::string, IPAddress> getList();
-
15  void add(IPAddress ipAddress);
-
16  bool remove(IPAddress ipAddress);
-
17  bool contains(std::string ipAddress);
-
18 
-
19  private:
-
20  std::map<std::string, IPAddress> list;
-
21  std::map<std::string, IPAddress>::iterator it = list.begin();
-
22  };
-
23 
-
24 }
-
25 
-
26 #endif
-
Definition: IPAddressList.h:9
-
Definition: IPAddress.h:9
-
- - - - diff --git a/html/IPAddress_8h_source.html b/html/IPAddress_8h_source.html deleted file mode 100644 index 376e6e9..0000000 --- a/html/IPAddress_8h_source.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - -My Project: IPAddress.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
IPAddress.h
-
-
-
1 #ifndef __IPAddress_h__
-
2 #define __IPAddress_h__
-
3 
-
4 #include "includes"
-
5 #include "Object.h"
-
6 
-
7 namespace core {
-
8 
-
9  class IPAddress : public Object {
-
10 
-
11  public:
-
12  IPAddress();
-
13  IPAddress(std::string address);
-
14  IPAddress(std::string address, int port);
-
15  ~IPAddress();
-
16 
-
17  struct sockaddr_in addr;
-
18  socklen_t addressLength;
-
19 
-
20  struct sockaddr * getPointer();
-
21  std::string getClientAddress();
-
22  std::string getClientAddressAndPort();
-
23  int getClientPort();
-
24 
-
25  };
-
26 
-
27 }
-
28 
-
29 #endif
-
Definition: IPAddress.h:9
-
int getClientPort()
Get the client network port number.
Definition: IPAddress.cpp:47
-
std::string getClientAddressAndPort()
Get the client network address and port as xxx.xxx.xxx.xxx:ppppp.
Definition: IPAddress.cpp:40
-
std::string getClientAddress()
Get the client network address as xxx.xxx.xxx.xxx.
Definition: IPAddress.cpp:35
-
Definition: Object.h:8
-
- - - - diff --git a/html/Object_8h_source.html b/html/Object_8h_source.html deleted file mode 100644 index fa76d45..0000000 --- a/html/Object_8h_source.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - -My Project: Object.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
Object.h
-
-
-
1 #ifndef __Object_h__
-
2 #define __Object_h__
-
3 
-
4 #include "includes"
-
5 
-
6 namespace core {
-
7 
-
8  class Object {
-
9 
-
10  public:
-
11 
-
12  std::string name;
-
13  std::string tag;
-
14 
-
15  };
-
16 
-
17 }
-
18 
-
19 #endif
-
Definition: Object.h:8
-
- - - - diff --git a/html/SessionFilter_8h_source.html b/html/SessionFilter_8h_source.html deleted file mode 100644 index 8c67946..0000000 --- a/html/SessionFilter_8h_source.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - -My Project: SessionFilter.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
SessionFilter.h
-
-
-
1 #ifndef __SessionFilter_h__
-
2 #define __SessionFilter_h__
-
3 
-
4 //#include "Session.h"
-
5 
-
6 namespace core {
-
7 
-
8  class TCPSession;
-
9 
-
10  class SessionFilter : public Object {
-
11 
-
12  public:
-
13  virtual bool test(TCPSession &session) {
-
14  return true;
-
15  }
-
16 
-
17  };
-
18 
-
19 }
-
20 
-
21 #endif
-
Definition: Object.h:8
-
Definition: SessionFilter.h:10
-
Definition: TCPSession.h:24
-
- - - - diff --git a/html/Socket_8h_source.html b/html/Socket_8h_source.html deleted file mode 100644 index 1be47c5..0000000 --- a/html/Socket_8h_source.html +++ /dev/null @@ -1,204 +0,0 @@ - - - - - - - -My Project: Socket.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
Socket.h
-
-
-
1 #ifndef __Socket_h__
-
2 #define __Socket_h__
-
3 
-
4 #include "includes"
-
5 #include "Object.h"
-
6 #include "ZString.h"
-
7 
-
8 namespace core {
-
9 
-
10  class EPoll;
-
11 
-
33 
-
34  class Socket {
-
35 
-
36  public:
-
37 
-
44 
-
45  Socket(EPoll &ePoll, std::string text = "");
-
46 
-
50 
-
51  virtual ~Socket();
-
52 
-
58 
-
59  void shutdown(std::string text = "unknown");
-
60 
-
65 
-
66  void setDescriptor(int descriptor);
-
67 
-
68  int getDescriptor();
-
69 
-
82 
-
83  bool eventReceived(struct epoll_event event);
-
84 
-
88 
-
89  int write(std::string data);
-
90  void write(char *buffer, int length);
-
91 
-
92  void output(std::stringstream &out);
-
93 
-
100 
-
101  virtual void onRegister();
-
102  virtual void onRegistered();
-
103 
-
104  virtual void onUnregister();
-
105 
-
112 
-
113  virtual void onUnregistered();
-
114 
-
115  bool needsToWrite();
-
116 
-
117  bool reset = false;
-
118 
-
119  protected:
-
120 
-
121  EPoll &ePoll; // The EPoll control object.
-
122 
-
123  bool shutDown = false;
-
124 
-
125  void setBufferSize(int length);
-
126 
-
127  int getBufferSize();
-
128 
-
134 
-
135 // virtual void onConnected(); ///< Called when socket is open and ready to communicate.
-
136 
-
140 
-
141 // virtual void onDisconnected(); ///< Called when socket is closing and no longer ready to communicate.
-
142 
-
150 
-
151  virtual void onDataReceived(std::string data);
-
152 
-
156 
-
157  virtual void onDataReceived(coreutils::ZString &data);
-
158 
-
163 
-
164  virtual void receiveData(coreutils::ZString &buffer);
-
165 
-
166  private:
-
167 
-
168  std::string text;
-
169  int descriptor = -1;
-
170 // std::mutex lock;
-
171  std::mutex outlock;
-
172  bool readHangup = false;
-
173  bool inHandler = false;
-
174 // struct epoll_event event; // Event selection construction structure.
-
175 
-
176  //-------------------------------------------------------------------------------------
-
177  // the writeSocket is called when epoll has received a write request for a socket.
-
178  // Writing data to this socket is queued in the streambuf and permission is requested
-
179  // to write to the socket. This routine handles the writing of the streambuf data
-
180  // buffer to the socket.
-
181  //-------------------------------------------------------------------------------------
-
182 
-
183  void writeSocket();
-
184 
-
185  // int_type underflow();
-
186 // int_type uflow();
-
187 // int_type pbackfail(int_type ch);
-
188 // streamsize showmanyc();
-
189 
-
190  char *buffer; // This is a pointer to the managed buffer space.
-
191  int length; // This is the length of the buffer.
-
192 
-
193 // const char * const begin_;
-
194 // const char * const end_;
-
195 // const char * const current_;
-
196 
-
197  std::queue<std::string> fifo;
-
198 
-
199  };
-
200 
-
201 }
-
202 
-
203 #endif
-
204 
-
Definition: EPoll.h:31
-
Definition: Socket.h:34
-
int getDescriptor()
Get the descriptor for the socket.
Definition: Socket.cpp:41
-
int write(std::string data)
Definition: Socket.cpp:138
-
virtual void onRegistered()
Called after the socket has been registered with epoll processing.
Definition: Socket.cpp:57
-
virtual void receiveData(coreutils::ZString &buffer)
Definition: Socket.cpp:91
-
Socket(EPoll &ePoll, std::string text="")
Definition: Socket.cpp:11
-
bool eventReceived(struct epoll_event event)
Parse epoll event and call specified callbacks.
Definition: Socket.cpp:63
-
virtual void onRegister()
Called before the socket has registered with the epoll processing.
Definition: Socket.cpp:55
-
virtual ~Socket()
Definition: Socket.cpp:17
-
void setDescriptor(int descriptor)
Set the descriptor for the socket.
Definition: Socket.cpp:27
-
virtual void onDataReceived(std::string data)
Called when data is received from the socket.
Definition: Socket.cpp:83
-
virtual void onUnregistered()
Called when the socket has finished unregistering for the epoll processing.
Definition: Socket.cpp:61
-
void shutdown(std::string text="unknown")
Definition: Socket.cpp:155
-
- - - - diff --git a/html/SubscriptionManager_8h_source.html b/html/SubscriptionManager_8h_source.html deleted file mode 100644 index d947d5e..0000000 --- a/html/SubscriptionManager_8h_source.html +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - - -My Project: SubscriptionManager.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
SubscriptionManager.h
-
-
-
1 #ifndef __SubscriptionManager_h__
-
2 #define __SubscriptionManager_h__
-
3 
-
4 #include "TCPSession.h"
-
5 #include "Subscription.h"
-
6 #include "Command.h"
-
7 #include "ZString.h"
-
8 #include <vector>
-
9 #include <string>
-
10 
-
11 namespace core {
-
12 
-
13  class SubscriptionManager : public Command {
-
14 
-
15  public:
- -
17 
-
18  int add(Subscription &subscription);
-
19 
-
20  int removeSessionSubscriptions(TCPSession &session);
-
21 
-
22  int processCommand(coreutils::ZString &request, TCPSession &session) override;
-
23 
-
24  private:
-
25  std::map<std::string, Subscription *> subscriptions;
-
26  std::mutex lock;
-
27 
-
28  };
-
29 }
-
30 
-
31 #endif
-
Definition: Command.h:22
-
Definition: SubscriptionManager.h:13
-
int processCommand(coreutils::ZString &request, TCPSession &session) override
Definition: SubscriptionManager.cpp:44
-
Definition: Subscription.h:14
-
Definition: TCPSession.h:24
-
- - - - diff --git a/html/Subscription_8h_source.html b/html/Subscription_8h_source.html deleted file mode 100644 index 76584a9..0000000 --- a/html/Subscription_8h_source.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - - -My Project: Subscription.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
Subscription.h
-
-
-
1 #ifndef __Subscription_h__
-
2 #define __Subscription_h__
-
3 
-
4 #include "ZString.h"
-
5 #include <vector>
-
6 #include <string>
-
7 
-
8 namespace core
-
9 {
-
10 
-
11  class TCPSession;
-
12 
- -
14  {
-
15 
-
16  public:
-
17  Subscription(std::string id, std::string mode = "*AUTHOR");
-
18  Subscription(std::string id, TCPSession &session, std::string mode = "*AUTHOR");
-
19  virtual ~Subscription();
-
20 
-
21  int subscribe(TCPSession &session);
-
22  int unsubscribe(TCPSession &session);
-
23 
-
24  virtual int process(coreutils::ZString &request, std::stringstream &out, TCPSession &session);
-
25 
-
26  virtual int onSubscribe(TCPSession &session);
-
27 
-
28  int event(std::stringstream &out);
-
29 
-
30  bool ifSubscriber(TCPSession &session);
-
31 
-
32  // int processCommand(coreutils::ZString &request, TCPSession &session) override;
-
33 
-
34  std::string id;
-
35  std::string mode;
-
36  TCPSession *owner;
-
37 
-
38  std::vector<TCPSession *> subscribers;
-
39  };
-
40 }
-
41 
-
42 #endif
-
Definition: Subscription.h:14
-
Definition: TCPSession.h:24
-
- - - - diff --git a/html/TCPServer_8h_source.html b/html/TCPServer_8h_source.html deleted file mode 100644 index 35128ae..0000000 --- a/html/TCPServer_8h_source.html +++ /dev/null @@ -1,169 +0,0 @@ - - - - - - - -My Project: TCPServer.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
TCPServer.h
-
-
-
1 #ifndef __TCPServer_h__
-
2 #define __TCPServer_h__
-
3 
-
4 #include "Socket.h"
-
5 #include "TCPSocket.h"
-
6 #include "IPAddressList.h"
-
7 #include "Command.h"
-
8 #include "CommandList.h"
-
9 #include "SubscriptionManager.h"
-
10 
-
11 namespace core {
-
12 
-
24 
-
25  class TCPServer : public TCPSocket, public Command {
-
26 
-
27  public:
-
28 
-
37 
-
38  TCPServer(EPoll &ePoll, IPAddress address, std::string delimiter = " ", int depth = 10, std::string text = "");
-
39 
-
43 
-
44  virtual ~TCPServer();
-
45 
-
46  virtual void sessionErrorHandler(std::string errorString, std::stringstream &out);
-
47 
-
55 
-
56  virtual TCPSession * getSocketAccept(EPoll &epoll);
-
57 
-
61 
-
62  std::vector<TCPSession *> sessions;
-
63 
-
68 
- -
70 
-
76 
- -
78 
-
84 
- -
86 
-
87  void removeFromSessionList(TCPSession *session);
-
88 
-
89  void output(std::stringstream &out);
-
90 
-
94 
-
95  void sendToAll(std::stringstream &out);
-
96 
-
101 
-
102  void sendToAll(std::stringstream &out, TCPSession &sender, SessionFilter filter);
-
103 
-
109 
-
110  void sendToAll(std::stringstream &out, TCPSession &sender);
-
111 
-
115 
- -
117 
-
118  protected:
-
119 
-
129 
-
130  void onDataReceived(std::string data) override;
-
131 
-
138 
-
139  int processCommand(coreutils::ZString &request, TCPSession &session) override;
-
140 
-
141  private:
-
142 
-
143  TCPSession * accept();
-
144  std::mutex lock;
-
145 
-
146  };
-
147 
-
148 }
-
149 
-
150 #endif
-
Definition: CommandList.h:18
-
Definition: Command.h:22
-
Definition: EPoll.h:31
-
Definition: IPAddressList.h:9
-
Definition: IPAddress.h:9
-
Definition: SessionFilter.h:10
-
Definition: SubscriptionManager.h:13
-
Definition: TCPServer.h:25
-
void onDataReceived(std::string data) override
Definition: TCPServer.cpp:36
-
SubscriptionManager subscriptions
Definition: TCPServer.h:116
-
void output(std::stringstream &out)
Output the consoles array to the console.
Definition: TCPServer.cpp:90
-
int processCommand(coreutils::ZString &request, TCPSession &session) override
Definition: TCPServer.cpp:94
-
virtual ~TCPServer()
Definition: TCPServer.cpp:31
-
IPAddressList * blackList
Definition: TCPServer.h:77
-
virtual TCPSession * getSocketAccept(EPoll &epoll)
Definition: TCPServer.cpp:86
-
IPAddressList * whiteList
Definition: TCPServer.h:85
-
TCPServer(EPoll &ePoll, IPAddress address, std::string delimiter=" ", int depth=10, std::string text="")
Definition: TCPServer.cpp:9
-
std::vector< TCPSession * > sessions
Definition: TCPServer.h:62
-
CommandList commands
Definition: TCPServer.h:69
-
Definition: TCPSession.h:24
-
Definition: TCPSocket.h:20
-
- - - - diff --git a/html/TCPSession_8h_source.html b/html/TCPSession_8h_source.html deleted file mode 100644 index cac4bce..0000000 --- a/html/TCPSession_8h_source.html +++ /dev/null @@ -1,164 +0,0 @@ - - - - - - - -My Project: TCPSession.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
TCPSession.h
-
-
-
1 #ifndef __Session_h__
-
2 # define __Session_h__
-
3 
-
4 #include "TCPSocket.h"
-
5 #include "SessionFilter.h"
-
6 
-
7 namespace core {
-
8 
-
9  class Command;
-
10  class TCPServer;
-
11 
-
23 
-
24  class TCPSession : public TCPSocket {
-
25 
-
26  public:
-
27 
-
31 
-
32  TCPSession(EPoll &ePoll, TCPServer &server, std::string text = "");
-
33 
-
37 
-
38  virtual ~TCPSession();
-
39 
-
40  Command *grab = NULL;
-
41 
-
42  virtual void output(std::stringstream &data);
-
43 
-
48 
-
49  void send();
-
50 
-
54 
-
55  void terminate();
-
56 
-
60 
-
61  TCPServer &server;
-
62 
-
66 
-
67  std::stringstream out;
-
68 
-
69  protected:
-
70 
-
74 
-
75  virtual void onRegistered() override;
-
76 
-
82  virtual void onDataReceived(coreutils::ZString &data) override;
-
83 
-
90 
-
91  virtual void onLineReceived(coreutils::ZString &line);
-
92 
-
99 
-
100  virtual void onBlockReceived(coreutils::ZString &block);
-
101 
-
107 
-
108  virtual void onConnected();
-
109 
-
119 
-
120  virtual void protocol(coreutils::ZString &data);
-
121 
-
127 
-
128  void setBlockSize(int size = 0);
-
129 
-
130  private:
-
131  char *lineBuffer = NULL;
-
132  int lineBufferSize = 0;
-
133  int lineLength = 0;
-
134  int blockLength = 0;
-
135  std::mutex mtx;
-
136  bool term = false;
-
137  int blockSize = 0;
-
138 
-
139  };
-
140 
-
141 }
-
142 
-
143 #endif
-
Definition: Command.h:22
-
Definition: EPoll.h:31
-
Definition: TCPServer.h:25
-
Definition: TCPSession.h:24
-
void send()
Definition: TCPSession.cpp:87
-
void terminate()
Definition: TCPSession.cpp:93
-
virtual void onLineReceived(coreutils::ZString &line)
Definition: TCPSession.cpp:74
-
virtual void output(std::stringstream &data)
Definition: TCPSession.cpp:15
-
void setBlockSize(int size=0)
Definition: TCPSession.cpp:70
-
virtual void onConnected()
Definition: TCPSession.cpp:36
-
virtual void protocol(coreutils::ZString &data)
Definition: TCPSession.cpp:19
-
virtual void onBlockReceived(coreutils::ZString &block)
Definition: TCPSession.cpp:81
-
std::stringstream out
Definition: TCPSession.h:67
-
virtual void onRegistered() override
Called after the socket has been registered with epoll processing.
Definition: TCPSession.cpp:27
-
virtual void onDataReceived(coreutils::ZString &data) override
Definition: TCPSession.cpp:38
-
Definition: TCPSocket.h:20
-
- - - - diff --git a/html/TCPSocket_8h_source.html b/html/TCPSocket_8h_source.html deleted file mode 100644 index d57da81..0000000 --- a/html/TCPSocket_8h_source.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - - -My Project: TCPSocket.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
TCPSocket.h
-
-
-
1 #ifndef __TCPSocket_h__
-
2 #define __TCPSocket_h__
-
3 
-
4 #include "includes"
-
5 #include "Socket.h"
-
6 #include "IPAddress.h"
-
7 
-
8 namespace core {
-
9 
-
19 
-
20  class TCPSocket : public Socket {
-
21 
-
22  public:
-
23 
-
24  TCPSocket(EPoll &ePoll);
-
25  TCPSocket(EPoll &ePoll, std::string text);
-
26  virtual ~TCPSocket();
-
27 
-
28  void connect(IPAddress &address);
-
29 
-
30  IPAddress ipAddress;
-
31 
-
38 
-
39  virtual void output(std::stringstream &out);
-
40 
-
41  };
-
42 
-
43 }
-
44 
-
45 #endif
-
Definition: EPoll.h:31
-
Definition: IPAddress.h:9
-
Definition: Socket.h:34
-
Definition: TCPSocket.h:20
-
virtual void output(std::stringstream &out)
Definition: TCPSocket.cpp:20
-
- - - - diff --git a/html/TLSServer_8h_source.html b/html/TLSServer_8h_source.html deleted file mode 100644 index 1023699..0000000 --- a/html/TLSServer_8h_source.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - - -My Project: TLSServer.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
TLSServer.h
-
-
-
1 #ifndef TLSServerSocket_h__
-
2 #define TLSServerSocket_h__
-
3 
-
4 #include "Socket.h"
-
5 #include "TCPServer.h"
-
6 #include "Command.h"
-
7 #include "TCPSession.h"
-
8 #include "IPAddress.h"
-
9 
-
10 namespace core {
-
11 
-
18 
-
19  class TLSServer : public TCPServer {
-
20 
-
21  public:
-
22 
-
31 
-
32  TLSServer(EPoll &ePoll, IPAddress address);
-
33 
-
37 
-
38  ~TLSServer();
-
39 
-
40  TCPSession * getSocketAccept();
-
41 
-
42  SSL_CTX *ctx;
-
43 
-
44  private:
-
45 
-
46  char *sip_cacert = (char *)"../testkeys/certs/pbxca.crt";
-
47  char *sip_cert = (char *)"../testkeys/certs/pbxserver.crt";
-
48  char *sip_key = (char *)"../testkeys/certs/pbxserver.key";
-
49 
-
50  };
-
51 
-
52 }
-
53 
-
54 #endif
-
Definition: EPoll.h:31
-
Definition: IPAddress.h:9
-
Definition: TCPServer.h:25
-
Definition: TCPSession.h:24
-
Definition: TLSServer.h:19
-
TLSServer(EPoll &ePoll, IPAddress address)
Definition: TLSServer.cpp:22
-
~TLSServer()
Definition: TLSServer.cpp:58
-
- - - - diff --git a/html/TLSSession_8h_source.html b/html/TLSSession_8h_source.html deleted file mode 100644 index c60ab5a..0000000 --- a/html/TLSSession_8h_source.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - - -My Project: TLSSession.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
TLSSession.h
-
-
-
1 #ifndef __TLSSession_h__
-
2 #define __TLSSession_h__
-
3 
-
4 #include "includes"
-
5 #include "TCPSession.h"
-
6 #include "TLSServer.h"
-
7 #include <openssl/ssl.h>
-
8 
-
9 namespace core {
-
10 
-
11  class TLSServer;
-
12 
-
22 
-
23  class TLSSession : public TCPSession {
-
24 
-
25  public:
-
26 
-
27  TLSSession(EPoll &ePoll, TCPServer &server);
-
28  ~TLSSession();
-
29 
-
36 
-
37  virtual void output(std::stringstream &out);
-
38  virtual void protocol(coreutils::ZString &data) override;
-
39 
-
40  protected:
-
41  void receiveData(coreutils::ZString &buffer) override;
-
42  void onRegister();
-
43  void onRegistered();
-
44 
-
45  private:
-
46  bool initialized = false;
-
47  SSL *ssl;
-
48 
-
49  };
-
50 
-
51 }
-
52 
-
53 #endif
-
Definition: EPoll.h:31
-
Definition: TCPServer.h:25
-
Definition: TCPSession.h:24
-
std::stringstream out
Definition: TCPSession.h:67
-
Definition: TLSSession.h:23
-
virtual void protocol(coreutils::ZString &data) override
Definition: TLSSession.cpp:83
-
void onRegister()
Called before the socket has registered with the epoll processing.
Definition: TLSSession.cpp:36
-
void receiveData(coreutils::ZString &buffer) override
Definition: TLSSession.cpp:85
-
void onRegistered()
Called after the socket has been registered with epoll processing.
Definition: TLSSession.cpp:58
-
virtual void output(std::stringstream &out)
Definition: TLSSession.cpp:118
-
- - - - diff --git a/html/TerminalSession_8h_source.html b/html/TerminalSession_8h_source.html deleted file mode 100644 index faf72d8..0000000 --- a/html/TerminalSession_8h_source.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - - -My Project: TerminalSession.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
TerminalSession.h
-
-
-
1 #ifndef __Terminal_h__
-
2 #define __Terminal_h__
-
3 
-
4 #include "includes"
-
5 #include "TCPSession.h"
-
6 #include "TCPServer.h"
-
7 
-
8 namespace core {
-
9 
-
10  static const int FG_BLACK = 30;
-
11  static const int FG_RED = 31;
-
12  static const int FG_GREEN = 32;
-
13  static const int FG_YELLOW = 33;
-
14  static const int FG_BLUE = 34;
-
15  static const int FG_MAGENTA = 35;
-
16  static const int FG_CYAN = 36;
-
17  static const int FG_WHITE = 37;
-
18 
-
19  static const int BG_BLACK = 40;
-
20  static const int BG_RED = 41;
-
21  static const int BG_GREEN = 42;
-
22  static const int BG_YELLOW = 43;
-
23  static const int BG_BLUE = 44;
-
24  static const int BG_MAGENTA = 45;
-
25  static const int BG_CYAN = 46;
-
26  static const int BG_WHITE = 47;
-
27 
-
28  static const char esc = 0x1b;
-
29 
-
30  class TerminalSession : public TCPSession {
-
31 
-
32  public:
-
33  TerminalSession(EPoll &ePoll, TCPServer &server);
-
34  ~TerminalSession();
-
35 
-
36  int getLines();
-
37 
-
41 
-
42  void clear();
-
43 
-
47 
-
48  void clearEOL();
-
49 
-
53 
-
54  void setCursorLocation(int x, int y);
-
55  void setColor(int color);
-
56  void setBackColor(int color);
-
57  void saveCursor();
-
58  void restoreCursor();
-
59  void NextLine(int lines);
-
60  void PreviousLine(int lines);
-
61  void scrollArea(int start, int end);
-
62 
-
63  };
-
64 
-
65 }
-
66 
-
67 #endif
-
Definition: EPoll.h:31
-
Definition: TCPServer.h:25
-
Definition: TCPSession.h:24
-
Definition: TerminalSession.h:30
-
void clear()
Definition: TerminalSession.cpp:17
-
void clearEOL()
Definition: TerminalSession.cpp:21
-
void setCursorLocation(int x, int y)
Definition: TerminalSession.cpp:25
-
- - - - diff --git a/html/ThreadScope_8h_source.html b/html/ThreadScope_8h_source.html deleted file mode 100644 index 8f65dab..0000000 --- a/html/ThreadScope_8h_source.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - -My Project: ThreadScope.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
ThreadScope.h
-
-
-
1 #ifndef __ThreadScope_h__
-
2 #define __ThreadScope_h__
-
3 
-
4 namespace core {
-
5 
-
6  class ThreadScope {
-
7 
-
8  public:
-
9  ThreadScope() {}
-
10 
-
11  };
-
12 
-
13 }
-
14 
-
15 #endif
-
Definition: ThreadScope.h:6
-
- - - - diff --git a/html/Thread_8h_source.html b/html/Thread_8h_source.html deleted file mode 100644 index d86ed8a..0000000 --- a/html/Thread_8h_source.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - -My Project: Thread.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
Thread.h
-
-
-
1 #ifndef __Thread_h__
-
2 #define __Thread_h__
-
3 
-
4 #include "includes"
-
5 #include "Log.h"
-
6 #include "Object.h"
-
7 #include "TCPSession.h"
-
8 #include "ThreadScope.h"
-
9 
-
10 namespace core {
-
11 
-
12  class EPoll;
-
13 
-
21 
-
22  class Thread : public Object {
-
23 
-
24  public:
-
25  Thread(EPoll &ePoll);
-
26  Thread(EPoll &ePoll, ThreadScope *thread);
-
27  ~Thread();
-
28 
-
32 
-
33  void start();
-
34  void join();
-
35  std::string getStatus();
-
36  pid_t getThreadId();
-
37  int getCount();
-
38  void output(std::stringstream &data);
-
39 
-
40  private:
-
41  EPoll &ePoll; // The EPoll control object.
-
42  std::string status;
-
43  int count;
-
44  std::thread *_thread;
-
45  void print_thread_start_log();
-
46  pid_t threadId;
-
47  void run();
-
48  ThreadScope *thread;
-
49 
-
50  };
-
51 
-
52 }
-
53 
-
54 #endif
-
Definition: EPoll.h:31
-
Definition: Object.h:8
-
Definition: ThreadScope.h:6
-
Definition: Thread.h:22
-
void start()
Definition: Thread.cpp:11
-
- - - - diff --git a/html/Timer_8h_source.html b/html/Timer_8h_source.html deleted file mode 100644 index 61217eb..0000000 --- a/html/Timer_8h_source.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - - -My Project: Timer.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
Timer.h
-
-
-
1 #ifndef __Timer_h__
-
2 #define __Timer_h__
-
3 
-
4 #include "Socket.h"
-
5 #include "EPoll.h"
-
6 
-
7 namespace core {
-
8 
-
17 
-
18  class Timer : Socket {
-
19 
-
20  public:
-
21  Timer(EPoll &ePoll);
-
22  Timer(EPoll &ePoll, double delay);
-
23  ~Timer();
-
24 
-
32 
-
33  void setTimer(double delay);
-
34 
-
38 
-
39  void clearTimer();
-
40 
-
45 
-
46  double getElapsed();
-
47 
-
48  double getEpoch();
-
49 
-
50  protected:
-
51 
-
55 
-
56  virtual void onTimeout() = 0;
-
57 
-
58  private:
-
59  void onDataReceived(std::string data) override;
-
60  double delayValue;
-
61 
-
62  };
-
63 
-
64 }
-
65 
-
66 #endif
-
Definition: EPoll.h:31
-
Definition: Socket.h:34
-
Definition: Timer.h:18
-
double getElapsed()
Definition: Timer.cpp:46
-
void clearTimer()
Definition: Timer.cpp:33
-
void setTimer(double delay)
Definition: Timer.cpp:13
-
virtual void onTimeout()=0
-
- - - - diff --git a/html/UDPServerSocket_8h_source.html b/html/UDPServerSocket_8h_source.html deleted file mode 100644 index a817630..0000000 --- a/html/UDPServerSocket_8h_source.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - -My Project: UDPServerSocket.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
UDPServerSocket.h
-
-
-
1 #ifndef __UDPServerSocket_h__
-
2 #define __UDPServerSocket_h__
-
3 
-
4 #include "Socket.h"
-
5 #include "UDPSocket.h"
-
6 #include "Command.h"
-
7 
-
8 namespace core {
-
9 
-
16 
-
17  class UDPServerSocket : public UDPSocket, public Command {
-
18 
-
19  public:
-
20 
-
21  UDPServerSocket(EPoll &ePoll, std::string url, short int port, std::string commandName);
-
22  ~UDPServerSocket();
-
23 
-
24  protected:
-
25 
-
26  //---------------------------------------------------------------
-
27  // Override the virtual dataReceived since for the server these
-
28  // are requests to accept the new connection socket.
-
29  //---------------------------------------------------------------
-
30 
-
31  void onDataReceived(std::string data) override;
-
32 
-
33  int processCommand(std::string request, std::stringstream &data);
-
34 
-
35  //------------------------------------------------------------------------------------
-
36  // The retrieved socket connections are placed into the client vector list.
-
37  //------------------------------------------------------------------------------------
-
38 
-
39  std::vector<Session *> sessions;
-
40 
-
41  private:
-
42 
-
43 
-
44  };
-
45 
-
46 }
-
47 
-
48 #endif
-
Definition: Command.h:22
-
Definition: EPoll.h:31
-
Definition: UDPServerSocket.h:17
-
void onDataReceived(std::string data) override
Called when data is received from the socket.
Definition: UDPServerSocket.cpp:35
-
Definition: UDPSocket.h:8
-
- - - - diff --git a/html/UDPSocket_8h_source.html b/html/UDPSocket_8h_source.html deleted file mode 100644 index f94e980..0000000 --- a/html/UDPSocket_8h_source.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - -My Project: UDPSocket.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
UDPSocket.h
-
-
-
1 #ifndef UDPSocket_h__
-
2 #define UDPSocket_h__
-
3 
-
4 #include "Socket.h"
-
5 
-
6 namespace core {
-
7 
-
8  class UDPSocket : public Socket {
-
9 
-
10  public:
-
11  UDPSocket(EPoll &ePoll);
-
12  ~UDPSocket();
-
13 
-
14 // virtual int open(string address, short int port);
-
15 // virtual void write(istream data);
-
16 
-
17 };
-
18 
-
19 }
-
20 
-
21 #endif
-
Definition: EPoll.h:31
-
Definition: Socket.h:34
-
Definition: UDPSocket.h:8
-
- - - - diff --git a/html/annotated.html b/html/annotated.html deleted file mode 100644 index 90567c4..0000000 --- a/html/annotated.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - -My Project: Class List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
Class List
-
-
-
Here are the classes, structs, unions and interfaces with brief descriptions:
-
[detail level 12]
- - - - - - - - - - - - - - - - - - - - - - - - - -
 Ncore
 CCommand
 CCommandList
 CConsoleServer
 CConsoleSession
 CEPoll
 CINotify
 CIPAddress
 CIPAddressList
 CObject
 CSessionFilter
 CSocket
 CSubscription
 CSubscriptionManager
 CTCPServer
 CTCPSession
 CTCPSocket
 CTerminalSession
 CThread
 CThreadScope
 CTimer
 CTLSServer
 CTLSSession
 CUDPServerSocket
 CUDPSocket
-
-
- - - - diff --git a/html/bc_s.png b/html/bc_s.png deleted file mode 100644 index 224b29a..0000000 Binary files a/html/bc_s.png and /dev/null differ diff --git a/html/bdwn.png b/html/bdwn.png deleted file mode 100644 index 940a0b9..0000000 Binary files a/html/bdwn.png and /dev/null differ diff --git a/html/classcore_1_1Command-members.html b/html/classcore_1_1Command-members.html deleted file mode 100644 index 8f96c6d..0000000 --- a/html/classcore_1_1Command-members.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - -My Project: Member List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
core::Command Member List
-
-
- -

This is the complete list of members for core::Command, including all inherited members.

- - - -
output(std::stringstream &out)core::Commandvirtual
processCommand(coreutils::ZString &request, TCPSession &session)core::Commandvirtual
- - - - diff --git a/html/classcore_1_1Command.html b/html/classcore_1_1Command.html deleted file mode 100644 index c2e23e2..0000000 --- a/html/classcore_1_1Command.html +++ /dev/null @@ -1,196 +0,0 @@ - - - - - - - -My Project: core::Command Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Public Member Functions | -List of all members
-
-
core::Command Class Reference
-
-
- -

#include <Command.h>

-
-Inheritance diagram for core::Command:
-
-
Inheritance graph
- - - - - - - - - - -
[legend]
- - - - - - -

-Public Member Functions

virtual int processCommand (coreutils::ZString &request, TCPSession &session)
 
virtual void output (std::stringstream &out)
 
-

Detailed Description

-

Command

-

Use the Command object in combination with a CommandList object to maintain a list of functions that can be invoked as a result of processing a request.

-

Member Function Documentation

- -

◆ output()

- -
-
- - - - - -
- - - - - - - - -
void core::Command::output (std::stringstream & out)
-
-virtual
-
-

Specify the output that will occur to the specified session.

-
Parameters
- - -
sessionThe session that will receive the output.
-
-
- -

Reimplemented in core::TCPServer.

- -
-
- -

◆ processCommand()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int core::Command::processCommand (coreutils::ZString & request,
TCPSessionsession 
)
-
-virtual
-
-

This method is used to implement the functionality of the requested command. This pure virtual function must be implemented in your inheriting object.

-
Parameters
- - - -
requestThe request that was entered by the user to invoke this command.
sessionSpecify the requesting session so that the execution of the command process can return its output to the session.
-
-
-
Returns
Returns 0 if execution of the command was successful. Otherwise returns a non-zero value indicating an error condition.
- -

Reimplemented in core::TCPServer, core::SubscriptionManager, core::EPoll, and core::CommandList.

- -
-
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/html/classcore_1_1CommandList-members.html b/html/classcore_1_1CommandList-members.html deleted file mode 100644 index 3d4fd38..0000000 --- a/html/classcore_1_1CommandList-members.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - -My Project: Member List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
core::CommandList Member List
-
-
- -

This is the complete list of members for core::CommandList, including all inherited members.

- - - - - - - - - - - - -
add(Command &command, std::string name="")core::CommandList
clearGrab(TCPSession &session) (defined in core::CommandList)core::CommandList
CommandList(std::string delimiter="", int depth=0) (defined in core::CommandList)core::CommandList
commandscore::CommandListprotected
delimiter (defined in core::CommandList)core::CommandListprotected
depth (defined in core::CommandList)core::CommandListprotected
grabInput(TCPSession &session, Command &command)core::CommandList
output(std::stringstream &out)core::Commandvirtual
processCommand(coreutils::ZString &request, TCPSession &session)core::CommandListvirtual
processRequest(coreutils::ZString &request, TCPSession &session)core::CommandList
remove(Command &command)core::CommandList
- - - - diff --git a/html/classcore_1_1CommandList.html b/html/classcore_1_1CommandList.html deleted file mode 100644 index 5044d61..0000000 --- a/html/classcore_1_1CommandList.html +++ /dev/null @@ -1,321 +0,0 @@ - - - - - - - -My Project: core::CommandList Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Public Member Functions | -Protected Attributes | -List of all members
-
-
core::CommandList Class Reference
-
-
- -

#include <CommandList.h>

-
-Inheritance diagram for core::CommandList:
-
-
Inheritance graph
- - - - -
[legend]
-
-Collaboration diagram for core::CommandList:
-
-
Collaboration graph
- - - - -
[legend]
- - - - - - - - - - - - - - - - - - - -

-Public Member Functions

CommandList (std::string delimiter="", int depth=0)
 
void add (Command &command, std::string name="")
 
void remove (Command &command)
 
bool processRequest (coreutils::ZString &request, TCPSession &session)
 
bool grabInput (TCPSession &session, Command &command)
 
-void clearGrab (TCPSession &session)
 
int processCommand (coreutils::ZString &request, TCPSession &session)
 
- Public Member Functions inherited from core::Command
virtual void output (std::stringstream &out)
 
- - - - - - - -

-Protected Attributes

std::map< std::string, Command * > commands
 
-std::string delimiter
 
-int depth
 
-

Detailed Description

-

CommandList

-

This object organizes Command objects into a list that is used to parse an input and run the process associated with the selected command.

-

Member Function Documentation

- -

◆ add()

- -
-
- - - - - - - - - - - - - - - - - - -
void core::CommandList::add (Commandcommand,
std::string name = "" 
)
-
-

Add a new command to the command list and assign a default search value.

- -
-
- -

◆ grabInput()

- -
-
- - - - - - - - - - - - - - - - - - -
bool core::CommandList::grabInput (TCPSessionsession,
Commandcommand 
)
-
-

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.

- -
-
- -

◆ processCommand()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int core::CommandList::processCommand (coreutils::ZString & request,
TCPSessionsession 
)
-
-virtual
-
-

This method is used to implement the functionality of the requested command. This pure virtual function must be implemented in your inheriting object.

-
Parameters
- - - -
requestThe request that was entered by the user to invoke this command.
sessionSpecify the requesting session so that the execution of the command process can return its output to the session.
-
-
-
Returns
Returns 0 if execution of the command was successful. Otherwise returns a non-zero value indicating an error condition.
- -

Reimplemented from core::Command.

- -
-
- -

◆ processRequest()

- -
-
- - - - - - - - - - - - - - - - - - -
bool core::CommandList::processRequest (coreutils::ZString & request,
TCPSessionsession 
)
-
-

Use this method to apply a parsed ZString 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.

- -
-
- -

◆ remove()

- -
-
- - - - - - - - -
void core::CommandList::remove (Commandcommand)
-
-

Remove a command object from the command list.

- -
-
-

Member Data Documentation

- -

◆ commands

- -
-
- - - - - -
- - - - -
std::map<std::string, Command *> core::CommandList::commands
-
-protected
-
-

The vector of all registered commands.

- -
-
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/html/classcore_1_1CommandList__coll__graph.map b/html/classcore_1_1CommandList__coll__graph.map deleted file mode 100644 index 062545d..0000000 --- a/html/classcore_1_1CommandList__coll__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/html/classcore_1_1CommandList__coll__graph.md5 b/html/classcore_1_1CommandList__coll__graph.md5 deleted file mode 100644 index cb6786e..0000000 --- a/html/classcore_1_1CommandList__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -4a83ba6697ed223cfff1971adde7514e \ No newline at end of file diff --git a/html/classcore_1_1CommandList__coll__graph.png b/html/classcore_1_1CommandList__coll__graph.png deleted file mode 100644 index 331a245..0000000 Binary files a/html/classcore_1_1CommandList__coll__graph.png and /dev/null differ diff --git a/html/classcore_1_1CommandList__inherit__graph.map b/html/classcore_1_1CommandList__inherit__graph.map deleted file mode 100644 index 062545d..0000000 --- a/html/classcore_1_1CommandList__inherit__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/html/classcore_1_1CommandList__inherit__graph.md5 b/html/classcore_1_1CommandList__inherit__graph.md5 deleted file mode 100644 index cb6786e..0000000 --- a/html/classcore_1_1CommandList__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -4a83ba6697ed223cfff1971adde7514e \ No newline at end of file diff --git a/html/classcore_1_1CommandList__inherit__graph.png b/html/classcore_1_1CommandList__inherit__graph.png deleted file mode 100644 index 331a245..0000000 Binary files a/html/classcore_1_1CommandList__inherit__graph.png and /dev/null differ diff --git a/html/classcore_1_1Command__inherit__graph.map b/html/classcore_1_1Command__inherit__graph.map deleted file mode 100644 index e181935..0000000 --- a/html/classcore_1_1Command__inherit__graph.map +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/html/classcore_1_1Command__inherit__graph.md5 b/html/classcore_1_1Command__inherit__graph.md5 deleted file mode 100644 index cab1826..0000000 --- a/html/classcore_1_1Command__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -958fd71dba9cc408bb299a3dcf0b7efb \ No newline at end of file diff --git a/html/classcore_1_1Command__inherit__graph.png b/html/classcore_1_1Command__inherit__graph.png deleted file mode 100644 index cc85293..0000000 Binary files a/html/classcore_1_1Command__inherit__graph.png and /dev/null differ diff --git a/html/classcore_1_1ConsoleServer-members.html b/html/classcore_1_1ConsoleServer-members.html deleted file mode 100644 index f676448..0000000 --- a/html/classcore_1_1ConsoleServer-members.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - -My Project: Member List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
core::ConsoleServer Member List
-
-
- -

This is the complete list of members for core::ConsoleServer, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
blackListcore::TCPServer
commandscore::TCPServer
connect(IPAddress &address) (defined in core::TCPSocket)core::TCPSocket
ConsoleServer(EPoll &ePoll, IPAddress address) (defined in core::ConsoleServer)core::ConsoleServer
ePoll (defined in core::Socket)core::Socketprotected
eventReceived(struct epoll_event event)core::Socket
getBufferSize() (defined in core::Socket)core::Socketprotected
getDescriptor()core::Socket
getSocketAccept(EPoll &ePoll) overridecore::ConsoleServervirtual
ipAddress (defined in core::TCPSocket)core::TCPSocket
logSend(std::string out) override (defined in core::ConsoleServer)core::ConsoleServer
needsToWrite() (defined in core::Socket)core::Socket
onDataReceived(std::string data) overridecore::TCPServerprotectedvirtual
onDataReceived(coreutils::ZString &data) (defined in core::Socket)core::Socketprotectedvirtual
onRegister()core::Socketvirtual
onRegistered()core::Socketvirtual
onUnregister() (defined in core::Socket)core::Socketvirtual
onUnregistered()core::Socketvirtual
output(std::stringstream &out)core::TCPServervirtual
processCommand(coreutils::ZString &request, TCPSession &session) overridecore::TCPServerprotectedvirtual
receiveData(coreutils::ZString &buffer)core::Socketprotectedvirtual
removeFromSessionList(TCPSession *session) (defined in core::TCPServer)core::TCPServer
reset (defined in core::Socket)core::Socket
sendToAll(std::stringstream &out) (defined in core::TCPServer)core::TCPServer
sendToAll(std::stringstream &out, TCPSession &sender, SessionFilter filter)core::TCPServer
sendToAll(std::stringstream &out, TCPSession &sender)core::TCPServer
sessionErrorHandler(std::string errorString, std::stringstream &out) (defined in core::TCPServer)core::TCPServervirtual
sessionscore::TCPServer
setBufferSize(int length) (defined in core::Socket)core::Socketprotected
setDescriptor(int descriptor)core::Socket
shutDown (defined in core::Socket)core::Socketprotected
shutdown(std::string text="unknown")core::Socket
Socket(EPoll &ePoll, std::string text="")core::Socket
subscriptionscore::TCPServer
TCPServer(EPoll &ePoll, IPAddress address, std::string delimiter=" ", int depth=10, std::string text="")core::TCPServer
TCPSocket(EPoll &ePoll) (defined in core::TCPSocket)core::TCPSocket
TCPSocket(EPoll &ePoll, std::string text) (defined in core::TCPSocket)core::TCPSocket
whiteListcore::TCPServer
write(std::string data)core::Socket
write(char *buffer, int length) (defined in core::Socket)core::Socket
~Socket()core::Socketvirtual
~TCPServer()core::TCPServervirtual
~TCPSocket() (defined in core::TCPSocket)core::TCPSocketvirtual
- - - - diff --git a/html/classcore_1_1ConsoleServer.html b/html/classcore_1_1ConsoleServer.html deleted file mode 100644 index cd703ab..0000000 --- a/html/classcore_1_1ConsoleServer.html +++ /dev/null @@ -1,279 +0,0 @@ - - - - - - - -My Project: core::ConsoleServer Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Public Member Functions | -List of all members
-
-
core::ConsoleServer Class Reference
-
-
-
-Inheritance diagram for core::ConsoleServer:
-
-
Inheritance graph
- - - - - - - - -
[legend]
-
-Collaboration diagram for core::ConsoleServer:
-
-
Collaboration graph
- - - - - - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

ConsoleServer (EPoll &ePoll, IPAddress address)
 
-void logSend (std::string out) override
 
TCPSessiongetSocketAccept (EPoll &ePoll) override
 
- Public Member Functions inherited from core::TCPServer
 TCPServer (EPoll &ePoll, IPAddress address, std::string delimiter=" ", int depth=10, std::string text="")
 
virtual ~TCPServer ()
 
-virtual void sessionErrorHandler (std::string errorString, std::stringstream &out)
 
-void removeFromSessionList (TCPSession *session)
 
-void output (std::stringstream &out)
 Output the consoles array to the console.
 
-void sendToAll (std::stringstream &out)
 
void sendToAll (std::stringstream &out, TCPSession &sender, SessionFilter filter)
 
void sendToAll (std::stringstream &out, TCPSession &sender)
 
- Public Member Functions inherited from core::TCPSocket
TCPSocket (EPoll &ePoll)
 
TCPSocket (EPoll &ePoll, std::string text)
 
-void connect (IPAddress &address)
 
- Public Member Functions inherited from core::Socket
 Socket (EPoll &ePoll, std::string text="")
 
virtual ~Socket ()
 
void shutdown (std::string text="unknown")
 
void setDescriptor (int descriptor)
 Set the descriptor for the socket. More...
 
-int getDescriptor ()
 Get the descriptor for the socket.
-
 
bool eventReceived (struct epoll_event event)
 Parse epoll event and call specified callbacks. More...
 
int write (std::string data)
 
-void write (char *buffer, int length)
 
-void output (std::stringstream &out)
 
virtual void onRegister ()
 Called before the socket has registered with the epoll processing. More...
 
-virtual void onRegistered ()
 Called after the socket has been registered with epoll processing.
 
-virtual void onUnregister ()
 
virtual void onUnregistered ()
 Called when the socket has finished unregistering for the epoll processing. More...
 
-bool needsToWrite ()
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Additional Inherited Members

- Public Attributes inherited from core::TCPServer
std::vector< TCPSession * > sessions
 
CommandList commands
 
IPAddressListblackList
 
IPAddressListwhiteList
 
SubscriptionManager subscriptions
 
- Public Attributes inherited from core::TCPSocket
-IPAddress ipAddress
 
- Public Attributes inherited from core::Socket
-bool reset = false
 
- Protected Member Functions inherited from core::TCPServer
void onDataReceived (std::string data) override
 
int processCommand (coreutils::ZString &request, TCPSession &session) override
 
- Protected Member Functions inherited from core::Socket
-void setBufferSize (int length)
 
-int getBufferSize ()
 
-virtual void onDataReceived (coreutils::ZString &data)
 
virtual void receiveData (coreutils::ZString &buffer)
 
- Protected Attributes inherited from core::Socket
-EPollePoll
 
-bool shutDown = false
 
-

Member Function Documentation

- -

◆ getSocketAccept()

- -
-
- - - - - -
- - - - - - - - -
TCPSession * core::ConsoleServer::getSocketAccept (EPollepoll)
-
-overridevirtual
-
-

getSocketAccept is designed to allow a polymorphic extension of this object to return a type of object that extends the definition of the server socket. Returning the appropriate session object that extends from Session provides the mechanism where the server can select the protocol dialog for the desired service.

- -

Reimplemented from core::TCPServer.

- -
-
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/html/classcore_1_1ConsoleServer__coll__graph.map b/html/classcore_1_1ConsoleServer__coll__graph.map deleted file mode 100644 index edaa951..0000000 --- a/html/classcore_1_1ConsoleServer__coll__graph.map +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/html/classcore_1_1ConsoleServer__coll__graph.md5 b/html/classcore_1_1ConsoleServer__coll__graph.md5 deleted file mode 100644 index 514cff2..0000000 --- a/html/classcore_1_1ConsoleServer__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -6a4748f0b8ae572775a1285efc642c81 \ No newline at end of file diff --git a/html/classcore_1_1ConsoleServer__coll__graph.png b/html/classcore_1_1ConsoleServer__coll__graph.png deleted file mode 100644 index 57379a1..0000000 Binary files a/html/classcore_1_1ConsoleServer__coll__graph.png and /dev/null differ diff --git a/html/classcore_1_1ConsoleServer__inherit__graph.map b/html/classcore_1_1ConsoleServer__inherit__graph.map deleted file mode 100644 index 4e2a3aa..0000000 --- a/html/classcore_1_1ConsoleServer__inherit__graph.map +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/html/classcore_1_1ConsoleServer__inherit__graph.md5 b/html/classcore_1_1ConsoleServer__inherit__graph.md5 deleted file mode 100644 index f44a301..0000000 --- a/html/classcore_1_1ConsoleServer__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -c55c04921efc30bedbc7fa35b5e5970a \ No newline at end of file diff --git a/html/classcore_1_1ConsoleServer__inherit__graph.png b/html/classcore_1_1ConsoleServer__inherit__graph.png deleted file mode 100644 index 0b9a2e5..0000000 Binary files a/html/classcore_1_1ConsoleServer__inherit__graph.png and /dev/null differ diff --git a/html/classcore_1_1ConsoleSession-members.html b/html/classcore_1_1ConsoleSession-members.html deleted file mode 100644 index fae9b38..0000000 --- a/html/classcore_1_1ConsoleSession-members.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - - -My Project: Member List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
core::ConsoleSession Member List
-
-
- -

This is the complete list of members for core::ConsoleSession, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
clear()core::TerminalSession
clearEOL()core::TerminalSession
connect(IPAddress &address) (defined in core::TCPSocket)core::TCPSocket
ConsoleSession(EPoll &ePoll, TCPServer &server) (defined in core::ConsoleSession)core::ConsoleSession
ePoll (defined in core::Socket)core::Socketprotected
eventReceived(struct epoll_event event)core::Socket
getBufferSize() (defined in core::Socket)core::Socketprotected
getDescriptor()core::Socket
getLines() (defined in core::TerminalSession)core::TerminalSession
grab (defined in core::TCPSession)core::TCPSession
ipAddress (defined in core::TCPSocket)core::TCPSocket
needsToWrite() (defined in core::Socket)core::Socket
NextLine(int lines) (defined in core::TerminalSession)core::TerminalSession
onBlockReceived(coreutils::ZString &block)core::TCPSessionprotectedvirtual
onConnected()core::TCPSessionprotectedvirtual
onDataReceived(coreutils::ZString &data) overridecore::TCPSessionprotectedvirtual
core::TCPSocket::onDataReceived(std::string data)core::Socketprotectedvirtual
onLineReceived(coreutils::ZString &line)core::TCPSessionprotectedvirtual
onRegister()core::Socketvirtual
onRegistered() overridecore::TCPSessionprotectedvirtual
onUnregister() (defined in core::Socket)core::Socketvirtual
onUnregistered()core::Socketvirtual
outcore::TCPSession
output(std::stringstream &data)core::TCPSessionvirtual
PreviousLine(int lines) (defined in core::TerminalSession)core::TerminalSession
protocol(coreutils::ZString &data) overridecore::ConsoleSessionprotectedvirtual
receiveData(coreutils::ZString &buffer)core::Socketprotectedvirtual
reset (defined in core::Socket)core::Socket
restoreCursor() (defined in core::TerminalSession)core::TerminalSession
saveCursor() (defined in core::TerminalSession)core::TerminalSession
scrollArea(int start, int end) (defined in core::TerminalSession)core::TerminalSession
send()core::TCPSession
server (defined in core::TCPSession)core::TCPSession
setBackColor(int color) (defined in core::TerminalSession)core::TerminalSession
setBlockSize(int size=0)core::TCPSessionprotected
setBufferSize(int length) (defined in core::Socket)core::Socketprotected
setColor(int color) (defined in core::TerminalSession)core::TerminalSession
setCursorLocation(int x, int y)core::TerminalSession
setDescriptor(int descriptor)core::Socket
shutDown (defined in core::Socket)core::Socketprotected
shutdown(std::string text="unknown")core::Socket
Socket(EPoll &ePoll, std::string text="")core::Socket
TCPSession(EPoll &ePoll, TCPServer &server, std::string text="") (defined in core::TCPSession)core::TCPSession
TCPSocket(EPoll &ePoll) (defined in core::TCPSocket)core::TCPSocket
TCPSocket(EPoll &ePoll, std::string text) (defined in core::TCPSocket)core::TCPSocket
TerminalSession(EPoll &ePoll, TCPServer &server) (defined in core::TerminalSession)core::TerminalSession
terminate()core::TCPSession
write(std::string data)core::Socket
write(char *buffer, int length) (defined in core::Socket)core::Socket
writeLog(std::string data) (defined in core::ConsoleSession)core::ConsoleSession
~ConsoleSession() (defined in core::ConsoleSession)core::ConsoleSession
~Socket()core::Socketvirtual
~TCPSession() (defined in core::TCPSession)core::TCPSessionvirtual
~TCPSocket() (defined in core::TCPSocket)core::TCPSocketvirtual
~TerminalSession() (defined in core::TerminalSession)core::TerminalSession
- - - - diff --git a/html/classcore_1_1ConsoleSession.html b/html/classcore_1_1ConsoleSession.html deleted file mode 100644 index 1bee875..0000000 --- a/html/classcore_1_1ConsoleSession.html +++ /dev/null @@ -1,315 +0,0 @@ - - - - - - - -My Project: core::ConsoleSession Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Public Member Functions | -Protected Member Functions | -List of all members
-
-
core::ConsoleSession Class Reference
-
-
- -

#include <ConsoleSession.h>

-
-Inheritance diagram for core::ConsoleSession:
-
-
Inheritance graph
- - - - - - - -
[legend]
-
-Collaboration diagram for core::ConsoleSession:
-
-
Collaboration graph
- - - - - - - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

ConsoleSession (EPoll &ePoll, TCPServer &server)
 
-void writeLog (std::string data)
 
- Public Member Functions inherited from core::TerminalSession
TerminalSession (EPoll &ePoll, TCPServer &server)
 
-int getLines ()
 
void clear ()
 
void clearEOL ()
 
void setCursorLocation (int x, int y)
 
-void setColor (int color)
 
-void setBackColor (int color)
 
-void saveCursor ()
 
-void restoreCursor ()
 
-void NextLine (int lines)
 
-void PreviousLine (int lines)
 
-void scrollArea (int start, int end)
 
- Public Member Functions inherited from core::TCPSession
TCPSession (EPoll &ePoll, TCPServer &server, std::string text="")
 
virtual void output (std::stringstream &data)
 
void send ()
 
void terminate ()
 
- Public Member Functions inherited from core::TCPSocket
TCPSocket (EPoll &ePoll)
 
TCPSocket (EPoll &ePoll, std::string text)
 
-void connect (IPAddress &address)
 
- Public Member Functions inherited from core::Socket
 Socket (EPoll &ePoll, std::string text="")
 
virtual ~Socket ()
 
void shutdown (std::string text="unknown")
 
void setDescriptor (int descriptor)
 Set the descriptor for the socket. More...
 
-int getDescriptor ()
 Get the descriptor for the socket.
-
 
bool eventReceived (struct epoll_event event)
 Parse epoll event and call specified callbacks. More...
 
int write (std::string data)
 
-void write (char *buffer, int length)
 
-void output (std::stringstream &out)
 
virtual void onRegister ()
 Called before the socket has registered with the epoll processing. More...
 
-virtual void onUnregister ()
 
virtual void onUnregistered ()
 Called when the socket has finished unregistering for the epoll processing. More...
 
-bool needsToWrite ()
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Protected Member Functions

void protocol (coreutils::ZString &data) override
 
- Protected Member Functions inherited from core::TCPSession
-virtual void onRegistered () override
 Called after the socket has been registered with epoll processing.
 
virtual void onDataReceived (coreutils::ZString &data) override
 
virtual void onLineReceived (coreutils::ZString &line)
 
virtual void onBlockReceived (coreutils::ZString &block)
 
virtual void onConnected ()
 
void setBlockSize (int size=0)
 
- Protected Member Functions inherited from core::Socket
-void setBufferSize (int length)
 
-int getBufferSize ()
 
virtual void onDataReceived (std::string data)
 Called when data is received from the socket. More...
 
virtual void receiveData (coreutils::ZString &buffer)
 
- - - - - - - - - - - - - - - - - - - -

-Additional Inherited Members

- Public Attributes inherited from core::TCPSession
-Commandgrab = NULL
 
-TCPServerserver
 
std::stringstream out
 
- Public Attributes inherited from core::TCPSocket
-IPAddress ipAddress
 
- Public Attributes inherited from core::Socket
-bool reset = false
 
- Protected Attributes inherited from core::Socket
-EPollePoll
 
-bool shutDown = false
 
-

Detailed Description

-

ConsoleSession

-

Extends the session parameters for this TCPSocket derived object. Extend the protocol() method in order to define the behavior and protocol interaction for this socket which is a console session.

-

Member Function Documentation

- -

◆ protocol()

- -
-
- - - - - -
- - - - - - - - -
void core::ConsoleSession::protocol (coreutils::ZString & data)
-
-overrideprotectedvirtual
-
-

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 default will process the 'commands' added to the server object using the processRequest method on the session input.

-

When data is received within the session two modes are available to pass the data through the protocol method: LINE or BLOCK.

- -

Reimplemented from core::TCPSession.

- -
-
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/html/classcore_1_1ConsoleSession__coll__graph.map b/html/classcore_1_1ConsoleSession__coll__graph.map deleted file mode 100644 index 87103ee..0000000 --- a/html/classcore_1_1ConsoleSession__coll__graph.map +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/html/classcore_1_1ConsoleSession__coll__graph.md5 b/html/classcore_1_1ConsoleSession__coll__graph.md5 deleted file mode 100644 index fe959c2..0000000 --- a/html/classcore_1_1ConsoleSession__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -b1c8856a756096c0c77e4d4b902370cf \ No newline at end of file diff --git a/html/classcore_1_1ConsoleSession__coll__graph.png b/html/classcore_1_1ConsoleSession__coll__graph.png deleted file mode 100644 index 771dce8..0000000 Binary files a/html/classcore_1_1ConsoleSession__coll__graph.png and /dev/null differ diff --git a/html/classcore_1_1ConsoleSession__inherit__graph.map b/html/classcore_1_1ConsoleSession__inherit__graph.map deleted file mode 100644 index 0d00b54..0000000 --- a/html/classcore_1_1ConsoleSession__inherit__graph.map +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/html/classcore_1_1ConsoleSession__inherit__graph.md5 b/html/classcore_1_1ConsoleSession__inherit__graph.md5 deleted file mode 100644 index 8018163..0000000 --- a/html/classcore_1_1ConsoleSession__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -aa708db41fb4e2b63059766367d3e76c \ No newline at end of file diff --git a/html/classcore_1_1ConsoleSession__inherit__graph.png b/html/classcore_1_1ConsoleSession__inherit__graph.png deleted file mode 100644 index a47219f..0000000 Binary files a/html/classcore_1_1ConsoleSession__inherit__graph.png and /dev/null differ diff --git a/html/classcore_1_1EPoll-members.html b/html/classcore_1_1EPoll-members.html deleted file mode 100644 index 4d5d273..0000000 --- a/html/classcore_1_1EPoll-members.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - -My Project: Member List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
core::EPoll Member List
-
-
- -

This is the complete list of members for core::EPoll, including all inherited members.

- - - - - - - - - - - - - - -
EPoll()core::EPoll
eventReceived(struct epoll_event event)core::EPoll
getDescriptor()core::EPoll
isStopping()core::EPoll
maxSocketscore::EPoll
output(std::stringstream &out)core::Commandvirtual
processCommand(coreutils::ZString &request, TCPSession &session) overridecore::EPollvirtual
registerSocket(Socket *socket)core::EPoll
resetSocket(Socket *socket) (defined in core::EPoll)core::EPoll
start(int numberOfThreads, int maxSockets)core::EPoll
stop()core::EPoll
unregisterSocket(Socket *socket)core::EPoll
~EPoll()core::EPoll
- - - - diff --git a/html/classcore_1_1EPoll.html b/html/classcore_1_1EPoll.html deleted file mode 100644 index d869591..0000000 --- a/html/classcore_1_1EPoll.html +++ /dev/null @@ -1,429 +0,0 @@ - - - - - - - -My Project: core::EPoll Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Public Member Functions | -Public Attributes | -List of all members
-
-
core::EPoll Class Reference
-
-
- -

#include <EPoll.h>

-
-Inheritance diagram for core::EPoll:
-
-
Inheritance graph
- - - - -
[legend]
-
-Collaboration diagram for core::EPoll:
-
-
Collaboration graph
- - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 EPoll ()
 
 ~EPoll ()
 
bool start (int numberOfThreads, int maxSockets)
 Start the BMAEPoll processing. More...
 
bool stop ()
 Stop and shut down the BMAEPoll processing. More...
 
bool isStopping ()
 Returns a true if the stop command has been requested. More...
 
bool registerSocket (Socket *socket)
 Register a BMASocket for monitoring by BMAEPoll. More...
 
bool unregisterSocket (Socket *socket)
 Unregister a BMASocket from monitoring by BMAEPoll. More...
 
int getDescriptor ()
 Return the descriptor for the ePoll socket. More...
 
void eventReceived (struct epoll_event event)
 Dispatch event to appropriate socket. More...
 
int processCommand (coreutils::ZString &request, TCPSession &session) override
 Output the threads array to the console. More...
 
-void resetSocket (Socket *socket)
 
- Public Member Functions inherited from core::Command
virtual void output (std::stringstream &out)
 
- - - - -

-Public Attributes

int maxSockets
 The maximum number of socket allowed. More...
 
-

Detailed Description

-

EPoll

-

Manage socket events from the epoll system call.

-

Use this object to establish a socket server using the epoll network structure of Linux.

-

Use this object to establish the basis of working with multiple sockets of all sorts using the epoll capabilities of the Linux platform. Socket objects can register with EPoll which will establish a communication mechanism with that socket.

-

The maximum number of sockets to communicate with is specified on the start method.

-

Threads are used to establish a read queue for epoll. The desired number of threads (or queues) is established by a parameter on the start method.

-

Constructor & Destructor Documentation

- -

◆ EPoll()

- -
-
- - - - - - - -
core::EPoll::EPoll ()
-
-

The constructor for the BMAEPoll object.

- -
-
- -

◆ ~EPoll()

- -
-
- - - - - - - -
core::EPoll::~EPoll ()
-
-

The destructor for the BMAEPoll object.

- -
-
-

Member Function Documentation

- -

◆ eventReceived()

- -
-
- - - - - - - - -
void core::EPoll::eventReceived (struct epoll_event event)
-
- -

Dispatch event to appropriate socket.

-

Receive the epoll events and dispatch the event to the socket making the request.

- -
-
- -

◆ getDescriptor()

- -
-
- - - - - - - -
int core::EPoll::getDescriptor ()
-
- -

Return the descriptor for the ePoll socket.

-

Use this method to obtain the current descriptor socket number for the epoll function call.

- -
-
- -

◆ isStopping()

- -
-
- - - - - - - -
bool core::EPoll::isStopping ()
-
- -

Returns a true if the stop command has been requested.

-

This method returns a true if the stop() method has been called and the epoll system is shutting.

- -
-
- -

◆ processCommand()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int core::EPoll::processCommand (coreutils::ZString & request,
TCPSessionsession 
)
-
-overridevirtual
-
- -

Output the threads array to the console.

-

The processCommand() method displays the thread array to the requesting console via the session passed as parameter.

-
Parameters
- - -
sessionthe session to write the requested data to.
-
-
- -

Reimplemented from core::Command.

- -
-
- -

◆ registerSocket()

- -
-
- - - - - - - - -
bool core::EPoll::registerSocket (Socketsocket)
-
- -

Register a BMASocket for monitoring by BMAEPoll.

-

Use registerSocket to add a new socket to the ePoll event watch list. This enables a new BMASocket object to receive events when data is received as well as to write data output to the socket.

-
Parameters
- - -
socketa pointer to a BMASocket object.
-
-
-
Returns
a booelean that indicates the socket was registered or not.
- -
-
- -

◆ start()

- -
-
- - - - - - - - - - - - - - - - - - -
bool core::EPoll::start (int numberOfThreads,
int maxSockets 
)
-
- -

Start the BMAEPoll processing.

-

Use the start() method to initiate the threads and begin epoll queue processing.

-
Parameters
- - - -
numberOfThreadsthe number of threads to start for processing epoll entries.
maxSocketsthe maximum number of open sockets that epoll will manage.
-
-
- -
-
- -

◆ stop()

- -
-
- - - - - - - -
bool core::EPoll::stop ()
-
- -

Stop and shut down the BMAEPoll processing.

-

Use the stop() method to initiate the shutdown process for the epoll socket management.

-

A complete shutdown of all managed sockets will be initiated by this method call.

- -
-
- -

◆ unregisterSocket()

- -
-
- - - - - - - - -
bool core::EPoll::unregisterSocket (Socketsocket)
-
- -

Unregister a BMASocket from monitoring by BMAEPoll.

-

Use this method to remove a socket from receiving events from the epoll system.

- -
-
-

Member Data Documentation

- -

◆ maxSockets

- -
-
- - - - -
int core::EPoll::maxSockets
-
- -

The maximum number of socket allowed.

-

The maximum number of sockets that can be managed by the epoll system.

- -
-
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/html/classcore_1_1EPoll__coll__graph.map b/html/classcore_1_1EPoll__coll__graph.map deleted file mode 100644 index 39f7c20..0000000 --- a/html/classcore_1_1EPoll__coll__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/html/classcore_1_1EPoll__coll__graph.md5 b/html/classcore_1_1EPoll__coll__graph.md5 deleted file mode 100644 index a2b4276..0000000 --- a/html/classcore_1_1EPoll__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -59d16fa7de30ff900ab48693b10de851 \ No newline at end of file diff --git a/html/classcore_1_1EPoll__coll__graph.png b/html/classcore_1_1EPoll__coll__graph.png deleted file mode 100644 index efeebc4..0000000 Binary files a/html/classcore_1_1EPoll__coll__graph.png and /dev/null differ diff --git a/html/classcore_1_1EPoll__inherit__graph.map b/html/classcore_1_1EPoll__inherit__graph.map deleted file mode 100644 index 39f7c20..0000000 --- a/html/classcore_1_1EPoll__inherit__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/html/classcore_1_1EPoll__inherit__graph.md5 b/html/classcore_1_1EPoll__inherit__graph.md5 deleted file mode 100644 index a2b4276..0000000 --- a/html/classcore_1_1EPoll__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -59d16fa7de30ff900ab48693b10de851 \ No newline at end of file diff --git a/html/classcore_1_1EPoll__inherit__graph.png b/html/classcore_1_1EPoll__inherit__graph.png deleted file mode 100644 index efeebc4..0000000 Binary files a/html/classcore_1_1EPoll__inherit__graph.png and /dev/null differ diff --git a/html/classcore_1_1INotify-members.html b/html/classcore_1_1INotify-members.html deleted file mode 100644 index e8e6746..0000000 --- a/html/classcore_1_1INotify-members.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - -My Project: Member List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
core::INotify Member List
-
-
- -

This is the complete list of members for core::INotify, including all inherited members.

- - - - - - - - - - - - - - - - - - - -
addWatch(std::string watch) (defined in core::INotify)core::INotify
inAccess(std::string name) (defined in core::INotify)core::INotifyinlinevirtual
inAttrib(std::string name) (defined in core::INotify)core::INotifyinlinevirtual
inCloseNoWrite(std::string name) (defined in core::INotify)core::INotifyinlinevirtual
inCloseWrite(std::string name) (defined in core::INotify)core::INotifyinlinevirtual
inCreate(std::string name) (defined in core::INotify)core::INotifyinlinevirtual
inDelete(std::string name) (defined in core::INotify)core::INotifyinlinevirtual
inDeleteSelf(std::string name) (defined in core::INotify)core::INotifyinlinevirtual
inModify(std::string name) (defined in core::INotify)core::INotifyinlinevirtual
inMovedFrom(std::string name) (defined in core::INotify)core::INotifyinlinevirtual
inMovedTo(std::string name) (defined in core::INotify)core::INotifyinlinevirtual
inMoveSelf(std::string name) (defined in core::INotify)core::INotifyinlinevirtual
inOpen(std::string name) (defined in core::INotify)core::INotifyinlinevirtual
INotify(EPoll &ePoll) (defined in core::INotify)core::INotify
onDataReceived(coreutils::ZString &data) override (defined in core::INotify)core::INotifyvirtual
core::Socket::onDataReceived(std::string data)core::Socketprivatevirtual
removeWatch(int wd) (defined in core::INotify)core::INotify
~INotify() (defined in core::INotify)core::INotify
- - - - diff --git a/html/classcore_1_1INotify.html b/html/classcore_1_1INotify.html deleted file mode 100644 index 48503d5..0000000 --- a/html/classcore_1_1INotify.html +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - - -My Project: core::INotify Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Public Member Functions | -List of all members
-
-
core::INotify Class Reference
-
-
-
-Inheritance diagram for core::INotify:
-
-
Inheritance graph
- - - - -
[legend]
-
-Collaboration diagram for core::INotify:
-
-
Collaboration graph
- - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

INotify (EPoll &ePoll)
 
-int addWatch (std::string watch)
 
-void removeWatch (int wd)
 
-void onDataReceived (coreutils::ZString &data) 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)
 
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/html/classcore_1_1INotify__coll__graph.map b/html/classcore_1_1INotify__coll__graph.map deleted file mode 100644 index b1b973e..0000000 --- a/html/classcore_1_1INotify__coll__graph.map +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/html/classcore_1_1INotify__coll__graph.md5 b/html/classcore_1_1INotify__coll__graph.md5 deleted file mode 100644 index be09bd7..0000000 --- a/html/classcore_1_1INotify__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -92f9d16c1d5c1cc148c8f86a9705302e \ No newline at end of file diff --git a/html/classcore_1_1INotify__coll__graph.png b/html/classcore_1_1INotify__coll__graph.png deleted file mode 100644 index e2516b7..0000000 Binary files a/html/classcore_1_1INotify__coll__graph.png and /dev/null differ diff --git a/html/classcore_1_1INotify__inherit__graph.map b/html/classcore_1_1INotify__inherit__graph.map deleted file mode 100644 index 538b785..0000000 --- a/html/classcore_1_1INotify__inherit__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/html/classcore_1_1INotify__inherit__graph.md5 b/html/classcore_1_1INotify__inherit__graph.md5 deleted file mode 100644 index 4cc6b6f..0000000 --- a/html/classcore_1_1INotify__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -bd7d5c6ca50a1d9f295e71a940e042cf \ No newline at end of file diff --git a/html/classcore_1_1INotify__inherit__graph.png b/html/classcore_1_1INotify__inherit__graph.png deleted file mode 100644 index aa505c4..0000000 Binary files a/html/classcore_1_1INotify__inherit__graph.png and /dev/null differ diff --git a/html/classcore_1_1IPAddress-members.html b/html/classcore_1_1IPAddress-members.html deleted file mode 100644 index 6748819..0000000 --- a/html/classcore_1_1IPAddress-members.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - -My Project: Member List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
core::IPAddress Member List
-
-
- -

This is the complete list of members for core::IPAddress, including all inherited members.

- - - - - - - - - - - - - -
addr (defined in core::IPAddress)core::IPAddress
addressLength (defined in core::IPAddress)core::IPAddress
getClientAddress()core::IPAddress
getClientAddressAndPort()core::IPAddress
getClientPort()core::IPAddress
getPointer() (defined in core::IPAddress)core::IPAddress
IPAddress() (defined in core::IPAddress)core::IPAddress
IPAddress(std::string address) (defined in core::IPAddress)core::IPAddress
IPAddress(std::string address, int port) (defined in core::IPAddress)core::IPAddress
name (defined in core::Object)core::Object
tag (defined in core::Object)core::Object
~IPAddress() (defined in core::IPAddress)core::IPAddress
- - - - diff --git a/html/classcore_1_1IPAddress.html b/html/classcore_1_1IPAddress.html deleted file mode 100644 index bd38e33..0000000 --- a/html/classcore_1_1IPAddress.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -My Project: core::IPAddress Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Public Member Functions | -Public Attributes | -List of all members
-
-
core::IPAddress Class Reference
-
-
-
-Inheritance diagram for core::IPAddress:
-
-
Inheritance graph
- - - - -
[legend]
-
-Collaboration diagram for core::IPAddress:
-
-
Collaboration graph
- - - - -
[legend]
- - - - - - - - - - - - - - - - - -

-Public Member Functions

IPAddress (std::string address)
 
IPAddress (std::string address, int port)
 
-struct sockaddr * getPointer ()
 
-std::string getClientAddress ()
 Get the client network address as xxx.xxx.xxx.xxx.
 
-std::string getClientAddressAndPort ()
 Get the client network address and port as xxx.xxx.xxx.xxx:ppppp.
 
-int getClientPort ()
 Get the client network port number.
 
- - - - - - - - - - -

-Public Attributes

-struct sockaddr_in addr
 
-socklen_t addressLength
 
- Public Attributes inherited from core::Object
-std::string name
 
-std::string tag
 
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/html/classcore_1_1IPAddressList-members.html b/html/classcore_1_1IPAddressList-members.html deleted file mode 100644 index f8713a5..0000000 --- a/html/classcore_1_1IPAddressList-members.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - -My Project: Member List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
core::IPAddressList Member List
-
-
- -

This is the complete list of members for core::IPAddressList, including all inherited members.

- - - - - - -
add(IPAddress ipAddress) (defined in core::IPAddressList)core::IPAddressList
contains(std::string ipAddress) (defined in core::IPAddressList)core::IPAddressList
getList() (defined in core::IPAddressList)core::IPAddressList
IPAddressList() (defined in core::IPAddressList)core::IPAddressList
remove(IPAddress ipAddress) (defined in core::IPAddressList)core::IPAddressList
- - - - diff --git a/html/classcore_1_1IPAddressList.html b/html/classcore_1_1IPAddressList.html deleted file mode 100644 index ffef6e9..0000000 --- a/html/classcore_1_1IPAddressList.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - - -My Project: core::IPAddressList Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Public Member Functions | -List of all members
-
-
core::IPAddressList Class Reference
-
-
- - - - - - - - - - -

-Public Member Functions

-std::map< std::string, IPAddressgetList ()
 
-void add (IPAddress ipAddress)
 
-bool remove (IPAddress ipAddress)
 
-bool contains (std::string ipAddress)
 
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/html/classcore_1_1IPAddress__coll__graph.map b/html/classcore_1_1IPAddress__coll__graph.map deleted file mode 100644 index 12963eb..0000000 --- a/html/classcore_1_1IPAddress__coll__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/html/classcore_1_1IPAddress__coll__graph.md5 b/html/classcore_1_1IPAddress__coll__graph.md5 deleted file mode 100644 index 63ac5ab..0000000 --- a/html/classcore_1_1IPAddress__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -156ef09bd41be803b2f51d7f424cd841 \ No newline at end of file diff --git a/html/classcore_1_1IPAddress__coll__graph.png b/html/classcore_1_1IPAddress__coll__graph.png deleted file mode 100644 index e76df2d..0000000 Binary files a/html/classcore_1_1IPAddress__coll__graph.png and /dev/null differ diff --git a/html/classcore_1_1IPAddress__inherit__graph.map b/html/classcore_1_1IPAddress__inherit__graph.map deleted file mode 100644 index 12963eb..0000000 --- a/html/classcore_1_1IPAddress__inherit__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/html/classcore_1_1IPAddress__inherit__graph.md5 b/html/classcore_1_1IPAddress__inherit__graph.md5 deleted file mode 100644 index 63ac5ab..0000000 --- a/html/classcore_1_1IPAddress__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -156ef09bd41be803b2f51d7f424cd841 \ No newline at end of file diff --git a/html/classcore_1_1IPAddress__inherit__graph.png b/html/classcore_1_1IPAddress__inherit__graph.png deleted file mode 100644 index e76df2d..0000000 Binary files a/html/classcore_1_1IPAddress__inherit__graph.png and /dev/null differ diff --git a/html/classcore_1_1Object-members.html b/html/classcore_1_1Object-members.html deleted file mode 100644 index 657efbb..0000000 --- a/html/classcore_1_1Object-members.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - -My Project: Member List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
core::Object Member List
-
-
- -

This is the complete list of members for core::Object, including all inherited members.

- - - -
name (defined in core::Object)core::Object
tag (defined in core::Object)core::Object
- - - - diff --git a/html/classcore_1_1Object.html b/html/classcore_1_1Object.html deleted file mode 100644 index 366996b..0000000 --- a/html/classcore_1_1Object.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - -My Project: core::Object Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Public Attributes | -List of all members
-
-
core::Object Class Reference
-
-
-
-Inheritance diagram for core::Object:
-
-
Inheritance graph
- - - - - - -
[legend]
- - - - - - -

-Public Attributes

-std::string name
 
-std::string tag
 
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/html/classcore_1_1Object__inherit__graph.map b/html/classcore_1_1Object__inherit__graph.map deleted file mode 100644 index acb0232..0000000 --- a/html/classcore_1_1Object__inherit__graph.map +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/html/classcore_1_1Object__inherit__graph.md5 b/html/classcore_1_1Object__inherit__graph.md5 deleted file mode 100644 index 6264b7d..0000000 --- a/html/classcore_1_1Object__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -b14282148f8863b81eeca78a65a2960b \ No newline at end of file diff --git a/html/classcore_1_1Object__inherit__graph.png b/html/classcore_1_1Object__inherit__graph.png deleted file mode 100644 index 9d083f9..0000000 Binary files a/html/classcore_1_1Object__inherit__graph.png and /dev/null differ diff --git a/html/classcore_1_1SessionFilter-members.html b/html/classcore_1_1SessionFilter-members.html deleted file mode 100644 index b29edc6..0000000 --- a/html/classcore_1_1SessionFilter-members.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - -My Project: Member List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
core::SessionFilter Member List
-
-
- -

This is the complete list of members for core::SessionFilter, including all inherited members.

- - - - -
name (defined in core::Object)core::Object
tag (defined in core::Object)core::Object
test(TCPSession &session) (defined in core::SessionFilter)core::SessionFilterinlinevirtual
- - - - diff --git a/html/classcore_1_1SessionFilter.html b/html/classcore_1_1SessionFilter.html deleted file mode 100644 index 69d958e..0000000 --- a/html/classcore_1_1SessionFilter.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - - -My Project: core::SessionFilter Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Public Member Functions | -List of all members
-
-
core::SessionFilter Class Reference
-
-
-
-Inheritance diagram for core::SessionFilter:
-
-
Inheritance graph
- - - - -
[legend]
-
-Collaboration diagram for core::SessionFilter:
-
-
Collaboration graph
- - - - -
[legend]
- - - - -

-Public Member Functions

-virtual bool test (TCPSession &session)
 
- - - - - - -

-Additional Inherited Members

- Public Attributes inherited from core::Object
-std::string name
 
-std::string tag
 
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/html/classcore_1_1SessionFilter__coll__graph.map b/html/classcore_1_1SessionFilter__coll__graph.map deleted file mode 100644 index dcfae7a..0000000 --- a/html/classcore_1_1SessionFilter__coll__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/html/classcore_1_1SessionFilter__coll__graph.md5 b/html/classcore_1_1SessionFilter__coll__graph.md5 deleted file mode 100644 index e75907b..0000000 --- a/html/classcore_1_1SessionFilter__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -49ec60c1d28ae09032cf4b8ee15c98a8 \ No newline at end of file diff --git a/html/classcore_1_1SessionFilter__coll__graph.png b/html/classcore_1_1SessionFilter__coll__graph.png deleted file mode 100644 index e4d8ab9..0000000 Binary files a/html/classcore_1_1SessionFilter__coll__graph.png and /dev/null differ diff --git a/html/classcore_1_1SessionFilter__inherit__graph.map b/html/classcore_1_1SessionFilter__inherit__graph.map deleted file mode 100644 index dcfae7a..0000000 --- a/html/classcore_1_1SessionFilter__inherit__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/html/classcore_1_1SessionFilter__inherit__graph.md5 b/html/classcore_1_1SessionFilter__inherit__graph.md5 deleted file mode 100644 index e75907b..0000000 --- a/html/classcore_1_1SessionFilter__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -49ec60c1d28ae09032cf4b8ee15c98a8 \ No newline at end of file diff --git a/html/classcore_1_1SessionFilter__inherit__graph.png b/html/classcore_1_1SessionFilter__inherit__graph.png deleted file mode 100644 index e4d8ab9..0000000 Binary files a/html/classcore_1_1SessionFilter__inherit__graph.png and /dev/null differ diff --git a/html/classcore_1_1Socket-members.html b/html/classcore_1_1Socket-members.html deleted file mode 100644 index cc1fa27..0000000 --- a/html/classcore_1_1Socket-members.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - -My Project: Member List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
core::Socket Member List
-
-
- -

This is the complete list of members for core::Socket, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - -
ePoll (defined in core::Socket)core::Socketprotected
eventReceived(struct epoll_event event)core::Socket
getBufferSize() (defined in core::Socket)core::Socketprotected
getDescriptor()core::Socket
needsToWrite() (defined in core::Socket)core::Socket
onDataReceived(std::string data)core::Socketprotectedvirtual
onDataReceived(coreutils::ZString &data) (defined in core::Socket)core::Socketprotectedvirtual
onRegister()core::Socketvirtual
onRegistered()core::Socketvirtual
onUnregister() (defined in core::Socket)core::Socketvirtual
onUnregistered()core::Socketvirtual
output(std::stringstream &out) (defined in core::Socket)core::Socket
receiveData(coreutils::ZString &buffer)core::Socketprotectedvirtual
reset (defined in core::Socket)core::Socket
setBufferSize(int length) (defined in core::Socket)core::Socketprotected
setDescriptor(int descriptor)core::Socket
shutdown(std::string text="unknown")core::Socket
shutDown (defined in core::Socket)core::Socketprotected
Socket(EPoll &ePoll, std::string text="")core::Socket
write(std::string data)core::Socket
write(char *buffer, int length) (defined in core::Socket)core::Socket
~Socket()core::Socketvirtual
- - - - diff --git a/html/classcore_1_1Socket.html b/html/classcore_1_1Socket.html deleted file mode 100644 index 5227104..0000000 --- a/html/classcore_1_1Socket.html +++ /dev/null @@ -1,474 +0,0 @@ - - - - - - - -My Project: core::Socket Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Public Member Functions | -Public Attributes | -Protected Member Functions | -Protected Attributes | -List of all members
-
-
core::Socket Class Reference
-
-
- -

#include <Socket.h>

-
-Inheritance diagram for core::Socket:
-
-
Inheritance graph
- - - - - - - - - - - - - - - -
[legend]
-
-Collaboration diagram for core::Socket:
-
-
Collaboration graph
- - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 Socket (EPoll &ePoll, std::string text="")
 
virtual ~Socket ()
 
void shutdown (std::string text="unknown")
 
void setDescriptor (int descriptor)
 Set the descriptor for the socket. More...
 
-int getDescriptor ()
 Get the descriptor for the socket.
-
 
bool eventReceived (struct epoll_event event)
 Parse epoll event and call specified callbacks. More...
 
int write (std::string data)
 
-void write (char *buffer, int length)
 
-void output (std::stringstream &out)
 
virtual void onRegister ()
 Called before the socket has registered with the epoll processing. More...
 
-virtual void onRegistered ()
 Called after the socket has been registered with epoll processing.
 
-virtual void onUnregister ()
 
virtual void onUnregistered ()
 Called when the socket has finished unregistering for the epoll processing. More...
 
-bool needsToWrite ()
 
- - - -

-Public Attributes

-bool reset = false
 
- - - - - - - - - - - - -

-Protected Member Functions

-void setBufferSize (int length)
 
-int getBufferSize ()
 
virtual void onDataReceived (std::string data)
 Called when data is received from the socket. More...
 
-virtual void onDataReceived (coreutils::ZString &data)
 
virtual void receiveData (coreutils::ZString &buffer)
 
- - - - - -

-Protected Attributes

-EPollePoll
 
-bool shutDown = false
 
-

Detailed Description

-

Socket

-

The core component to managing a socket.

-

Hooks into the EPoll through the registration and unregistration process and provides a communication socket of the specified protocol type. This object provides for all receiving data threading through use of the EPoll object and also provides buffering for output data requests to the socket.

-

A program using a socket object can request to open a socket (network or device) and communicate through the streambuffer interface of the socket object.

-

The socket side of the Socket accepts EPOLLIN event and will maintain the data in a buffer for the stream readers to read. A onDataReceived event is then sent with the data received in the buffer that can be read through the stream. Only sockets that send events to epoll can be used with this object.

-

When writing to the stream the data is written into a buffer and a EPOLLOUT is scheduled. Upon receiving the EPOLLOUT event then the buffer is written to the socket output.

-

Constructor & Destructor Documentation

- -

◆ Socket()

- -
-
- - - - - - - - - - - - - - - - - - -
core::Socket::Socket (EPollePoll,
std::string text = "" 
)
-
-

Constructor

-
Parameters
- - - -
ePollThe EPoll socket descriptor.
textA title for this socket.
-
-
- -
-
- -

◆ ~Socket()

- -
-
- - - - - -
- - - - - - - -
core::Socket::~Socket ()
-
-virtual
-
-

Destructor

- -
-
-

Member Function Documentation

- -

◆ eventReceived()

- -
-
- - - - - - - - -
bool core::Socket::eventReceived (struct epoll_event event)
-
- -

Parse epoll event and call specified callbacks.

-

The event received from epoll is sent through the eventReceived method which will parse the event and call the read and write callbacks on the socket.

-

This method is called by the BMAEPoll object and should not be called from any user extended classes unless an epoll event is being simulated.

-

The return value of false will delete the socket object causing the destructors to run. The return value of true will enable the socket on ePoll to receive more events.

- -
-
- -

◆ onDataReceived()

- -
-
- - - - - -
- - - - - - - - -
void core::Socket::onDataReceived (std::string data)
-
-protectedvirtual
-
- -

Called when data is received from the socket.

-

The onConnected method is called when the socket is ready to communicate. Writing to the socket can begin on this call to initiate a contact with the remote device. The onDataReceived method is called when the socket has received an event from epoll and there is data ready to be read from the socket. The default handler will pull the data and put it into the streambuf for the socket. EPOLLIN

-
Parameters
- - -
datathe data that has been received from the socket.
-
-
- -

Reimplemented in core::UDPServerSocket, and core::TCPServer.

- -
-
- -

◆ onRegister()

- -
-
- - - - - -
- - - - - - - -
void core::Socket::onRegister ()
-
-virtual
-
- -

Called before the socket has registered with the epoll processing.

-

The onRegister method is called before the socket is registered with ePoll so objects extending the Socket definition can initialize the socket before receiving events. Evoked when the descriptor is set using setDescriptor for the socket.

- -

Reimplemented in core::TLSSession.

- -
-
- -

◆ onUnregistered()

- -
-
- - - - - -
- - - - - - - -
void core::Socket::onUnregistered ()
-
-virtual
-
- -

Called when the socket has finished unregistering for the epoll processing.

-

The onUnregistered method is called whenever the socket is unregistered with ePoll and socket communcation events will be stopped. The default method will close the socket and clean up the connection. If this is overridden by an extended object then the object should call this method to clean the socket up.

- -
-
- -

◆ receiveData()

- -
-
- - - - - -
- - - - - - - - -
void core::Socket::receiveData (coreutils::ZString & buffer)
-
-protectedvirtual
-
-

receiveData will read the data from the socket and place it in the socket buffer. TLS layer overrides this to be able to read from SSL.

- -

Reimplemented in core::TLSSession.

- -
-
- -

◆ setDescriptor()

- -
-
- - - - - - - - -
void core::Socket::setDescriptor (int descriptor)
-
- -

Set the descriptor for the socket.

-

setDescriptor establishes the file descriptor for the socket and registers the socket on the EPoll controller. setDescriptor will invoke the onRegister() event.

- -
-
- -

◆ shutdown()

- -
-
- - - - - - - - -
void core::Socket::shutdown (std::string text = "unknown")
-
-

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 with a virtual destructor.

- -
-
- -

◆ write()

- -
-
- - - - - - - - -
int core::Socket::write (std::string data)
-
-

Write data to the socket.

- -
-
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/html/classcore_1_1Socket__coll__graph.map b/html/classcore_1_1Socket__coll__graph.map deleted file mode 100644 index 80dcd4f..0000000 --- a/html/classcore_1_1Socket__coll__graph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/html/classcore_1_1Socket__coll__graph.md5 b/html/classcore_1_1Socket__coll__graph.md5 deleted file mode 100644 index dd6eaea..0000000 --- a/html/classcore_1_1Socket__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -6630f35392a585fbda340b0878b403d5 \ No newline at end of file diff --git a/html/classcore_1_1Socket__coll__graph.png b/html/classcore_1_1Socket__coll__graph.png deleted file mode 100644 index 59f350a..0000000 Binary files a/html/classcore_1_1Socket__coll__graph.png and /dev/null differ diff --git a/html/classcore_1_1Socket__inherit__graph.map b/html/classcore_1_1Socket__inherit__graph.map deleted file mode 100644 index 100c456..0000000 --- a/html/classcore_1_1Socket__inherit__graph.map +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/html/classcore_1_1Socket__inherit__graph.md5 b/html/classcore_1_1Socket__inherit__graph.md5 deleted file mode 100644 index 17374d0..0000000 --- a/html/classcore_1_1Socket__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -973318a6709306b209b8a85aac82b311 \ No newline at end of file diff --git a/html/classcore_1_1Socket__inherit__graph.png b/html/classcore_1_1Socket__inherit__graph.png deleted file mode 100644 index fecc24d..0000000 Binary files a/html/classcore_1_1Socket__inherit__graph.png and /dev/null differ diff --git a/html/classcore_1_1Subscription-members.html b/html/classcore_1_1Subscription-members.html deleted file mode 100644 index bf4d3db..0000000 --- a/html/classcore_1_1Subscription-members.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - -My Project: Member List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
core::Subscription Member List
-
-
- -

This is the complete list of members for core::Subscription, including all inherited members.

- - - - - - - - - - - - - - -
event(std::stringstream &out) (defined in core::Subscription)core::Subscription
id (defined in core::Subscription)core::Subscription
ifSubscriber(TCPSession &session) (defined in core::Subscription)core::Subscription
mode (defined in core::Subscription)core::Subscription
onSubscribe(TCPSession &session) (defined in core::Subscription)core::Subscriptionvirtual
owner (defined in core::Subscription)core::Subscription
process(coreutils::ZString &request, std::stringstream &out, TCPSession &session) (defined in core::Subscription)core::Subscriptionvirtual
subscribe(TCPSession &session) (defined in core::Subscription)core::Subscription
subscribers (defined in core::Subscription)core::Subscription
Subscription(std::string id, std::string mode="*AUTHOR") (defined in core::Subscription)core::Subscription
Subscription(std::string id, TCPSession &session, std::string mode="*AUTHOR") (defined in core::Subscription)core::Subscription
unsubscribe(TCPSession &session) (defined in core::Subscription)core::Subscription
~Subscription() (defined in core::Subscription)core::Subscriptionvirtual
- - - - diff --git a/html/classcore_1_1Subscription.html b/html/classcore_1_1Subscription.html deleted file mode 100644 index 4bd1830..0000000 --- a/html/classcore_1_1Subscription.html +++ /dev/null @@ -1,148 +0,0 @@ - - - - - - - -My Project: core::Subscription Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Public Member Functions | -Public Attributes | -List of all members
-
-
core::Subscription Class Reference
-
-
-
-Collaboration diagram for core::Subscription:
-
-
Collaboration graph
- - - - - - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - -

-Public Member Functions

Subscription (std::string id, std::string mode="*AUTHOR")
 
Subscription (std::string id, TCPSession &session, std::string mode="*AUTHOR")
 
-int subscribe (TCPSession &session)
 
-int unsubscribe (TCPSession &session)
 
-virtual int process (coreutils::ZString &request, std::stringstream &out, TCPSession &session)
 
-virtual int onSubscribe (TCPSession &session)
 
-int event (std::stringstream &out)
 
-bool ifSubscriber (TCPSession &session)
 
- - - - - - - - - -

-Public Attributes

-std::string id
 
-std::string mode
 
-TCPSessionowner
 
-std::vector< TCPSession * > subscribers
 
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/html/classcore_1_1SubscriptionManager-members.html b/html/classcore_1_1SubscriptionManager-members.html deleted file mode 100644 index 98308d3..0000000 --- a/html/classcore_1_1SubscriptionManager-members.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - -My Project: Member List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
core::SubscriptionManager Member List
-
-
- -

This is the complete list of members for core::SubscriptionManager, including all inherited members.

- - - - - - -
add(Subscription &subscription) (defined in core::SubscriptionManager)core::SubscriptionManager
output(std::stringstream &out)core::Commandvirtual
processCommand(coreutils::ZString &request, TCPSession &session) overridecore::SubscriptionManagervirtual
removeSessionSubscriptions(TCPSession &session) (defined in core::SubscriptionManager)core::SubscriptionManager
SubscriptionManager() (defined in core::SubscriptionManager)core::SubscriptionManager
- - - - diff --git a/html/classcore_1_1SubscriptionManager.html b/html/classcore_1_1SubscriptionManager.html deleted file mode 100644 index 558182a..0000000 --- a/html/classcore_1_1SubscriptionManager.html +++ /dev/null @@ -1,166 +0,0 @@ - - - - - - - -My Project: core::SubscriptionManager Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Public Member Functions | -List of all members
-
-
core::SubscriptionManager Class Reference
-
-
-
-Inheritance diagram for core::SubscriptionManager:
-
-
Inheritance graph
- - - - -
[legend]
-
-Collaboration diagram for core::SubscriptionManager:
-
-
Collaboration graph
- - - - -
[legend]
- - - - - - - - - - - -

-Public Member Functions

-int add (Subscription &subscription)
 
-int removeSessionSubscriptions (TCPSession &session)
 
int processCommand (coreutils::ZString &request, TCPSession &session) override
 
- Public Member Functions inherited from core::Command
virtual void output (std::stringstream &out)
 
-

Member Function Documentation

- -

◆ processCommand()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int core::SubscriptionManager::processCommand (coreutils::ZString & request,
TCPSessionsession 
)
-
-overridevirtual
-
-

This method is used to implement the functionality of the requested command. This pure virtual function must be implemented in your inheriting object.

-
Parameters
- - - -
requestThe request that was entered by the user to invoke this command.
sessionSpecify the requesting session so that the execution of the command process can return its output to the session.
-
-
-
Returns
Returns 0 if execution of the command was successful. Otherwise returns a non-zero value indicating an error condition.
- -

Reimplemented from core::Command.

- -
-
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/html/classcore_1_1SubscriptionManager__coll__graph.map b/html/classcore_1_1SubscriptionManager__coll__graph.map deleted file mode 100644 index 6f44801..0000000 --- a/html/classcore_1_1SubscriptionManager__coll__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/html/classcore_1_1SubscriptionManager__coll__graph.md5 b/html/classcore_1_1SubscriptionManager__coll__graph.md5 deleted file mode 100644 index cb8634c..0000000 --- a/html/classcore_1_1SubscriptionManager__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -6483fa7ecc4d788b414f5d6678a03717 \ No newline at end of file diff --git a/html/classcore_1_1SubscriptionManager__coll__graph.png b/html/classcore_1_1SubscriptionManager__coll__graph.png deleted file mode 100644 index b4fd9f0..0000000 Binary files a/html/classcore_1_1SubscriptionManager__coll__graph.png and /dev/null differ diff --git a/html/classcore_1_1SubscriptionManager__inherit__graph.map b/html/classcore_1_1SubscriptionManager__inherit__graph.map deleted file mode 100644 index 6f44801..0000000 --- a/html/classcore_1_1SubscriptionManager__inherit__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/html/classcore_1_1SubscriptionManager__inherit__graph.md5 b/html/classcore_1_1SubscriptionManager__inherit__graph.md5 deleted file mode 100644 index cb8634c..0000000 --- a/html/classcore_1_1SubscriptionManager__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -6483fa7ecc4d788b414f5d6678a03717 \ No newline at end of file diff --git a/html/classcore_1_1SubscriptionManager__inherit__graph.png b/html/classcore_1_1SubscriptionManager__inherit__graph.png deleted file mode 100644 index b4fd9f0..0000000 Binary files a/html/classcore_1_1SubscriptionManager__inherit__graph.png and /dev/null differ diff --git a/html/classcore_1_1Subscription__coll__graph.map b/html/classcore_1_1Subscription__coll__graph.map deleted file mode 100644 index 284eb43..0000000 --- a/html/classcore_1_1Subscription__coll__graph.map +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/html/classcore_1_1Subscription__coll__graph.md5 b/html/classcore_1_1Subscription__coll__graph.md5 deleted file mode 100644 index d8c5317..0000000 --- a/html/classcore_1_1Subscription__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -3f390c0fbcf254a8f2dec14ce3855745 \ No newline at end of file diff --git a/html/classcore_1_1Subscription__coll__graph.png b/html/classcore_1_1Subscription__coll__graph.png deleted file mode 100644 index 37c2930..0000000 Binary files a/html/classcore_1_1Subscription__coll__graph.png and /dev/null differ diff --git a/html/classcore_1_1Subscription__inherit__graph.map b/html/classcore_1_1Subscription__inherit__graph.map deleted file mode 100644 index 932135f..0000000 --- a/html/classcore_1_1Subscription__inherit__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/html/classcore_1_1Subscription__inherit__graph.md5 b/html/classcore_1_1Subscription__inherit__graph.md5 deleted file mode 100644 index 39c8bbf..0000000 --- a/html/classcore_1_1Subscription__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -b31e82e2b73337305b35736356004421 \ No newline at end of file diff --git a/html/classcore_1_1Subscription__inherit__graph.png b/html/classcore_1_1Subscription__inherit__graph.png deleted file mode 100644 index 6ac6548..0000000 Binary files a/html/classcore_1_1Subscription__inherit__graph.png and /dev/null differ diff --git a/html/classcore_1_1TCPServer-members.html b/html/classcore_1_1TCPServer-members.html deleted file mode 100644 index f0ea3d8..0000000 --- a/html/classcore_1_1TCPServer-members.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - - -My Project: Member List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
core::TCPServer Member List
-
-
- -

This is the complete list of members for core::TCPServer, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
blackListcore::TCPServer
commandscore::TCPServer
connect(IPAddress &address) (defined in core::TCPSocket)core::TCPSocket
ePoll (defined in core::Socket)core::Socketprotected
eventReceived(struct epoll_event event)core::Socket
getBufferSize() (defined in core::Socket)core::Socketprotected
getDescriptor()core::Socket
getSocketAccept(EPoll &epoll)core::TCPServervirtual
ipAddress (defined in core::TCPSocket)core::TCPSocket
needsToWrite() (defined in core::Socket)core::Socket
onDataReceived(std::string data) overridecore::TCPServerprotectedvirtual
onDataReceived(coreutils::ZString &data) (defined in core::Socket)core::Socketprotectedvirtual
onRegister()core::Socketvirtual
onRegistered()core::Socketvirtual
onUnregister() (defined in core::Socket)core::Socketvirtual
onUnregistered()core::Socketvirtual
output(std::stringstream &out)core::TCPServervirtual
processCommand(coreutils::ZString &request, TCPSession &session) overridecore::TCPServerprotectedvirtual
receiveData(coreutils::ZString &buffer)core::Socketprotectedvirtual
removeFromSessionList(TCPSession *session) (defined in core::TCPServer)core::TCPServer
reset (defined in core::Socket)core::Socket
sendToAll(std::stringstream &out) (defined in core::TCPServer)core::TCPServer
sendToAll(std::stringstream &out, TCPSession &sender, SessionFilter filter)core::TCPServer
sendToAll(std::stringstream &out, TCPSession &sender)core::TCPServer
sessionErrorHandler(std::string errorString, std::stringstream &out) (defined in core::TCPServer)core::TCPServervirtual
sessionscore::TCPServer
setBufferSize(int length) (defined in core::Socket)core::Socketprotected
setDescriptor(int descriptor)core::Socket
shutDown (defined in core::Socket)core::Socketprotected
shutdown(std::string text="unknown")core::Socket
Socket(EPoll &ePoll, std::string text="")core::Socket
subscriptionscore::TCPServer
TCPServer(EPoll &ePoll, IPAddress address, std::string delimiter=" ", int depth=10, std::string text="")core::TCPServer
TCPSocket(EPoll &ePoll) (defined in core::TCPSocket)core::TCPSocket
TCPSocket(EPoll &ePoll, std::string text) (defined in core::TCPSocket)core::TCPSocket
whiteListcore::TCPServer
write(std::string data)core::Socket
write(char *buffer, int length) (defined in core::Socket)core::Socket
~Socket()core::Socketvirtual
~TCPServer()core::TCPServervirtual
~TCPSocket() (defined in core::TCPSocket)core::TCPSocketvirtual
- - - - diff --git a/html/classcore_1_1TCPServer.html b/html/classcore_1_1TCPServer.html deleted file mode 100644 index fd3add4..0000000 --- a/html/classcore_1_1TCPServer.html +++ /dev/null @@ -1,587 +0,0 @@ - - - - - - - -My Project: core::TCPServer Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Public Member Functions | -Public Attributes | -Protected Member Functions | -List of all members
-
-
core::TCPServer Class Reference
-
-
- -

#include <TCPServer.h>

-
-Inheritance diagram for core::TCPServer:
-
-
Inheritance graph
- - - - - - - - -
[legend]
-
-Collaboration diagram for core::TCPServer:
-
-
Collaboration graph
- - - - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 TCPServer (EPoll &ePoll, IPAddress address, std::string delimiter=" ", int depth=10, std::string text="")
 
virtual ~TCPServer ()
 
-virtual void sessionErrorHandler (std::string errorString, std::stringstream &out)
 
virtual TCPSessiongetSocketAccept (EPoll &epoll)
 
-void removeFromSessionList (TCPSession *session)
 
-void output (std::stringstream &out)
 Output the consoles array to the console.
 
-void sendToAll (std::stringstream &out)
 
void sendToAll (std::stringstream &out, TCPSession &sender, SessionFilter filter)
 
void sendToAll (std::stringstream &out, TCPSession &sender)
 
- Public Member Functions inherited from core::TCPSocket
TCPSocket (EPoll &ePoll)
 
TCPSocket (EPoll &ePoll, std::string text)
 
-void connect (IPAddress &address)
 
- Public Member Functions inherited from core::Socket
 Socket (EPoll &ePoll, std::string text="")
 
virtual ~Socket ()
 
void shutdown (std::string text="unknown")
 
void setDescriptor (int descriptor)
 Set the descriptor for the socket. More...
 
-int getDescriptor ()
 Get the descriptor for the socket.
-
 
bool eventReceived (struct epoll_event event)
 Parse epoll event and call specified callbacks. More...
 
int write (std::string data)
 
-void write (char *buffer, int length)
 
-void output (std::stringstream &out)
 
virtual void onRegister ()
 Called before the socket has registered with the epoll processing. More...
 
-virtual void onRegistered ()
 Called after the socket has been registered with epoll processing.
 
-virtual void onUnregister ()
 
virtual void onUnregistered ()
 Called when the socket has finished unregistering for the epoll processing. More...
 
-bool needsToWrite ()
 
- - - - - - - - - - - - - - - - - -

-Public Attributes

std::vector< TCPSession * > sessions
 
CommandList commands
 
IPAddressListblackList
 
IPAddressListwhiteList
 
SubscriptionManager subscriptions
 
- Public Attributes inherited from core::TCPSocket
-IPAddress ipAddress
 
- Public Attributes inherited from core::Socket
-bool reset = false
 
- - - - - - - - - - - - - - -

-Protected Member Functions

void onDataReceived (std::string data) override
 
int processCommand (coreutils::ZString &request, TCPSession &session) override
 
- Protected Member Functions inherited from core::Socket
-void setBufferSize (int length)
 
-int getBufferSize ()
 
-virtual void onDataReceived (coreutils::ZString &data)
 
virtual void receiveData (coreutils::ZString &buffer)
 
- - - - - - -

-Additional Inherited Members

- Protected Attributes inherited from core::Socket
-EPollePoll
 
-bool shutDown = false
 
-

Detailed Description

-

TCPServer

-

Manage a socket connection as a TCP server type. Connections to the socket are processed through the accept functionality.

-

A list of connections is maintained in a vector object.

-

This object extends the BMACommand object as well so it can be added to a Console object and process commands to display status information.

-

Constructor & Destructor Documentation

- -

◆ TCPServer()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
core::TCPServer::TCPServer (EPollePoll,
IPAddress address,
std::string delimiter = " ",
int depth = 10,
std::string text = "" 
)
-
-

The constructor for the TCPServer object.

-
Parameters
- - - - - -
ePollthe EPoll instance that manages the socket.
urlthe IP address for the socket to receive connection requests.
portthe port number that the socket will listen on.
commandNamethe name of the command used to invoke the status display for this object.
-
-
- -
-
- -

◆ ~TCPServer()

- -
-
- - - - - -
- - - - - - - -
core::TCPServer::~TCPServer ()
-
-virtual
-
-

The destructor for this object.

- -
-
-

Member Function Documentation

- -

◆ getSocketAccept()

- -
-
- - - - - -
- - - - - - - - -
TCPSession * core::TCPServer::getSocketAccept (EPollepoll)
-
-virtual
-
-

getSocketAccept is designed to allow a polymorphic extension of this object to return a type of object that extends the definition of the server socket. Returning the appropriate session object that extends from Session provides the mechanism where the server can select the protocol dialog for the desired service.

- -

Reimplemented in core::ConsoleServer.

- -
-
- -

◆ onDataReceived()

- -
-
- - - - - -
- - - - - - - - -
void core::TCPServer::onDataReceived (std::string data)
-
-overrideprotectedvirtual
-
-

Override the virtual dataReceived since for the server these are requests to accept the new connection socket. No data is to be read or written when this method is called. It is the response to the fact that a new connection is coming into the system

-
Parameters
- - - -
datathe pointer to the buffer containing the received data.
lengththe length of the associated data buffer.
-
-
- -

Reimplemented from core::Socket.

- -
-
- -

◆ processCommand()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int core::TCPServer::processCommand (coreutils::ZString & request,
TCPSessionsession 
)
-
-overrideprotectedvirtual
-
-

This method is called when the Command associated with this object is requested because a user has typed in the associated command name on a command entry line.

-
Parameters
- - -
thesession object to write the output to.
-
-
- -

Reimplemented from core::Command.

- -
-
- -

◆ sendToAll() [1/2]

- -
-
- - - - - - - - - - - - - - - - - - -
void core::TCPServer::sendToAll (std::stringstream & out,
TCPSessionsender 
)
-
-

Use this sendToAll method to output the contents of the out stream to all the connections on the server excluding the sender session and the entries identified by the passed in filter object.

- -
-
- -

◆ sendToAll() [2/2]

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
void core::TCPServer::sendToAll (std::stringstream & out,
TCPSessionsender,
SessionFilter filter 
)
-
-

Use this sendToAll method to output the contents of the out stream to all the connections on the server excluding the sender session.

- -
-
-

Member Data Documentation

- -

◆ blackList

- -
-
- - - - -
IPAddressList* core::TCPServer::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 this list then the connection is rejected and no accept is granted.

- -
-
- -

◆ commands

- -
-
- - - - -
CommandList core::TCPServer::commands
-
-

The commands object is a CommandList and is used to store Command objects to be parsed and run as data comes into the session.

- -
-
- -

◆ sessions

- -
-
- - - - -
std::vector<TCPSession *> core::TCPServer::sessions
-
-

The list of sessions that are currently open and being maintained by this object.

- -
-
- -

◆ subscriptions

- -
-
- - - - -
SubscriptionManager core::TCPServer::subscriptions
-
-

The Subscription Manager tracks all subscriptions on the server.

- -
-
- -

◆ whiteList

- -
-
- - - - -
IPAddressList* core::TCPServer::whiteList
-
-

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 this list then the connection is rejected and no accept is granted.

- -
-
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/html/classcore_1_1TCPServer__coll__graph.map b/html/classcore_1_1TCPServer__coll__graph.map deleted file mode 100644 index d436c64..0000000 --- a/html/classcore_1_1TCPServer__coll__graph.map +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/html/classcore_1_1TCPServer__coll__graph.md5 b/html/classcore_1_1TCPServer__coll__graph.md5 deleted file mode 100644 index aa1fee4..0000000 --- a/html/classcore_1_1TCPServer__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -5639fb4f18abd97029a84f66b9653ec4 \ No newline at end of file diff --git a/html/classcore_1_1TCPServer__coll__graph.png b/html/classcore_1_1TCPServer__coll__graph.png deleted file mode 100644 index 54b413e..0000000 Binary files a/html/classcore_1_1TCPServer__coll__graph.png and /dev/null differ diff --git a/html/classcore_1_1TCPServer__inherit__graph.map b/html/classcore_1_1TCPServer__inherit__graph.map deleted file mode 100644 index 0530c37..0000000 --- a/html/classcore_1_1TCPServer__inherit__graph.map +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/html/classcore_1_1TCPServer__inherit__graph.md5 b/html/classcore_1_1TCPServer__inherit__graph.md5 deleted file mode 100644 index 4e3e5fc..0000000 --- a/html/classcore_1_1TCPServer__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -6ce798a6fc432dc7d50ce7b2829a1d3c \ No newline at end of file diff --git a/html/classcore_1_1TCPServer__inherit__graph.png b/html/classcore_1_1TCPServer__inherit__graph.png deleted file mode 100644 index 6cba3d4..0000000 Binary files a/html/classcore_1_1TCPServer__inherit__graph.png and /dev/null differ diff --git a/html/classcore_1_1TCPSession-members.html b/html/classcore_1_1TCPSession-members.html deleted file mode 100644 index 87a7975..0000000 --- a/html/classcore_1_1TCPSession-members.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - -My Project: Member List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
core::TCPSession Member List
-
-
- -

This is the complete list of members for core::TCPSession, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
connect(IPAddress &address) (defined in core::TCPSocket)core::TCPSocket
ePoll (defined in core::Socket)core::Socketprotected
eventReceived(struct epoll_event event)core::Socket
getBufferSize() (defined in core::Socket)core::Socketprotected
getDescriptor()core::Socket
grab (defined in core::TCPSession)core::TCPSession
ipAddress (defined in core::TCPSocket)core::TCPSocket
needsToWrite() (defined in core::Socket)core::Socket
onBlockReceived(coreutils::ZString &block)core::TCPSessionprotectedvirtual
onConnected()core::TCPSessionprotectedvirtual
onDataReceived(coreutils::ZString &data) overridecore::TCPSessionprotectedvirtual
core::TCPSocket::onDataReceived(std::string data)core::Socketprotectedvirtual
onLineReceived(coreutils::ZString &line)core::TCPSessionprotectedvirtual
onRegister()core::Socketvirtual
onRegistered() overridecore::TCPSessionprotectedvirtual
onUnregister() (defined in core::Socket)core::Socketvirtual
onUnregistered()core::Socketvirtual
outcore::TCPSession
output(std::stringstream &data)core::TCPSessionvirtual
protocol(coreutils::ZString &data)core::TCPSessionprotectedvirtual
receiveData(coreutils::ZString &buffer)core::Socketprotectedvirtual
reset (defined in core::Socket)core::Socket
send()core::TCPSession
server (defined in core::TCPSession)core::TCPSession
setBlockSize(int size=0)core::TCPSessionprotected
setBufferSize(int length) (defined in core::Socket)core::Socketprotected
setDescriptor(int descriptor)core::Socket
shutdown(std::string text="unknown")core::Socket
shutDown (defined in core::Socket)core::Socketprotected
Socket(EPoll &ePoll, std::string text="")core::Socket
TCPSession(EPoll &ePoll, TCPServer &server, std::string text="") (defined in core::TCPSession)core::TCPSession
TCPSocket(EPoll &ePoll) (defined in core::TCPSocket)core::TCPSocket
TCPSocket(EPoll &ePoll, std::string text) (defined in core::TCPSocket)core::TCPSocket
terminate()core::TCPSession
write(std::string data)core::Socket
write(char *buffer, int length) (defined in core::Socket)core::Socket
~Socket()core::Socketvirtual
~TCPSession() (defined in core::TCPSession)core::TCPSessionvirtual
~TCPSocket() (defined in core::TCPSocket)core::TCPSocketvirtual
- - - - diff --git a/html/classcore_1_1TCPSession.html b/html/classcore_1_1TCPSession.html deleted file mode 100644 index d8ec44f..0000000 --- a/html/classcore_1_1TCPSession.html +++ /dev/null @@ -1,494 +0,0 @@ - - - - - - - -My Project: core::TCPSession Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Public Member Functions | -Public Attributes | -Protected Member Functions | -List of all members
-
-
core::TCPSession Class Reference
-
-
- -

#include <TCPSession.h>

-
-Inheritance diagram for core::TCPSession:
-
-
Inheritance graph
- - - - - - - - -
[legend]
-
-Collaboration diagram for core::TCPSession:
-
-
Collaboration graph
- - - - - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

TCPSession (EPoll &ePoll, TCPServer &server, std::string text="")
 
virtual void output (std::stringstream &data)
 
void send ()
 
void terminate ()
 
- Public Member Functions inherited from core::TCPSocket
TCPSocket (EPoll &ePoll)
 
TCPSocket (EPoll &ePoll, std::string text)
 
-void connect (IPAddress &address)
 
- Public Member Functions inherited from core::Socket
 Socket (EPoll &ePoll, std::string text="")
 
virtual ~Socket ()
 
void shutdown (std::string text="unknown")
 
void setDescriptor (int descriptor)
 Set the descriptor for the socket. More...
 
-int getDescriptor ()
 Get the descriptor for the socket.
-
 
bool eventReceived (struct epoll_event event)
 Parse epoll event and call specified callbacks. More...
 
int write (std::string data)
 
-void write (char *buffer, int length)
 
-void output (std::stringstream &out)
 
virtual void onRegister ()
 Called before the socket has registered with the epoll processing. More...
 
-virtual void onUnregister ()
 
virtual void onUnregistered ()
 Called when the socket has finished unregistering for the epoll processing. More...
 
-bool needsToWrite ()
 
- - - - - - - - - - - - - -

-Public Attributes

-Commandgrab = NULL
 
-TCPServerserver
 
std::stringstream out
 
- Public Attributes inherited from core::TCPSocket
-IPAddress ipAddress
 
- Public Attributes inherited from core::Socket
-bool reset = false
 
- - - - - - - - - - - - - - - - - - - - - - - - - - -

-Protected Member Functions

-virtual void onRegistered () override
 Called after the socket has been registered with epoll processing.
 
virtual void onDataReceived (coreutils::ZString &data) override
 
virtual void onLineReceived (coreutils::ZString &line)
 
virtual void onBlockReceived (coreutils::ZString &block)
 
virtual void onConnected ()
 
virtual void protocol (coreutils::ZString &data)
 
void setBlockSize (int size=0)
 
- Protected Member Functions inherited from core::Socket
-void setBufferSize (int length)
 
-int getBufferSize ()
 
virtual void onDataReceived (std::string data)
 Called when data is received from the socket. More...
 
virtual void receiveData (coreutils::ZString &buffer)
 
- - - - - - -

-Additional Inherited Members

- Protected Attributes inherited from core::Socket
-EPollePoll
 
-bool shutDown = false
 
-

Detailed Description

-

TCPSession

-

TCPSession defines the nature of the interaction with the client and stores persistent data for a defined session. TCPSession objects are not sockets but instead provide a communications control mechanism. Protocol conversations are provided through extensions from this object.

-

Member Function Documentation

- -

◆ onBlockReceived()

- -
-
- - - - - -
- - - - - - - - -
void core::TCPSession::onBlockReceived (coreutils::ZString & block)
-
-protectedvirtual
-
-

Override the onBlockReceived method to receive a string of characters that represents a single block of data of length determined by the block length value. If onDataReceived was overriden this method will not be called unless the onDataReceived calls this method explicitly using the class and member name.

- -
-
- -

◆ onConnected()

- -
-
- - - - - -
- - - - - - - -
void core::TCPSession::onConnected ()
-
-protectedvirtual
-
-

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.

- -
-
- -

◆ onDataReceived()

- -
-
- - - - - -
- - - - - - - - -
void core::TCPSession::onDataReceived (coreutils::ZString & data)
-
-overrideprotectedvirtual
-
-

Override this method to receive data directly from the socket as data is received. If you need data split by line termination characters then override the onLineReceived method instead.

- -

Reimplemented from core::Socket.

- -
-
- -

◆ onLineReceived()

- -
-
- - - - - -
- - - - - - - - -
void core::TCPSession::onLineReceived (coreutils::ZString & line)
-
-protectedvirtual
-
-

Override the onLineReceived method to receive a string of characters that represents a single line of data terminated by a LF or CRLF. If onDataReceived was overriden this method will not be called unless the onDataReceived calls this method explicitly using the class and member name.

- -
-
- -

◆ output()

- -
-
- - - - - -
- - - - - - - - -
void core::TCPSession::output (std::stringstream & out)
-
-virtual
-
-

The output method is called by a socket session (TCPSession) and will output the detail information for the client socket. When extending BMATCPSocket or BMASession you can override the method to add attributes to the list.

- -

Reimplemented from core::TCPSocket.

- -

Reimplemented in core::TLSSession.

- -
-
- -

◆ protocol()

- -
-
- - - - - -
- - - - - - - - -
void core::TCPSession::protocol (coreutils::ZString & data)
-
-protectedvirtual
-
-

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 default will process the 'commands' added to the server object using the processRequest method on the session input.

-

When data is received within the session two modes are available to pass the data through the protocol method: LINE or BLOCK.

- -

Reimplemented in core::TLSSession, and core::ConsoleSession.

- -
-
- -

◆ send()

- -
-
- - - - - - - -
void core::TCPSession::send ()
-
-

The send method is used to output the contents of the out stream to the session containing the stream.

- -
-
- -

◆ setBlockSize()

- -
-
- - - - - -
- - - - - - - - -
void core::TCPSession::setBlockSize (int size = 0)
-
-protected
-
-

Use setBlockSize to set the amount of data that should be read at once from the session data buffer. If this value is set to 0 then the data will be retrieved

- -
-
- -

◆ terminate()

- -
-
- - - - - - - -
void core::TCPSession::terminate ()
-
-

Use this method to terminate this TCPSession.

- -
-
-

Member Data Documentation

- -

◆ out

- -
-
- - - - -
std::stringstream core::TCPSession::out
-
-

Use out to send data to the session socket or other session sockets.

- -
-
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/html/classcore_1_1TCPSession__coll__graph.map b/html/classcore_1_1TCPSession__coll__graph.map deleted file mode 100644 index 95ab801..0000000 --- a/html/classcore_1_1TCPSession__coll__graph.map +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/html/classcore_1_1TCPSession__coll__graph.md5 b/html/classcore_1_1TCPSession__coll__graph.md5 deleted file mode 100644 index 65a5f32..0000000 --- a/html/classcore_1_1TCPSession__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -f4b2ea20b43a4c6fce9b1fc6f65cd817 \ No newline at end of file diff --git a/html/classcore_1_1TCPSession__coll__graph.png b/html/classcore_1_1TCPSession__coll__graph.png deleted file mode 100644 index 9900017..0000000 Binary files a/html/classcore_1_1TCPSession__coll__graph.png and /dev/null differ diff --git a/html/classcore_1_1TCPSession__inherit__graph.map b/html/classcore_1_1TCPSession__inherit__graph.map deleted file mode 100644 index 90087bd..0000000 --- a/html/classcore_1_1TCPSession__inherit__graph.map +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/html/classcore_1_1TCPSession__inherit__graph.md5 b/html/classcore_1_1TCPSession__inherit__graph.md5 deleted file mode 100644 index 96bbb72..0000000 --- a/html/classcore_1_1TCPSession__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -39b44b8ff3d3a261df40d4e8e510c5ac \ No newline at end of file diff --git a/html/classcore_1_1TCPSession__inherit__graph.png b/html/classcore_1_1TCPSession__inherit__graph.png deleted file mode 100644 index 1615f7b..0000000 Binary files a/html/classcore_1_1TCPSession__inherit__graph.png and /dev/null differ diff --git a/html/classcore_1_1TCPSocket-members.html b/html/classcore_1_1TCPSocket-members.html deleted file mode 100644 index da1757c..0000000 --- a/html/classcore_1_1TCPSocket-members.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - -My Project: Member List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
core::TCPSocket Member List
-
-
- -

This is the complete list of members for core::TCPSocket, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
connect(IPAddress &address) (defined in core::TCPSocket)core::TCPSocket
ePoll (defined in core::Socket)core::Socketprotected
eventReceived(struct epoll_event event)core::Socket
getBufferSize() (defined in core::Socket)core::Socketprotected
getDescriptor()core::Socket
ipAddress (defined in core::TCPSocket)core::TCPSocket
needsToWrite() (defined in core::Socket)core::Socket
onDataReceived(std::string data)core::Socketprotectedvirtual
onDataReceived(coreutils::ZString &data) (defined in core::Socket)core::Socketprotectedvirtual
onRegister()core::Socketvirtual
onRegistered()core::Socketvirtual
onUnregister() (defined in core::Socket)core::Socketvirtual
onUnregistered()core::Socketvirtual
output(std::stringstream &out)core::TCPSocketvirtual
receiveData(coreutils::ZString &buffer)core::Socketprotectedvirtual
reset (defined in core::Socket)core::Socket
setBufferSize(int length) (defined in core::Socket)core::Socketprotected
setDescriptor(int descriptor)core::Socket
shutdown(std::string text="unknown")core::Socket
shutDown (defined in core::Socket)core::Socketprotected
Socket(EPoll &ePoll, std::string text="")core::Socket
TCPSocket(EPoll &ePoll) (defined in core::TCPSocket)core::TCPSocket
TCPSocket(EPoll &ePoll, std::string text) (defined in core::TCPSocket)core::TCPSocket
write(std::string data)core::Socket
write(char *buffer, int length) (defined in core::Socket)core::Socket
~Socket()core::Socketvirtual
~TCPSocket() (defined in core::TCPSocket)core::TCPSocketvirtual
- - - - diff --git a/html/classcore_1_1TCPSocket.html b/html/classcore_1_1TCPSocket.html deleted file mode 100644 index e4e8c64..0000000 --- a/html/classcore_1_1TCPSocket.html +++ /dev/null @@ -1,243 +0,0 @@ - - - - - - - -My Project: core::TCPSocket Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Public Member Functions | -Public Attributes | -List of all members
-
-
core::TCPSocket Class Reference
-
-
- -

#include <TCPSocket.h>

-
-Inheritance diagram for core::TCPSocket:
-
-
Inheritance graph
- - - - - - - - - - - -
[legend]
-
-Collaboration diagram for core::TCPSocket:
-
-
Collaboration graph
- - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

TCPSocket (EPoll &ePoll)
 
TCPSocket (EPoll &ePoll, std::string text)
 
-void connect (IPAddress &address)
 
virtual void output (std::stringstream &out)
 
- Public Member Functions inherited from core::Socket
 Socket (EPoll &ePoll, std::string text="")
 
virtual ~Socket ()
 
void shutdown (std::string text="unknown")
 
void setDescriptor (int descriptor)
 Set the descriptor for the socket. More...
 
-int getDescriptor ()
 Get the descriptor for the socket.
-
 
bool eventReceived (struct epoll_event event)
 Parse epoll event and call specified callbacks. More...
 
int write (std::string data)
 
-void write (char *buffer, int length)
 
-void output (std::stringstream &out)
 
virtual void onRegister ()
 Called before the socket has registered with the epoll processing. More...
 
-virtual void onRegistered ()
 Called after the socket has been registered with epoll processing.
 
-virtual void onUnregister ()
 
virtual void onUnregistered ()
 Called when the socket has finished unregistering for the epoll processing. More...
 
-bool needsToWrite ()
 
- - - - - - -

-Public Attributes

-IPAddress ipAddress
 
- Public Attributes inherited from core::Socket
-bool reset = false
 
- - - - - - - - - - - - - - - - - - -

-Additional Inherited Members

- Protected Member Functions inherited from core::Socket
-void setBufferSize (int length)
 
-int getBufferSize ()
 
virtual void onDataReceived (std::string data)
 Called when data is received from the socket. More...
 
-virtual void onDataReceived (coreutils::ZString &data)
 
virtual void receiveData (coreutils::ZString &buffer)
 
- Protected Attributes inherited from core::Socket
-EPollePoll
 
-bool shutDown = false
 
-

Detailed Description

-

TCPSocket

-

Provides a network TCP socket.

-

For accessing TCP network functions use this object. The connection oriented nature of TCP provides a single client persistent connection with data error correction and a durable synchronous data connection.

-

Member Function Documentation

- -

◆ output()

- -
-
- - - - - -
- - - - - - - - -
void core::TCPSocket::output (std::stringstream & out)
-
-virtual
-
-

The output method is called by a socket session (TCPSession) and will output the detail information for the client socket. When extending BMATCPSocket or BMASession you can override the method to add attributes to the list.

- -

Reimplemented in core::TLSSession, core::TCPServer, and core::TCPSession.

- -
-
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/html/classcore_1_1TCPSocket__coll__graph.map b/html/classcore_1_1TCPSocket__coll__graph.map deleted file mode 100644 index 1ef8ff7..0000000 --- a/html/classcore_1_1TCPSocket__coll__graph.map +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/html/classcore_1_1TCPSocket__coll__graph.md5 b/html/classcore_1_1TCPSocket__coll__graph.md5 deleted file mode 100644 index a957225..0000000 --- a/html/classcore_1_1TCPSocket__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -09a4e1b2bc983192b12dee427b95649c \ No newline at end of file diff --git a/html/classcore_1_1TCPSocket__coll__graph.png b/html/classcore_1_1TCPSocket__coll__graph.png deleted file mode 100644 index b934430..0000000 Binary files a/html/classcore_1_1TCPSocket__coll__graph.png and /dev/null differ diff --git a/html/classcore_1_1TCPSocket__inherit__graph.map b/html/classcore_1_1TCPSocket__inherit__graph.map deleted file mode 100644 index 2ccc234..0000000 --- a/html/classcore_1_1TCPSocket__inherit__graph.map +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/html/classcore_1_1TCPSocket__inherit__graph.md5 b/html/classcore_1_1TCPSocket__inherit__graph.md5 deleted file mode 100644 index 9dc21e2..0000000 --- a/html/classcore_1_1TCPSocket__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -b00eaaaf3a0f062e6988b61f3e846f66 \ No newline at end of file diff --git a/html/classcore_1_1TCPSocket__inherit__graph.png b/html/classcore_1_1TCPSocket__inherit__graph.png deleted file mode 100644 index b777731..0000000 Binary files a/html/classcore_1_1TCPSocket__inherit__graph.png and /dev/null differ diff --git a/html/classcore_1_1TLSServer-members.html b/html/classcore_1_1TLSServer-members.html deleted file mode 100644 index 1c78c24..0000000 --- a/html/classcore_1_1TLSServer-members.html +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - -My Project: Member List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
core::TLSServer Member List
-
-
- -

This is the complete list of members for core::TLSServer, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
blackListcore::TCPServer
commandscore::TCPServer
connect(IPAddress &address) (defined in core::TCPSocket)core::TCPSocket
ctx (defined in core::TLSServer)core::TLSServer
ePoll (defined in core::Socket)core::Socketprotected
eventReceived(struct epoll_event event)core::Socket
getBufferSize() (defined in core::Socket)core::Socketprotected
getDescriptor()core::Socket
getSocketAccept() (defined in core::TLSServer)core::TLSServer
core::TCPServer::getSocketAccept(EPoll &epoll)core::TCPServervirtual
ipAddress (defined in core::TCPSocket)core::TCPSocket
needsToWrite() (defined in core::Socket)core::Socket
onDataReceived(std::string data) overridecore::TCPServerprotectedvirtual
onDataReceived(coreutils::ZString &data) (defined in core::Socket)core::Socketprotectedvirtual
onRegister()core::Socketvirtual
onRegistered()core::Socketvirtual
onUnregister() (defined in core::Socket)core::Socketvirtual
onUnregistered()core::Socketvirtual
output(std::stringstream &out)core::TCPServervirtual
processCommand(coreutils::ZString &request, TCPSession &session) overridecore::TCPServerprotectedvirtual
receiveData(coreutils::ZString &buffer)core::Socketprotectedvirtual
removeFromSessionList(TCPSession *session) (defined in core::TCPServer)core::TCPServer
reset (defined in core::Socket)core::Socket
sendToAll(std::stringstream &out) (defined in core::TCPServer)core::TCPServer
sendToAll(std::stringstream &out, TCPSession &sender, SessionFilter filter)core::TCPServer
sendToAll(std::stringstream &out, TCPSession &sender)core::TCPServer
sessionErrorHandler(std::string errorString, std::stringstream &out) (defined in core::TCPServer)core::TCPServervirtual
sessionscore::TCPServer
setBufferSize(int length) (defined in core::Socket)core::Socketprotected
setDescriptor(int descriptor)core::Socket
shutdown(std::string text="unknown")core::Socket
shutDown (defined in core::Socket)core::Socketprotected
Socket(EPoll &ePoll, std::string text="")core::Socket
subscriptionscore::TCPServer
TCPServer(EPoll &ePoll, IPAddress address, std::string delimiter=" ", int depth=10, std::string text="")core::TCPServer
TCPSocket(EPoll &ePoll) (defined in core::TCPSocket)core::TCPSocket
TCPSocket(EPoll &ePoll, std::string text) (defined in core::TCPSocket)core::TCPSocket
TLSServer(EPoll &ePoll, IPAddress address)core::TLSServer
whiteListcore::TCPServer
write(std::string data)core::Socket
write(char *buffer, int length) (defined in core::Socket)core::Socket
~Socket()core::Socketvirtual
~TCPServer()core::TCPServervirtual
~TCPSocket() (defined in core::TCPSocket)core::TCPSocketvirtual
~TLSServer()core::TLSServer
- - - - diff --git a/html/classcore_1_1TLSServer.html b/html/classcore_1_1TLSServer.html deleted file mode 100644 index a80c7a4..0000000 --- a/html/classcore_1_1TLSServer.html +++ /dev/null @@ -1,318 +0,0 @@ - - - - - - - -My Project: core::TLSServer Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Public Member Functions | -Public Attributes | -List of all members
-
-
core::TLSServer Class Reference
-
-
- -

#include <TLSServer.h>

-
-Inheritance diagram for core::TLSServer:
-
-
Inheritance graph
- - - - - - - -
[legend]
-
-Collaboration diagram for core::TLSServer:
-
-
Collaboration graph
- - - - - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 TLSServer (EPoll &ePoll, IPAddress address)
 
 ~TLSServer ()
 
-TCPSessiongetSocketAccept ()
 
- Public Member Functions inherited from core::TCPServer
 TCPServer (EPoll &ePoll, IPAddress address, std::string delimiter=" ", int depth=10, std::string text="")
 
virtual ~TCPServer ()
 
-virtual void sessionErrorHandler (std::string errorString, std::stringstream &out)
 
virtual TCPSessiongetSocketAccept (EPoll &epoll)
 
-void removeFromSessionList (TCPSession *session)
 
-void output (std::stringstream &out)
 Output the consoles array to the console.
 
-void sendToAll (std::stringstream &out)
 
void sendToAll (std::stringstream &out, TCPSession &sender, SessionFilter filter)
 
void sendToAll (std::stringstream &out, TCPSession &sender)
 
- Public Member Functions inherited from core::TCPSocket
TCPSocket (EPoll &ePoll)
 
TCPSocket (EPoll &ePoll, std::string text)
 
-void connect (IPAddress &address)
 
- Public Member Functions inherited from core::Socket
 Socket (EPoll &ePoll, std::string text="")
 
virtual ~Socket ()
 
void shutdown (std::string text="unknown")
 
void setDescriptor (int descriptor)
 Set the descriptor for the socket. More...
 
-int getDescriptor ()
 Get the descriptor for the socket.
-
 
bool eventReceived (struct epoll_event event)
 Parse epoll event and call specified callbacks. More...
 
int write (std::string data)
 
-void write (char *buffer, int length)
 
-void output (std::stringstream &out)
 
virtual void onRegister ()
 Called before the socket has registered with the epoll processing. More...
 
-virtual void onRegistered ()
 Called after the socket has been registered with epoll processing.
 
-virtual void onUnregister ()
 
virtual void onUnregistered ()
 Called when the socket has finished unregistering for the epoll processing. More...
 
-bool needsToWrite ()
 
- - - - - - - - - - - - - - - - - - - - -

-Public Attributes

-SSL_CTX * ctx
 
- Public Attributes inherited from core::TCPServer
std::vector< TCPSession * > sessions
 
CommandList commands
 
IPAddressListblackList
 
IPAddressListwhiteList
 
SubscriptionManager subscriptions
 
- Public Attributes inherited from core::TCPSocket
-IPAddress ipAddress
 
- Public Attributes inherited from core::Socket
-bool reset = false
 
- - - - - - - - - - - - - - - - - - - - -

-Additional Inherited Members

- Protected Member Functions inherited from core::TCPServer
void onDataReceived (std::string data) override
 
int processCommand (coreutils::ZString &request, TCPSession &session) override
 
- Protected Member Functions inherited from core::Socket
-void setBufferSize (int length)
 
-int getBufferSize ()
 
-virtual void onDataReceived (coreutils::ZString &data)
 
virtual void receiveData (coreutils::ZString &buffer)
 
- Protected Attributes inherited from core::Socket
-EPollePoll
 
-bool shutDown = false
 
-

Detailed Description

-

TLSServer

-

Manage a socket connection as a TLS server type. Connections to the socket are processed through the accept functionality.

-

Constructor & Destructor Documentation

- -

◆ TLSServer()

- -
-
- - - - - - - - - - - - - - - - - - -
core::TLSServer::TLSServer (EPollePoll,
IPAddress address 
)
-
-

The constructor.

-
Parameters
- - - - - -
ePollthe BMAEPoll instance that manages the socket.
urlthe IP address for the socket to receive connection requests.
portthe port number that the socket will listen on.
commandNamethe name of the command used to invoke the status display for this object.
-
-
-
Returns
the instance of the BMATLSServerSocket.
- -
-
- -

◆ ~TLSServer()

- -
-
- - - - - - - -
core::TLSServer::~TLSServer ()
-
-

The destructor for this object.

- -
-
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/html/classcore_1_1TLSServer__coll__graph.map b/html/classcore_1_1TLSServer__coll__graph.map deleted file mode 100644 index bba46f4..0000000 --- a/html/classcore_1_1TLSServer__coll__graph.map +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/html/classcore_1_1TLSServer__coll__graph.md5 b/html/classcore_1_1TLSServer__coll__graph.md5 deleted file mode 100644 index ea77a29..0000000 --- a/html/classcore_1_1TLSServer__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -3e243acdb497b9bc4cdc223ddc77fef7 \ No newline at end of file diff --git a/html/classcore_1_1TLSServer__coll__graph.png b/html/classcore_1_1TLSServer__coll__graph.png deleted file mode 100644 index ff424d9..0000000 Binary files a/html/classcore_1_1TLSServer__coll__graph.png and /dev/null differ diff --git a/html/classcore_1_1TLSServer__inherit__graph.map b/html/classcore_1_1TLSServer__inherit__graph.map deleted file mode 100644 index f7d71d4..0000000 --- a/html/classcore_1_1TLSServer__inherit__graph.map +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/html/classcore_1_1TLSServer__inherit__graph.md5 b/html/classcore_1_1TLSServer__inherit__graph.md5 deleted file mode 100644 index bc9c99e..0000000 --- a/html/classcore_1_1TLSServer__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -806406ab05637ac4d8f203101668f5ea \ No newline at end of file diff --git a/html/classcore_1_1TLSServer__inherit__graph.png b/html/classcore_1_1TLSServer__inherit__graph.png deleted file mode 100644 index a3ab48e..0000000 Binary files a/html/classcore_1_1TLSServer__inherit__graph.png and /dev/null differ diff --git a/html/classcore_1_1TLSSession-members.html b/html/classcore_1_1TLSSession-members.html deleted file mode 100644 index ebc3f2b..0000000 --- a/html/classcore_1_1TLSSession-members.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - - -My Project: Member List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
core::TLSSession Member List
-
-
- -

This is the complete list of members for core::TLSSession, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
connect(IPAddress &address) (defined in core::TCPSocket)core::TCPSocket
ePoll (defined in core::Socket)core::Socketprotected
eventReceived(struct epoll_event event)core::Socket
getBufferSize() (defined in core::Socket)core::Socketprotected
getDescriptor()core::Socket
grab (defined in core::TCPSession)core::TCPSession
ipAddress (defined in core::TCPSocket)core::TCPSocket
needsToWrite() (defined in core::Socket)core::Socket
onBlockReceived(coreutils::ZString &block)core::TCPSessionprotectedvirtual
onConnected()core::TCPSessionprotectedvirtual
onDataReceived(coreutils::ZString &data) overridecore::TCPSessionprotectedvirtual
core::TCPSocket::onDataReceived(std::string data)core::Socketprotectedvirtual
onLineReceived(coreutils::ZString &line)core::TCPSessionprotectedvirtual
onRegister()core::TLSSessionprotectedvirtual
onRegistered()core::TLSSessionprotectedvirtual
onUnregister() (defined in core::Socket)core::Socketvirtual
onUnregistered()core::Socketvirtual
outcore::TCPSession
output(std::stringstream &out)core::TLSSessionvirtual
protocol(coreutils::ZString &data) overridecore::TLSSessionvirtual
receiveData(coreutils::ZString &buffer) overridecore::TLSSessionprotectedvirtual
reset (defined in core::Socket)core::Socket
send()core::TCPSession
server (defined in core::TCPSession)core::TCPSession
setBlockSize(int size=0)core::TCPSessionprotected
setBufferSize(int length) (defined in core::Socket)core::Socketprotected
setDescriptor(int descriptor)core::Socket
shutDown (defined in core::Socket)core::Socketprotected
shutdown(std::string text="unknown")core::Socket
Socket(EPoll &ePoll, std::string text="")core::Socket
TCPSession(EPoll &ePoll, TCPServer &server, std::string text="") (defined in core::TCPSession)core::TCPSession
TCPSocket(EPoll &ePoll) (defined in core::TCPSocket)core::TCPSocket
TCPSocket(EPoll &ePoll, std::string text) (defined in core::TCPSocket)core::TCPSocket
terminate()core::TCPSession
TLSSession(EPoll &ePoll, TCPServer &server) (defined in core::TLSSession)core::TLSSession
write(std::string data)core::Socket
write(char *buffer, int length) (defined in core::Socket)core::Socket
~Socket()core::Socketvirtual
~TCPSession() (defined in core::TCPSession)core::TCPSessionvirtual
~TCPSocket() (defined in core::TCPSocket)core::TCPSocketvirtual
~TLSSession() (defined in core::TLSSession)core::TLSSession
- - - - diff --git a/html/classcore_1_1TLSSession.html b/html/classcore_1_1TLSSession.html deleted file mode 100644 index c46993c..0000000 --- a/html/classcore_1_1TLSSession.html +++ /dev/null @@ -1,365 +0,0 @@ - - - - - - - -My Project: core::TLSSession Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Public Member Functions | -Protected Member Functions | -List of all members
-
-
core::TLSSession Class Reference
-
-
- -

#include <TLSSession.h>

-
-Inheritance diagram for core::TLSSession:
-
-
Inheritance graph
- - - - - - -
[legend]
-
-Collaboration diagram for core::TLSSession:
-
-
Collaboration graph
- - - - - - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

TLSSession (EPoll &ePoll, TCPServer &server)
 
virtual void output (std::stringstream &out)
 
virtual void protocol (coreutils::ZString &data) override
 
- Public Member Functions inherited from core::TCPSession
TCPSession (EPoll &ePoll, TCPServer &server, std::string text="")
 
void send ()
 
void terminate ()
 
- Public Member Functions inherited from core::TCPSocket
TCPSocket (EPoll &ePoll)
 
TCPSocket (EPoll &ePoll, std::string text)
 
-void connect (IPAddress &address)
 
- Public Member Functions inherited from core::Socket
 Socket (EPoll &ePoll, std::string text="")
 
virtual ~Socket ()
 
void shutdown (std::string text="unknown")
 
void setDescriptor (int descriptor)
 Set the descriptor for the socket. More...
 
-int getDescriptor ()
 Get the descriptor for the socket.
-
 
bool eventReceived (struct epoll_event event)
 Parse epoll event and call specified callbacks. More...
 
int write (std::string data)
 
-void write (char *buffer, int length)
 
-void output (std::stringstream &out)
 
-virtual void onUnregister ()
 
virtual void onUnregistered ()
 Called when the socket has finished unregistering for the epoll processing. More...
 
-bool needsToWrite ()
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Protected Member Functions

void receiveData (coreutils::ZString &buffer) override
 
void onRegister ()
 Called before the socket has registered with the epoll processing. More...
 
-void onRegistered ()
 Called after the socket has been registered with epoll processing.
 
- Protected Member Functions inherited from core::TCPSession
virtual void onDataReceived (coreutils::ZString &data) override
 
virtual void onLineReceived (coreutils::ZString &line)
 
virtual void onBlockReceived (coreutils::ZString &block)
 
virtual void onConnected ()
 
void setBlockSize (int size=0)
 
- Protected Member Functions inherited from core::Socket
-void setBufferSize (int length)
 
-int getBufferSize ()
 
virtual void onDataReceived (std::string data)
 Called when data is received from the socket. More...
 
- - - - - - - - - - - - - - - - - - - -

-Additional Inherited Members

- Public Attributes inherited from core::TCPSession
-Commandgrab = NULL
 
-TCPServerserver
 
std::stringstream out
 
- Public Attributes inherited from core::TCPSocket
-IPAddress ipAddress
 
- Public Attributes inherited from core::Socket
-bool reset = false
 
- Protected Attributes inherited from core::Socket
-EPollePoll
 
-bool shutDown = false
 
-

Detailed Description

-

TLSSession

-

Provides a network TLS socket.

-

For accessing TLS network functions use this object. The connection oriented nature of TLS provides a single client persistent connection with data error correction and a durable synchronous data connection.

-

Member Function Documentation

- -

◆ onRegister()

- -
-
- - - - - -
- - - - - - - -
void core::TLSSession::onRegister ()
-
-protectedvirtual
-
- -

Called before the socket has registered with the epoll processing.

-

The onRegister method is called before the socket is registered with ePoll so objects extending the Socket definition can initialize the socket before receiving events. Evoked when the descriptor is set using setDescriptor for the socket.

- -

Reimplemented from core::Socket.

- -
-
- -

◆ output()

- -
-
- - - - - -
- - - - - - - - -
void core::TLSSession::output (std::stringstream & out)
-
-virtual
-
-

The output method is called by a socket session (Session) and will output the detail information for the client socket. When extending TLSSocket or Session you can override the method to add attributes to the list.

- -

Reimplemented from core::TCPSession.

- -
-
- -

◆ protocol()

- -
-
- - - - - -
- - - - - - - - -
void core::TLSSession::protocol (coreutils::ZString & data)
-
-overridevirtual
-
-

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 default will process the 'commands' added to the server object using the processRequest method on the session input.

-

When data is received within the session two modes are available to pass the data through the protocol method: LINE or BLOCK.

- -

Reimplemented from core::TCPSession.

- -
-
- -

◆ receiveData()

- -
-
- - - - - -
- - - - - - - - -
void core::TLSSession::receiveData (coreutils::ZString & buffer)
-
-overrideprotectedvirtual
-
-

receiveData will read the data from the socket and place it in the socket buffer. TLS layer overrides this to be able to read from SSL.

- -

Reimplemented from core::Socket.

- -
-
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/html/classcore_1_1TLSSession__coll__graph.map b/html/classcore_1_1TLSSession__coll__graph.map deleted file mode 100644 index 5dda010..0000000 --- a/html/classcore_1_1TLSSession__coll__graph.map +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/html/classcore_1_1TLSSession__coll__graph.md5 b/html/classcore_1_1TLSSession__coll__graph.md5 deleted file mode 100644 index a3bdf25..0000000 --- a/html/classcore_1_1TLSSession__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -33ffca78cfc0d61f74c28ece7bc4061e \ No newline at end of file diff --git a/html/classcore_1_1TLSSession__coll__graph.png b/html/classcore_1_1TLSSession__coll__graph.png deleted file mode 100644 index 8befdc3..0000000 Binary files a/html/classcore_1_1TLSSession__coll__graph.png and /dev/null differ diff --git a/html/classcore_1_1TLSSession__inherit__graph.map b/html/classcore_1_1TLSSession__inherit__graph.map deleted file mode 100644 index e71c9c1..0000000 --- a/html/classcore_1_1TLSSession__inherit__graph.map +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/html/classcore_1_1TLSSession__inherit__graph.md5 b/html/classcore_1_1TLSSession__inherit__graph.md5 deleted file mode 100644 index 269f8b1..0000000 --- a/html/classcore_1_1TLSSession__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -1a17344686e47104422238aeef1c3bfd \ No newline at end of file diff --git a/html/classcore_1_1TLSSession__inherit__graph.png b/html/classcore_1_1TLSSession__inherit__graph.png deleted file mode 100644 index 30f9f08..0000000 Binary files a/html/classcore_1_1TLSSession__inherit__graph.png and /dev/null differ diff --git a/html/classcore_1_1TerminalSession-members.html b/html/classcore_1_1TerminalSession-members.html deleted file mode 100644 index f74e7f2..0000000 --- a/html/classcore_1_1TerminalSession-members.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - -My Project: Member List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
core::TerminalSession Member List
-
-
- -

This is the complete list of members for core::TerminalSession, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
clear()core::TerminalSession
clearEOL()core::TerminalSession
connect(IPAddress &address) (defined in core::TCPSocket)core::TCPSocket
ePoll (defined in core::Socket)core::Socketprotected
eventReceived(struct epoll_event event)core::Socket
getBufferSize() (defined in core::Socket)core::Socketprotected
getDescriptor()core::Socket
getLines() (defined in core::TerminalSession)core::TerminalSession
grab (defined in core::TCPSession)core::TCPSession
ipAddress (defined in core::TCPSocket)core::TCPSocket
needsToWrite() (defined in core::Socket)core::Socket
NextLine(int lines) (defined in core::TerminalSession)core::TerminalSession
onBlockReceived(coreutils::ZString &block)core::TCPSessionprotectedvirtual
onConnected()core::TCPSessionprotectedvirtual
onDataReceived(coreutils::ZString &data) overridecore::TCPSessionprotectedvirtual
core::TCPSocket::onDataReceived(std::string data)core::Socketprotectedvirtual
onLineReceived(coreutils::ZString &line)core::TCPSessionprotectedvirtual
onRegister()core::Socketvirtual
onRegistered() overridecore::TCPSessionprotectedvirtual
onUnregister() (defined in core::Socket)core::Socketvirtual
onUnregistered()core::Socketvirtual
outcore::TCPSession
output(std::stringstream &data)core::TCPSessionvirtual
PreviousLine(int lines) (defined in core::TerminalSession)core::TerminalSession
protocol(coreutils::ZString &data)core::TCPSessionprotectedvirtual
receiveData(coreutils::ZString &buffer)core::Socketprotectedvirtual
reset (defined in core::Socket)core::Socket
restoreCursor() (defined in core::TerminalSession)core::TerminalSession
saveCursor() (defined in core::TerminalSession)core::TerminalSession
scrollArea(int start, int end) (defined in core::TerminalSession)core::TerminalSession
send()core::TCPSession
server (defined in core::TCPSession)core::TCPSession
setBackColor(int color) (defined in core::TerminalSession)core::TerminalSession
setBlockSize(int size=0)core::TCPSessionprotected
setBufferSize(int length) (defined in core::Socket)core::Socketprotected
setColor(int color) (defined in core::TerminalSession)core::TerminalSession
setCursorLocation(int x, int y)core::TerminalSession
setDescriptor(int descriptor)core::Socket
shutDown (defined in core::Socket)core::Socketprotected
shutdown(std::string text="unknown")core::Socket
Socket(EPoll &ePoll, std::string text="")core::Socket
TCPSession(EPoll &ePoll, TCPServer &server, std::string text="") (defined in core::TCPSession)core::TCPSession
TCPSocket(EPoll &ePoll) (defined in core::TCPSocket)core::TCPSocket
TCPSocket(EPoll &ePoll, std::string text) (defined in core::TCPSocket)core::TCPSocket
TerminalSession(EPoll &ePoll, TCPServer &server) (defined in core::TerminalSession)core::TerminalSession
terminate()core::TCPSession
write(std::string data)core::Socket
write(char *buffer, int length) (defined in core::Socket)core::Socket
~Socket()core::Socketvirtual
~TCPSession() (defined in core::TCPSession)core::TCPSessionvirtual
~TCPSocket() (defined in core::TCPSocket)core::TCPSocketvirtual
~TerminalSession() (defined in core::TerminalSession)core::TerminalSession
- - - - diff --git a/html/classcore_1_1TerminalSession.html b/html/classcore_1_1TerminalSession.html deleted file mode 100644 index f9760f0..0000000 --- a/html/classcore_1_1TerminalSession.html +++ /dev/null @@ -1,333 +0,0 @@ - - - - - - - -My Project: core::TerminalSession Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Public Member Functions | -List of all members
-
-
core::TerminalSession Class Reference
-
-
-
-Inheritance diagram for core::TerminalSession:
-
-
Inheritance graph
- - - - - - - -
[legend]
-
-Collaboration diagram for core::TerminalSession:
-
-
Collaboration graph
- - - - - - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

TerminalSession (EPoll &ePoll, TCPServer &server)
 
-int getLines ()
 
void clear ()
 
void clearEOL ()
 
void setCursorLocation (int x, int y)
 
-void setColor (int color)
 
-void setBackColor (int color)
 
-void saveCursor ()
 
-void restoreCursor ()
 
-void NextLine (int lines)
 
-void PreviousLine (int lines)
 
-void scrollArea (int start, int end)
 
- Public Member Functions inherited from core::TCPSession
TCPSession (EPoll &ePoll, TCPServer &server, std::string text="")
 
virtual void output (std::stringstream &data)
 
void send ()
 
void terminate ()
 
- Public Member Functions inherited from core::TCPSocket
TCPSocket (EPoll &ePoll)
 
TCPSocket (EPoll &ePoll, std::string text)
 
-void connect (IPAddress &address)
 
- Public Member Functions inherited from core::Socket
 Socket (EPoll &ePoll, std::string text="")
 
virtual ~Socket ()
 
void shutdown (std::string text="unknown")
 
void setDescriptor (int descriptor)
 Set the descriptor for the socket. More...
 
-int getDescriptor ()
 Get the descriptor for the socket.
-
 
bool eventReceived (struct epoll_event event)
 Parse epoll event and call specified callbacks. More...
 
int write (std::string data)
 
-void write (char *buffer, int length)
 
-void output (std::stringstream &out)
 
virtual void onRegister ()
 Called before the socket has registered with the epoll processing. More...
 
-virtual void onUnregister ()
 
virtual void onUnregistered ()
 Called when the socket has finished unregistering for the epoll processing. More...
 
-bool needsToWrite ()
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Additional Inherited Members

- Public Attributes inherited from core::TCPSession
-Commandgrab = NULL
 
-TCPServerserver
 
std::stringstream out
 
- Public Attributes inherited from core::TCPSocket
-IPAddress ipAddress
 
- Public Attributes inherited from core::Socket
-bool reset = false
 
- Protected Member Functions inherited from core::TCPSession
-virtual void onRegistered () override
 Called after the socket has been registered with epoll processing.
 
virtual void onDataReceived (coreutils::ZString &data) override
 
virtual void onLineReceived (coreutils::ZString &line)
 
virtual void onBlockReceived (coreutils::ZString &block)
 
virtual void onConnected ()
 
virtual void protocol (coreutils::ZString &data)
 
void setBlockSize (int size=0)
 
- Protected Member Functions inherited from core::Socket
-void setBufferSize (int length)
 
-int getBufferSize ()
 
virtual void onDataReceived (std::string data)
 Called when data is received from the socket. More...
 
virtual void receiveData (coreutils::ZString &buffer)
 
- Protected Attributes inherited from core::Socket
-EPollePoll
 
-bool shutDown = false
 
-

Member Function Documentation

- -

◆ clear()

- -
-
- - - - - - - -
void core::TerminalSession::clear ()
-
-

Clear the display.

- -
-
- -

◆ clearEOL()

- -
-
- - - - - - - -
void core::TerminalSession::clearEOL ()
-
-

Clear the display from the cursor to the end of line.

- -
-
- -

◆ setCursorLocation()

- -
-
- - - - - - - - - - - - - - - - - - -
void core::TerminalSession::setCursorLocation (int x,
int y 
)
-
-

Set the location of the cursor on the display.

- -
-
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/html/classcore_1_1TerminalSession__coll__graph.map b/html/classcore_1_1TerminalSession__coll__graph.map deleted file mode 100644 index 236f734..0000000 --- a/html/classcore_1_1TerminalSession__coll__graph.map +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/html/classcore_1_1TerminalSession__coll__graph.md5 b/html/classcore_1_1TerminalSession__coll__graph.md5 deleted file mode 100644 index 2f3b54a..0000000 --- a/html/classcore_1_1TerminalSession__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -3c71f5c80db15ac7249ac999b7570c91 \ No newline at end of file diff --git a/html/classcore_1_1TerminalSession__coll__graph.png b/html/classcore_1_1TerminalSession__coll__graph.png deleted file mode 100644 index 7557e67..0000000 Binary files a/html/classcore_1_1TerminalSession__coll__graph.png and /dev/null differ diff --git a/html/classcore_1_1TerminalSession__inherit__graph.map b/html/classcore_1_1TerminalSession__inherit__graph.map deleted file mode 100644 index 40bafaa..0000000 --- a/html/classcore_1_1TerminalSession__inherit__graph.map +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/html/classcore_1_1TerminalSession__inherit__graph.md5 b/html/classcore_1_1TerminalSession__inherit__graph.md5 deleted file mode 100644 index e4ed190..0000000 --- a/html/classcore_1_1TerminalSession__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -0730fba17781b9d63883ed05bfb4ca31 \ No newline at end of file diff --git a/html/classcore_1_1TerminalSession__inherit__graph.png b/html/classcore_1_1TerminalSession__inherit__graph.png deleted file mode 100644 index 9037b94..0000000 Binary files a/html/classcore_1_1TerminalSession__inherit__graph.png and /dev/null differ diff --git a/html/classcore_1_1Thread-members.html b/html/classcore_1_1Thread-members.html deleted file mode 100644 index 8fb9c0b..0000000 --- a/html/classcore_1_1Thread-members.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - -My Project: Member List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
core::Thread Member List
-
-
- -

This is the complete list of members for core::Thread, including all inherited members.

- - - - - - - - - - - - -
getCount() (defined in core::Thread)core::Thread
getStatus() (defined in core::Thread)core::Thread
getThreadId() (defined in core::Thread)core::Thread
join() (defined in core::Thread)core::Thread
name (defined in core::Object)core::Object
output(std::stringstream &data) (defined in core::Thread)core::Thread
start()core::Thread
tag (defined in core::Object)core::Object
Thread(EPoll &ePoll) (defined in core::Thread)core::Thread
Thread(EPoll &ePoll, ThreadScope *thread) (defined in core::Thread)core::Thread
~Thread() (defined in core::Thread)core::Thread
- - - - diff --git a/html/classcore_1_1Thread.html b/html/classcore_1_1Thread.html deleted file mode 100644 index 9dff38a..0000000 --- a/html/classcore_1_1Thread.html +++ /dev/null @@ -1,164 +0,0 @@ - - - - - - - -My Project: core::Thread Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Public Member Functions | -List of all members
-
-
core::Thread Class Reference
-
-
- -

#include <Thread.h>

-
-Inheritance diagram for core::Thread:
-
-
Inheritance graph
- - - - -
[legend]
-
-Collaboration diagram for core::Thread:
-
-
Collaboration graph
- - - - -
[legend]
- - - - - - - - - - - - - - - - - - -

-Public Member Functions

Thread (EPoll &ePoll)
 
Thread (EPoll &ePoll, ThreadScope *thread)
 
void start ()
 
-void join ()
 
-std::string getStatus ()
 
-pid_t getThreadId ()
 
-int getCount ()
 
-void output (std::stringstream &data)
 
- - - - - - -

-Additional Inherited Members

- Public Attributes inherited from core::Object
-std::string name
 
-std::string tag
 
-

Detailed Description

-

Thread

-

This thread object is designed to be the thread processor for the EPoll object. It wraps the thread object to allow maintaining a status value for monitoring the thread activity. EPoll will instantiate a Thread object for each thread specified in the EPoll's start method.

-

Member Function Documentation

- -

◆ start()

- -
-
- - - - - - - -
void core::Thread::start ()
-
-

Start the thread object. This will cause the epoll scheduler to commence reading the epoll queue.

- -
-
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/html/classcore_1_1ThreadScope-members.html b/html/classcore_1_1ThreadScope-members.html deleted file mode 100644 index 2bb2fb6..0000000 --- a/html/classcore_1_1ThreadScope-members.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - -My Project: Member List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
core::ThreadScope Member List
-
-
- -

This is the complete list of members for core::ThreadScope, including all inherited members.

- - -
ThreadScope() (defined in core::ThreadScope)core::ThreadScopeinline
- - - - diff --git a/html/classcore_1_1ThreadScope.html b/html/classcore_1_1ThreadScope.html deleted file mode 100644 index 1304ea1..0000000 --- a/html/classcore_1_1ThreadScope.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - -My Project: core::ThreadScope Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-List of all members
-
-
core::ThreadScope Class Reference
-
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/html/classcore_1_1Thread__coll__graph.map b/html/classcore_1_1Thread__coll__graph.map deleted file mode 100644 index 902928c..0000000 --- a/html/classcore_1_1Thread__coll__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/html/classcore_1_1Thread__coll__graph.md5 b/html/classcore_1_1Thread__coll__graph.md5 deleted file mode 100644 index 4a0cc87..0000000 --- a/html/classcore_1_1Thread__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -7b27e6318b467af3b1df84944c1d56f9 \ No newline at end of file diff --git a/html/classcore_1_1Thread__coll__graph.png b/html/classcore_1_1Thread__coll__graph.png deleted file mode 100644 index a87930b..0000000 Binary files a/html/classcore_1_1Thread__coll__graph.png and /dev/null differ diff --git a/html/classcore_1_1Thread__inherit__graph.map b/html/classcore_1_1Thread__inherit__graph.map deleted file mode 100644 index 902928c..0000000 --- a/html/classcore_1_1Thread__inherit__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/html/classcore_1_1Thread__inherit__graph.md5 b/html/classcore_1_1Thread__inherit__graph.md5 deleted file mode 100644 index 4a0cc87..0000000 --- a/html/classcore_1_1Thread__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -7b27e6318b467af3b1df84944c1d56f9 \ No newline at end of file diff --git a/html/classcore_1_1Thread__inherit__graph.png b/html/classcore_1_1Thread__inherit__graph.png deleted file mode 100644 index a87930b..0000000 Binary files a/html/classcore_1_1Thread__inherit__graph.png and /dev/null differ diff --git a/html/classcore_1_1Timer-members.html b/html/classcore_1_1Timer-members.html deleted file mode 100644 index d71eb6d..0000000 --- a/html/classcore_1_1Timer-members.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - -My Project: Member List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
core::Timer Member List
-
-
- -

This is the complete list of members for core::Timer, including all inherited members.

- - - - - - - - - - -
clearTimer()core::Timer
getElapsed()core::Timer
getEpoch() (defined in core::Timer)core::Timer
onDataReceived(coreutils::ZString &data) (defined in core::Socket)core::Socketprivatevirtual
onTimeout()=0core::Timerprotectedpure virtual
setTimer(double delay)core::Timer
Timer(EPoll &ePoll) (defined in core::Timer)core::Timer
Timer(EPoll &ePoll, double delay) (defined in core::Timer)core::Timer
~Timer() (defined in core::Timer)core::Timer
- - - - diff --git a/html/classcore_1_1Timer.html b/html/classcore_1_1Timer.html deleted file mode 100644 index 37e1526..0000000 --- a/html/classcore_1_1Timer.html +++ /dev/null @@ -1,224 +0,0 @@ - - - - - - - -My Project: core::Timer Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Public Member Functions | -Protected Member Functions | -List of all members
-
-
core::Timer Class Referenceabstract
-
-
- -

#include <Timer.h>

-
-Inheritance diagram for core::Timer:
-
-
Inheritance graph
- - - - -
[legend]
-
-Collaboration diagram for core::Timer:
-
-
Collaboration graph
- - - - - - -
[legend]
- - - - - - - - - - - - - - -

-Public Member Functions

Timer (EPoll &ePoll)
 
Timer (EPoll &ePoll, double delay)
 
void setTimer (double delay)
 
void clearTimer ()
 
double getElapsed ()
 
-double getEpoch ()
 
- - - -

-Protected Member Functions

virtual void onTimeout ()=0
 
-

Detailed Description

-

Timer

-

Set and trigger callback upon specified timeout.

-

The Timer is used to establish a timer using the timer socket interface. It cannot be instantiated directly but must be extended.

-

Member Function Documentation

- -

◆ clearTimer()

- -
-
- - - - - - - -
void core::Timer::clearTimer ()
-
-

Use the clearTimer() to unset the timer and return the timer to an idle state.

- -
-
- -

◆ getElapsed()

- -
-
- - - - - - - -
double core::Timer::getElapsed ()
-
-

Use the getElapsed() method to obtain the amount of time that has elapsed since the timer was set.

- -
-
- -

◆ onTimeout()

- -
-
- - - - - -
- - - - - - - -
virtual void core::Timer::onTimeout ()
-
-protectedpure virtual
-
-

This method is called when the time out occurs.

- -
-
- -

◆ setTimer()

- -
-
- - - - - - - - -
void core::Timer::setTimer (double delay)
-
-

Use the setTimer() method to set the time out value for timer. Setting the timer also starts the timer countdown. The clearTimer() method can be used to reset the timer without triggering the onTimeout() callback.

-
Parameters
- - -
delaythe amount of time in seconds to wait before trigering the onTimeout function.
-
-
- -
-
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/html/classcore_1_1Timer__coll__graph.map b/html/classcore_1_1Timer__coll__graph.map deleted file mode 100644 index 7a68e6d..0000000 --- a/html/classcore_1_1Timer__coll__graph.map +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/html/classcore_1_1Timer__coll__graph.md5 b/html/classcore_1_1Timer__coll__graph.md5 deleted file mode 100644 index caa7ab9..0000000 --- a/html/classcore_1_1Timer__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -78d90d95e4a8b85df71667f892d3425f \ No newline at end of file diff --git a/html/classcore_1_1Timer__coll__graph.png b/html/classcore_1_1Timer__coll__graph.png deleted file mode 100644 index bdb0746..0000000 Binary files a/html/classcore_1_1Timer__coll__graph.png and /dev/null differ diff --git a/html/classcore_1_1Timer__inherit__graph.map b/html/classcore_1_1Timer__inherit__graph.map deleted file mode 100644 index 0bf826e..0000000 --- a/html/classcore_1_1Timer__inherit__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/html/classcore_1_1Timer__inherit__graph.md5 b/html/classcore_1_1Timer__inherit__graph.md5 deleted file mode 100644 index 0f52868..0000000 --- a/html/classcore_1_1Timer__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -64e9d85be9082e6c2d3ed33b1e5faab9 \ No newline at end of file diff --git a/html/classcore_1_1Timer__inherit__graph.png b/html/classcore_1_1Timer__inherit__graph.png deleted file mode 100644 index f7de0c0..0000000 Binary files a/html/classcore_1_1Timer__inherit__graph.png and /dev/null differ diff --git a/html/classcore_1_1UDPServerSocket-members.html b/html/classcore_1_1UDPServerSocket-members.html deleted file mode 100644 index 8640d42..0000000 --- a/html/classcore_1_1UDPServerSocket-members.html +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - -My Project: Member List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
core::UDPServerSocket Member List
-
-
- -

This is the complete list of members for core::UDPServerSocket, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ePoll (defined in core::Socket)core::Socketprotected
eventReceived(struct epoll_event event)core::Socket
getBufferSize() (defined in core::Socket)core::Socketprotected
getDescriptor()core::Socket
needsToWrite() (defined in core::Socket)core::Socket
onDataReceived(std::string data) overridecore::UDPServerSocketprotectedvirtual
onDataReceived(coreutils::ZString &data) (defined in core::Socket)core::Socketprotectedvirtual
onRegister()core::Socketvirtual
onRegistered()core::Socketvirtual
onUnregister() (defined in core::Socket)core::Socketvirtual
onUnregistered()core::Socketvirtual
output(std::stringstream &out) (defined in core::Socket)core::Socket
core::Command::output(std::stringstream &out)core::Commandvirtual
processCommand(std::string request, std::stringstream &data) (defined in core::UDPServerSocket)core::UDPServerSocketprotected
core::Command::processCommand(coreutils::ZString &request, TCPSession &session)core::Commandvirtual
receiveData(coreutils::ZString &buffer)core::Socketprotectedvirtual
reset (defined in core::Socket)core::Socket
sessions (defined in core::UDPServerSocket)core::UDPServerSocketprotected
setBufferSize(int length) (defined in core::Socket)core::Socketprotected
setDescriptor(int descriptor)core::Socket
shutDown (defined in core::Socket)core::Socketprotected
shutdown(std::string text="unknown")core::Socket
Socket(EPoll &ePoll, std::string text="")core::Socket
UDPServerSocket(EPoll &ePoll, std::string url, short int port, std::string commandName) (defined in core::UDPServerSocket)core::UDPServerSocket
UDPSocket(EPoll &ePoll) (defined in core::UDPSocket)core::UDPSocket
write(std::string data)core::Socket
write(char *buffer, int length) (defined in core::Socket)core::Socket
~Socket()core::Socketvirtual
~UDPServerSocket() (defined in core::UDPServerSocket)core::UDPServerSocket
~UDPSocket() (defined in core::UDPSocket)core::UDPSocket
- - - - diff --git a/html/classcore_1_1UDPServerSocket.html b/html/classcore_1_1UDPServerSocket.html deleted file mode 100644 index e4c9b08..0000000 --- a/html/classcore_1_1UDPServerSocket.html +++ /dev/null @@ -1,252 +0,0 @@ - - - - - - - -My Project: core::UDPServerSocket Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Public Member Functions | -Protected Member Functions | -Protected Attributes | -List of all members
-
-
core::UDPServerSocket Class Reference
-
-
- -

#include <UDPServerSocket.h>

-
-Inheritance diagram for core::UDPServerSocket:
-
-
Inheritance graph
- - - - - - -
[legend]
-
-Collaboration diagram for core::UDPServerSocket:
-
-
Collaboration graph
- - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

UDPServerSocket (EPoll &ePoll, std::string url, short int port, std::string commandName)
 
- Public Member Functions inherited from core::UDPSocket
UDPSocket (EPoll &ePoll)
 
- Public Member Functions inherited from core::Socket
 Socket (EPoll &ePoll, std::string text="")
 
virtual ~Socket ()
 
void shutdown (std::string text="unknown")
 
void setDescriptor (int descriptor)
 Set the descriptor for the socket. More...
 
-int getDescriptor ()
 Get the descriptor for the socket.
-
 
bool eventReceived (struct epoll_event event)
 Parse epoll event and call specified callbacks. More...
 
int write (std::string data)
 
-void write (char *buffer, int length)
 
-void output (std::stringstream &out)
 
virtual void onRegister ()
 Called before the socket has registered with the epoll processing. More...
 
-virtual void onRegistered ()
 Called after the socket has been registered with epoll processing.
 
-virtual void onUnregister ()
 
virtual void onUnregistered ()
 Called when the socket has finished unregistering for the epoll processing. More...
 
-bool needsToWrite ()
 
- Public Member Functions inherited from core::Command
virtual int processCommand (coreutils::ZString &request, TCPSession &session)
 
virtual void output (std::stringstream &out)
 
- - - - - - - - - - - - - - - -

-Protected Member Functions

void onDataReceived (std::string data) override
 Called when data is received from the socket. More...
 
-int processCommand (std::string request, std::stringstream &data)
 
- Protected Member Functions inherited from core::Socket
-void setBufferSize (int length)
 
-int getBufferSize ()
 
-virtual void onDataReceived (coreutils::ZString &data)
 
virtual void receiveData (coreutils::ZString &buffer)
 
- - - - - - - - -

-Protected Attributes

-std::vector< Session * > sessions
 
- Protected Attributes inherited from core::Socket
-EPollePoll
 
-bool shutDown = false
 
- - - - -

-Additional Inherited Members

- Public Attributes inherited from core::Socket
-bool reset = false
 
-

Detailed Description

-

UDPSocket

-

Manage a socket connection as a UDP server type. Connections to the socket are processed through the session list functionality. A list of sessions is maintained in a vector object.

-

Member Function Documentation

- -

◆ onDataReceived()

- -
-
- - - - - -
- - - - - - - - -
void core::UDPServerSocket::onDataReceived (std::string data)
-
-overrideprotectedvirtual
-
- -

Called when data is received from the socket.

-

The onConnected method is called when the socket is ready to communicate. Writing to the socket can begin on this call to initiate a contact with the remote device. The onDataReceived method is called when the socket has received an event from epoll and there is data ready to be read from the socket. The default handler will pull the data and put it into the streambuf for the socket. EPOLLIN

-
Parameters
- - -
datathe data that has been received from the socket.
-
-
- -

Reimplemented from core::Socket.

- -
-
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/html/classcore_1_1UDPServerSocket__coll__graph.map b/html/classcore_1_1UDPServerSocket__coll__graph.map deleted file mode 100644 index fa03037..0000000 --- a/html/classcore_1_1UDPServerSocket__coll__graph.map +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/html/classcore_1_1UDPServerSocket__coll__graph.md5 b/html/classcore_1_1UDPServerSocket__coll__graph.md5 deleted file mode 100644 index 5937848..0000000 --- a/html/classcore_1_1UDPServerSocket__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -035ad54302d909c4c89d3db4330068a5 \ No newline at end of file diff --git a/html/classcore_1_1UDPServerSocket__coll__graph.png b/html/classcore_1_1UDPServerSocket__coll__graph.png deleted file mode 100644 index b126ca1..0000000 Binary files a/html/classcore_1_1UDPServerSocket__coll__graph.png and /dev/null differ diff --git a/html/classcore_1_1UDPServerSocket__inherit__graph.map b/html/classcore_1_1UDPServerSocket__inherit__graph.map deleted file mode 100644 index 50d416a..0000000 --- a/html/classcore_1_1UDPServerSocket__inherit__graph.map +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/html/classcore_1_1UDPServerSocket__inherit__graph.md5 b/html/classcore_1_1UDPServerSocket__inherit__graph.md5 deleted file mode 100644 index 53eb376..0000000 --- a/html/classcore_1_1UDPServerSocket__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -118e122dd91472e9619b8e9fce36868c \ No newline at end of file diff --git a/html/classcore_1_1UDPServerSocket__inherit__graph.png b/html/classcore_1_1UDPServerSocket__inherit__graph.png deleted file mode 100644 index ae2849d..0000000 Binary files a/html/classcore_1_1UDPServerSocket__inherit__graph.png and /dev/null differ diff --git a/html/classcore_1_1UDPSocket-members.html b/html/classcore_1_1UDPSocket-members.html deleted file mode 100644 index dd7aa19..0000000 --- a/html/classcore_1_1UDPSocket-members.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - -My Project: Member List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
core::UDPSocket Member List
-
-
- -

This is the complete list of members for core::UDPSocket, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - -
ePoll (defined in core::Socket)core::Socketprotected
eventReceived(struct epoll_event event)core::Socket
getBufferSize() (defined in core::Socket)core::Socketprotected
getDescriptor()core::Socket
needsToWrite() (defined in core::Socket)core::Socket
onDataReceived(std::string data)core::Socketprotectedvirtual
onDataReceived(coreutils::ZString &data) (defined in core::Socket)core::Socketprotectedvirtual
onRegister()core::Socketvirtual
onRegistered()core::Socketvirtual
onUnregister() (defined in core::Socket)core::Socketvirtual
onUnregistered()core::Socketvirtual
output(std::stringstream &out) (defined in core::Socket)core::Socket
receiveData(coreutils::ZString &buffer)core::Socketprotectedvirtual
reset (defined in core::Socket)core::Socket
setBufferSize(int length) (defined in core::Socket)core::Socketprotected
setDescriptor(int descriptor)core::Socket
shutdown(std::string text="unknown")core::Socket
shutDown (defined in core::Socket)core::Socketprotected
Socket(EPoll &ePoll, std::string text="")core::Socket
UDPSocket(EPoll &ePoll) (defined in core::UDPSocket)core::UDPSocket
write(std::string data)core::Socket
write(char *buffer, int length) (defined in core::Socket)core::Socket
~Socket()core::Socketvirtual
~UDPSocket() (defined in core::UDPSocket)core::UDPSocket
- - - - diff --git a/html/classcore_1_1UDPSocket.html b/html/classcore_1_1UDPSocket.html deleted file mode 100644 index a0ab9aa..0000000 --- a/html/classcore_1_1UDPSocket.html +++ /dev/null @@ -1,184 +0,0 @@ - - - - - - - -My Project: core::UDPSocket Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Public Member Functions | -List of all members
-
-
core::UDPSocket Class Reference
-
-
-
-Inheritance diagram for core::UDPSocket:
-
-
Inheritance graph
- - - - - -
[legend]
-
-Collaboration diagram for core::UDPSocket:
-
-
Collaboration graph
- - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

UDPSocket (EPoll &ePoll)
 
- Public Member Functions inherited from core::Socket
 Socket (EPoll &ePoll, std::string text="")
 
virtual ~Socket ()
 
void shutdown (std::string text="unknown")
 
void setDescriptor (int descriptor)
 Set the descriptor for the socket. More...
 
-int getDescriptor ()
 Get the descriptor for the socket.
-
 
bool eventReceived (struct epoll_event event)
 Parse epoll event and call specified callbacks. More...
 
int write (std::string data)
 
-void write (char *buffer, int length)
 
-void output (std::stringstream &out)
 
virtual void onRegister ()
 Called before the socket has registered with the epoll processing. More...
 
-virtual void onRegistered ()
 Called after the socket has been registered with epoll processing.
 
-virtual void onUnregister ()
 
virtual void onUnregistered ()
 Called when the socket has finished unregistering for the epoll processing. More...
 
-bool needsToWrite ()
 
- - - - - - - - - - - - - - - - - - - - - -

-Additional Inherited Members

- Public Attributes inherited from core::Socket
-bool reset = false
 
- Protected Member Functions inherited from core::Socket
-void setBufferSize (int length)
 
-int getBufferSize ()
 
virtual void onDataReceived (std::string data)
 Called when data is received from the socket. More...
 
-virtual void onDataReceived (coreutils::ZString &data)
 
virtual void receiveData (coreutils::ZString &buffer)
 
- Protected Attributes inherited from core::Socket
-EPollePoll
 
-bool shutDown = false
 
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/html/classcore_1_1UDPSocket__coll__graph.map b/html/classcore_1_1UDPSocket__coll__graph.map deleted file mode 100644 index c9fc2ac..0000000 --- a/html/classcore_1_1UDPSocket__coll__graph.map +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/html/classcore_1_1UDPSocket__coll__graph.md5 b/html/classcore_1_1UDPSocket__coll__graph.md5 deleted file mode 100644 index e438ab8..0000000 --- a/html/classcore_1_1UDPSocket__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -c3f1eff5f9e23ac18526a5ae94acc1be \ No newline at end of file diff --git a/html/classcore_1_1UDPSocket__coll__graph.png b/html/classcore_1_1UDPSocket__coll__graph.png deleted file mode 100644 index d545d43..0000000 Binary files a/html/classcore_1_1UDPSocket__coll__graph.png and /dev/null differ diff --git a/html/classcore_1_1UDPSocket__inherit__graph.map b/html/classcore_1_1UDPSocket__inherit__graph.map deleted file mode 100644 index 9e3bad0..0000000 --- a/html/classcore_1_1UDPSocket__inherit__graph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/html/classcore_1_1UDPSocket__inherit__graph.md5 b/html/classcore_1_1UDPSocket__inherit__graph.md5 deleted file mode 100644 index ac7a468..0000000 --- a/html/classcore_1_1UDPSocket__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -a322f59af8a5eb543fb07f45ca3ea19e \ No newline at end of file diff --git a/html/classcore_1_1UDPSocket__inherit__graph.png b/html/classcore_1_1UDPSocket__inherit__graph.png deleted file mode 100644 index 5d2cd22..0000000 Binary files a/html/classcore_1_1UDPSocket__inherit__graph.png and /dev/null differ diff --git a/html/classes.html b/html/classes.html deleted file mode 100644 index 4a8d4b0..0000000 --- a/html/classes.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - -My Project: Class Index - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
Class Index
-
-
-
C | E | I | O | S | T | U
-
-
-
C
-
Command (core)
CommandList (core)
ConsoleServer (core)
ConsoleSession (core)
-
-
E
-
EPoll (core)
-
-
I
-
INotify (core)
IPAddress (core)
IPAddressList (core)
-
-
O
-
Object (core)
-
-
S
-
SessionFilter (core)
Socket (core)
Subscription (core)
SubscriptionManager (core)
-
-
T
-
TCPServer (core)
TCPSession (core)
TCPSocket (core)
TerminalSession (core)
Thread (core)
ThreadScope (core)
Timer (core)
TLSServer (core)
TLSSession (core)
-
-
U
-
UDPServerSocket (core)
UDPSocket (core)
-
-
- - - - diff --git a/html/closed.png b/html/closed.png deleted file mode 100644 index 98cc2c9..0000000 Binary files a/html/closed.png and /dev/null differ diff --git a/html/doc.png b/html/doc.png deleted file mode 100644 index 17edabf..0000000 Binary files a/html/doc.png and /dev/null differ diff --git a/html/doxygen.css b/html/doxygen.css deleted file mode 100644 index ffbff02..0000000 --- a/html/doxygen.css +++ /dev/null @@ -1,1793 +0,0 @@ -/* The standard CSS for doxygen 1.9.1 */ - -body, table, div, p, dl { - font: 400 14px/22px Roboto,sans-serif; -} - -p.reference, p.definition { - font: 400 14px/22px Roboto,sans-serif; -} - -/* @group Heading Levels */ - -h1.groupheader { - font-size: 150%; -} - -.title { - font: 400 14px/28px Roboto,sans-serif; - font-size: 150%; - font-weight: bold; - margin: 10px 2px; -} - -h2.groupheader { - border-bottom: 1px solid #879ECB; - color: #354C7B; - font-size: 150%; - font-weight: normal; - margin-top: 1.75em; - padding-top: 8px; - padding-bottom: 4px; - width: 100%; -} - -h3.groupheader { - font-size: 100%; -} - -h1, h2, h3, h4, h5, h6 { - -webkit-transition: text-shadow 0.5s linear; - -moz-transition: text-shadow 0.5s linear; - -ms-transition: text-shadow 0.5s linear; - -o-transition: text-shadow 0.5s linear; - transition: text-shadow 0.5s linear; - margin-right: 15px; -} - -h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { - text-shadow: 0 0 15px cyan; -} - -dt { - font-weight: bold; -} - -ul.multicol { - -moz-column-gap: 1em; - -webkit-column-gap: 1em; - column-gap: 1em; - -moz-column-count: 3; - -webkit-column-count: 3; - column-count: 3; -} - -p.startli, p.startdd { - margin-top: 2px; -} - -th p.starttd, th p.intertd, th p.endtd { - font-size: 100%; - font-weight: 700; -} - -p.starttd { - margin-top: 0px; -} - -p.endli { - margin-bottom: 0px; -} - -p.enddd { - margin-bottom: 4px; -} - -p.endtd { - margin-bottom: 2px; -} - -p.interli { -} - -p.interdd { -} - -p.intertd { -} - -/* @end */ - -caption { - font-weight: bold; -} - -span.legend { - font-size: 70%; - text-align: center; -} - -h3.version { - font-size: 90%; - text-align: center; -} - -div.navtab { - border-right: 1px solid #A3B4D7; - padding-right: 15px; - text-align: right; - line-height: 110%; -} - -div.navtab table { - border-spacing: 0; -} - -td.navtab { - padding-right: 6px; - padding-left: 6px; -} -td.navtabHL { - background-image: url('tab_a.png'); - background-repeat:repeat-x; - padding-right: 6px; - padding-left: 6px; -} - -td.navtabHL a, td.navtabHL a:visited { - color: #fff; - text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); -} - -a.navtab { - font-weight: bold; -} - -div.qindex{ - text-align: center; - width: 100%; - line-height: 140%; - font-size: 130%; - color: #A0A0A0; -} - -dt.alphachar{ - font-size: 180%; - font-weight: bold; -} - -.alphachar a{ - color: black; -} - -.alphachar a:hover, .alphachar a:visited{ - text-decoration: none; -} - -.classindex dl { - padding: 25px; - column-count:1 -} - -.classindex dd { - display:inline-block; - margin-left: 50px; - width: 90%; - line-height: 1.15em; -} - -.classindex dl.odd { - background-color: #F8F9FC; -} - -@media(min-width: 1120px) { - .classindex dl { - column-count:2 - } -} - -@media(min-width: 1320px) { - .classindex dl { - column-count:3 - } -} - - -/* @group Link Styling */ - -a { - color: #3D578C; - font-weight: normal; - text-decoration: none; -} - -.contents a:visited { - color: #4665A2; -} - -a:hover { - text-decoration: underline; -} - -.contents a.qindexHL:visited { - color: #FFFFFF; -} - -a.el { - font-weight: bold; -} - -a.elRef { -} - -a.code, a.code:visited, a.line, a.line:visited { - color: #4665A2; -} - -a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { - color: #4665A2; -} - -/* @end */ - -dl.el { - margin-left: -1cm; -} - -ul { - overflow: hidden; /*Fixed: list item bullets overlap floating elements*/ -} - -#side-nav ul { - overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ -} - -#main-nav ul { - overflow: visible; /* reset ul rule for the navigation bar drop down lists */ -} - -.fragment { - text-align: left; - direction: ltr; - overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ - overflow-y: hidden; -} - -pre.fragment { - border: 1px solid #C4CFE5; - background-color: #FBFCFD; - padding: 4px 6px; - margin: 4px 8px 4px 2px; - overflow: auto; - word-wrap: break-word; - font-size: 9pt; - line-height: 125%; - font-family: monospace, fixed; - font-size: 105%; -} - -div.fragment { - padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ - margin: 4px 8px 4px 2px; - background-color: #FBFCFD; - border: 1px solid #C4CFE5; -} - -div.line { - font-family: monospace, fixed; - font-size: 13px; - min-height: 13px; - line-height: 1.0; - text-wrap: unrestricted; - white-space: -moz-pre-wrap; /* Moz */ - white-space: -pre-wrap; /* Opera 4-6 */ - white-space: -o-pre-wrap; /* Opera 7 */ - white-space: pre-wrap; /* CSS3 */ - word-wrap: break-word; /* IE 5.5+ */ - text-indent: -53px; - padding-left: 53px; - padding-bottom: 0px; - margin: 0px; - -webkit-transition-property: background-color, box-shadow; - -webkit-transition-duration: 0.5s; - -moz-transition-property: background-color, box-shadow; - -moz-transition-duration: 0.5s; - -ms-transition-property: background-color, box-shadow; - -ms-transition-duration: 0.5s; - -o-transition-property: background-color, box-shadow; - -o-transition-duration: 0.5s; - transition-property: background-color, box-shadow; - transition-duration: 0.5s; -} - -div.line:after { - content:"\000A"; - white-space: pre; -} - -div.line.glow { - background-color: cyan; - box-shadow: 0 0 10px cyan; -} - - -span.lineno { - padding-right: 4px; - text-align: right; - border-right: 2px solid #0F0; - background-color: #E8E8E8; - white-space: pre; -} -span.lineno a { - background-color: #D8D8D8; -} - -span.lineno a:hover { - background-color: #C8C8C8; -} - -.lineno { - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -div.ah, span.ah { - background-color: black; - font-weight: bold; - color: #FFFFFF; - margin-bottom: 3px; - margin-top: 3px; - padding: 0.2em; - border: solid thin #333; - border-radius: 0.5em; - -webkit-border-radius: .5em; - -moz-border-radius: .5em; - box-shadow: 2px 2px 3px #999; - -webkit-box-shadow: 2px 2px 3px #999; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; - background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); - background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); -} - -div.classindex ul { - list-style: none; - padding-left: 0; -} - -div.classindex span.ai { - display: inline-block; -} - -div.groupHeader { - margin-left: 16px; - margin-top: 12px; - font-weight: bold; -} - -div.groupText { - margin-left: 16px; - font-style: italic; -} - -body { - background-color: white; - color: black; - margin: 0; -} - -div.contents { - margin-top: 10px; - margin-left: 12px; - margin-right: 8px; -} - -td.indexkey { - background-color: #EBEFF6; - font-weight: bold; - border: 1px solid #C4CFE5; - margin: 2px 0px 2px 0; - padding: 2px 10px; - white-space: nowrap; - vertical-align: top; -} - -td.indexvalue { - background-color: #EBEFF6; - border: 1px solid #C4CFE5; - padding: 2px 10px; - margin: 2px 0px; -} - -tr.memlist { - background-color: #EEF1F7; -} - -p.formulaDsp { - text-align: center; -} - -img.formulaDsp { - -} - -img.formulaInl, img.inline { - vertical-align: middle; -} - -div.center { - text-align: center; - margin-top: 0px; - margin-bottom: 0px; - padding: 0px; -} - -div.center img { - border: 0px; -} - -address.footer { - text-align: right; - padding-right: 12px; -} - -img.footer { - border: 0px; - vertical-align: middle; -} - -/* @group Code Colorization */ - -span.keyword { - color: #008000 -} - -span.keywordtype { - color: #604020 -} - -span.keywordflow { - color: #e08000 -} - -span.comment { - color: #800000 -} - -span.preprocessor { - color: #806020 -} - -span.stringliteral { - color: #002080 -} - -span.charliteral { - color: #008080 -} - -span.vhdldigit { - color: #ff00ff -} - -span.vhdlchar { - color: #000000 -} - -span.vhdlkeyword { - color: #700070 -} - -span.vhdllogic { - color: #ff0000 -} - -blockquote { - background-color: #F7F8FB; - border-left: 2px solid #9CAFD4; - margin: 0 24px 0 4px; - padding: 0 12px 0 16px; -} - -blockquote.DocNodeRTL { - border-left: 0; - border-right: 2px solid #9CAFD4; - margin: 0 4px 0 24px; - padding: 0 16px 0 12px; -} - -/* @end */ - -/* -.search { - color: #003399; - font-weight: bold; -} - -form.search { - margin-bottom: 0px; - margin-top: 0px; -} - -input.search { - font-size: 75%; - color: #000080; - font-weight: normal; - background-color: #e8eef2; -} -*/ - -td.tiny { - font-size: 75%; -} - -.dirtab { - padding: 4px; - border-collapse: collapse; - border: 1px solid #A3B4D7; -} - -th.dirtab { - background: #EBEFF6; - font-weight: bold; -} - -hr { - height: 0px; - border: none; - border-top: 1px solid #4A6AAA; -} - -hr.footer { - height: 1px; -} - -/* @group Member Descriptions */ - -table.memberdecls { - border-spacing: 0px; - padding: 0px; -} - -.memberdecls td, .fieldtable tr { - -webkit-transition-property: background-color, box-shadow; - -webkit-transition-duration: 0.5s; - -moz-transition-property: background-color, box-shadow; - -moz-transition-duration: 0.5s; - -ms-transition-property: background-color, box-shadow; - -ms-transition-duration: 0.5s; - -o-transition-property: background-color, box-shadow; - -o-transition-duration: 0.5s; - transition-property: background-color, box-shadow; - transition-duration: 0.5s; -} - -.memberdecls td.glow, .fieldtable tr.glow { - background-color: cyan; - box-shadow: 0 0 15px cyan; -} - -.mdescLeft, .mdescRight, -.memItemLeft, .memItemRight, -.memTemplItemLeft, .memTemplItemRight, .memTemplParams { - background-color: #F9FAFC; - border: none; - margin: 4px; - padding: 1px 0 0 8px; -} - -.mdescLeft, .mdescRight { - padding: 0px 8px 4px 8px; - color: #555; -} - -.memSeparator { - border-bottom: 1px solid #DEE4F0; - line-height: 1px; - margin: 0px; - padding: 0px; -} - -.memItemLeft, .memTemplItemLeft { - white-space: nowrap; -} - -.memItemRight, .memTemplItemRight { - width: 100%; -} - -.memTemplParams { - color: #4665A2; - white-space: nowrap; - font-size: 80%; -} - -/* @end */ - -/* @group Member Details */ - -/* Styles for detailed member documentation */ - -.memtitle { - padding: 8px; - border-top: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; - border-top-right-radius: 4px; - border-top-left-radius: 4px; - margin-bottom: -1px; - background-image: url('nav_f.png'); - background-repeat: repeat-x; - background-color: #E2E8F2; - line-height: 1.25; - font-weight: 300; - float:left; -} - -.permalink -{ - font-size: 65%; - display: inline-block; - vertical-align: middle; -} - -.memtemplate { - font-size: 80%; - color: #4665A2; - font-weight: normal; - margin-left: 9px; -} - -.memnav { - background-color: #EBEFF6; - border: 1px solid #A3B4D7; - text-align: center; - margin: 2px; - margin-right: 15px; - padding: 2px; -} - -.mempage { - width: 100%; -} - -.memitem { - padding: 0; - margin-bottom: 10px; - margin-right: 5px; - -webkit-transition: box-shadow 0.5s linear; - -moz-transition: box-shadow 0.5s linear; - -ms-transition: box-shadow 0.5s linear; - -o-transition: box-shadow 0.5s linear; - transition: box-shadow 0.5s linear; - display: table !important; - width: 100%; -} - -.memitem.glow { - box-shadow: 0 0 15px cyan; -} - -.memname { - font-weight: 400; - margin-left: 6px; -} - -.memname td { - vertical-align: bottom; -} - -.memproto, dl.reflist dt { - border-top: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; - padding: 6px 0px 6px 0px; - color: #253555; - font-weight: bold; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - background-color: #DFE5F1; - /* opera specific markup */ - box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - border-top-right-radius: 4px; - /* firefox specific markup */ - -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - -moz-border-radius-topright: 4px; - /* webkit specific markup */ - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - -webkit-border-top-right-radius: 4px; - -} - -.overload { - font-family: "courier new",courier,monospace; - font-size: 65%; -} - -.memdoc, dl.reflist dd { - border-bottom: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; - padding: 6px 10px 2px 10px; - background-color: #FBFCFD; - border-top-width: 0; - background-image:url('nav_g.png'); - background-repeat:repeat-x; - background-color: #FFFFFF; - /* opera specific markup */ - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; - box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - /* firefox specific markup */ - -moz-border-radius-bottomleft: 4px; - -moz-border-radius-bottomright: 4px; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - /* webkit specific markup */ - -webkit-border-bottom-left-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -} - -dl.reflist dt { - padding: 5px; -} - -dl.reflist dd { - margin: 0px 0px 10px 0px; - padding: 5px; -} - -.paramkey { - text-align: right; -} - -.paramtype { - white-space: nowrap; -} - -.paramname { - color: #602020; - white-space: nowrap; -} -.paramname em { - font-style: normal; -} -.paramname code { - line-height: 14px; -} - -.params, .retval, .exception, .tparams { - margin-left: 0px; - padding-left: 0px; -} - -.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { - font-weight: bold; - vertical-align: top; -} - -.params .paramtype, .tparams .paramtype { - font-style: italic; - vertical-align: top; -} - -.params .paramdir, .tparams .paramdir { - font-family: "courier new",courier,monospace; - vertical-align: top; -} - -table.mlabels { - border-spacing: 0px; -} - -td.mlabels-left { - width: 100%; - padding: 0px; -} - -td.mlabels-right { - vertical-align: bottom; - padding: 0px; - white-space: nowrap; -} - -span.mlabels { - margin-left: 8px; -} - -span.mlabel { - background-color: #728DC1; - border-top:1px solid #5373B4; - border-left:1px solid #5373B4; - border-right:1px solid #C4CFE5; - border-bottom:1px solid #C4CFE5; - text-shadow: none; - color: white; - margin-right: 4px; - padding: 2px 3px; - border-radius: 3px; - font-size: 7pt; - white-space: nowrap; - vertical-align: middle; -} - - - -/* @end */ - -/* these are for tree view inside a (index) page */ - -div.directory { - margin: 10px 0px; - border-top: 1px solid #9CAFD4; - border-bottom: 1px solid #9CAFD4; - width: 100%; -} - -.directory table { - border-collapse:collapse; -} - -.directory td { - margin: 0px; - padding: 0px; - vertical-align: top; -} - -.directory td.entry { - white-space: nowrap; - padding-right: 6px; - padding-top: 3px; -} - -.directory td.entry a { - outline:none; -} - -.directory td.entry a img { - border: none; -} - -.directory td.desc { - width: 100%; - padding-left: 6px; - padding-right: 6px; - padding-top: 3px; - border-left: 1px solid rgba(0,0,0,0.05); -} - -.directory tr.even { - padding-left: 6px; - background-color: #F7F8FB; -} - -.directory img { - vertical-align: -30%; -} - -.directory .levels { - white-space: nowrap; - width: 100%; - text-align: right; - font-size: 9pt; -} - -.directory .levels span { - cursor: pointer; - padding-left: 2px; - padding-right: 2px; - color: #3D578C; -} - -.arrow { - color: #9CAFD4; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - cursor: pointer; - font-size: 80%; - display: inline-block; - width: 16px; - height: 22px; -} - -.icon { - font-family: Arial, Helvetica; - font-weight: bold; - font-size: 12px; - height: 14px; - width: 16px; - display: inline-block; - background-color: #728DC1; - color: white; - text-align: center; - border-radius: 4px; - margin-left: 2px; - margin-right: 2px; -} - -.icona { - width: 24px; - height: 22px; - display: inline-block; -} - -.iconfopen { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:url('folderopen.png'); - background-position: 0px -4px; - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; -} - -.iconfclosed { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:url('folderclosed.png'); - background-position: 0px -4px; - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; -} - -.icondoc { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:url('doc.png'); - background-position: 0px -4px; - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; -} - -table.directory { - font: 400 14px Roboto,sans-serif; -} - -/* @end */ - -div.dynheader { - margin-top: 8px; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -address { - font-style: normal; - color: #2A3D61; -} - -table.doxtable caption { - caption-side: top; -} - -table.doxtable { - border-collapse:collapse; - margin-top: 4px; - margin-bottom: 4px; -} - -table.doxtable td, table.doxtable th { - border: 1px solid #2D4068; - padding: 3px 7px 2px; -} - -table.doxtable th { - background-color: #374F7F; - color: #FFFFFF; - font-size: 110%; - padding-bottom: 4px; - padding-top: 5px; -} - -table.fieldtable { - /*width: 100%;*/ - margin-bottom: 10px; - border: 1px solid #A8B8D9; - border-spacing: 0px; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - border-radius: 4px; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; - -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); - box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); -} - -.fieldtable td, .fieldtable th { - padding: 3px 7px 2px; -} - -.fieldtable td.fieldtype, .fieldtable td.fieldname { - white-space: nowrap; - border-right: 1px solid #A8B8D9; - border-bottom: 1px solid #A8B8D9; - vertical-align: top; -} - -.fieldtable td.fieldname { - padding-top: 3px; -} - -.fieldtable td.fielddoc { - border-bottom: 1px solid #A8B8D9; - /*width: 100%;*/ -} - -.fieldtable td.fielddoc p:first-child { - margin-top: 0px; -} - -.fieldtable td.fielddoc p:last-child { - margin-bottom: 2px; -} - -.fieldtable tr:last-child td { - border-bottom: none; -} - -.fieldtable th { - background-image:url('nav_f.png'); - background-repeat:repeat-x; - background-color: #E2E8F2; - font-size: 90%; - color: #253555; - padding-bottom: 4px; - padding-top: 5px; - text-align:left; - font-weight: 400; - -moz-border-radius-topleft: 4px; - -moz-border-radius-topright: 4px; - -webkit-border-top-left-radius: 4px; - -webkit-border-top-right-radius: 4px; - border-top-left-radius: 4px; - border-top-right-radius: 4px; - border-bottom: 1px solid #A8B8D9; -} - - -.tabsearch { - top: 0px; - left: 10px; - height: 36px; - background-image: url('tab_b.png'); - z-index: 101; - overflow: hidden; - font-size: 13px; -} - -.navpath ul -{ - font-size: 11px; - background-image:url('tab_b.png'); - background-repeat:repeat-x; - background-position: 0 -5px; - height:30px; - line-height:30px; - color:#8AA0CC; - border:solid 1px #C2CDE4; - overflow:hidden; - margin:0px; - padding:0px; -} - -.navpath li -{ - list-style-type:none; - float:left; - padding-left:10px; - padding-right:15px; - background-image:url('bc_s.png'); - background-repeat:no-repeat; - background-position:right; - color:#364D7C; -} - -.navpath li.navelem a -{ - height:32px; - display:block; - text-decoration: none; - outline: none; - color: #283A5D; - font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - text-decoration: none; -} - -.navpath li.navelem a:hover -{ - color:#6884BD; -} - -.navpath li.footer -{ - list-style-type:none; - float:right; - padding-left:10px; - padding-right:15px; - background-image:none; - background-repeat:no-repeat; - background-position:right; - color:#364D7C; - font-size: 8pt; -} - - -div.summary -{ - float: right; - font-size: 8pt; - padding-right: 5px; - width: 50%; - text-align: right; -} - -div.summary a -{ - white-space: nowrap; -} - -table.classindex -{ - margin: 10px; - white-space: nowrap; - margin-left: 3%; - margin-right: 3%; - width: 94%; - border: 0; - border-spacing: 0; - padding: 0; -} - -div.ingroups -{ - font-size: 8pt; - width: 50%; - text-align: left; -} - -div.ingroups a -{ - white-space: nowrap; -} - -div.header -{ - background-image:url('nav_h.png'); - background-repeat:repeat-x; - background-color: #F9FAFC; - margin: 0px; - border-bottom: 1px solid #C4CFE5; -} - -div.headertitle -{ - padding: 5px 5px 5px 10px; -} - -.PageDocRTL-title div.headertitle { - text-align: right; - direction: rtl; -} - -dl { - padding: 0 0 0 0; -} - -/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ -dl.section { - margin-left: 0px; - padding-left: 0px; -} - -dl.section.DocNodeRTL { - margin-right: 0px; - padding-right: 0px; -} - -dl.note { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #D0C000; -} - -dl.note.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #D0C000; -} - -dl.warning, dl.attention { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #FF0000; -} - -dl.warning.DocNodeRTL, dl.attention.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #FF0000; -} - -dl.pre, dl.post, dl.invariant { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #00D000; -} - -dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #00D000; -} - -dl.deprecated { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #505050; -} - -dl.deprecated.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #505050; -} - -dl.todo { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #00C0E0; -} - -dl.todo.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #00C0E0; -} - -dl.test { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #3030E0; -} - -dl.test.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #3030E0; -} - -dl.bug { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #C08050; -} - -dl.bug.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #C08050; -} - -dl.section dd { - margin-bottom: 6px; -} - - -#projectlogo -{ - text-align: center; - vertical-align: bottom; - border-collapse: separate; -} - -#projectlogo img -{ - border: 0px none; -} - -#projectalign -{ - vertical-align: middle; -} - -#projectname -{ - font: 300% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 2px 0px; -} - -#projectbrief -{ - font: 120% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 0px; -} - -#projectnumber -{ - font: 50% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 0px; -} - -#titlearea -{ - padding: 0px; - margin: 0px; - width: 100%; - border-bottom: 1px solid #5373B4; -} - -.image -{ - text-align: center; -} - -.dotgraph -{ - text-align: center; -} - -.mscgraph -{ - text-align: center; -} - -.plantumlgraph -{ - text-align: center; -} - -.diagraph -{ - text-align: center; -} - -.caption -{ - font-weight: bold; -} - -div.zoom -{ - border: 1px solid #90A5CE; -} - -dl.citelist { - margin-bottom:50px; -} - -dl.citelist dt { - color:#334975; - float:left; - font-weight:bold; - margin-right:10px; - padding:5px; - text-align:right; - width:52px; -} - -dl.citelist dd { - margin:2px 0 2px 72px; - padding:5px 0; -} - -div.toc { - padding: 14px 25px; - background-color: #F4F6FA; - border: 1px solid #D8DFEE; - border-radius: 7px 7px 7px 7px; - float: right; - height: auto; - margin: 0 8px 10px 10px; - width: 200px; -} - -.PageDocRTL-title div.toc { - float: left !important; - text-align: right; -} - -div.toc li { - background: url("bdwn.png") no-repeat scroll 0 5px transparent; - font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; - margin-top: 5px; - padding-left: 10px; - padding-top: 2px; -} - -.PageDocRTL-title div.toc li { - background-position-x: right !important; - padding-left: 0 !important; - padding-right: 10px; -} - -div.toc h3 { - font: bold 12px/1.2 Arial,FreeSans,sans-serif; - color: #4665A2; - border-bottom: 0 none; - margin: 0; -} - -div.toc ul { - list-style: none outside none; - border: medium none; - padding: 0px; -} - -div.toc li.level1 { - margin-left: 0px; -} - -div.toc li.level2 { - margin-left: 15px; -} - -div.toc li.level3 { - margin-left: 30px; -} - -div.toc li.level4 { - margin-left: 45px; -} - -span.emoji { - /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html - * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort; - */ -} - -.PageDocRTL-title div.toc li.level1 { - margin-left: 0 !important; - margin-right: 0; -} - -.PageDocRTL-title div.toc li.level2 { - margin-left: 0 !important; - margin-right: 15px; -} - -.PageDocRTL-title div.toc li.level3 { - margin-left: 0 !important; - margin-right: 30px; -} - -.PageDocRTL-title div.toc li.level4 { - margin-left: 0 !important; - margin-right: 45px; -} - -.inherit_header { - font-weight: bold; - color: gray; - cursor: pointer; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.inherit_header td { - padding: 6px 0px 2px 5px; -} - -.inherit { - display: none; -} - -tr.heading h2 { - margin-top: 12px; - margin-bottom: 4px; -} - -/* tooltip related style info */ - -.ttc { - position: absolute; - display: none; -} - -#powerTip { - cursor: default; - white-space: nowrap; - background-color: white; - border: 1px solid gray; - border-radius: 4px 4px 4px 4px; - box-shadow: 1px 1px 7px gray; - display: none; - font-size: smaller; - max-width: 80%; - opacity: 0.9; - padding: 1ex 1em 1em; - position: absolute; - z-index: 2147483647; -} - -#powerTip div.ttdoc { - color: grey; - font-style: italic; -} - -#powerTip div.ttname a { - font-weight: bold; -} - -#powerTip div.ttname { - font-weight: bold; -} - -#powerTip div.ttdeci { - color: #006318; -} - -#powerTip div { - margin: 0px; - padding: 0px; - font: 12px/16px Roboto,sans-serif; -} - -#powerTip:before, #powerTip:after { - content: ""; - position: absolute; - margin: 0px; -} - -#powerTip.n:after, #powerTip.n:before, -#powerTip.s:after, #powerTip.s:before, -#powerTip.w:after, #powerTip.w:before, -#powerTip.e:after, #powerTip.e:before, -#powerTip.ne:after, #powerTip.ne:before, -#powerTip.se:after, #powerTip.se:before, -#powerTip.nw:after, #powerTip.nw:before, -#powerTip.sw:after, #powerTip.sw:before { - border: solid transparent; - content: " "; - height: 0; - width: 0; - position: absolute; -} - -#powerTip.n:after, #powerTip.s:after, -#powerTip.w:after, #powerTip.e:after, -#powerTip.nw:after, #powerTip.ne:after, -#powerTip.sw:after, #powerTip.se:after { - border-color: rgba(255, 255, 255, 0); -} - -#powerTip.n:before, #powerTip.s:before, -#powerTip.w:before, #powerTip.e:before, -#powerTip.nw:before, #powerTip.ne:before, -#powerTip.sw:before, #powerTip.se:before { - border-color: rgba(128, 128, 128, 0); -} - -#powerTip.n:after, #powerTip.n:before, -#powerTip.ne:after, #powerTip.ne:before, -#powerTip.nw:after, #powerTip.nw:before { - top: 100%; -} - -#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { - border-top-color: #FFFFFF; - border-width: 10px; - margin: 0px -10px; -} -#powerTip.n:before { - border-top-color: #808080; - border-width: 11px; - margin: 0px -11px; -} -#powerTip.n:after, #powerTip.n:before { - left: 50%; -} - -#powerTip.nw:after, #powerTip.nw:before { - right: 14px; -} - -#powerTip.ne:after, #powerTip.ne:before { - left: 14px; -} - -#powerTip.s:after, #powerTip.s:before, -#powerTip.se:after, #powerTip.se:before, -#powerTip.sw:after, #powerTip.sw:before { - bottom: 100%; -} - -#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { - border-bottom-color: #FFFFFF; - border-width: 10px; - margin: 0px -10px; -} - -#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { - border-bottom-color: #808080; - border-width: 11px; - margin: 0px -11px; -} - -#powerTip.s:after, #powerTip.s:before { - left: 50%; -} - -#powerTip.sw:after, #powerTip.sw:before { - right: 14px; -} - -#powerTip.se:after, #powerTip.se:before { - left: 14px; -} - -#powerTip.e:after, #powerTip.e:before { - left: 100%; -} -#powerTip.e:after { - border-left-color: #FFFFFF; - border-width: 10px; - top: 50%; - margin-top: -10px; -} -#powerTip.e:before { - border-left-color: #808080; - border-width: 11px; - top: 50%; - margin-top: -11px; -} - -#powerTip.w:after, #powerTip.w:before { - right: 100%; -} -#powerTip.w:after { - border-right-color: #FFFFFF; - border-width: 10px; - top: 50%; - margin-top: -10px; -} -#powerTip.w:before { - border-right-color: #808080; - border-width: 11px; - top: 50%; - margin-top: -11px; -} - -@media print -{ - #top { display: none; } - #side-nav { display: none; } - #nav-path { display: none; } - body { overflow:visible; } - h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } - .summary { display: none; } - .memitem { page-break-inside: avoid; } - #doc-content - { - margin-left:0 !important; - height:auto !important; - width:auto !important; - overflow:inherit; - display:inline; - } -} - -/* @group Markdown */ - -table.markdownTable { - border-collapse:collapse; - margin-top: 4px; - margin-bottom: 4px; -} - -table.markdownTable td, table.markdownTable th { - border: 1px solid #2D4068; - padding: 3px 7px 2px; -} - -table.markdownTable tr { -} - -th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { - background-color: #374F7F; - color: #FFFFFF; - font-size: 110%; - padding-bottom: 4px; - padding-top: 5px; -} - -th.markdownTableHeadLeft, td.markdownTableBodyLeft { - text-align: left -} - -th.markdownTableHeadRight, td.markdownTableBodyRight { - text-align: right -} - -th.markdownTableHeadCenter, td.markdownTableBodyCenter { - text-align: center -} - -.DocNodeRTL { - text-align: right; - direction: rtl; -} - -.DocNodeLTR { - text-align: left; - direction: ltr; -} - -table.DocNodeRTL { - width: auto; - margin-right: 0; - margin-left: auto; -} - -table.DocNodeLTR { - width: auto; - margin-right: auto; - margin-left: 0; -} - -tt, code, kbd, samp -{ - display: inline-block; - direction:ltr; -} -/* @end */ - -u { - text-decoration: underline; -} - diff --git a/html/doxygen.png b/html/doxygen.png deleted file mode 100644 index 3ff17d8..0000000 Binary files a/html/doxygen.png and /dev/null differ diff --git a/html/doxygen.svg b/html/doxygen.svg deleted file mode 100644 index d42dad5..0000000 --- a/html/doxygen.svg +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/html/dynsections.js b/html/dynsections.js deleted file mode 100644 index 3174bd7..0000000 --- a/html/dynsections.js +++ /dev/null @@ -1,121 +0,0 @@ -/* - @licstart The following is the entire license notice for the JavaScript code in this file. - - The MIT License (MIT) - - Copyright (C) 1997-2020 by Dimitri van Heesch - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software - and associated documentation files (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, publish, distribute, - sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all copies or - substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING - BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - @licend The above is the entire license notice for the JavaScript code in this file - */ -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 - - - - - - -My Project: File List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
File List
-
-
-
Here is a list of all documented files with brief descriptions:
- - - - - - - - - - - - - - - - - - - - - - - - - -
 Command.h
 CommandList.h
 ConsoleServer.h
 ConsoleSession.h
 EPoll.h
 INotify.h
 IPAddress.h
 IPAddressList.h
 Object.h
 SessionFilter.h
 Socket.h
 Subscription.h
 SubscriptionManager.h
 TCPServer.h
 TCPSession.h
 TCPSocket.h
 TerminalSession.h
 Thread.h
 ThreadScope.h
 Timer.h
 TLSServer.h
 TLSSession.h
 UDPServerSocket.h
 UDPSocket.h
-
-
- - - - diff --git a/html/folderclosed.png b/html/folderclosed.png deleted file mode 100644 index bb8ab35..0000000 Binary files a/html/folderclosed.png and /dev/null differ diff --git a/html/folderopen.png b/html/folderopen.png deleted file mode 100644 index d6c7f67..0000000 Binary files a/html/folderopen.png and /dev/null differ diff --git a/html/functions.html b/html/functions.html deleted file mode 100644 index 3817e37..0000000 --- a/html/functions.html +++ /dev/null @@ -1,317 +0,0 @@ - - - - - - - -My Project: Class Members - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- a -

- - -

- b -

- - -

- c -

- - -

- e -

- - -

- g -

- - -

- i -

- - -

- m -

- - -

- o -

- - -

- p -

- - -

- r -

- - -

- s -

- - -

- t -

- - -

- u -

- - -

- w -

- - -

- ~ -

-
- - - - diff --git a/html/functions_func.html b/html/functions_func.html deleted file mode 100644 index ff8d96c..0000000 --- a/html/functions_func.html +++ /dev/null @@ -1,287 +0,0 @@ - - - - - - - -My Project: Class Members - Functions - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- a -

- - -

- c -

- - -

- e -

- - -

- g -

- - -

- i -

- - -

- o -

- - -

- p -

- - -

- r -

- - -

- s -

- - -

- t -

- - -

- u -

- - -

- w -

- - -

- ~ -

-
- - - - diff --git a/html/functions_vars.html b/html/functions_vars.html deleted file mode 100644 index 5ebf48c..0000000 --- a/html/functions_vars.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - -My Project: Class Members - Variables - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
- - - - diff --git a/html/graph_legend.html b/html/graph_legend.html deleted file mode 100644 index 4150f7a..0000000 --- a/html/graph_legend.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - -My Project: Graph Legend - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
Graph Legend
-
-
-

This page explains how to interpret the graphs that are generated by doxygen.

-

Consider the following example:

/*! Invisible class because of truncation */
-
class Invisible { };
-
-
/*! Truncated class, inheritance relation is hidden */
-
class Truncated : public Invisible { };
-
-
/* Class not documented with doxygen comments */
-
class Undocumented { };
-
-
/*! Class that is inherited using public inheritance */
-
class PublicBase : public Truncated { };
-
-
/*! A template class */
-
template<class T> class Templ { };
-
-
/*! Class that is inherited using protected inheritance */
-
class ProtectedBase { };
-
-
/*! Class that is inherited using private inheritance */
-
class PrivateBase { };
-
-
/*! Class that is used by the Inherited class */
-
class Used { };
-
-
/*! Super class that inherits a number of other classes */
-
class Inherited : public PublicBase,
-
protected ProtectedBase,
-
private PrivateBase,
-
public Undocumented,
-
public Templ<int>
-
{
-
private:
-
Used *m_usedClass;
-
};
-

This will result in the following graph:

-

The boxes in the above graph have the following meaning:

- -

The arrows have the following meaning:

- -
- - - - diff --git a/html/graph_legend.md5 b/html/graph_legend.md5 deleted file mode 100644 index 8fcdccd..0000000 --- a/html/graph_legend.md5 +++ /dev/null @@ -1 +0,0 @@ -f51bf6e9a10430aafef59831b08dcbfe \ No newline at end of file diff --git a/html/graph_legend.png b/html/graph_legend.png deleted file mode 100644 index 58209e0..0000000 Binary files a/html/graph_legend.png and /dev/null differ diff --git a/html/hierarchy.html b/html/hierarchy.html deleted file mode 100644 index b68e9f6..0000000 --- a/html/hierarchy.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - -My Project: Class Hierarchy - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
Class Hierarchy
-
-
-
-

Go to the graphical class hierarchy

-This inheritance list is sorted roughly, but not completely, alphabetically:
-
- - - - diff --git a/html/index.html b/html/index.html deleted file mode 100644 index 3b71ffc..0000000 --- a/html/index.html +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - -My Project: Main Page - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
My Project Documentation
-
-
-
- - - - diff --git a/html/inherit_graph_0.map b/html/inherit_graph_0.map deleted file mode 100644 index 3650bdf..0000000 --- a/html/inherit_graph_0.map +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/html/inherit_graph_0.md5 b/html/inherit_graph_0.md5 deleted file mode 100644 index d56a1b1..0000000 --- a/html/inherit_graph_0.md5 +++ /dev/null @@ -1 +0,0 @@ -f2b3d43ad4cf00974b8ca278ded9a452 \ No newline at end of file diff --git a/html/inherit_graph_0.png b/html/inherit_graph_0.png deleted file mode 100644 index 3d82137..0000000 Binary files a/html/inherit_graph_0.png and /dev/null differ diff --git a/html/inherit_graph_1.map b/html/inherit_graph_1.map deleted file mode 100644 index edcb801..0000000 --- a/html/inherit_graph_1.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/html/inherit_graph_1.md5 b/html/inherit_graph_1.md5 deleted file mode 100644 index d70011b..0000000 --- a/html/inherit_graph_1.md5 +++ /dev/null @@ -1 +0,0 @@ -d019270962bf71fea9f33cb5799a0ff7 \ No newline at end of file diff --git a/html/inherit_graph_1.png b/html/inherit_graph_1.png deleted file mode 100644 index 8d04063..0000000 Binary files a/html/inherit_graph_1.png and /dev/null differ diff --git a/html/inherit_graph_2.map b/html/inherit_graph_2.map deleted file mode 100644 index 372f02b..0000000 --- a/html/inherit_graph_2.map +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/html/inherit_graph_2.md5 b/html/inherit_graph_2.md5 deleted file mode 100644 index 281e267..0000000 --- a/html/inherit_graph_2.md5 +++ /dev/null @@ -1 +0,0 @@ -f01cc99cf9042d3e6f8a4717869b8981 \ No newline at end of file diff --git a/html/inherit_graph_2.png b/html/inherit_graph_2.png deleted file mode 100644 index 14eb4bb..0000000 Binary files a/html/inherit_graph_2.png and /dev/null differ diff --git a/html/inherit_graph_3.map b/html/inherit_graph_3.map deleted file mode 100644 index 3e03bc7..0000000 --- a/html/inherit_graph_3.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/html/inherit_graph_3.md5 b/html/inherit_graph_3.md5 deleted file mode 100644 index b401073..0000000 --- a/html/inherit_graph_3.md5 +++ /dev/null @@ -1 +0,0 @@ -15fa81b48b99ac4af8ab5eec3674b2a5 \ No newline at end of file diff --git a/html/inherit_graph_3.png b/html/inherit_graph_3.png deleted file mode 100644 index 83da18a..0000000 Binary files a/html/inherit_graph_3.png and /dev/null differ diff --git a/html/inherit_graph_4.map b/html/inherit_graph_4.map deleted file mode 100644 index 5ab4fa2..0000000 --- a/html/inherit_graph_4.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/html/inherit_graph_4.md5 b/html/inherit_graph_4.md5 deleted file mode 100644 index 10c264c..0000000 --- a/html/inherit_graph_4.md5 +++ /dev/null @@ -1 +0,0 @@ -af3a9400a188146f4f12e1a0e129faf2 \ No newline at end of file diff --git a/html/inherit_graph_4.png b/html/inherit_graph_4.png deleted file mode 100644 index 8dd8946..0000000 Binary files a/html/inherit_graph_4.png and /dev/null differ diff --git a/html/inherits.html b/html/inherits.html deleted file mode 100644 index ab9ea35..0000000 --- a/html/inherits.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - -My Project: Class Hierarchy - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
Class Hierarchy
-
-
- - - - - - -
- - - - - - - - - - - - - - - - - - - - -
- - - -
- - - - - - -
- - - -
- - - -
-
- - - - diff --git a/html/jquery.js b/html/jquery.js deleted file mode 100644 index 103c32d..0000000 --- a/html/jquery.js +++ /dev/null @@ -1,35 +0,0 @@ -/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0a;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),h=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(h=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):h=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),h}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("
"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widthi?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,(i>0||u>a(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var n=!1;t(document).on("mouseup",function(){n=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!n){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),n=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,n=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("
").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("
"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidtht.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("
"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element -},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),m&&(p-=l),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable});/** - * Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler - * Licensed under MIT - * @author Ariel Flesler - * @version 2.1.2 - */ -;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 - * http://www.smartmenus.org/ - * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/html/menu.js b/html/menu.js deleted file mode 100644 index 2fe2214..0000000 --- a/html/menu.js +++ /dev/null @@ -1,51 +0,0 @@ -/* - @licstart The following is the entire license notice for the JavaScript code in this file. - - The MIT License (MIT) - - Copyright (C) 1997-2020 by Dimitri van Heesch - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software - and associated documentation files (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, publish, distribute, - sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all copies or - substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING - BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - @licend The above is the entire license notice for the JavaScript code in this file - */ -function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { - function makeTree(data,relPath) { - var result=''; - if ('children' in data) { - result+=''; - } - 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('
  • '); - } else { - $('#main-menu').append('
  • '); - } - } - $('#main-menu').smartmenus(); -} -/* @license-end */ diff --git a/html/menudata.js b/html/menudata.js deleted file mode 100644 index 0b7b348..0000000 --- a/html/menudata.js +++ /dev/null @@ -1,64 +0,0 @@ -/* - @licstart The following is the entire license notice for the JavaScript code in this file. - - The MIT License (MIT) - - Copyright (C) 1997-2020 by Dimitri van Heesch - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software - and associated documentation files (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, publish, distribute, - sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all copies or - substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING - BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - @licend The above is the entire license notice for the JavaScript code in this file -*/ -var menudata={children:[ -{text:"Main Page",url:"index.html"}, -{text:"Classes",url:"annotated.html",children:[ -{text:"Class List",url:"annotated.html"}, -{text:"Class Index",url:"classes.html"}, -{text:"Class Hierarchy",url:"inherits.html"}, -{text:"Class Members",url:"functions.html",children:[ -{text:"All",url:"functions.html",children:[ -{text:"a",url:"functions.html#index_a"}, -{text:"b",url:"functions.html#index_b"}, -{text:"c",url:"functions.html#index_c"}, -{text:"e",url:"functions.html#index_e"}, -{text:"g",url:"functions.html#index_g"}, -{text:"i",url:"functions.html#index_i"}, -{text:"m",url:"functions.html#index_m"}, -{text:"o",url:"functions.html#index_o"}, -{text:"p",url:"functions.html#index_p"}, -{text:"r",url:"functions.html#index_r"}, -{text:"s",url:"functions.html#index_s"}, -{text:"t",url:"functions.html#index_t"}, -{text:"u",url:"functions.html#index_u"}, -{text:"w",url:"functions.html#index_w"}, -{text:"~",url:"functions.html#index__7E"}]}, -{text:"Functions",url:"functions_func.html",children:[ -{text:"a",url:"functions_func.html#index_a"}, -{text:"c",url:"functions_func.html#index_c"}, -{text:"e",url:"functions_func.html#index_e"}, -{text:"g",url:"functions_func.html#index_g"}, -{text:"i",url:"functions_func.html#index_i"}, -{text:"o",url:"functions_func.html#index_o"}, -{text:"p",url:"functions_func.html#index_p"}, -{text:"r",url:"functions_func.html#index_r"}, -{text:"s",url:"functions_func.html#index_s"}, -{text:"t",url:"functions_func.html#index_t"}, -{text:"u",url:"functions_func.html#index_u"}, -{text:"w",url:"functions_func.html#index_w"}, -{text:"~",url:"functions_func.html#index__7E"}]}, -{text:"Variables",url:"functions_vars.html"}]}]}, -{text:"Files",url:"files.html",children:[ -{text:"File List",url:"files.html"}]}]} diff --git a/html/nav_f.png b/html/nav_f.png deleted file mode 100644 index 72a58a5..0000000 Binary files a/html/nav_f.png and /dev/null differ diff --git a/html/nav_g.png b/html/nav_g.png deleted file mode 100644 index 2093a23..0000000 Binary files a/html/nav_g.png and /dev/null differ diff --git a/html/nav_h.png b/html/nav_h.png deleted file mode 100644 index 33389b1..0000000 Binary files a/html/nav_h.png and /dev/null differ diff --git a/html/open.png b/html/open.png deleted file mode 100644 index 30f75c7..0000000 Binary files a/html/open.png and /dev/null differ diff --git a/html/search/all_0.html b/html/search/all_0.html deleted file mode 100644 index 1ec5b2d..0000000 --- a/html/search/all_0.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/all_0.js b/html/search/all_0.js deleted file mode 100644 index 71e0478..0000000 --- a/html/search/all_0.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['add_0',['add',['../classcore_1_1CommandList.html#a7a45e75e3d21a25fd3f7e887acf395e9',1,'core::CommandList']]] -]; diff --git a/html/search/all_1.html b/html/search/all_1.html deleted file mode 100644 index 9f80e90..0000000 --- a/html/search/all_1.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/all_1.js b/html/search/all_1.js deleted file mode 100644 index 86ebf98..0000000 --- a/html/search/all_1.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['blacklist_1',['blackList',['../classcore_1_1TCPServer.html#a82f6bf16e4ab20d8b30da09e034fffff',1,'core::TCPServer']]] -]; diff --git a/html/search/all_2.html b/html/search/all_2.html deleted file mode 100644 index 02cfffc..0000000 --- a/html/search/all_2.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/all_2.js b/html/search/all_2.js deleted file mode 100644 index a45d7e0..0000000 --- a/html/search/all_2.js +++ /dev/null @@ -1,11 +0,0 @@ -var searchData= -[ - ['clear_2',['clear',['../classcore_1_1TerminalSession.html#a42bb06857891220a831da04248233935',1,'core::TerminalSession']]], - ['cleareol_3',['clearEOL',['../classcore_1_1TerminalSession.html#aa660768eed03b0b996a749e8a146446c',1,'core::TerminalSession']]], - ['cleartimer_4',['clearTimer',['../classcore_1_1Timer.html#a8e063f46e89dac04364871e909ab940a',1,'core::Timer']]], - ['command_5',['Command',['../classcore_1_1Command.html',1,'core']]], - ['commandlist_6',['CommandList',['../classcore_1_1CommandList.html',1,'core']]], - ['commands_7',['commands',['../classcore_1_1CommandList.html#ad0aedf95828fe743908d8423f171ff36',1,'core::CommandList::commands()'],['../classcore_1_1TCPServer.html#afcc44802b988e2f4292504e804dccf8b',1,'core::TCPServer::commands()']]], - ['consoleserver_8',['ConsoleServer',['../classcore_1_1ConsoleServer.html',1,'core']]], - ['consolesession_9',['ConsoleSession',['../classcore_1_1ConsoleSession.html',1,'core']]] -]; diff --git a/html/search/all_3.html b/html/search/all_3.html deleted file mode 100644 index 39767b8..0000000 --- a/html/search/all_3.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/all_3.js b/html/search/all_3.js deleted file mode 100644 index cb9dc77..0000000 --- a/html/search/all_3.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['epoll_10',['EPoll',['../classcore_1_1EPoll.html',1,'core::EPoll'],['../classcore_1_1EPoll.html#a2fd5cc4336b5f72990ecc0e7ea3d7641',1,'core::EPoll::EPoll()']]], - ['eventreceived_11',['eventReceived',['../classcore_1_1EPoll.html#a3238b150b5d0a57eb2e1b17daa236d3b',1,'core::EPoll::eventReceived()'],['../classcore_1_1Socket.html#a4c9a3396693ff919eb827729f9e72b03',1,'core::Socket::eventReceived()']]] -]; diff --git a/html/search/all_4.html b/html/search/all_4.html deleted file mode 100644 index fc40463..0000000 --- a/html/search/all_4.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/all_4.js b/html/search/all_4.js deleted file mode 100644 index 64bfd31..0000000 --- a/html/search/all_4.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['getclientaddress_12',['getClientAddress',['../classcore_1_1IPAddress.html#ae5e7e28589d026bbbc6c3423d418b008',1,'core::IPAddress']]], - ['getclientaddressandport_13',['getClientAddressAndPort',['../classcore_1_1IPAddress.html#abea870f1a048cb7bba1d2bad98558232',1,'core::IPAddress']]], - ['getclientport_14',['getClientPort',['../classcore_1_1IPAddress.html#a39f706f2d43d7d001296ecead4b587e8',1,'core::IPAddress']]], - ['getdescriptor_15',['getDescriptor',['../classcore_1_1EPoll.html#a1e52017e1deae15c1c87c6b6a099e1ed',1,'core::EPoll::getDescriptor()'],['../classcore_1_1Socket.html#a06ba54744530439d4131e6aba4623d08',1,'core::Socket::getDescriptor()']]], - ['getelapsed_16',['getElapsed',['../classcore_1_1Timer.html#a0df7f1ffc05529b45d6e13713bbc0209',1,'core::Timer']]], - ['getsocketaccept_17',['getSocketAccept',['../classcore_1_1ConsoleServer.html#a80d9ea7f3fc5e07c50d5b9e0d4943ca8',1,'core::ConsoleServer::getSocketAccept()'],['../classcore_1_1TCPServer.html#a841f02799ad8529aad7cea132f4de8a9',1,'core::TCPServer::getSocketAccept()']]], - ['grabinput_18',['grabInput',['../classcore_1_1CommandList.html#a72aea93a650f148c639ba25a724da243',1,'core::CommandList']]] -]; diff --git a/html/search/all_5.html b/html/search/all_5.html deleted file mode 100644 index 9dd9344..0000000 --- a/html/search/all_5.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/all_5.js b/html/search/all_5.js deleted file mode 100644 index 86200bf..0000000 --- a/html/search/all_5.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['inotify_19',['INotify',['../classcore_1_1INotify.html',1,'core']]], - ['ipaddress_20',['IPAddress',['../classcore_1_1IPAddress.html',1,'core']]], - ['ipaddresslist_21',['IPAddressList',['../classcore_1_1IPAddressList.html',1,'core']]], - ['isstopping_22',['isStopping',['../classcore_1_1EPoll.html#a301b46b71ac7ac61a687ff723fe269b3',1,'core::EPoll']]] -]; diff --git a/html/search/all_6.html b/html/search/all_6.html deleted file mode 100644 index f1e516d..0000000 --- a/html/search/all_6.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/all_6.js b/html/search/all_6.js deleted file mode 100644 index 9f62f6f..0000000 --- a/html/search/all_6.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['maxsockets_23',['maxSockets',['../classcore_1_1EPoll.html#acfcef2513d94f7b9a191fed3dc744d90',1,'core::EPoll']]] -]; diff --git a/html/search/all_7.html b/html/search/all_7.html deleted file mode 100644 index 8ddbf6c..0000000 --- a/html/search/all_7.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/all_7.js b/html/search/all_7.js deleted file mode 100644 index 3348d4d..0000000 --- a/html/search/all_7.js +++ /dev/null @@ -1,14 +0,0 @@ -var searchData= -[ - ['object_24',['Object',['../classcore_1_1Object.html',1,'core']]], - ['onblockreceived_25',['onBlockReceived',['../classcore_1_1TCPSession.html#a9c996cbbfa2e592c23cf67ed8b15a32a',1,'core::TCPSession']]], - ['onconnected_26',['onConnected',['../classcore_1_1TCPSession.html#a8719952f7bb00bf7239ec40aa2868626',1,'core::TCPSession']]], - ['ondatareceived_27',['onDataReceived',['../classcore_1_1Socket.html#ac8d6a2c54696eb6fc2024cf6bcf6b4e5',1,'core::Socket::onDataReceived()'],['../classcore_1_1TCPServer.html#a276ccbc8cb9b4380ebd78807b97f0159',1,'core::TCPServer::onDataReceived()'],['../classcore_1_1TCPSession.html#afc2d2a92bc65e1e5122a93d120253a1d',1,'core::TCPSession::onDataReceived()'],['../classcore_1_1UDPServerSocket.html#a41933ca153c854a800e3d047ab18313e',1,'core::UDPServerSocket::onDataReceived()']]], - ['onlinereceived_28',['onLineReceived',['../classcore_1_1TCPSession.html#a3d9e0f14e7d24357fd1950b3f9b4eaff',1,'core::TCPSession']]], - ['onregister_29',['onRegister',['../classcore_1_1Socket.html#a81e5ee3e17834166d97c6e8b7dfe0da0',1,'core::Socket::onRegister()'],['../classcore_1_1TLSSession.html#a76cec7cf4851eb27abe77a2339344c6d',1,'core::TLSSession::onRegister()']]], - ['onregistered_30',['onRegistered',['../classcore_1_1Socket.html#a23b9824653bbe4652a716acb828665b1',1,'core::Socket::onRegistered()'],['../classcore_1_1TLSSession.html#a8e26fdc9e8a6c573b5a504a1f1b137a9',1,'core::TLSSession::onRegistered()'],['../classcore_1_1TCPSession.html#aed4ed499b978bcea57a8efefe929fc98',1,'core::TCPSession::onRegistered()']]], - ['ontimeout_31',['onTimeout',['../classcore_1_1Timer.html#ae51704ff08d985bbc30e3ff4c9b3c6ca',1,'core::Timer']]], - ['onunregistered_32',['onUnregistered',['../classcore_1_1Socket.html#ae9be59697c2b2e5efb19aaae3ba943d2',1,'core::Socket']]], - ['out_33',['out',['../classcore_1_1TCPSession.html#abb302bbb3d7e7bc75490c736364f0d4d',1,'core::TCPSession']]], - ['output_34',['output',['../classcore_1_1Command.html#ab6352ce5650e70a5c76c3d6e4eefd292',1,'core::Command::output()'],['../classcore_1_1TCPServer.html#a49e3ead1bf4e7830685780e73c4db5db',1,'core::TCPServer::output()'],['../classcore_1_1TCPSession.html#a50037cbfc515650e04054e5481785981',1,'core::TCPSession::output()'],['../classcore_1_1TCPSocket.html#afacf7528ff3c9ac077d7b5a49e2116fd',1,'core::TCPSocket::output()'],['../classcore_1_1TLSSession.html#ae55de8a035d1ddc560cf619b2030af43',1,'core::TLSSession::output()']]] -]; diff --git a/html/search/all_8.html b/html/search/all_8.html deleted file mode 100644 index 83c55ae..0000000 --- a/html/search/all_8.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/all_8.js b/html/search/all_8.js deleted file mode 100644 index 5f37b67..0000000 --- a/html/search/all_8.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['processcommand_35',['processCommand',['../classcore_1_1Command.html#a95176f2532c38ee14e3fee40ee28b1bd',1,'core::Command::processCommand()'],['../classcore_1_1CommandList.html#a1819e1cb377b5d8e5e00b4777e2b4aba',1,'core::CommandList::processCommand()'],['../classcore_1_1EPoll.html#a22b5f1545aff3162040844be043abcce',1,'core::EPoll::processCommand()'],['../classcore_1_1SubscriptionManager.html#aaa30bf772ad72b3f319a790662e4f8ae',1,'core::SubscriptionManager::processCommand()'],['../classcore_1_1TCPServer.html#a6b7a7e1ac4132942fcaf418ed41c1437',1,'core::TCPServer::processCommand()']]], - ['processrequest_36',['processRequest',['../classcore_1_1CommandList.html#aa9b789df8eed15dc037bd98d596fe6e0',1,'core::CommandList']]], - ['protocol_37',['protocol',['../classcore_1_1ConsoleSession.html#aa1818efcd33a4152d2089aa545f08833',1,'core::ConsoleSession::protocol()'],['../classcore_1_1TCPSession.html#a98a65da2346b79bee659fca6902e94c7',1,'core::TCPSession::protocol()'],['../classcore_1_1TLSSession.html#a208145cc1fcdc14054602aacc2c51d91',1,'core::TLSSession::protocol()']]] -]; diff --git a/html/search/all_9.html b/html/search/all_9.html deleted file mode 100644 index 1e263c1..0000000 --- a/html/search/all_9.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/all_9.js b/html/search/all_9.js deleted file mode 100644 index d7c9538..0000000 --- a/html/search/all_9.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['receivedata_38',['receiveData',['../classcore_1_1Socket.html#a46ed2e240852d3fa949979ebbc4ac875',1,'core::Socket::receiveData()'],['../classcore_1_1TLSSession.html#a8507cdcd23ac4b340ce6f6d5f0b26a52',1,'core::TLSSession::receiveData()']]], - ['registersocket_39',['registerSocket',['../classcore_1_1EPoll.html#a3d813c7bbf0da70ebc8e3cb6aeeacfb4',1,'core::EPoll']]], - ['remove_40',['remove',['../classcore_1_1CommandList.html#aaac684effb9ecf5238d23ca60d3fffaa',1,'core::CommandList']]] -]; diff --git a/html/search/all_a.html b/html/search/all_a.html deleted file mode 100644 index 3a6cac1..0000000 --- a/html/search/all_a.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/all_a.js b/html/search/all_a.js deleted file mode 100644 index 35d29aa..0000000 --- a/html/search/all_a.js +++ /dev/null @@ -1,18 +0,0 @@ -var searchData= -[ - ['send_41',['send',['../classcore_1_1TCPSession.html#a2b09eeafef5e44009a77d9da43e3b889',1,'core::TCPSession']]], - ['sendtoall_42',['sendToAll',['../classcore_1_1TCPServer.html#a7080f7d45e734087e81b83c5e1f8e676',1,'core::TCPServer::sendToAll(std::stringstream &out, TCPSession &sender, SessionFilter filter)'],['../classcore_1_1TCPServer.html#af708df59e1bc60077c16db97f9cc8ff0',1,'core::TCPServer::sendToAll(std::stringstream &out, TCPSession &sender)']]], - ['sessionfilter_43',['SessionFilter',['../classcore_1_1SessionFilter.html',1,'core']]], - ['sessions_44',['sessions',['../classcore_1_1TCPServer.html#aeed1bc55d099667ccda51cd682bfc633',1,'core::TCPServer']]], - ['setblocksize_45',['setBlockSize',['../classcore_1_1TCPSession.html#a836fb3fd5ee543ebc93262a980ae88b5',1,'core::TCPSession']]], - ['setcursorlocation_46',['setCursorLocation',['../classcore_1_1TerminalSession.html#aa9939cbe36c08e1a0b8413a96ca251fa',1,'core::TerminalSession']]], - ['setdescriptor_47',['setDescriptor',['../classcore_1_1Socket.html#ac44f6ae3196a8a3e09a6a85fcf495762',1,'core::Socket']]], - ['settimer_48',['setTimer',['../classcore_1_1Timer.html#ac0a642cdcb76b7f995137162050d3d0b',1,'core::Timer']]], - ['shutdown_49',['shutdown',['../classcore_1_1Socket.html#af2d1b6de7a64a9d446b0305b6ec47b31',1,'core::Socket']]], - ['socket_50',['Socket',['../classcore_1_1Socket.html',1,'core::Socket'],['../classcore_1_1Socket.html#a4c3f87fd1de3c9eab4bf5efbb30ce87d',1,'core::Socket::Socket()']]], - ['start_51',['start',['../classcore_1_1EPoll.html#aaefe2caef75eb538af90cb34682d277b',1,'core::EPoll::start()'],['../classcore_1_1Thread.html#ae6885df9a9b9503669e5776518b19054',1,'core::Thread::start()']]], - ['stop_52',['stop',['../classcore_1_1EPoll.html#a0c2865acd31d14fbf19dbc42cc084ddc',1,'core::EPoll']]], - ['subscription_53',['Subscription',['../classcore_1_1Subscription.html',1,'core']]], - ['subscriptionmanager_54',['SubscriptionManager',['../classcore_1_1SubscriptionManager.html',1,'core']]], - ['subscriptions_55',['subscriptions',['../classcore_1_1TCPServer.html#a28302dd844cfc971ee41de2000d24aa0',1,'core::TCPServer']]] -]; diff --git a/html/search/all_b.html b/html/search/all_b.html deleted file mode 100644 index 130deb4..0000000 --- a/html/search/all_b.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/all_b.js b/html/search/all_b.js deleted file mode 100644 index f913f73..0000000 --- a/html/search/all_b.js +++ /dev/null @@ -1,13 +0,0 @@ -var searchData= -[ - ['tcpserver_56',['TCPServer',['../classcore_1_1TCPServer.html',1,'core::TCPServer'],['../classcore_1_1TCPServer.html#abaecb97c336b757d1029d45277f9fc5b',1,'core::TCPServer::TCPServer()']]], - ['tcpsession_57',['TCPSession',['../classcore_1_1TCPSession.html',1,'core']]], - ['tcpsocket_58',['TCPSocket',['../classcore_1_1TCPSocket.html',1,'core']]], - ['terminalsession_59',['TerminalSession',['../classcore_1_1TerminalSession.html',1,'core']]], - ['terminate_60',['terminate',['../classcore_1_1TCPSession.html#a34936745e8d7669d5400e78d353a56d3',1,'core::TCPSession']]], - ['thread_61',['Thread',['../classcore_1_1Thread.html',1,'core']]], - ['threadscope_62',['ThreadScope',['../classcore_1_1ThreadScope.html',1,'core']]], - ['timer_63',['Timer',['../classcore_1_1Timer.html',1,'core']]], - ['tlsserver_64',['TLSServer',['../classcore_1_1TLSServer.html',1,'core::TLSServer'],['../classcore_1_1TLSServer.html#a6460f9872936015efdfd0b8de04aa2fe',1,'core::TLSServer::TLSServer()']]], - ['tlssession_65',['TLSSession',['../classcore_1_1TLSSession.html',1,'core']]] -]; diff --git a/html/search/all_c.html b/html/search/all_c.html deleted file mode 100644 index 3dd5af0..0000000 --- a/html/search/all_c.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/all_c.js b/html/search/all_c.js deleted file mode 100644 index 3e872c1..0000000 --- a/html/search/all_c.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['udpserversocket_66',['UDPServerSocket',['../classcore_1_1UDPServerSocket.html',1,'core']]], - ['udpsocket_67',['UDPSocket',['../classcore_1_1UDPSocket.html',1,'core']]], - ['unregistersocket_68',['unregisterSocket',['../classcore_1_1EPoll.html#a5ab5e82ab51e0952fc8fbcc128f52900',1,'core::EPoll']]] -]; diff --git a/html/search/all_d.html b/html/search/all_d.html deleted file mode 100644 index af7f2f0..0000000 --- a/html/search/all_d.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/all_d.js b/html/search/all_d.js deleted file mode 100644 index a46b93a..0000000 --- a/html/search/all_d.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['whitelist_69',['whiteList',['../classcore_1_1TCPServer.html#abad6300b6234ca8b69cef9128755342e',1,'core::TCPServer']]], - ['write_70',['write',['../classcore_1_1Socket.html#a1413c826307ef0f29d7457770af675e3',1,'core::Socket']]] -]; diff --git a/html/search/all_e.html b/html/search/all_e.html deleted file mode 100644 index e25df42..0000000 --- a/html/search/all_e.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/all_e.js b/html/search/all_e.js deleted file mode 100644 index 8340282..0000000 --- a/html/search/all_e.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['_7eepoll_71',['~EPoll',['../classcore_1_1EPoll.html#a8e7a2496d684b745a6410f9bd3e88534',1,'core::EPoll']]], - ['_7esocket_72',['~Socket',['../classcore_1_1Socket.html#aa5003845f8ae464ad2fa206176381be0',1,'core::Socket']]], - ['_7etcpserver_73',['~TCPServer',['../classcore_1_1TCPServer.html#a7ccdc057c9eee8504fce796301f82088',1,'core::TCPServer']]], - ['_7etlsserver_74',['~TLSServer',['../classcore_1_1TLSServer.html#ac71db77c796a1bf65357409cb96054c7',1,'core::TLSServer']]] -]; diff --git a/html/search/classes_0.html b/html/search/classes_0.html deleted file mode 100644 index af8159e..0000000 --- a/html/search/classes_0.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/classes_0.js b/html/search/classes_0.js deleted file mode 100644 index a188085..0000000 --- a/html/search/classes_0.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['command_75',['Command',['../classcore_1_1Command.html',1,'core']]], - ['commandlist_76',['CommandList',['../classcore_1_1CommandList.html',1,'core']]], - ['consoleserver_77',['ConsoleServer',['../classcore_1_1ConsoleServer.html',1,'core']]], - ['consolesession_78',['ConsoleSession',['../classcore_1_1ConsoleSession.html',1,'core']]] -]; diff --git a/html/search/classes_1.html b/html/search/classes_1.html deleted file mode 100644 index 576e916..0000000 --- a/html/search/classes_1.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/classes_1.js b/html/search/classes_1.js deleted file mode 100644 index b0ef45f..0000000 --- a/html/search/classes_1.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['epoll_79',['EPoll',['../classcore_1_1EPoll.html',1,'core']]] -]; diff --git a/html/search/classes_2.html b/html/search/classes_2.html deleted file mode 100644 index 956405e..0000000 --- a/html/search/classes_2.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/classes_2.js b/html/search/classes_2.js deleted file mode 100644 index f4a56f5..0000000 --- a/html/search/classes_2.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['inotify_80',['INotify',['../classcore_1_1INotify.html',1,'core']]], - ['ipaddress_81',['IPAddress',['../classcore_1_1IPAddress.html',1,'core']]], - ['ipaddresslist_82',['IPAddressList',['../classcore_1_1IPAddressList.html',1,'core']]] -]; diff --git a/html/search/classes_3.html b/html/search/classes_3.html deleted file mode 100644 index d33343b..0000000 --- a/html/search/classes_3.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/classes_3.js b/html/search/classes_3.js deleted file mode 100644 index 475f2d8..0000000 --- a/html/search/classes_3.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['object_83',['Object',['../classcore_1_1Object.html',1,'core']]] -]; diff --git a/html/search/classes_4.html b/html/search/classes_4.html deleted file mode 100644 index 8430b07..0000000 --- a/html/search/classes_4.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/classes_4.js b/html/search/classes_4.js deleted file mode 100644 index 1ef0d07..0000000 --- a/html/search/classes_4.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['sessionfilter_84',['SessionFilter',['../classcore_1_1SessionFilter.html',1,'core']]], - ['socket_85',['Socket',['../classcore_1_1Socket.html',1,'core']]], - ['subscription_86',['Subscription',['../classcore_1_1Subscription.html',1,'core']]], - ['subscriptionmanager_87',['SubscriptionManager',['../classcore_1_1SubscriptionManager.html',1,'core']]] -]; diff --git a/html/search/classes_5.html b/html/search/classes_5.html deleted file mode 100644 index c2f1b76..0000000 --- a/html/search/classes_5.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/classes_5.js b/html/search/classes_5.js deleted file mode 100644 index 7bf8e59..0000000 --- a/html/search/classes_5.js +++ /dev/null @@ -1,12 +0,0 @@ -var searchData= -[ - ['tcpserver_88',['TCPServer',['../classcore_1_1TCPServer.html',1,'core']]], - ['tcpsession_89',['TCPSession',['../classcore_1_1TCPSession.html',1,'core']]], - ['tcpsocket_90',['TCPSocket',['../classcore_1_1TCPSocket.html',1,'core']]], - ['terminalsession_91',['TerminalSession',['../classcore_1_1TerminalSession.html',1,'core']]], - ['thread_92',['Thread',['../classcore_1_1Thread.html',1,'core']]], - ['threadscope_93',['ThreadScope',['../classcore_1_1ThreadScope.html',1,'core']]], - ['timer_94',['Timer',['../classcore_1_1Timer.html',1,'core']]], - ['tlsserver_95',['TLSServer',['../classcore_1_1TLSServer.html',1,'core']]], - ['tlssession_96',['TLSSession',['../classcore_1_1TLSSession.html',1,'core']]] -]; diff --git a/html/search/classes_6.html b/html/search/classes_6.html deleted file mode 100644 index e39847c..0000000 --- a/html/search/classes_6.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/classes_6.js b/html/search/classes_6.js deleted file mode 100644 index f5e021f..0000000 --- a/html/search/classes_6.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['udpserversocket_97',['UDPServerSocket',['../classcore_1_1UDPServerSocket.html',1,'core']]], - ['udpsocket_98',['UDPSocket',['../classcore_1_1UDPSocket.html',1,'core']]] -]; diff --git a/html/search/close.png b/html/search/close.png deleted file mode 100644 index 9342d3d..0000000 Binary files a/html/search/close.png and /dev/null differ diff --git a/html/search/close.svg b/html/search/close.svg deleted file mode 100644 index a933eea..0000000 --- a/html/search/close.svg +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - diff --git a/html/search/functions_0.html b/html/search/functions_0.html deleted file mode 100644 index eb4c501..0000000 --- a/html/search/functions_0.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/functions_0.js b/html/search/functions_0.js deleted file mode 100644 index dad7998..0000000 --- a/html/search/functions_0.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['add_99',['add',['../classcore_1_1CommandList.html#a7a45e75e3d21a25fd3f7e887acf395e9',1,'core::CommandList']]] -]; diff --git a/html/search/functions_1.html b/html/search/functions_1.html deleted file mode 100644 index ef4088b..0000000 --- a/html/search/functions_1.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/functions_1.js b/html/search/functions_1.js deleted file mode 100644 index 19d16a1..0000000 --- a/html/search/functions_1.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['clear_100',['clear',['../classcore_1_1TerminalSession.html#a42bb06857891220a831da04248233935',1,'core::TerminalSession']]], - ['cleareol_101',['clearEOL',['../classcore_1_1TerminalSession.html#aa660768eed03b0b996a749e8a146446c',1,'core::TerminalSession']]], - ['cleartimer_102',['clearTimer',['../classcore_1_1Timer.html#a8e063f46e89dac04364871e909ab940a',1,'core::Timer']]] -]; diff --git a/html/search/functions_2.html b/html/search/functions_2.html deleted file mode 100644 index ca5aa10..0000000 --- a/html/search/functions_2.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/functions_2.js b/html/search/functions_2.js deleted file mode 100644 index e101051..0000000 --- a/html/search/functions_2.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['epoll_103',['EPoll',['../classcore_1_1EPoll.html#a2fd5cc4336b5f72990ecc0e7ea3d7641',1,'core::EPoll']]], - ['eventreceived_104',['eventReceived',['../classcore_1_1EPoll.html#a3238b150b5d0a57eb2e1b17daa236d3b',1,'core::EPoll::eventReceived()'],['../classcore_1_1Socket.html#a4c9a3396693ff919eb827729f9e72b03',1,'core::Socket::eventReceived()']]] -]; diff --git a/html/search/functions_3.html b/html/search/functions_3.html deleted file mode 100644 index d79f55b..0000000 --- a/html/search/functions_3.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/functions_3.js b/html/search/functions_3.js deleted file mode 100644 index 7e67380..0000000 --- a/html/search/functions_3.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['getclientaddress_105',['getClientAddress',['../classcore_1_1IPAddress.html#ae5e7e28589d026bbbc6c3423d418b008',1,'core::IPAddress']]], - ['getclientaddressandport_106',['getClientAddressAndPort',['../classcore_1_1IPAddress.html#abea870f1a048cb7bba1d2bad98558232',1,'core::IPAddress']]], - ['getclientport_107',['getClientPort',['../classcore_1_1IPAddress.html#a39f706f2d43d7d001296ecead4b587e8',1,'core::IPAddress']]], - ['getdescriptor_108',['getDescriptor',['../classcore_1_1EPoll.html#a1e52017e1deae15c1c87c6b6a099e1ed',1,'core::EPoll::getDescriptor()'],['../classcore_1_1Socket.html#a06ba54744530439d4131e6aba4623d08',1,'core::Socket::getDescriptor()']]], - ['getelapsed_109',['getElapsed',['../classcore_1_1Timer.html#a0df7f1ffc05529b45d6e13713bbc0209',1,'core::Timer']]], - ['getsocketaccept_110',['getSocketAccept',['../classcore_1_1ConsoleServer.html#a80d9ea7f3fc5e07c50d5b9e0d4943ca8',1,'core::ConsoleServer::getSocketAccept()'],['../classcore_1_1TCPServer.html#a841f02799ad8529aad7cea132f4de8a9',1,'core::TCPServer::getSocketAccept()']]], - ['grabinput_111',['grabInput',['../classcore_1_1CommandList.html#a72aea93a650f148c639ba25a724da243',1,'core::CommandList']]] -]; diff --git a/html/search/functions_4.html b/html/search/functions_4.html deleted file mode 100644 index 1657cad..0000000 --- a/html/search/functions_4.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/functions_4.js b/html/search/functions_4.js deleted file mode 100644 index 87669a1..0000000 --- a/html/search/functions_4.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['isstopping_112',['isStopping',['../classcore_1_1EPoll.html#a301b46b71ac7ac61a687ff723fe269b3',1,'core::EPoll']]] -]; diff --git a/html/search/functions_5.html b/html/search/functions_5.html deleted file mode 100644 index 9301d6b..0000000 --- a/html/search/functions_5.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/functions_5.js b/html/search/functions_5.js deleted file mode 100644 index 54497f9..0000000 --- a/html/search/functions_5.js +++ /dev/null @@ -1,12 +0,0 @@ -var searchData= -[ - ['onblockreceived_113',['onBlockReceived',['../classcore_1_1TCPSession.html#a9c996cbbfa2e592c23cf67ed8b15a32a',1,'core::TCPSession']]], - ['onconnected_114',['onConnected',['../classcore_1_1TCPSession.html#a8719952f7bb00bf7239ec40aa2868626',1,'core::TCPSession']]], - ['ondatareceived_115',['onDataReceived',['../classcore_1_1Socket.html#ac8d6a2c54696eb6fc2024cf6bcf6b4e5',1,'core::Socket::onDataReceived()'],['../classcore_1_1TCPServer.html#a276ccbc8cb9b4380ebd78807b97f0159',1,'core::TCPServer::onDataReceived()'],['../classcore_1_1TCPSession.html#afc2d2a92bc65e1e5122a93d120253a1d',1,'core::TCPSession::onDataReceived()'],['../classcore_1_1UDPServerSocket.html#a41933ca153c854a800e3d047ab18313e',1,'core::UDPServerSocket::onDataReceived()']]], - ['onlinereceived_116',['onLineReceived',['../classcore_1_1TCPSession.html#a3d9e0f14e7d24357fd1950b3f9b4eaff',1,'core::TCPSession']]], - ['onregister_117',['onRegister',['../classcore_1_1Socket.html#a81e5ee3e17834166d97c6e8b7dfe0da0',1,'core::Socket::onRegister()'],['../classcore_1_1TLSSession.html#a76cec7cf4851eb27abe77a2339344c6d',1,'core::TLSSession::onRegister()']]], - ['onregistered_118',['onRegistered',['../classcore_1_1Socket.html#a23b9824653bbe4652a716acb828665b1',1,'core::Socket::onRegistered()'],['../classcore_1_1TLSSession.html#a8e26fdc9e8a6c573b5a504a1f1b137a9',1,'core::TLSSession::onRegistered()'],['../classcore_1_1TCPSession.html#aed4ed499b978bcea57a8efefe929fc98',1,'core::TCPSession::onRegistered()']]], - ['ontimeout_119',['onTimeout',['../classcore_1_1Timer.html#ae51704ff08d985bbc30e3ff4c9b3c6ca',1,'core::Timer']]], - ['onunregistered_120',['onUnregistered',['../classcore_1_1Socket.html#ae9be59697c2b2e5efb19aaae3ba943d2',1,'core::Socket']]], - ['output_121',['output',['../classcore_1_1Command.html#ab6352ce5650e70a5c76c3d6e4eefd292',1,'core::Command::output()'],['../classcore_1_1TCPServer.html#a49e3ead1bf4e7830685780e73c4db5db',1,'core::TCPServer::output()'],['../classcore_1_1TCPSession.html#a50037cbfc515650e04054e5481785981',1,'core::TCPSession::output()'],['../classcore_1_1TCPSocket.html#afacf7528ff3c9ac077d7b5a49e2116fd',1,'core::TCPSocket::output()'],['../classcore_1_1TLSSession.html#ae55de8a035d1ddc560cf619b2030af43',1,'core::TLSSession::output()']]] -]; diff --git a/html/search/functions_6.html b/html/search/functions_6.html deleted file mode 100644 index 9c4f5fc..0000000 --- a/html/search/functions_6.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/functions_6.js b/html/search/functions_6.js deleted file mode 100644 index 479aeac..0000000 --- a/html/search/functions_6.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['processcommand_122',['processCommand',['../classcore_1_1Command.html#a95176f2532c38ee14e3fee40ee28b1bd',1,'core::Command::processCommand()'],['../classcore_1_1CommandList.html#a1819e1cb377b5d8e5e00b4777e2b4aba',1,'core::CommandList::processCommand()'],['../classcore_1_1EPoll.html#a22b5f1545aff3162040844be043abcce',1,'core::EPoll::processCommand()'],['../classcore_1_1SubscriptionManager.html#aaa30bf772ad72b3f319a790662e4f8ae',1,'core::SubscriptionManager::processCommand()'],['../classcore_1_1TCPServer.html#a6b7a7e1ac4132942fcaf418ed41c1437',1,'core::TCPServer::processCommand()']]], - ['processrequest_123',['processRequest',['../classcore_1_1CommandList.html#aa9b789df8eed15dc037bd98d596fe6e0',1,'core::CommandList']]], - ['protocol_124',['protocol',['../classcore_1_1ConsoleSession.html#aa1818efcd33a4152d2089aa545f08833',1,'core::ConsoleSession::protocol()'],['../classcore_1_1TCPSession.html#a98a65da2346b79bee659fca6902e94c7',1,'core::TCPSession::protocol()'],['../classcore_1_1TLSSession.html#a208145cc1fcdc14054602aacc2c51d91',1,'core::TLSSession::protocol()']]] -]; diff --git a/html/search/functions_7.html b/html/search/functions_7.html deleted file mode 100644 index 46b5c0f..0000000 --- a/html/search/functions_7.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/functions_7.js b/html/search/functions_7.js deleted file mode 100644 index 8ef85fe..0000000 --- a/html/search/functions_7.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['receivedata_125',['receiveData',['../classcore_1_1Socket.html#a46ed2e240852d3fa949979ebbc4ac875',1,'core::Socket::receiveData()'],['../classcore_1_1TLSSession.html#a8507cdcd23ac4b340ce6f6d5f0b26a52',1,'core::TLSSession::receiveData()']]], - ['registersocket_126',['registerSocket',['../classcore_1_1EPoll.html#a3d813c7bbf0da70ebc8e3cb6aeeacfb4',1,'core::EPoll']]], - ['remove_127',['remove',['../classcore_1_1CommandList.html#aaac684effb9ecf5238d23ca60d3fffaa',1,'core::CommandList']]] -]; diff --git a/html/search/functions_8.html b/html/search/functions_8.html deleted file mode 100644 index 31a1d95..0000000 --- a/html/search/functions_8.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/functions_8.js b/html/search/functions_8.js deleted file mode 100644 index d7e2c67..0000000 --- a/html/search/functions_8.js +++ /dev/null @@ -1,13 +0,0 @@ -var searchData= -[ - ['send_128',['send',['../classcore_1_1TCPSession.html#a2b09eeafef5e44009a77d9da43e3b889',1,'core::TCPSession']]], - ['sendtoall_129',['sendToAll',['../classcore_1_1TCPServer.html#a7080f7d45e734087e81b83c5e1f8e676',1,'core::TCPServer::sendToAll(std::stringstream &out, TCPSession &sender, SessionFilter filter)'],['../classcore_1_1TCPServer.html#af708df59e1bc60077c16db97f9cc8ff0',1,'core::TCPServer::sendToAll(std::stringstream &out, TCPSession &sender)']]], - ['setblocksize_130',['setBlockSize',['../classcore_1_1TCPSession.html#a836fb3fd5ee543ebc93262a980ae88b5',1,'core::TCPSession']]], - ['setcursorlocation_131',['setCursorLocation',['../classcore_1_1TerminalSession.html#aa9939cbe36c08e1a0b8413a96ca251fa',1,'core::TerminalSession']]], - ['setdescriptor_132',['setDescriptor',['../classcore_1_1Socket.html#ac44f6ae3196a8a3e09a6a85fcf495762',1,'core::Socket']]], - ['settimer_133',['setTimer',['../classcore_1_1Timer.html#ac0a642cdcb76b7f995137162050d3d0b',1,'core::Timer']]], - ['shutdown_134',['shutdown',['../classcore_1_1Socket.html#af2d1b6de7a64a9d446b0305b6ec47b31',1,'core::Socket']]], - ['socket_135',['Socket',['../classcore_1_1Socket.html#a4c3f87fd1de3c9eab4bf5efbb30ce87d',1,'core::Socket']]], - ['start_136',['start',['../classcore_1_1EPoll.html#aaefe2caef75eb538af90cb34682d277b',1,'core::EPoll::start()'],['../classcore_1_1Thread.html#ae6885df9a9b9503669e5776518b19054',1,'core::Thread::start()']]], - ['stop_137',['stop',['../classcore_1_1EPoll.html#a0c2865acd31d14fbf19dbc42cc084ddc',1,'core::EPoll']]] -]; diff --git a/html/search/functions_9.html b/html/search/functions_9.html deleted file mode 100644 index 9a8e429..0000000 --- a/html/search/functions_9.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/functions_9.js b/html/search/functions_9.js deleted file mode 100644 index 36a853e..0000000 --- a/html/search/functions_9.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['tcpserver_138',['TCPServer',['../classcore_1_1TCPServer.html#abaecb97c336b757d1029d45277f9fc5b',1,'core::TCPServer']]], - ['terminate_139',['terminate',['../classcore_1_1TCPSession.html#a34936745e8d7669d5400e78d353a56d3',1,'core::TCPSession']]], - ['tlsserver_140',['TLSServer',['../classcore_1_1TLSServer.html#a6460f9872936015efdfd0b8de04aa2fe',1,'core::TLSServer']]] -]; diff --git a/html/search/functions_a.html b/html/search/functions_a.html deleted file mode 100644 index 5ecc152..0000000 --- a/html/search/functions_a.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/functions_a.js b/html/search/functions_a.js deleted file mode 100644 index 92241bd..0000000 --- a/html/search/functions_a.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['unregistersocket_141',['unregisterSocket',['../classcore_1_1EPoll.html#a5ab5e82ab51e0952fc8fbcc128f52900',1,'core::EPoll']]] -]; diff --git a/html/search/functions_b.html b/html/search/functions_b.html deleted file mode 100644 index e301fed..0000000 --- a/html/search/functions_b.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/functions_b.js b/html/search/functions_b.js deleted file mode 100644 index 789f3bf..0000000 --- a/html/search/functions_b.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['write_142',['write',['../classcore_1_1Socket.html#a1413c826307ef0f29d7457770af675e3',1,'core::Socket']]] -]; diff --git a/html/search/functions_c.html b/html/search/functions_c.html deleted file mode 100644 index c4f3268..0000000 --- a/html/search/functions_c.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/functions_c.js b/html/search/functions_c.js deleted file mode 100644 index 4ffc4d0..0000000 --- a/html/search/functions_c.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['_7eepoll_143',['~EPoll',['../classcore_1_1EPoll.html#a8e7a2496d684b745a6410f9bd3e88534',1,'core::EPoll']]], - ['_7esocket_144',['~Socket',['../classcore_1_1Socket.html#aa5003845f8ae464ad2fa206176381be0',1,'core::Socket']]], - ['_7etcpserver_145',['~TCPServer',['../classcore_1_1TCPServer.html#a7ccdc057c9eee8504fce796301f82088',1,'core::TCPServer']]], - ['_7etlsserver_146',['~TLSServer',['../classcore_1_1TLSServer.html#ac71db77c796a1bf65357409cb96054c7',1,'core::TLSServer']]] -]; diff --git a/html/search/mag_sel.png b/html/search/mag_sel.png deleted file mode 100644 index 39c0ed5..0000000 Binary files a/html/search/mag_sel.png and /dev/null differ diff --git a/html/search/mag_sel.svg b/html/search/mag_sel.svg deleted file mode 100644 index 03626f6..0000000 --- a/html/search/mag_sel.svg +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - - image/svg+xml - - - - - - - - - - - diff --git a/html/search/nomatches.html b/html/search/nomatches.html deleted file mode 100644 index 2b9360b..0000000 --- a/html/search/nomatches.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - -
    -
    No Matches
    -
    - - diff --git a/html/search/search.css b/html/search/search.css deleted file mode 100644 index 9074198..0000000 --- a/html/search/search.css +++ /dev/null @@ -1,257 +0,0 @@ -/*---------------- Search Box */ - -#MSearchBox { - white-space : nowrap; - background: white; - border-radius: 0.65em; - box-shadow: inset 0.5px 0.5px 3px 0px #555; - z-index: 102; -} - -#MSearchBox .left { - display: inline-block; - vertical-align: middle; - height: 1.4em; -} - -#MSearchSelect { - display: inline-block; - vertical-align: middle; - height: 1.4em; - padding: 0 0 0 0.3em; - margin: 0; -} - -#MSearchField { - display: inline-block; - vertical-align: middle; - width: 7.5em; - height: 1.1em; - margin: 0 0.15em; - padding: 0; - line-height: 1em; - border:none; - color: #909090; - outline: none; - font-family: Arial, Verdana, sans-serif; - -webkit-border-radius: 0px; - border-radius: 0px; - background: none; -} - - -#MSearchBox .right { - display: inline-block; - vertical-align: middle; - width: 1.4em; - height: 1.4em; -} - -#MSearchClose { - display: none; - font-size: inherit; - background : none; - border: none; - margin: 0; - padding: 0; - outline: none; - -} - -#MSearchCloseImg { - height: 1.4em; - padding: 0.3em; - margin: 0; -} - -.MSearchBoxActive #MSearchField { - color: #000000; -} - -#main-menu > li:last-child { - /* This
  • object is the parent of the search bar */ - display: flex; - justify-content: center; - align-items: center; - height: 36px; - margin-right: 1em; -} - -/*---------------- 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; - font-family: Arial, Verdana, sans-serif; -} - -.SRPage .SRStatus { - padding: 2px 5px; - font-size: 8pt; - font-style: italic; - font-family: Arial, Verdana, sans-serif; -} - -.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; -} - diff --git a/html/search/search.js b/html/search/search.js deleted file mode 100644 index fb226f7..0000000 --- a/html/search/search.js +++ /dev/null @@ -1,816 +0,0 @@ -/* - @licstart The following is the entire license notice for the JavaScript code in this file. - - The MIT License (MIT) - - Copyright (C) 1997-2020 by Dimitri van Heesch - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software - and associated documentation files (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, publish, distribute, - sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all copies or - substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING - BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - @licend The above is the entire license notice for the JavaScript code in this file - */ -function convertToId(search) -{ - var result = ''; - for (i=0;i do a search - { - this.Search(); - } - } - - this.OnSearchSelectKey = function(evt) - { - var e = (evt) ? evt : window.event; // for IE - if (e.keyCode==40 && this.searchIndex0) // 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 + this.extension; - resultsPageWithSearch = resultsPage+'?'+escape(searchValue); - hasResultsPage = true; - } - else // nothing available for this search term - { - resultsPage = this.resultsPath + '/nomatches' + this.extension; - 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-block'; - 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 . - 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.toLowerCase() == 'div' && element.className == 'SRChildren') - { - return element; - } - - if (element.nodeName.toLowerCase() == '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 - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/variables_0.js b/html/search/variables_0.js deleted file mode 100644 index 5fb7883..0000000 --- a/html/search/variables_0.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['blacklist_147',['blackList',['../classcore_1_1TCPServer.html#a82f6bf16e4ab20d8b30da09e034fffff',1,'core::TCPServer']]] -]; diff --git a/html/search/variables_1.html b/html/search/variables_1.html deleted file mode 100644 index ea73d9a..0000000 --- a/html/search/variables_1.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/variables_1.js b/html/search/variables_1.js deleted file mode 100644 index fa91e03..0000000 --- a/html/search/variables_1.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['commands_148',['commands',['../classcore_1_1CommandList.html#ad0aedf95828fe743908d8423f171ff36',1,'core::CommandList::commands()'],['../classcore_1_1TCPServer.html#afcc44802b988e2f4292504e804dccf8b',1,'core::TCPServer::commands()']]] -]; diff --git a/html/search/variables_2.html b/html/search/variables_2.html deleted file mode 100644 index 0580462..0000000 --- a/html/search/variables_2.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/variables_2.js b/html/search/variables_2.js deleted file mode 100644 index 2753863..0000000 --- a/html/search/variables_2.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['maxsockets_149',['maxSockets',['../classcore_1_1EPoll.html#acfcef2513d94f7b9a191fed3dc744d90',1,'core::EPoll']]] -]; diff --git a/html/search/variables_3.html b/html/search/variables_3.html deleted file mode 100644 index 0d69e76..0000000 --- a/html/search/variables_3.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/variables_3.js b/html/search/variables_3.js deleted file mode 100644 index 26b86a5..0000000 --- a/html/search/variables_3.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['out_150',['out',['../classcore_1_1TCPSession.html#abb302bbb3d7e7bc75490c736364f0d4d',1,'core::TCPSession']]] -]; diff --git a/html/search/variables_4.html b/html/search/variables_4.html deleted file mode 100644 index a4b6506..0000000 --- a/html/search/variables_4.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/variables_4.js b/html/search/variables_4.js deleted file mode 100644 index 029ecac..0000000 --- a/html/search/variables_4.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['sessions_151',['sessions',['../classcore_1_1TCPServer.html#aeed1bc55d099667ccda51cd682bfc633',1,'core::TCPServer']]], - ['subscriptions_152',['subscriptions',['../classcore_1_1TCPServer.html#a28302dd844cfc971ee41de2000d24aa0',1,'core::TCPServer']]] -]; diff --git a/html/search/variables_5.html b/html/search/variables_5.html deleted file mode 100644 index 7e345d1..0000000 --- a/html/search/variables_5.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/variables_5.js b/html/search/variables_5.js deleted file mode 100644 index ea20743..0000000 --- a/html/search/variables_5.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['whitelist_153',['whiteList',['../classcore_1_1TCPServer.html#abad6300b6234ca8b69cef9128755342e',1,'core::TCPServer']]] -]; diff --git a/html/splitbar.png b/html/splitbar.png deleted file mode 100644 index fe895f2..0000000 Binary files a/html/splitbar.png and /dev/null differ diff --git a/html/sync_off.png b/html/sync_off.png deleted file mode 100644 index 3b443fc..0000000 Binary files a/html/sync_off.png and /dev/null differ diff --git a/html/sync_on.png b/html/sync_on.png deleted file mode 100644 index e08320f..0000000 Binary files a/html/sync_on.png and /dev/null differ diff --git a/html/tab_a.png b/html/tab_a.png deleted file mode 100644 index 3b725c4..0000000 Binary files a/html/tab_a.png and /dev/null differ diff --git a/html/tab_b.png b/html/tab_b.png deleted file mode 100644 index e2b4a86..0000000 Binary files a/html/tab_b.png and /dev/null differ diff --git a/html/tab_h.png b/html/tab_h.png deleted file mode 100644 index fd5cb70..0000000 Binary files a/html/tab_h.png and /dev/null differ diff --git a/html/tab_s.png b/html/tab_s.png deleted file mode 100644 index ab478c9..0000000 Binary files a/html/tab_s.png and /dev/null differ diff --git a/html/tabs.css b/html/tabs.css deleted file mode 100644 index 7d45d36..0000000 --- a/html/tabs.css +++ /dev/null @@ -1 +0,0 @@ -.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0px/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0px 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0px 1px 1px rgba(255,255,255,0.9);color:#283A5D;outline:none}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox a.current{color:#D23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media (min-width: 768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283A5D transparent transparent transparent;background:transparent;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0px 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;border-radius:0 !important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox a:hover span.sub-arrow{border-color:#fff transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;border-radius:5px !important;box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0 !important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent #fff}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #D23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#D23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} diff --git a/latex/Makefile b/latex/Makefile deleted file mode 100644 index 877c9cc..0000000 --- a/latex/Makefile +++ /dev/null @@ -1,23 +0,0 @@ -LATEX_CMD=pdflatex - -all: refman.pdf - -pdf: refman.pdf - -refman.pdf: clean refman.tex - $(LATEX_CMD) refman - makeindex refman.idx - $(LATEX_CMD) refman - latex_count=8 ; \ - while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\ - do \ - echo "Rerunning latex...." ;\ - $(LATEX_CMD) refman ;\ - latex_count=`expr $$latex_count - 1` ;\ - done - makeindex refman.idx - $(LATEX_CMD) refman - - -clean: - rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl refman.pdf diff --git a/latex/annotated.tex b/latex/annotated.tex deleted file mode 100644 index d02ed23..0000000 --- a/latex/annotated.tex +++ /dev/null @@ -1,27 +0,0 @@ -\doxysection{Class List} -Here are the classes, structs, unions and interfaces with brief descriptions\+:\begin{DoxyCompactList} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1Command}{core\+::\+Command}} }{\pageref{classcore_1_1Command}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1CommandList}{core\+::\+Command\+List}} }{\pageref{classcore_1_1CommandList}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1ConsoleServer}{core\+::\+Console\+Server}} }{\pageref{classcore_1_1ConsoleServer}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1ConsoleSession}{core\+::\+Console\+Session}} }{\pageref{classcore_1_1ConsoleSession}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1EPoll}{core\+::\+EPoll}} }{\pageref{classcore_1_1EPoll}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1INotify}{core\+::\+INotify}} }{\pageref{classcore_1_1INotify}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1IPAddress}{core\+::\+IPAddress}} }{\pageref{classcore_1_1IPAddress}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1IPAddressList}{core\+::\+IPAddress\+List}} }{\pageref{classcore_1_1IPAddressList}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1Object}{core\+::\+Object}} }{\pageref{classcore_1_1Object}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1SessionFilter}{core\+::\+Session\+Filter}} }{\pageref{classcore_1_1SessionFilter}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1Socket}{core\+::\+Socket}} }{\pageref{classcore_1_1Socket}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1Subscription}{core\+::\+Subscription}} }{\pageref{classcore_1_1Subscription}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1SubscriptionManager}{core\+::\+Subscription\+Manager}} }{\pageref{classcore_1_1SubscriptionManager}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1TCPServer}{core\+::\+TCPServer}} }{\pageref{classcore_1_1TCPServer}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1TCPSession}{core\+::\+TCPSession}} }{\pageref{classcore_1_1TCPSession}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1TCPSocket}{core\+::\+TCPSocket}} }{\pageref{classcore_1_1TCPSocket}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1TerminalSession}{core\+::\+Terminal\+Session}} }{\pageref{classcore_1_1TerminalSession}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1Thread}{core\+::\+Thread}} }{\pageref{classcore_1_1Thread}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1ThreadScope}{core\+::\+Thread\+Scope}} }{\pageref{classcore_1_1ThreadScope}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1Timer}{core\+::\+Timer}} }{\pageref{classcore_1_1Timer}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1TLSServer}{core\+::\+TLSServer}} }{\pageref{classcore_1_1TLSServer}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1TLSSession}{core\+::\+TLSSession}} }{\pageref{classcore_1_1TLSSession}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1UDPServerSocket}{core\+::\+UDPServer\+Socket}} }{\pageref{classcore_1_1UDPServerSocket}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1UDPSocket}{core\+::\+UDPSocket}} }{\pageref{classcore_1_1UDPSocket}}{} -\end{DoxyCompactList} diff --git a/latex/classcore_1_1Command.tex b/latex/classcore_1_1Command.tex deleted file mode 100644 index 13d8555..0000000 --- a/latex/classcore_1_1Command.tex +++ /dev/null @@ -1,75 +0,0 @@ -\hypertarget{classcore_1_1Command}{}\doxysection{core\+::Command Class Reference} -\label{classcore_1_1Command}\index{core::Command@{core::Command}} - - -{\ttfamily \#include $<$Command.\+h$>$} - - - -Inheritance diagram for core\+::Command\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=350pt]{classcore_1_1Command__inherit__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -virtual int \mbox{\hyperlink{classcore_1_1Command_a95176f2532c38ee14e3fee40ee28b1bd}{process\+Command}} (coreutils\+::\+ZString \&request, \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session) -\item -virtual void \mbox{\hyperlink{classcore_1_1Command_ab6352ce5650e70a5c76c3d6e4eefd292}{output}} (std\+::stringstream \&out) -\end{DoxyCompactItemize} - - -\doxysubsection{Detailed Description} -\mbox{\hyperlink{classcore_1_1Command}{Command}} - -Use the \mbox{\hyperlink{classcore_1_1Command}{Command}} object in combination with a \mbox{\hyperlink{classcore_1_1CommandList}{Command\+List}} object to maintain a list of functions that can be invoked as a result of processing a request. - -\doxysubsection{Member Function Documentation} -\mbox{\Hypertarget{classcore_1_1Command_ab6352ce5650e70a5c76c3d6e4eefd292}\label{classcore_1_1Command_ab6352ce5650e70a5c76c3d6e4eefd292}} -\index{core::Command@{core::Command}!output@{output}} -\index{output@{output}!core::Command@{core::Command}} -\doxysubsubsection{\texorpdfstring{output()}{output()}} -{\footnotesize\ttfamily void core\+::\+Command\+::output (\begin{DoxyParamCaption}\item[{std\+::stringstream \&}]{out }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}} - -Specify the output that will occur to the specified session. - - -\begin{DoxyParams}{Parameters} -{\em session} & The session that will receive the output. \\ -\hline -\end{DoxyParams} - - -Reimplemented in \mbox{\hyperlink{classcore_1_1TCPServer_a49e3ead1bf4e7830685780e73c4db5db}{core\+::\+TCPServer}}. - -\mbox{\Hypertarget{classcore_1_1Command_a95176f2532c38ee14e3fee40ee28b1bd}\label{classcore_1_1Command_a95176f2532c38ee14e3fee40ee28b1bd}} -\index{core::Command@{core::Command}!processCommand@{processCommand}} -\index{processCommand@{processCommand}!core::Command@{core::Command}} -\doxysubsubsection{\texorpdfstring{processCommand()}{processCommand()}} -{\footnotesize\ttfamily int core\+::\+Command\+::process\+Command (\begin{DoxyParamCaption}\item[{coreutils\+::\+ZString \&}]{request, }\item[{\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&}]{session }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}} - -This method is used to implement the functionality of the requested command. This pure virtual function must be implemented in your inheriting object. - - -\begin{DoxyParams}{Parameters} -{\em request} & The request that was entered by the user to invoke this command. \\ -\hline -{\em session} & Specify the requesting session so that the execution of the command process can return its output to the session. \\ -\hline -\end{DoxyParams} -\begin{DoxyReturn}{Returns} -Returns 0 if execution of the command was successful. Otherwise returns a non-\/zero value indicating an error condition. -\end{DoxyReturn} - - -Reimplemented in \mbox{\hyperlink{classcore_1_1TCPServer_a6b7a7e1ac4132942fcaf418ed41c1437}{core\+::\+TCPServer}}, \mbox{\hyperlink{classcore_1_1SubscriptionManager_aaa30bf772ad72b3f319a790662e4f8ae}{core\+::\+Subscription\+Manager}}, \mbox{\hyperlink{classcore_1_1EPoll_a22b5f1545aff3162040844be043abcce}{core\+::\+EPoll}}, and \mbox{\hyperlink{classcore_1_1CommandList_a1819e1cb377b5d8e5e00b4777e2b4aba}{core\+::\+Command\+List}}. - - - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -Command.\+h\item -Command.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1CommandList.tex b/latex/classcore_1_1CommandList.tex deleted file mode 100644 index 02aeab7..0000000 --- a/latex/classcore_1_1CommandList.tex +++ /dev/null @@ -1,123 +0,0 @@ -\hypertarget{classcore_1_1CommandList}{}\doxysection{core\+::Command\+List Class Reference} -\label{classcore_1_1CommandList}\index{core::CommandList@{core::CommandList}} - - -{\ttfamily \#include $<$Command\+List.\+h$>$} - - - -Inheritance diagram for core\+::Command\+List\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=191pt]{classcore_1_1CommandList__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::Command\+List\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=191pt]{classcore_1_1CommandList__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1CommandList_a04609187f7b55e881fc31ac3b51a18c4}\label{classcore_1_1CommandList_a04609187f7b55e881fc31ac3b51a18c4}} -{\bfseries Command\+List} (std\+::string delimiter=\char`\"{}\char`\"{}, int depth=0) -\item -void \mbox{\hyperlink{classcore_1_1CommandList_a7a45e75e3d21a25fd3f7e887acf395e9}{add}} (\mbox{\hyperlink{classcore_1_1Command}{Command}} \&command, std\+::string name=\char`\"{}\char`\"{}) -\item -void \mbox{\hyperlink{classcore_1_1CommandList_aaac684effb9ecf5238d23ca60d3fffaa}{remove}} (\mbox{\hyperlink{classcore_1_1Command}{Command}} \&command) -\item -bool \mbox{\hyperlink{classcore_1_1CommandList_aa9b789df8eed15dc037bd98d596fe6e0}{process\+Request}} (coreutils\+::\+ZString \&request, \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session) -\item -bool \mbox{\hyperlink{classcore_1_1CommandList_a72aea93a650f148c639ba25a724da243}{grab\+Input}} (\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session, \mbox{\hyperlink{classcore_1_1Command}{Command}} \&command) -\item -\mbox{\Hypertarget{classcore_1_1CommandList_a9214dc76dbcde1520277d044c00cc1fc}\label{classcore_1_1CommandList_a9214dc76dbcde1520277d044c00cc1fc}} -void {\bfseries clear\+Grab} (\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session) -\item -int \mbox{\hyperlink{classcore_1_1CommandList_a1819e1cb377b5d8e5e00b4777e2b4aba}{process\+Command}} (coreutils\+::\+ZString \&request, \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session) -\end{DoxyCompactItemize} -\doxysubsection*{Protected Attributes} -\begin{DoxyCompactItemize} -\item -std\+::map$<$ std\+::string, \mbox{\hyperlink{classcore_1_1Command}{Command}} $\ast$ $>$ \mbox{\hyperlink{classcore_1_1CommandList_ad0aedf95828fe743908d8423f171ff36}{commands}} -\item -\mbox{\Hypertarget{classcore_1_1CommandList_adfc9ae3f4473a3cd35d5d1ebb5d1b2eb}\label{classcore_1_1CommandList_adfc9ae3f4473a3cd35d5d1ebb5d1b2eb}} -std\+::string {\bfseries delimiter} -\item -\mbox{\Hypertarget{classcore_1_1CommandList_aa72e019cef882e68b917d87ad06cade8}\label{classcore_1_1CommandList_aa72e019cef882e68b917d87ad06cade8}} -int {\bfseries depth} -\end{DoxyCompactItemize} - - -\doxysubsection{Detailed Description} -\mbox{\hyperlink{classcore_1_1CommandList}{Command\+List}} - -This object organizes \mbox{\hyperlink{classcore_1_1Command}{Command}} objects into a list that is used to parse an input and run the process associated with the selected command. - -\doxysubsection{Member Function Documentation} -\mbox{\Hypertarget{classcore_1_1CommandList_a7a45e75e3d21a25fd3f7e887acf395e9}\label{classcore_1_1CommandList_a7a45e75e3d21a25fd3f7e887acf395e9}} -\index{core::CommandList@{core::CommandList}!add@{add}} -\index{add@{add}!core::CommandList@{core::CommandList}} -\doxysubsubsection{\texorpdfstring{add()}{add()}} -{\footnotesize\ttfamily void core\+::\+Command\+List\+::add (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classcore_1_1Command}{Command}} \&}]{command, }\item[{std\+::string}]{name = {\ttfamily \char`\"{}\char`\"{}} }\end{DoxyParamCaption})} - -Add a new command to the command list and assign a default search value. \mbox{\Hypertarget{classcore_1_1CommandList_a72aea93a650f148c639ba25a724da243}\label{classcore_1_1CommandList_a72aea93a650f148c639ba25a724da243}} -\index{core::CommandList@{core::CommandList}!grabInput@{grabInput}} -\index{grabInput@{grabInput}!core::CommandList@{core::CommandList}} -\doxysubsubsection{\texorpdfstring{grabInput()}{grabInput()}} -{\footnotesize\ttfamily bool core\+::\+Command\+List\+::grab\+Input (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&}]{session, }\item[{\mbox{\hyperlink{classcore_1_1Command}{Command}} \&}]{command }\end{DoxyParamCaption})} - -Use \mbox{\hyperlink{classcore_1_1CommandList_a72aea93a650f148c639ba25a724da243}{grab\+Input()}} within a \mbox{\hyperlink{classcore_1_1Command}{Command}} object to force the requesting handler to receive all further input from the socket. Use release\+Grab() method to release the session back to normal command processing. \mbox{\Hypertarget{classcore_1_1CommandList_a1819e1cb377b5d8e5e00b4777e2b4aba}\label{classcore_1_1CommandList_a1819e1cb377b5d8e5e00b4777e2b4aba}} -\index{core::CommandList@{core::CommandList}!processCommand@{processCommand}} -\index{processCommand@{processCommand}!core::CommandList@{core::CommandList}} -\doxysubsubsection{\texorpdfstring{processCommand()}{processCommand()}} -{\footnotesize\ttfamily int core\+::\+Command\+List\+::process\+Command (\begin{DoxyParamCaption}\item[{coreutils\+::\+ZString \&}]{request, }\item[{\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&}]{session }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}} - -This method is used to implement the functionality of the requested command. This pure virtual function must be implemented in your inheriting object. - - -\begin{DoxyParams}{Parameters} -{\em request} & The request that was entered by the user to invoke this command. \\ -\hline -{\em session} & Specify the requesting session so that the execution of the command process can return its output to the session. \\ -\hline -\end{DoxyParams} -\begin{DoxyReturn}{Returns} -Returns 0 if execution of the command was successful. Otherwise returns a non-\/zero value indicating an error condition. -\end{DoxyReturn} - - -Reimplemented from \mbox{\hyperlink{classcore_1_1Command_a95176f2532c38ee14e3fee40ee28b1bd}{core\+::\+Command}}. - -\mbox{\Hypertarget{classcore_1_1CommandList_aa9b789df8eed15dc037bd98d596fe6e0}\label{classcore_1_1CommandList_aa9b789df8eed15dc037bd98d596fe6e0}} -\index{core::CommandList@{core::CommandList}!processRequest@{processRequest}} -\index{processRequest@{processRequest}!core::CommandList@{core::CommandList}} -\doxysubsubsection{\texorpdfstring{processRequest()}{processRequest()}} -{\footnotesize\ttfamily bool core\+::\+Command\+List\+::process\+Request (\begin{DoxyParamCaption}\item[{coreutils\+::\+ZString \&}]{request, }\item[{\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&}]{session }\end{DoxyParamCaption})} - -Use this method to apply a parsed ZString 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. \mbox{\Hypertarget{classcore_1_1CommandList_aaac684effb9ecf5238d23ca60d3fffaa}\label{classcore_1_1CommandList_aaac684effb9ecf5238d23ca60d3fffaa}} -\index{core::CommandList@{core::CommandList}!remove@{remove}} -\index{remove@{remove}!core::CommandList@{core::CommandList}} -\doxysubsubsection{\texorpdfstring{remove()}{remove()}} -{\footnotesize\ttfamily void core\+::\+Command\+List\+::remove (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classcore_1_1Command}{Command}} \&}]{command }\end{DoxyParamCaption})} - -Remove a command object from the command list. - -\doxysubsection{Member Data Documentation} -\mbox{\Hypertarget{classcore_1_1CommandList_ad0aedf95828fe743908d8423f171ff36}\label{classcore_1_1CommandList_ad0aedf95828fe743908d8423f171ff36}} -\index{core::CommandList@{core::CommandList}!commands@{commands}} -\index{commands@{commands}!core::CommandList@{core::CommandList}} -\doxysubsubsection{\texorpdfstring{commands}{commands}} -{\footnotesize\ttfamily std\+::map$<$std\+::string, \mbox{\hyperlink{classcore_1_1Command}{Command}} $\ast$$>$ core\+::\+Command\+List\+::commands\hspace{0.3cm}{\ttfamily [protected]}} - -The vector of all registered commands. - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -Command\+List.\+h\item -Command\+List.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1CommandList__coll__graph.md5 b/latex/classcore_1_1CommandList__coll__graph.md5 deleted file mode 100644 index 16cef61..0000000 --- a/latex/classcore_1_1CommandList__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -a96f3e328f89a36f8c825e2406f69cfd \ No newline at end of file diff --git a/latex/classcore_1_1CommandList__coll__graph.pdf b/latex/classcore_1_1CommandList__coll__graph.pdf deleted file mode 100644 index 25117e3..0000000 Binary files a/latex/classcore_1_1CommandList__coll__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1CommandList__inherit__graph.md5 b/latex/classcore_1_1CommandList__inherit__graph.md5 deleted file mode 100644 index 16cef61..0000000 --- a/latex/classcore_1_1CommandList__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -a96f3e328f89a36f8c825e2406f69cfd \ No newline at end of file diff --git a/latex/classcore_1_1CommandList__inherit__graph.pdf b/latex/classcore_1_1CommandList__inherit__graph.pdf deleted file mode 100644 index c2e858c..0000000 Binary files a/latex/classcore_1_1CommandList__inherit__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1Command__coll__graph.md5 b/latex/classcore_1_1Command__coll__graph.md5 deleted file mode 100644 index b1d441f..0000000 --- a/latex/classcore_1_1Command__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -a6101fc959b5d2ef84a8a6db1830dc39 \ No newline at end of file diff --git a/latex/classcore_1_1Command__coll__graph.pdf b/latex/classcore_1_1Command__coll__graph.pdf deleted file mode 100644 index 489ed67..0000000 Binary files a/latex/classcore_1_1Command__coll__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1Command__inherit__graph.md5 b/latex/classcore_1_1Command__inherit__graph.md5 deleted file mode 100644 index 1e3eece..0000000 --- a/latex/classcore_1_1Command__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -3526df9d00552d3dc2c0c203a1be8aaa \ No newline at end of file diff --git a/latex/classcore_1_1Command__inherit__graph.pdf b/latex/classcore_1_1Command__inherit__graph.pdf deleted file mode 100644 index 493f3eb..0000000 Binary files a/latex/classcore_1_1Command__inherit__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1ConsoleServer.tex b/latex/classcore_1_1ConsoleServer.tex deleted file mode 100644 index f8db41a..0000000 --- a/latex/classcore_1_1ConsoleServer.tex +++ /dev/null @@ -1,51 +0,0 @@ -\hypertarget{classcore_1_1ConsoleServer}{}\doxysection{core\+::Console\+Server Class Reference} -\label{classcore_1_1ConsoleServer}\index{core::ConsoleServer@{core::ConsoleServer}} - - -Inheritance diagram for core\+::Console\+Server\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=350pt]{classcore_1_1ConsoleServer__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::Console\+Server\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=350pt]{classcore_1_1ConsoleServer__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1ConsoleServer_a938c93207ced5bfa3e15e9f4a1cbf3f0}\label{classcore_1_1ConsoleServer_a938c93207ced5bfa3e15e9f4a1cbf3f0}} -{\bfseries Console\+Server} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll, \mbox{\hyperlink{classcore_1_1IPAddress}{IPAddress}} address) -\item -\mbox{\Hypertarget{classcore_1_1ConsoleServer_ace482706881fd6cbec4e01534c091391}\label{classcore_1_1ConsoleServer_ace482706881fd6cbec4e01534c091391}} -void {\bfseries log\+Send} (std\+::string out) override -\item -\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} $\ast$ \mbox{\hyperlink{classcore_1_1ConsoleServer_a80d9ea7f3fc5e07c50d5b9e0d4943ca8}{get\+Socket\+Accept}} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll) override -\end{DoxyCompactItemize} -\doxysubsection*{Additional Inherited Members} - - -\doxysubsection{Member Function Documentation} -\mbox{\Hypertarget{classcore_1_1ConsoleServer_a80d9ea7f3fc5e07c50d5b9e0d4943ca8}\label{classcore_1_1ConsoleServer_a80d9ea7f3fc5e07c50d5b9e0d4943ca8}} -\index{core::ConsoleServer@{core::ConsoleServer}!getSocketAccept@{getSocketAccept}} -\index{getSocketAccept@{getSocketAccept}!core::ConsoleServer@{core::ConsoleServer}} -\doxysubsubsection{\texorpdfstring{getSocketAccept()}{getSocketAccept()}} -{\footnotesize\ttfamily \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} $\ast$ core\+::\+Console\+Server\+::get\+Socket\+Accept (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&}]{epoll }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}} - -get\+Socket\+Accept is designed to allow a polymorphic extension of this object to return a type of object that extends the definition of the server socket. Returning the appropriate session object that extends from Session provides the mechanism where the server can select the protocol dialog for the desired service. - -Reimplemented from \mbox{\hyperlink{classcore_1_1TCPServer_a841f02799ad8529aad7cea132f4de8a9}{core\+::\+TCPServer}}. - - - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -Console\+Server.\+h\item -Console\+Server.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1ConsoleServer__coll__graph.md5 b/latex/classcore_1_1ConsoleServer__coll__graph.md5 deleted file mode 100644 index e9e1edc..0000000 --- a/latex/classcore_1_1ConsoleServer__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -a4ebc47440f704b1f6db6bf83abbc128 \ No newline at end of file diff --git a/latex/classcore_1_1ConsoleServer__coll__graph.pdf b/latex/classcore_1_1ConsoleServer__coll__graph.pdf deleted file mode 100644 index f04265a..0000000 Binary files a/latex/classcore_1_1ConsoleServer__coll__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1ConsoleServer__inherit__graph.md5 b/latex/classcore_1_1ConsoleServer__inherit__graph.md5 deleted file mode 100644 index 5dbe872..0000000 --- a/latex/classcore_1_1ConsoleServer__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -d8a7b139f69b81405af9117126175bb6 \ No newline at end of file diff --git a/latex/classcore_1_1ConsoleServer__inherit__graph.pdf b/latex/classcore_1_1ConsoleServer__inherit__graph.pdf deleted file mode 100644 index 2ef72b2..0000000 Binary files a/latex/classcore_1_1ConsoleServer__inherit__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1ConsoleSession.tex b/latex/classcore_1_1ConsoleSession.tex deleted file mode 100644 index 5f04dae..0000000 --- a/latex/classcore_1_1ConsoleSession.tex +++ /dev/null @@ -1,65 +0,0 @@ -\hypertarget{classcore_1_1ConsoleSession}{}\doxysection{core\+::Console\+Session Class Reference} -\label{classcore_1_1ConsoleSession}\index{core::ConsoleSession@{core::ConsoleSession}} - - -{\ttfamily \#include $<$Console\+Session.\+h$>$} - - - -Inheritance diagram for core\+::Console\+Session\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=203pt]{classcore_1_1ConsoleSession__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::Console\+Session\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=350pt]{classcore_1_1ConsoleSession__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1ConsoleSession_ae735e9739fb4cfd2ef983cc56f9982c7}\label{classcore_1_1ConsoleSession_ae735e9739fb4cfd2ef983cc56f9982c7}} -{\bfseries Console\+Session} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll, \mbox{\hyperlink{classcore_1_1TCPServer}{TCPServer}} \&server) -\item -\mbox{\Hypertarget{classcore_1_1ConsoleSession_a6e6b56503966f1cae5bdff8b3814e2b9}\label{classcore_1_1ConsoleSession_a6e6b56503966f1cae5bdff8b3814e2b9}} -void {\bfseries write\+Log} (std\+::string data) -\end{DoxyCompactItemize} -\doxysubsection*{Protected Member Functions} -\begin{DoxyCompactItemize} -\item -void \mbox{\hyperlink{classcore_1_1ConsoleSession_aa1818efcd33a4152d2089aa545f08833}{protocol}} (coreutils\+::\+ZString \&data) override -\end{DoxyCompactItemize} -\doxysubsection*{Additional Inherited Members} - - -\doxysubsection{Detailed Description} -\mbox{\hyperlink{classcore_1_1ConsoleSession}{Console\+Session}} - -Extends the session parameters for this \mbox{\hyperlink{classcore_1_1TCPSocket}{TCPSocket}} derived object. Extend the \mbox{\hyperlink{classcore_1_1ConsoleSession_aa1818efcd33a4152d2089aa545f08833}{protocol()}} method in order to define the behavior and protocol interaction for this socket which is a console session. - -\doxysubsection{Member Function Documentation} -\mbox{\Hypertarget{classcore_1_1ConsoleSession_aa1818efcd33a4152d2089aa545f08833}\label{classcore_1_1ConsoleSession_aa1818efcd33a4152d2089aa545f08833}} -\index{core::ConsoleSession@{core::ConsoleSession}!protocol@{protocol}} -\index{protocol@{protocol}!core::ConsoleSession@{core::ConsoleSession}} -\doxysubsubsection{\texorpdfstring{protocol()}{protocol()}} -{\footnotesize\ttfamily void core\+::\+Console\+Session\+::protocol (\begin{DoxyParamCaption}\item[{coreutils\+::\+ZString \&}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [protected]}, {\ttfamily [virtual]}} - -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 default will process the \textquotesingle{}commands\textquotesingle{} added to the server object using the process\+Request method on the session input. - -When data is received within the session two modes are available to pass the data through the protocol method\+: LINE or BLOCK. - -Reimplemented from \mbox{\hyperlink{classcore_1_1TCPSession_a98a65da2346b79bee659fca6902e94c7}{core\+::\+TCPSession}}. - - - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -Console\+Session.\+h\item -Console\+Session.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1ConsoleSession__coll__graph.md5 b/latex/classcore_1_1ConsoleSession__coll__graph.md5 deleted file mode 100644 index 1c6e4cb..0000000 --- a/latex/classcore_1_1ConsoleSession__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -cc5d4fa0c42ae34b1169b000474a8246 \ No newline at end of file diff --git a/latex/classcore_1_1ConsoleSession__coll__graph.pdf b/latex/classcore_1_1ConsoleSession__coll__graph.pdf deleted file mode 100644 index 47cadc6..0000000 Binary files a/latex/classcore_1_1ConsoleSession__coll__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1ConsoleSession__inherit__graph.md5 b/latex/classcore_1_1ConsoleSession__inherit__graph.md5 deleted file mode 100644 index 20b0d97..0000000 --- a/latex/classcore_1_1ConsoleSession__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -0f5e7e7912dc563e80e4ac78360dc9fe \ No newline at end of file diff --git a/latex/classcore_1_1ConsoleSession__inherit__graph.pdf b/latex/classcore_1_1ConsoleSession__inherit__graph.pdf deleted file mode 100644 index e7e4966..0000000 Binary files a/latex/classcore_1_1ConsoleSession__inherit__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1EPoll.tex b/latex/classcore_1_1EPoll.tex deleted file mode 100644 index a3da268..0000000 --- a/latex/classcore_1_1EPoll.tex +++ /dev/null @@ -1,217 +0,0 @@ -\hypertarget{classcore_1_1EPoll}{}\doxysection{core\+::EPoll Class Reference} -\label{classcore_1_1EPoll}\index{core::EPoll@{core::EPoll}} - - -{\ttfamily \#include $<$EPoll.\+h$>$} - - - -Inheritance diagram for core\+::EPoll\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=174pt]{classcore_1_1EPoll__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::EPoll\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=174pt]{classcore_1_1EPoll__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\hyperlink{classcore_1_1EPoll_a2fd5cc4336b5f72990ecc0e7ea3d7641}{EPoll}} () -\item -\mbox{\hyperlink{classcore_1_1EPoll_a8e7a2496d684b745a6410f9bd3e88534}{$\sim$\+EPoll}} () -\item -bool \mbox{\hyperlink{classcore_1_1EPoll_aaefe2caef75eb538af90cb34682d277b}{start}} (int number\+Of\+Threads, int \mbox{\hyperlink{classcore_1_1EPoll_acfcef2513d94f7b9a191fed3dc744d90}{max\+Sockets}}) -\begin{DoxyCompactList}\small\item\em Start the BMAEPoll processing. \end{DoxyCompactList}\item -bool \mbox{\hyperlink{classcore_1_1EPoll_a0c2865acd31d14fbf19dbc42cc084ddc}{stop}} () -\begin{DoxyCompactList}\small\item\em Stop and shut down the BMAEPoll processing. \end{DoxyCompactList}\item -bool \mbox{\hyperlink{classcore_1_1EPoll_a301b46b71ac7ac61a687ff723fe269b3}{is\+Stopping}} () -\begin{DoxyCompactList}\small\item\em Returns a true if the stop command has been requested. \end{DoxyCompactList}\item -bool \mbox{\hyperlink{classcore_1_1EPoll_a3d813c7bbf0da70ebc8e3cb6aeeacfb4}{register\+Socket}} (\mbox{\hyperlink{classcore_1_1Socket}{Socket}} $\ast$socket) -\begin{DoxyCompactList}\small\item\em Register a BMASocket for monitoring by BMAEPoll. \end{DoxyCompactList}\item -bool \mbox{\hyperlink{classcore_1_1EPoll_a5ab5e82ab51e0952fc8fbcc128f52900}{unregister\+Socket}} (\mbox{\hyperlink{classcore_1_1Socket}{Socket}} $\ast$socket) -\begin{DoxyCompactList}\small\item\em Unregister a BMASocket from monitoring by BMAEPoll. \end{DoxyCompactList}\item -int \mbox{\hyperlink{classcore_1_1EPoll_a1e52017e1deae15c1c87c6b6a099e1ed}{get\+Descriptor}} () -\begin{DoxyCompactList}\small\item\em Return the descriptor for the e\+Poll socket. \end{DoxyCompactList}\item -void \mbox{\hyperlink{classcore_1_1EPoll_a3238b150b5d0a57eb2e1b17daa236d3b}{event\+Received}} (struct epoll\+\_\+event event) -\begin{DoxyCompactList}\small\item\em Dispatch event to appropriate socket. \end{DoxyCompactList}\item -int \mbox{\hyperlink{classcore_1_1EPoll_a22b5f1545aff3162040844be043abcce}{process\+Command}} (coreutils\+::\+ZString \&request, \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session) override -\begin{DoxyCompactList}\small\item\em Output the threads array to the console. \end{DoxyCompactList}\item -\mbox{\Hypertarget{classcore_1_1EPoll_a033633714311f3edc4127ddd1c37f299}\label{classcore_1_1EPoll_a033633714311f3edc4127ddd1c37f299}} -void {\bfseries reset\+Socket} (\mbox{\hyperlink{classcore_1_1Socket}{Socket}} $\ast$socket) -\end{DoxyCompactItemize} -\doxysubsection*{Public Attributes} -\begin{DoxyCompactItemize} -\item -int \mbox{\hyperlink{classcore_1_1EPoll_acfcef2513d94f7b9a191fed3dc744d90}{max\+Sockets}} -\begin{DoxyCompactList}\small\item\em The maximum number of socket allowed. \end{DoxyCompactList}\end{DoxyCompactItemize} - - -\doxysubsection{Detailed Description} -\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} - -Manage socket events from the epoll system call. - -Use this object to establish a socket server using the epoll network structure of Linux. - -Use this object to establish the basis of working with multiple sockets of all sorts using the epoll capabilities of the Linux platform. \mbox{\hyperlink{classcore_1_1Socket}{Socket}} objects can register with \mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} which will establish a communication mechanism with that socket. - -The maximum number of sockets to communicate with is specified on the start method. - -Threads are used to establish a read queue for epoll. The desired number of threads (or queues) is established by a parameter on the start method. - -\doxysubsection{Constructor \& Destructor Documentation} -\mbox{\Hypertarget{classcore_1_1EPoll_a2fd5cc4336b5f72990ecc0e7ea3d7641}\label{classcore_1_1EPoll_a2fd5cc4336b5f72990ecc0e7ea3d7641}} -\index{core::EPoll@{core::EPoll}!EPoll@{EPoll}} -\index{EPoll@{EPoll}!core::EPoll@{core::EPoll}} -\doxysubsubsection{\texorpdfstring{EPoll()}{EPoll()}} -{\footnotesize\ttfamily core\+::\+EPoll\+::\+EPoll (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} - -The constructor for the BMAEPoll object. \mbox{\Hypertarget{classcore_1_1EPoll_a8e7a2496d684b745a6410f9bd3e88534}\label{classcore_1_1EPoll_a8e7a2496d684b745a6410f9bd3e88534}} -\index{core::EPoll@{core::EPoll}!````~EPoll@{$\sim$EPoll}} -\index{````~EPoll@{$\sim$EPoll}!core::EPoll@{core::EPoll}} -\doxysubsubsection{\texorpdfstring{$\sim$EPoll()}{~EPoll()}} -{\footnotesize\ttfamily core\+::\+EPoll\+::$\sim$\+EPoll (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} - -The destructor for the BMAEPoll object. - -\doxysubsection{Member Function Documentation} -\mbox{\Hypertarget{classcore_1_1EPoll_a3238b150b5d0a57eb2e1b17daa236d3b}\label{classcore_1_1EPoll_a3238b150b5d0a57eb2e1b17daa236d3b}} -\index{core::EPoll@{core::EPoll}!eventReceived@{eventReceived}} -\index{eventReceived@{eventReceived}!core::EPoll@{core::EPoll}} -\doxysubsubsection{\texorpdfstring{eventReceived()}{eventReceived()}} -{\footnotesize\ttfamily void core\+::\+EPoll\+::event\+Received (\begin{DoxyParamCaption}\item[{struct epoll\+\_\+event}]{event }\end{DoxyParamCaption})} - - - -Dispatch event to appropriate socket. - -Receive the epoll events and dispatch the event to the socket making the request. \mbox{\Hypertarget{classcore_1_1EPoll_a1e52017e1deae15c1c87c6b6a099e1ed}\label{classcore_1_1EPoll_a1e52017e1deae15c1c87c6b6a099e1ed}} -\index{core::EPoll@{core::EPoll}!getDescriptor@{getDescriptor}} -\index{getDescriptor@{getDescriptor}!core::EPoll@{core::EPoll}} -\doxysubsubsection{\texorpdfstring{getDescriptor()}{getDescriptor()}} -{\footnotesize\ttfamily int core\+::\+EPoll\+::get\+Descriptor (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} - - - -Return the descriptor for the e\+Poll socket. - -Use this method to obtain the current descriptor socket number for the epoll function call. \mbox{\Hypertarget{classcore_1_1EPoll_a301b46b71ac7ac61a687ff723fe269b3}\label{classcore_1_1EPoll_a301b46b71ac7ac61a687ff723fe269b3}} -\index{core::EPoll@{core::EPoll}!isStopping@{isStopping}} -\index{isStopping@{isStopping}!core::EPoll@{core::EPoll}} -\doxysubsubsection{\texorpdfstring{isStopping()}{isStopping()}} -{\footnotesize\ttfamily bool core\+::\+EPoll\+::is\+Stopping (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} - - - -Returns a true if the stop command has been requested. - -This method returns a true if the \mbox{\hyperlink{classcore_1_1EPoll_a0c2865acd31d14fbf19dbc42cc084ddc}{stop()}} method has been called and the epoll system is shutting. \mbox{\Hypertarget{classcore_1_1EPoll_a22b5f1545aff3162040844be043abcce}\label{classcore_1_1EPoll_a22b5f1545aff3162040844be043abcce}} -\index{core::EPoll@{core::EPoll}!processCommand@{processCommand}} -\index{processCommand@{processCommand}!core::EPoll@{core::EPoll}} -\doxysubsubsection{\texorpdfstring{processCommand()}{processCommand()}} -{\footnotesize\ttfamily int core\+::\+EPoll\+::process\+Command (\begin{DoxyParamCaption}\item[{coreutils\+::\+ZString \&}]{request, }\item[{\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&}]{session }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}} - - - -Output the threads array to the console. - -The \mbox{\hyperlink{classcore_1_1EPoll_a22b5f1545aff3162040844be043abcce}{process\+Command()}} method displays the thread array to the requesting console via the session passed as parameter. - - -\begin{DoxyParams}{Parameters} -{\em session} & the session to write the requested data to. \\ -\hline -\end{DoxyParams} - - -Reimplemented from \mbox{\hyperlink{classcore_1_1Command_a95176f2532c38ee14e3fee40ee28b1bd}{core\+::\+Command}}. - -\mbox{\Hypertarget{classcore_1_1EPoll_a3d813c7bbf0da70ebc8e3cb6aeeacfb4}\label{classcore_1_1EPoll_a3d813c7bbf0da70ebc8e3cb6aeeacfb4}} -\index{core::EPoll@{core::EPoll}!registerSocket@{registerSocket}} -\index{registerSocket@{registerSocket}!core::EPoll@{core::EPoll}} -\doxysubsubsection{\texorpdfstring{registerSocket()}{registerSocket()}} -{\footnotesize\ttfamily bool core\+::\+EPoll\+::register\+Socket (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classcore_1_1Socket}{Socket}} $\ast$}]{socket }\end{DoxyParamCaption})} - - - -Register a BMASocket for monitoring by BMAEPoll. - -Use register\+Socket to add a new socket to the e\+Poll event watch list. This enables a new BMASocket object to receive events when data is received as well as to write data output to the socket. - - -\begin{DoxyParams}{Parameters} -{\em socket} & a pointer to a BMASocket object. \\ -\hline -\end{DoxyParams} -\begin{DoxyReturn}{Returns} -a booelean that indicates the socket was registered or not. -\end{DoxyReturn} -\mbox{\Hypertarget{classcore_1_1EPoll_aaefe2caef75eb538af90cb34682d277b}\label{classcore_1_1EPoll_aaefe2caef75eb538af90cb34682d277b}} -\index{core::EPoll@{core::EPoll}!start@{start}} -\index{start@{start}!core::EPoll@{core::EPoll}} -\doxysubsubsection{\texorpdfstring{start()}{start()}} -{\footnotesize\ttfamily bool core\+::\+EPoll\+::start (\begin{DoxyParamCaption}\item[{int}]{number\+Of\+Threads, }\item[{int}]{max\+Sockets }\end{DoxyParamCaption})} - - - -Start the BMAEPoll processing. - -Use the \mbox{\hyperlink{classcore_1_1EPoll_aaefe2caef75eb538af90cb34682d277b}{start()}} method to initiate the threads and begin epoll queue processing. - - -\begin{DoxyParams}{Parameters} -{\em number\+Of\+Threads} & the number of threads to start for processing epoll entries. \\ -\hline -{\em max\+Sockets} & the maximum number of open sockets that epoll will manage. \\ -\hline -\end{DoxyParams} -\mbox{\Hypertarget{classcore_1_1EPoll_a0c2865acd31d14fbf19dbc42cc084ddc}\label{classcore_1_1EPoll_a0c2865acd31d14fbf19dbc42cc084ddc}} -\index{core::EPoll@{core::EPoll}!stop@{stop}} -\index{stop@{stop}!core::EPoll@{core::EPoll}} -\doxysubsubsection{\texorpdfstring{stop()}{stop()}} -{\footnotesize\ttfamily bool core\+::\+EPoll\+::stop (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} - - - -Stop and shut down the BMAEPoll processing. - -Use the \mbox{\hyperlink{classcore_1_1EPoll_a0c2865acd31d14fbf19dbc42cc084ddc}{stop()}} method to initiate the shutdown process for the epoll socket management. - -A complete shutdown of all managed sockets will be initiated by this method call. \mbox{\Hypertarget{classcore_1_1EPoll_a5ab5e82ab51e0952fc8fbcc128f52900}\label{classcore_1_1EPoll_a5ab5e82ab51e0952fc8fbcc128f52900}} -\index{core::EPoll@{core::EPoll}!unregisterSocket@{unregisterSocket}} -\index{unregisterSocket@{unregisterSocket}!core::EPoll@{core::EPoll}} -\doxysubsubsection{\texorpdfstring{unregisterSocket()}{unregisterSocket()}} -{\footnotesize\ttfamily bool core\+::\+EPoll\+::unregister\+Socket (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classcore_1_1Socket}{Socket}} $\ast$}]{socket }\end{DoxyParamCaption})} - - - -Unregister a BMASocket from monitoring by BMAEPoll. - -Use this method to remove a socket from receiving events from the epoll system. - -\doxysubsection{Member Data Documentation} -\mbox{\Hypertarget{classcore_1_1EPoll_acfcef2513d94f7b9a191fed3dc744d90}\label{classcore_1_1EPoll_acfcef2513d94f7b9a191fed3dc744d90}} -\index{core::EPoll@{core::EPoll}!maxSockets@{maxSockets}} -\index{maxSockets@{maxSockets}!core::EPoll@{core::EPoll}} -\doxysubsubsection{\texorpdfstring{maxSockets}{maxSockets}} -{\footnotesize\ttfamily int core\+::\+EPoll\+::max\+Sockets} - - - -The maximum number of socket allowed. - -The maximum number of sockets that can be managed by the epoll system. - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -EPoll.\+h\item -EPoll.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1EPoll__coll__graph.md5 b/latex/classcore_1_1EPoll__coll__graph.md5 deleted file mode 100644 index ed85b5d..0000000 --- a/latex/classcore_1_1EPoll__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -98b90bfe6ece875f9b9fa2075b6d694f \ No newline at end of file diff --git a/latex/classcore_1_1EPoll__coll__graph.pdf b/latex/classcore_1_1EPoll__coll__graph.pdf deleted file mode 100644 index d3f6ce2..0000000 Binary files a/latex/classcore_1_1EPoll__coll__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1EPoll__inherit__graph.md5 b/latex/classcore_1_1EPoll__inherit__graph.md5 deleted file mode 100644 index ed85b5d..0000000 --- a/latex/classcore_1_1EPoll__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -98b90bfe6ece875f9b9fa2075b6d694f \ No newline at end of file diff --git a/latex/classcore_1_1EPoll__inherit__graph.pdf b/latex/classcore_1_1EPoll__inherit__graph.pdf deleted file mode 100644 index d3f6ce2..0000000 Binary files a/latex/classcore_1_1EPoll__inherit__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1INotify.tex b/latex/classcore_1_1INotify.tex deleted file mode 100644 index cb3271d..0000000 --- a/latex/classcore_1_1INotify.tex +++ /dev/null @@ -1,77 +0,0 @@ -\hypertarget{classcore_1_1INotify}{}\doxysection{core\+::INotify Class Reference} -\label{classcore_1_1INotify}\index{core::INotify@{core::INotify}} - - -Inheritance diagram for core\+::INotify\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=157pt]{classcore_1_1INotify__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::INotify\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=174pt]{classcore_1_1INotify__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1INotify_a777d8ab058639165974b7c0144564b26}\label{classcore_1_1INotify_a777d8ab058639165974b7c0144564b26}} -{\bfseries INotify} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll) -\item -\mbox{\Hypertarget{classcore_1_1INotify_ab498fca3d44a7de75b1a6b1f9e1404e7}\label{classcore_1_1INotify_ab498fca3d44a7de75b1a6b1f9e1404e7}} -int {\bfseries add\+Watch} (std\+::string watch) -\item -\mbox{\Hypertarget{classcore_1_1INotify_a5ce2a1bbfd69f5a88ef807f7ed439c06}\label{classcore_1_1INotify_a5ce2a1bbfd69f5a88ef807f7ed439c06}} -void {\bfseries remove\+Watch} (int wd) -\item -\mbox{\Hypertarget{classcore_1_1INotify_a642e44e906da81ce8180beb2bc09d602}\label{classcore_1_1INotify_a642e44e906da81ce8180beb2bc09d602}} -void {\bfseries on\+Data\+Received} (coreutils\+::\+ZString \&data) override -\item -\mbox{\Hypertarget{classcore_1_1INotify_a172949023698fc486d690d3b6d3d6f17}\label{classcore_1_1INotify_a172949023698fc486d690d3b6d3d6f17}} -virtual void {\bfseries in\+Access} (std\+::string name) -\item -\mbox{\Hypertarget{classcore_1_1INotify_ab11e39edc303c6f18250a6381ed225d8}\label{classcore_1_1INotify_ab11e39edc303c6f18250a6381ed225d8}} -virtual void {\bfseries in\+Attrib} (std\+::string name) -\item -\mbox{\Hypertarget{classcore_1_1INotify_aab4c420c6f1661c31f795e8222a24090}\label{classcore_1_1INotify_aab4c420c6f1661c31f795e8222a24090}} -virtual void {\bfseries in\+Close\+Write} (std\+::string name) -\item -\mbox{\Hypertarget{classcore_1_1INotify_adc4e710fd3a7fa4aa104814f4de47879}\label{classcore_1_1INotify_adc4e710fd3a7fa4aa104814f4de47879}} -virtual void {\bfseries in\+Close\+No\+Write} (std\+::string name) -\item -\mbox{\Hypertarget{classcore_1_1INotify_ac91acdb9fddda8ca47e4f8cbf3cf50e0}\label{classcore_1_1INotify_ac91acdb9fddda8ca47e4f8cbf3cf50e0}} -virtual void {\bfseries in\+Create} (std\+::string name) -\item -\mbox{\Hypertarget{classcore_1_1INotify_a0f46651b97d2f081b8ef968e8328c827}\label{classcore_1_1INotify_a0f46651b97d2f081b8ef968e8328c827}} -virtual void {\bfseries in\+Delete} (std\+::string name) -\item -\mbox{\Hypertarget{classcore_1_1INotify_ada67b3841d1bfb383c6374a7f8bb06a7}\label{classcore_1_1INotify_ada67b3841d1bfb383c6374a7f8bb06a7}} -virtual void {\bfseries in\+Delete\+Self} (std\+::string name) -\item -\mbox{\Hypertarget{classcore_1_1INotify_a5d687a9fd3601a466d3e973bf4370431}\label{classcore_1_1INotify_a5d687a9fd3601a466d3e973bf4370431}} -virtual void {\bfseries in\+Modify} (std\+::string name) -\item -\mbox{\Hypertarget{classcore_1_1INotify_a4fc6ec43473adfa3563cbf72617d4bba}\label{classcore_1_1INotify_a4fc6ec43473adfa3563cbf72617d4bba}} -virtual void {\bfseries in\+Move\+Self} (std\+::string name) -\item -\mbox{\Hypertarget{classcore_1_1INotify_ae9e429c6ce68424d5b58153ace41c25b}\label{classcore_1_1INotify_ae9e429c6ce68424d5b58153ace41c25b}} -virtual void {\bfseries in\+Moved\+From} (std\+::string name) -\item -\mbox{\Hypertarget{classcore_1_1INotify_ad7e5079ffc805954fc4f0542555694a4}\label{classcore_1_1INotify_ad7e5079ffc805954fc4f0542555694a4}} -virtual void {\bfseries in\+Moved\+To} (std\+::string name) -\item -\mbox{\Hypertarget{classcore_1_1INotify_a96894ea43c6aa89e986303ef36bdbcc3}\label{classcore_1_1INotify_a96894ea43c6aa89e986303ef36bdbcc3}} -virtual void {\bfseries in\+Open} (std\+::string name) -\end{DoxyCompactItemize} - - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -INotify.\+h\item -INotify.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1INotify__coll__graph.md5 b/latex/classcore_1_1INotify__coll__graph.md5 deleted file mode 100644 index f199f03..0000000 --- a/latex/classcore_1_1INotify__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -4ce64bfd98c2c85efcf959f9b2ce61d2 \ No newline at end of file diff --git a/latex/classcore_1_1INotify__coll__graph.pdf b/latex/classcore_1_1INotify__coll__graph.pdf deleted file mode 100644 index 461e919..0000000 Binary files a/latex/classcore_1_1INotify__coll__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1INotify__inherit__graph.md5 b/latex/classcore_1_1INotify__inherit__graph.md5 deleted file mode 100644 index 1ea421b..0000000 --- a/latex/classcore_1_1INotify__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -3f5ea77c62672e519022863919c4aea3 \ No newline at end of file diff --git a/latex/classcore_1_1INotify__inherit__graph.pdf b/latex/classcore_1_1INotify__inherit__graph.pdf deleted file mode 100644 index f4b4c53..0000000 Binary files a/latex/classcore_1_1INotify__inherit__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1IPAddress.tex b/latex/classcore_1_1IPAddress.tex deleted file mode 100644 index e3ae49b..0000000 --- a/latex/classcore_1_1IPAddress.tex +++ /dev/null @@ -1,56 +0,0 @@ -\hypertarget{classcore_1_1IPAddress}{}\doxysection{core\+::IPAddress Class Reference} -\label{classcore_1_1IPAddress}\index{core::IPAddress@{core::IPAddress}} - - -Inheritance diagram for core\+::IPAddress\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=172pt]{classcore_1_1IPAddress__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::IPAddress\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=172pt]{classcore_1_1IPAddress__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1IPAddress_a31fb55b1b979f0e8a07446285f9a99f8}\label{classcore_1_1IPAddress_a31fb55b1b979f0e8a07446285f9a99f8}} -{\bfseries IPAddress} (std\+::string address) -\item -\mbox{\Hypertarget{classcore_1_1IPAddress_a37d942b8fae09010adbda33f714808c0}\label{classcore_1_1IPAddress_a37d942b8fae09010adbda33f714808c0}} -{\bfseries IPAddress} (std\+::string address, int port) -\item -\mbox{\Hypertarget{classcore_1_1IPAddress_a095a5ab48cc72161c1614ddfa89ac3ee}\label{classcore_1_1IPAddress_a095a5ab48cc72161c1614ddfa89ac3ee}} -struct sockaddr $\ast$ {\bfseries get\+Pointer} () -\item -\mbox{\Hypertarget{classcore_1_1IPAddress_ae5e7e28589d026bbbc6c3423d418b008}\label{classcore_1_1IPAddress_ae5e7e28589d026bbbc6c3423d418b008}} -std\+::string \mbox{\hyperlink{classcore_1_1IPAddress_ae5e7e28589d026bbbc6c3423d418b008}{get\+Client\+Address}} () -\begin{DoxyCompactList}\small\item\em Get the client network address as xxx.\+xxx.\+xxx.\+xxx. \end{DoxyCompactList}\item -\mbox{\Hypertarget{classcore_1_1IPAddress_abea870f1a048cb7bba1d2bad98558232}\label{classcore_1_1IPAddress_abea870f1a048cb7bba1d2bad98558232}} -std\+::string \mbox{\hyperlink{classcore_1_1IPAddress_abea870f1a048cb7bba1d2bad98558232}{get\+Client\+Address\+And\+Port}} () -\begin{DoxyCompactList}\small\item\em Get the client network address and port as xxx.\+xxx.\+xxx.\+xxx\+:ppppp. \end{DoxyCompactList}\item -\mbox{\Hypertarget{classcore_1_1IPAddress_a39f706f2d43d7d001296ecead4b587e8}\label{classcore_1_1IPAddress_a39f706f2d43d7d001296ecead4b587e8}} -int \mbox{\hyperlink{classcore_1_1IPAddress_a39f706f2d43d7d001296ecead4b587e8}{get\+Client\+Port}} () -\begin{DoxyCompactList}\small\item\em Get the client network port number. \end{DoxyCompactList}\end{DoxyCompactItemize} -\doxysubsection*{Public Attributes} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1IPAddress_ac1291bdc515fc5b2c9ba177ddec06454}\label{classcore_1_1IPAddress_ac1291bdc515fc5b2c9ba177ddec06454}} -struct sockaddr\+\_\+in {\bfseries addr} -\item -\mbox{\Hypertarget{classcore_1_1IPAddress_a00856ef1b1deccd0341cd7ea6d1bc8e5}\label{classcore_1_1IPAddress_a00856ef1b1deccd0341cd7ea6d1bc8e5}} -socklen\+\_\+t {\bfseries address\+Length} -\end{DoxyCompactItemize} - - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -IPAddress.\+h\item -IPAddress.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1IPAddressList.tex b/latex/classcore_1_1IPAddressList.tex deleted file mode 100644 index 654f1d8..0000000 --- a/latex/classcore_1_1IPAddressList.tex +++ /dev/null @@ -1,23 +0,0 @@ -\hypertarget{classcore_1_1IPAddressList}{}\doxysection{core\+::IPAddress\+List Class Reference} -\label{classcore_1_1IPAddressList}\index{core::IPAddressList@{core::IPAddressList}} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1IPAddressList_a740cf5f7e2633836b7a741b9f048036f}\label{classcore_1_1IPAddressList_a740cf5f7e2633836b7a741b9f048036f}} -std\+::map$<$ std\+::string, \mbox{\hyperlink{classcore_1_1IPAddress}{IPAddress}} $>$ {\bfseries get\+List} () -\item -\mbox{\Hypertarget{classcore_1_1IPAddressList_ab98c5a502d8f5cfb4e8c451c48dbc131}\label{classcore_1_1IPAddressList_ab98c5a502d8f5cfb4e8c451c48dbc131}} -void {\bfseries add} (\mbox{\hyperlink{classcore_1_1IPAddress}{IPAddress}} ip\+Address) -\item -\mbox{\Hypertarget{classcore_1_1IPAddressList_a86e9890e15e8e0d87e34f36b637d5c40}\label{classcore_1_1IPAddressList_a86e9890e15e8e0d87e34f36b637d5c40}} -bool {\bfseries remove} (\mbox{\hyperlink{classcore_1_1IPAddress}{IPAddress}} ip\+Address) -\item -\mbox{\Hypertarget{classcore_1_1IPAddressList_add254c996687fd8f9ada0b5335e477cd}\label{classcore_1_1IPAddressList_add254c996687fd8f9ada0b5335e477cd}} -bool {\bfseries contains} (std\+::string ip\+Address) -\end{DoxyCompactItemize} - - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -IPAddress\+List.\+h\item -IPAddress\+List.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1IPAddress__coll__graph.md5 b/latex/classcore_1_1IPAddress__coll__graph.md5 deleted file mode 100644 index 36b9e9f..0000000 --- a/latex/classcore_1_1IPAddress__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -7f7ac9b55c8d17116ebd1c299b44c348 \ No newline at end of file diff --git a/latex/classcore_1_1IPAddress__coll__graph.pdf b/latex/classcore_1_1IPAddress__coll__graph.pdf deleted file mode 100644 index 7837edf..0000000 Binary files a/latex/classcore_1_1IPAddress__coll__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1IPAddress__inherit__graph.md5 b/latex/classcore_1_1IPAddress__inherit__graph.md5 deleted file mode 100644 index 36b9e9f..0000000 --- a/latex/classcore_1_1IPAddress__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -7f7ac9b55c8d17116ebd1c299b44c348 \ No newline at end of file diff --git a/latex/classcore_1_1IPAddress__inherit__graph.pdf b/latex/classcore_1_1IPAddress__inherit__graph.pdf deleted file mode 100644 index 7f03a26..0000000 Binary files a/latex/classcore_1_1IPAddress__inherit__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1Object.tex b/latex/classcore_1_1Object.tex deleted file mode 100644 index 0893207..0000000 --- a/latex/classcore_1_1Object.tex +++ /dev/null @@ -1,25 +0,0 @@ -\hypertarget{classcore_1_1Object}{}\doxysection{core\+::Object Class Reference} -\label{classcore_1_1Object}\index{core::Object@{core::Object}} - - -Inheritance diagram for core\+::Object\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=350pt]{classcore_1_1Object__inherit__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Attributes} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1Object_aa096b2bab35f1019c91077ef3ec106ce}\label{classcore_1_1Object_aa096b2bab35f1019c91077ef3ec106ce}} -std\+::string {\bfseries name} -\item -\mbox{\Hypertarget{classcore_1_1Object_ad503c264c529c41c25528c34421c83df}\label{classcore_1_1Object_ad503c264c529c41c25528c34421c83df}} -std\+::string {\bfseries tag} -\end{DoxyCompactItemize} - - -The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize} -\item -Object.\+h\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1Object__inherit__graph.md5 b/latex/classcore_1_1Object__inherit__graph.md5 deleted file mode 100644 index f95bc31..0000000 --- a/latex/classcore_1_1Object__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -0072956b617b9e545ab65b3703c04beb \ No newline at end of file diff --git a/latex/classcore_1_1Object__inherit__graph.pdf b/latex/classcore_1_1Object__inherit__graph.pdf deleted file mode 100644 index 17df090..0000000 Binary files a/latex/classcore_1_1Object__inherit__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1SessionFilter.tex b/latex/classcore_1_1SessionFilter.tex deleted file mode 100644 index a6c9358..0000000 --- a/latex/classcore_1_1SessionFilter.tex +++ /dev/null @@ -1,32 +0,0 @@ -\hypertarget{classcore_1_1SessionFilter}{}\doxysection{core\+::Session\+Filter Class Reference} -\label{classcore_1_1SessionFilter}\index{core::SessionFilter@{core::SessionFilter}} - - -Inheritance diagram for core\+::Session\+Filter\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=185pt]{classcore_1_1SessionFilter__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::Session\+Filter\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=185pt]{classcore_1_1SessionFilter__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1SessionFilter_a9871d18a9f90c8028f879b0993b25b6f}\label{classcore_1_1SessionFilter_a9871d18a9f90c8028f879b0993b25b6f}} -virtual bool {\bfseries test} (\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session) -\end{DoxyCompactItemize} -\doxysubsection*{Additional Inherited Members} - - -The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize} -\item -Session\+Filter.\+h\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1SessionFilter__coll__graph.md5 b/latex/classcore_1_1SessionFilter__coll__graph.md5 deleted file mode 100644 index f79d473..0000000 --- a/latex/classcore_1_1SessionFilter__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -18bd2019d4b8e217560cd8e7622ec59f \ No newline at end of file diff --git a/latex/classcore_1_1SessionFilter__coll__graph.pdf b/latex/classcore_1_1SessionFilter__coll__graph.pdf deleted file mode 100644 index 83a1cca..0000000 Binary files a/latex/classcore_1_1SessionFilter__coll__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1SessionFilter__inherit__graph.md5 b/latex/classcore_1_1SessionFilter__inherit__graph.md5 deleted file mode 100644 index f79d473..0000000 --- a/latex/classcore_1_1SessionFilter__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -18bd2019d4b8e217560cd8e7622ec59f \ No newline at end of file diff --git a/latex/classcore_1_1SessionFilter__inherit__graph.pdf b/latex/classcore_1_1SessionFilter__inherit__graph.pdf deleted file mode 100644 index fdbb22f..0000000 Binary files a/latex/classcore_1_1SessionFilter__inherit__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1Socket.tex b/latex/classcore_1_1Socket.tex deleted file mode 100644 index 4e3d81b..0000000 --- a/latex/classcore_1_1Socket.tex +++ /dev/null @@ -1,230 +0,0 @@ -\hypertarget{classcore_1_1Socket}{}\doxysection{core\+::Socket Class Reference} -\label{classcore_1_1Socket}\index{core::Socket@{core::Socket}} - - -{\ttfamily \#include $<$Socket.\+h$>$} - - - -Inheritance diagram for core\+::Socket\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=350pt]{classcore_1_1Socket__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::Socket\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=174pt]{classcore_1_1Socket__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\hyperlink{classcore_1_1Socket_a4c3f87fd1de3c9eab4bf5efbb30ce87d}{Socket}} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll, std\+::string text=\char`\"{}\char`\"{}) -\item -virtual \mbox{\hyperlink{classcore_1_1Socket_aa5003845f8ae464ad2fa206176381be0}{$\sim$\+Socket}} () -\item -void \mbox{\hyperlink{classcore_1_1Socket_af2d1b6de7a64a9d446b0305b6ec47b31}{shutdown}} (std\+::string text=\char`\"{}unknown\char`\"{}) -\item -void \mbox{\hyperlink{classcore_1_1Socket_ac44f6ae3196a8a3e09a6a85fcf495762}{set\+Descriptor}} (int descriptor) -\begin{DoxyCompactList}\small\item\em Set the descriptor for the socket. \end{DoxyCompactList}\item -\mbox{\Hypertarget{classcore_1_1Socket_a06ba54744530439d4131e6aba4623d08}\label{classcore_1_1Socket_a06ba54744530439d4131e6aba4623d08}} -int \mbox{\hyperlink{classcore_1_1Socket_a06ba54744530439d4131e6aba4623d08}{get\+Descriptor}} () -\begin{DoxyCompactList}\small\item\em Get the descriptor for the socket. ~\newline - \end{DoxyCompactList}\item -bool \mbox{\hyperlink{classcore_1_1Socket_a4c9a3396693ff919eb827729f9e72b03}{event\+Received}} (struct epoll\+\_\+event event) -\begin{DoxyCompactList}\small\item\em Parse epoll event and call specified callbacks. \end{DoxyCompactList}\item -int \mbox{\hyperlink{classcore_1_1Socket_a1413c826307ef0f29d7457770af675e3}{write}} (std\+::string data) -\item -\mbox{\Hypertarget{classcore_1_1Socket_a4855594af113428eacdaa7448d661121}\label{classcore_1_1Socket_a4855594af113428eacdaa7448d661121}} -void {\bfseries write} (char $\ast$buffer, int length) -\item -\mbox{\Hypertarget{classcore_1_1Socket_ad67b0f95127bd987b98323120f40f6ed}\label{classcore_1_1Socket_ad67b0f95127bd987b98323120f40f6ed}} -void {\bfseries output} (std\+::stringstream \&out) -\item -virtual void \mbox{\hyperlink{classcore_1_1Socket_a81e5ee3e17834166d97c6e8b7dfe0da0}{on\+Register}} () -\begin{DoxyCompactList}\small\item\em Called before the socket has registered with the epoll processing. \end{DoxyCompactList}\item -\mbox{\Hypertarget{classcore_1_1Socket_a23b9824653bbe4652a716acb828665b1}\label{classcore_1_1Socket_a23b9824653bbe4652a716acb828665b1}} -virtual void \mbox{\hyperlink{classcore_1_1Socket_a23b9824653bbe4652a716acb828665b1}{on\+Registered}} () -\begin{DoxyCompactList}\small\item\em Called after the socket has been registered with epoll processing. \end{DoxyCompactList}\item -\mbox{\Hypertarget{classcore_1_1Socket_aa1d380db54a5b2efbc859e3744bd898b}\label{classcore_1_1Socket_aa1d380db54a5b2efbc859e3744bd898b}} -virtual void {\bfseries on\+Unregister} () -\item -virtual void \mbox{\hyperlink{classcore_1_1Socket_ae9be59697c2b2e5efb19aaae3ba943d2}{on\+Unregistered}} () -\begin{DoxyCompactList}\small\item\em Called when the socket has finished unregistering for the epoll processing. \end{DoxyCompactList}\item -\mbox{\Hypertarget{classcore_1_1Socket_a43247bfe43c2be5ab3863d9057d46b7c}\label{classcore_1_1Socket_a43247bfe43c2be5ab3863d9057d46b7c}} -bool {\bfseries needs\+To\+Write} () -\end{DoxyCompactItemize} -\doxysubsection*{Public Attributes} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1Socket_a9f9a89f5caab42f77b3759ceb54a0a78}\label{classcore_1_1Socket_a9f9a89f5caab42f77b3759ceb54a0a78}} -bool {\bfseries reset} = false -\end{DoxyCompactItemize} -\doxysubsection*{Protected Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1Socket_a71c77a162698b9c074a7497beab7b5d8}\label{classcore_1_1Socket_a71c77a162698b9c074a7497beab7b5d8}} -void {\bfseries set\+Buffer\+Size} (int length) -\item -\mbox{\Hypertarget{classcore_1_1Socket_aa9195676bb7ecbec167ecf5336921cbb}\label{classcore_1_1Socket_aa9195676bb7ecbec167ecf5336921cbb}} -int {\bfseries get\+Buffer\+Size} () -\item -virtual void \mbox{\hyperlink{classcore_1_1Socket_ac8d6a2c54696eb6fc2024cf6bcf6b4e5}{on\+Data\+Received}} (std\+::string data) -\begin{DoxyCompactList}\small\item\em Called when data is received from the socket. \end{DoxyCompactList}\item -\mbox{\Hypertarget{classcore_1_1Socket_ae048b57ac2c34381378f3da0e758b3c8}\label{classcore_1_1Socket_ae048b57ac2c34381378f3da0e758b3c8}} -virtual void {\bfseries on\+Data\+Received} (coreutils\+::\+ZString \&data) -\item -virtual void \mbox{\hyperlink{classcore_1_1Socket_a46ed2e240852d3fa949979ebbc4ac875}{receive\+Data}} (coreutils\+::\+ZString \&buffer) -\end{DoxyCompactItemize} -\doxysubsection*{Protected Attributes} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1Socket_a3b0b139ac7da581f0d969f6ae9a0c97c}\label{classcore_1_1Socket_a3b0b139ac7da581f0d969f6ae9a0c97c}} -\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \& {\bfseries e\+Poll} -\item -\mbox{\Hypertarget{classcore_1_1Socket_aa09db6c6298d20ea76c6e65f8bffd3dc}\label{classcore_1_1Socket_aa09db6c6298d20ea76c6e65f8bffd3dc}} -bool {\bfseries shut\+Down} = false -\end{DoxyCompactItemize} - - -\doxysubsection{Detailed Description} -\mbox{\hyperlink{classcore_1_1Socket}{Socket}} - -The core component to managing a socket. - -Hooks into the \mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} through the registration and unregistration process and provides a communication socket of the specified protocol type. This object provides for all receiving data threading through use of the \mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} object and also provides buffering for output data requests to the socket. - -A program using a socket object can request to open a socket (network or device) and communicate through the streambuffer interface of the socket object. - -The socket side of the \mbox{\hyperlink{classcore_1_1Socket}{Socket}} accepts EPOLLIN event and will maintain the data in a buffer for the stream readers to read. A on\+Data\+Received event is then sent with the data received in the buffer that can be read through the stream. Only sockets that send events to epoll can be used with this object. - -When writing to the stream the data is written into a buffer and a EPOLLOUT is scheduled. Upon receiving the EPOLLOUT event then the buffer is written to the socket output. - -\doxysubsection{Constructor \& Destructor Documentation} -\mbox{\Hypertarget{classcore_1_1Socket_a4c3f87fd1de3c9eab4bf5efbb30ce87d}\label{classcore_1_1Socket_a4c3f87fd1de3c9eab4bf5efbb30ce87d}} -\index{core::Socket@{core::Socket}!Socket@{Socket}} -\index{Socket@{Socket}!core::Socket@{core::Socket}} -\doxysubsubsection{\texorpdfstring{Socket()}{Socket()}} -{\footnotesize\ttfamily core\+::\+Socket\+::\+Socket (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&}]{e\+Poll, }\item[{std\+::string}]{text = {\ttfamily \char`\"{}\char`\"{}} }\end{DoxyParamCaption})} - -Constructor - - -\begin{DoxyParams}{Parameters} -{\em e\+Poll} & The \mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} socket descriptor. \\ -\hline -{\em text} & A title for this socket. \\ -\hline -\end{DoxyParams} -\mbox{\Hypertarget{classcore_1_1Socket_aa5003845f8ae464ad2fa206176381be0}\label{classcore_1_1Socket_aa5003845f8ae464ad2fa206176381be0}} -\index{core::Socket@{core::Socket}!````~Socket@{$\sim$Socket}} -\index{````~Socket@{$\sim$Socket}!core::Socket@{core::Socket}} -\doxysubsubsection{\texorpdfstring{$\sim$Socket()}{~Socket()}} -{\footnotesize\ttfamily core\+::\+Socket\+::$\sim$\+Socket (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}} - -Destructor - -\doxysubsection{Member Function Documentation} -\mbox{\Hypertarget{classcore_1_1Socket_a4c9a3396693ff919eb827729f9e72b03}\label{classcore_1_1Socket_a4c9a3396693ff919eb827729f9e72b03}} -\index{core::Socket@{core::Socket}!eventReceived@{eventReceived}} -\index{eventReceived@{eventReceived}!core::Socket@{core::Socket}} -\doxysubsubsection{\texorpdfstring{eventReceived()}{eventReceived()}} -{\footnotesize\ttfamily bool core\+::\+Socket\+::event\+Received (\begin{DoxyParamCaption}\item[{struct epoll\+\_\+event}]{event }\end{DoxyParamCaption})} - - - -Parse epoll event and call specified callbacks. - -The event received from epoll is sent through the event\+Received method which will parse the event and call the read and write callbacks on the socket. - -This method is called by the BMAEPoll object and should not be called from any user extended classes unless an epoll event is being simulated. - -The return value of false will delete the socket object causing the destructors to run. The return value of true will enable the socket on e\+Poll to receive more events. \mbox{\Hypertarget{classcore_1_1Socket_ac8d6a2c54696eb6fc2024cf6bcf6b4e5}\label{classcore_1_1Socket_ac8d6a2c54696eb6fc2024cf6bcf6b4e5}} -\index{core::Socket@{core::Socket}!onDataReceived@{onDataReceived}} -\index{onDataReceived@{onDataReceived}!core::Socket@{core::Socket}} -\doxysubsubsection{\texorpdfstring{onDataReceived()}{onDataReceived()}} -{\footnotesize\ttfamily void core\+::\+Socket\+::on\+Data\+Received (\begin{DoxyParamCaption}\item[{std\+::string}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}} - - - -Called when data is received from the socket. - -The on\+Connected method is called when the socket is ready to communicate. Writing to the socket can begin on this call to initiate a contact with the remote device. The on\+Data\+Received method is called when the socket has received an event from epoll and there is data ready to be read from the socket. The default handler will pull the data and put it into the streambuf for the socket. EPOLLIN - - -\begin{DoxyParams}{Parameters} -{\em data} & the data that has been received from the socket. \\ -\hline -\end{DoxyParams} - - -Reimplemented in \mbox{\hyperlink{classcore_1_1UDPServerSocket_a41933ca153c854a800e3d047ab18313e}{core\+::\+UDPServer\+Socket}}, and \mbox{\hyperlink{classcore_1_1TCPServer_a276ccbc8cb9b4380ebd78807b97f0159}{core\+::\+TCPServer}}. - -\mbox{\Hypertarget{classcore_1_1Socket_a81e5ee3e17834166d97c6e8b7dfe0da0}\label{classcore_1_1Socket_a81e5ee3e17834166d97c6e8b7dfe0da0}} -\index{core::Socket@{core::Socket}!onRegister@{onRegister}} -\index{onRegister@{onRegister}!core::Socket@{core::Socket}} -\doxysubsubsection{\texorpdfstring{onRegister()}{onRegister()}} -{\footnotesize\ttfamily void core\+::\+Socket\+::on\+Register (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}} - - - -Called before the socket has registered with the epoll processing. - -The on\+Register method is called before the socket is registered with e\+Poll so objects extending the \mbox{\hyperlink{classcore_1_1Socket}{Socket}} definition can initialize the socket before receiving events. Evoked when the descriptor is set using set\+Descriptor for the socket. - -Reimplemented in \mbox{\hyperlink{classcore_1_1TLSSession_a76cec7cf4851eb27abe77a2339344c6d}{core\+::\+TLSSession}}. - -\mbox{\Hypertarget{classcore_1_1Socket_ae9be59697c2b2e5efb19aaae3ba943d2}\label{classcore_1_1Socket_ae9be59697c2b2e5efb19aaae3ba943d2}} -\index{core::Socket@{core::Socket}!onUnregistered@{onUnregistered}} -\index{onUnregistered@{onUnregistered}!core::Socket@{core::Socket}} -\doxysubsubsection{\texorpdfstring{onUnregistered()}{onUnregistered()}} -{\footnotesize\ttfamily void core\+::\+Socket\+::on\+Unregistered (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}} - - - -Called when the socket has finished unregistering for the epoll processing. - -The on\+Unregistered method is called whenever the socket is unregistered with e\+Poll and socket communcation events will be stopped. The default method will close the socket and clean up the connection. If this is overridden by an extended object then the object should call this method to clean the socket up. \mbox{\Hypertarget{classcore_1_1Socket_a46ed2e240852d3fa949979ebbc4ac875}\label{classcore_1_1Socket_a46ed2e240852d3fa949979ebbc4ac875}} -\index{core::Socket@{core::Socket}!receiveData@{receiveData}} -\index{receiveData@{receiveData}!core::Socket@{core::Socket}} -\doxysubsubsection{\texorpdfstring{receiveData()}{receiveData()}} -{\footnotesize\ttfamily void core\+::\+Socket\+::receive\+Data (\begin{DoxyParamCaption}\item[{coreutils\+::\+ZString \&}]{buffer }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}} - -receive\+Data will read the data from the socket and place it in the socket buffer. TLS layer overrides this to be able to read from SSL. - -Reimplemented in \mbox{\hyperlink{classcore_1_1TLSSession_a8507cdcd23ac4b340ce6f6d5f0b26a52}{core\+::\+TLSSession}}. - -\mbox{\Hypertarget{classcore_1_1Socket_ac44f6ae3196a8a3e09a6a85fcf495762}\label{classcore_1_1Socket_ac44f6ae3196a8a3e09a6a85fcf495762}} -\index{core::Socket@{core::Socket}!setDescriptor@{setDescriptor}} -\index{setDescriptor@{setDescriptor}!core::Socket@{core::Socket}} -\doxysubsubsection{\texorpdfstring{setDescriptor()}{setDescriptor()}} -{\footnotesize\ttfamily void core\+::\+Socket\+::set\+Descriptor (\begin{DoxyParamCaption}\item[{int}]{descriptor }\end{DoxyParamCaption})} - - - -Set the descriptor for the socket. - -set\+Descriptor establishes the file descriptor for the socket and registers the socket on the \mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} controller. set\+Descriptor will invoke the \mbox{\hyperlink{classcore_1_1Socket_a81e5ee3e17834166d97c6e8b7dfe0da0}{on\+Register()}} event. \mbox{\Hypertarget{classcore_1_1Socket_af2d1b6de7a64a9d446b0305b6ec47b31}\label{classcore_1_1Socket_af2d1b6de7a64a9d446b0305b6ec47b31}} -\index{core::Socket@{core::Socket}!shutdown@{shutdown}} -\index{shutdown@{shutdown}!core::Socket@{core::Socket}} -\doxysubsubsection{\texorpdfstring{shutdown()}{shutdown()}} -{\footnotesize\ttfamily void core\+::\+Socket\+::shutdown (\begin{DoxyParamCaption}\item[{std\+::string}]{text = {\ttfamily \char`\"{}unknown\char`\"{}} }\end{DoxyParamCaption})} - -Use the \mbox{\hyperlink{classcore_1_1Socket_af2d1b6de7a64a9d446b0305b6ec47b31}{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 with a virtual destructor. \mbox{\Hypertarget{classcore_1_1Socket_a1413c826307ef0f29d7457770af675e3}\label{classcore_1_1Socket_a1413c826307ef0f29d7457770af675e3}} -\index{core::Socket@{core::Socket}!write@{write}} -\index{write@{write}!core::Socket@{core::Socket}} -\doxysubsubsection{\texorpdfstring{write()}{write()}} -{\footnotesize\ttfamily int core\+::\+Socket\+::write (\begin{DoxyParamCaption}\item[{std\+::string}]{data }\end{DoxyParamCaption})} - -Write data to the socket. - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -Socket.\+h\item -Socket.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1Socket__coll__graph.md5 b/latex/classcore_1_1Socket__coll__graph.md5 deleted file mode 100644 index 7ac220a..0000000 --- a/latex/classcore_1_1Socket__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -601ffa7b2c2f8f190cefef69aff78b25 \ No newline at end of file diff --git a/latex/classcore_1_1Socket__coll__graph.pdf b/latex/classcore_1_1Socket__coll__graph.pdf deleted file mode 100644 index 3ac9b17..0000000 Binary files a/latex/classcore_1_1Socket__coll__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1Socket__inherit__graph.md5 b/latex/classcore_1_1Socket__inherit__graph.md5 deleted file mode 100644 index cae5d78..0000000 --- a/latex/classcore_1_1Socket__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -5ea0d5d5486386272f1f6c4c06eae462 \ No newline at end of file diff --git a/latex/classcore_1_1Socket__inherit__graph.pdf b/latex/classcore_1_1Socket__inherit__graph.pdf deleted file mode 100644 index c2405ee..0000000 Binary files a/latex/classcore_1_1Socket__inherit__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1Subscription.tex b/latex/classcore_1_1Subscription.tex deleted file mode 100644 index cddcce1..0000000 --- a/latex/classcore_1_1Subscription.tex +++ /dev/null @@ -1,59 +0,0 @@ -\hypertarget{classcore_1_1Subscription}{}\doxysection{core\+::Subscription Class Reference} -\label{classcore_1_1Subscription}\index{core::Subscription@{core::Subscription}} - - -Collaboration diagram for core\+::Subscription\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=350pt]{classcore_1_1Subscription__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1Subscription_a348a4ec8232ada37f5be2b6f756f01f3}\label{classcore_1_1Subscription_a348a4ec8232ada37f5be2b6f756f01f3}} -{\bfseries Subscription} (std\+::string id, std\+::string mode=\char`\"{}$\ast$AUTHOR\char`\"{}) -\item -\mbox{\Hypertarget{classcore_1_1Subscription_a75e36b110e87138d4f5d8f0cbbaca4c1}\label{classcore_1_1Subscription_a75e36b110e87138d4f5d8f0cbbaca4c1}} -{\bfseries Subscription} (std\+::string id, \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session, std\+::string mode=\char`\"{}$\ast$AUTHOR\char`\"{}) -\item -\mbox{\Hypertarget{classcore_1_1Subscription_a57c23d7c49328eecf8358f84b485f7cb}\label{classcore_1_1Subscription_a57c23d7c49328eecf8358f84b485f7cb}} -int {\bfseries subscribe} (\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session) -\item -\mbox{\Hypertarget{classcore_1_1Subscription_a4b6d9f10c605f20c7e27c308577ab8d4}\label{classcore_1_1Subscription_a4b6d9f10c605f20c7e27c308577ab8d4}} -int {\bfseries unsubscribe} (\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session) -\item -\mbox{\Hypertarget{classcore_1_1Subscription_afe97bd6c3c714df84381fdd6d66e5037}\label{classcore_1_1Subscription_afe97bd6c3c714df84381fdd6d66e5037}} -virtual int {\bfseries process} (coreutils\+::\+ZString \&request, std\+::stringstream \&out, \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session) -\item -\mbox{\Hypertarget{classcore_1_1Subscription_a886b136b6eae0adcfac1384fc2fae67f}\label{classcore_1_1Subscription_a886b136b6eae0adcfac1384fc2fae67f}} -virtual int {\bfseries on\+Subscribe} (\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session) -\item -\mbox{\Hypertarget{classcore_1_1Subscription_adfd211503f5eccfda620995de58c73f9}\label{classcore_1_1Subscription_adfd211503f5eccfda620995de58c73f9}} -int {\bfseries event} (std\+::stringstream \&out) -\item -\mbox{\Hypertarget{classcore_1_1Subscription_addf187a8e97c2be1ac0cce9c21da5a28}\label{classcore_1_1Subscription_addf187a8e97c2be1ac0cce9c21da5a28}} -bool {\bfseries if\+Subscriber} (\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session) -\end{DoxyCompactItemize} -\doxysubsection*{Public Attributes} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1Subscription_a6a952ecf3d9d4a2c69c6b09c3c5c6cb2}\label{classcore_1_1Subscription_a6a952ecf3d9d4a2c69c6b09c3c5c6cb2}} -std\+::string {\bfseries id} -\item -\mbox{\Hypertarget{classcore_1_1Subscription_a5f7d38b845a674d860fd78aa7cdd5858}\label{classcore_1_1Subscription_a5f7d38b845a674d860fd78aa7cdd5858}} -std\+::string {\bfseries mode} -\item -\mbox{\Hypertarget{classcore_1_1Subscription_a5526427600aa4a5b180f76f201e85f58}\label{classcore_1_1Subscription_a5526427600aa4a5b180f76f201e85f58}} -\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} $\ast$ {\bfseries owner} -\item -\mbox{\Hypertarget{classcore_1_1Subscription_ad1a5c1a3e5a6e253eb34795f43d4f9be}\label{classcore_1_1Subscription_ad1a5c1a3e5a6e253eb34795f43d4f9be}} -std\+::vector$<$ \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} $\ast$ $>$ {\bfseries subscribers} -\end{DoxyCompactItemize} - - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -Subscription.\+h\item -Subscription.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1SubscriptionManager.tex b/latex/classcore_1_1SubscriptionManager.tex deleted file mode 100644 index 321cb86..0000000 --- a/latex/classcore_1_1SubscriptionManager.tex +++ /dev/null @@ -1,62 +0,0 @@ -\hypertarget{classcore_1_1SubscriptionManager}{}\doxysection{core\+::Subscription\+Manager Class Reference} -\label{classcore_1_1SubscriptionManager}\index{core::SubscriptionManager@{core::SubscriptionManager}} - - -Inheritance diagram for core\+::Subscription\+Manager\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=226pt]{classcore_1_1SubscriptionManager__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::Subscription\+Manager\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=226pt]{classcore_1_1SubscriptionManager__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1SubscriptionManager_ad1a021be5d55d1e9f0944c97f79ae9e2}\label{classcore_1_1SubscriptionManager_ad1a021be5d55d1e9f0944c97f79ae9e2}} -int {\bfseries add} (\mbox{\hyperlink{classcore_1_1Subscription}{Subscription}} \&subscription) -\item -\mbox{\Hypertarget{classcore_1_1SubscriptionManager_aed407c183c390f4459bb6527b30c8198}\label{classcore_1_1SubscriptionManager_aed407c183c390f4459bb6527b30c8198}} -int {\bfseries remove\+Session\+Subscriptions} (\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session) -\item -int \mbox{\hyperlink{classcore_1_1SubscriptionManager_aaa30bf772ad72b3f319a790662e4f8ae}{process\+Command}} (coreutils\+::\+ZString \&request, \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session) override -\end{DoxyCompactItemize} - - -\doxysubsection{Member Function Documentation} -\mbox{\Hypertarget{classcore_1_1SubscriptionManager_aaa30bf772ad72b3f319a790662e4f8ae}\label{classcore_1_1SubscriptionManager_aaa30bf772ad72b3f319a790662e4f8ae}} -\index{core::SubscriptionManager@{core::SubscriptionManager}!processCommand@{processCommand}} -\index{processCommand@{processCommand}!core::SubscriptionManager@{core::SubscriptionManager}} -\doxysubsubsection{\texorpdfstring{processCommand()}{processCommand()}} -{\footnotesize\ttfamily int core\+::\+Subscription\+Manager\+::process\+Command (\begin{DoxyParamCaption}\item[{coreutils\+::\+ZString \&}]{request, }\item[{\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&}]{session }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}} - -This method is used to implement the functionality of the requested command. This pure virtual function must be implemented in your inheriting object. - - -\begin{DoxyParams}{Parameters} -{\em request} & The request that was entered by the user to invoke this command. \\ -\hline -{\em session} & Specify the requesting session so that the execution of the command process can return its output to the session. \\ -\hline -\end{DoxyParams} -\begin{DoxyReturn}{Returns} -Returns 0 if execution of the command was successful. Otherwise returns a non-\/zero value indicating an error condition. -\end{DoxyReturn} - - -Reimplemented from \mbox{\hyperlink{classcore_1_1Command_a95176f2532c38ee14e3fee40ee28b1bd}{core\+::\+Command}}. - - - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -Subscription\+Manager.\+h\item -Subscription\+Manager.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1SubscriptionManager__coll__graph.md5 b/latex/classcore_1_1SubscriptionManager__coll__graph.md5 deleted file mode 100644 index 254c729..0000000 --- a/latex/classcore_1_1SubscriptionManager__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -64505415bff46906df08a028a1ac62cb \ No newline at end of file diff --git a/latex/classcore_1_1SubscriptionManager__coll__graph.pdf b/latex/classcore_1_1SubscriptionManager__coll__graph.pdf deleted file mode 100644 index b549175..0000000 Binary files a/latex/classcore_1_1SubscriptionManager__coll__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1SubscriptionManager__inherit__graph.md5 b/latex/classcore_1_1SubscriptionManager__inherit__graph.md5 deleted file mode 100644 index 254c729..0000000 --- a/latex/classcore_1_1SubscriptionManager__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -64505415bff46906df08a028a1ac62cb \ No newline at end of file diff --git a/latex/classcore_1_1SubscriptionManager__inherit__graph.pdf b/latex/classcore_1_1SubscriptionManager__inherit__graph.pdf deleted file mode 100644 index b549175..0000000 Binary files a/latex/classcore_1_1SubscriptionManager__inherit__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1Subscription__coll__graph.md5 b/latex/classcore_1_1Subscription__coll__graph.md5 deleted file mode 100644 index 59c55fd..0000000 --- a/latex/classcore_1_1Subscription__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -2729f4733c58f8e25137c8d4e188b60b \ No newline at end of file diff --git a/latex/classcore_1_1Subscription__coll__graph.pdf b/latex/classcore_1_1Subscription__coll__graph.pdf deleted file mode 100644 index 33d7f0b..0000000 Binary files a/latex/classcore_1_1Subscription__coll__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1Subscription__inherit__graph.md5 b/latex/classcore_1_1Subscription__inherit__graph.md5 deleted file mode 100644 index 9010bc2..0000000 --- a/latex/classcore_1_1Subscription__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -71754a92b8eb564627eaab7051245720 \ No newline at end of file diff --git a/latex/classcore_1_1Subscription__inherit__graph.pdf b/latex/classcore_1_1Subscription__inherit__graph.pdf deleted file mode 100644 index fa545db..0000000 Binary files a/latex/classcore_1_1Subscription__inherit__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1TCPServer.tex b/latex/classcore_1_1TCPServer.tex deleted file mode 100644 index 15c37d1..0000000 --- a/latex/classcore_1_1TCPServer.tex +++ /dev/null @@ -1,207 +0,0 @@ -\hypertarget{classcore_1_1TCPServer}{}\doxysection{core\+::TCPServer Class Reference} -\label{classcore_1_1TCPServer}\index{core::TCPServer@{core::TCPServer}} - - -{\ttfamily \#include $<$TCPServer.\+h$>$} - - - -Inheritance diagram for core\+::TCPServer\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=304pt]{classcore_1_1TCPServer__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::TCPServer\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=350pt]{classcore_1_1TCPServer__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\hyperlink{classcore_1_1TCPServer_abaecb97c336b757d1029d45277f9fc5b}{TCPServer}} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll, \mbox{\hyperlink{classcore_1_1IPAddress}{IPAddress}} address, std\+::string delimiter=\char`\"{} \char`\"{}, int depth=10, std\+::string text=\char`\"{}\char`\"{}) -\item -virtual \mbox{\hyperlink{classcore_1_1TCPServer_a7ccdc057c9eee8504fce796301f82088}{$\sim$\+TCPServer}} () -\item -\mbox{\Hypertarget{classcore_1_1TCPServer_a554ec6e67d368e7bb545d95635c0a0df}\label{classcore_1_1TCPServer_a554ec6e67d368e7bb545d95635c0a0df}} -virtual void {\bfseries session\+Error\+Handler} (std\+::string error\+String, std\+::stringstream \&out) -\item -virtual \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} $\ast$ \mbox{\hyperlink{classcore_1_1TCPServer_a841f02799ad8529aad7cea132f4de8a9}{get\+Socket\+Accept}} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&epoll) -\item -\mbox{\Hypertarget{classcore_1_1TCPServer_a88c603cd5df9dbc1632fd4b5e164d75b}\label{classcore_1_1TCPServer_a88c603cd5df9dbc1632fd4b5e164d75b}} -void {\bfseries remove\+From\+Session\+List} (\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} $\ast$session) -\item -\mbox{\Hypertarget{classcore_1_1TCPServer_a49e3ead1bf4e7830685780e73c4db5db}\label{classcore_1_1TCPServer_a49e3ead1bf4e7830685780e73c4db5db}} -void \mbox{\hyperlink{classcore_1_1TCPServer_a49e3ead1bf4e7830685780e73c4db5db}{output}} (std\+::stringstream \&out) -\begin{DoxyCompactList}\small\item\em Output the consoles array to the console. \end{DoxyCompactList}\item -\mbox{\Hypertarget{classcore_1_1TCPServer_a9cfcf2984ddc7e1d8f157c9f07ad03e1}\label{classcore_1_1TCPServer_a9cfcf2984ddc7e1d8f157c9f07ad03e1}} -void {\bfseries send\+To\+All} (std\+::stringstream \&out) -\item -void \mbox{\hyperlink{classcore_1_1TCPServer_a7080f7d45e734087e81b83c5e1f8e676}{send\+To\+All}} (std\+::stringstream \&out, \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&sender, \mbox{\hyperlink{classcore_1_1SessionFilter}{Session\+Filter}} filter) -\item -void \mbox{\hyperlink{classcore_1_1TCPServer_af708df59e1bc60077c16db97f9cc8ff0}{send\+To\+All}} (std\+::stringstream \&out, \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&sender) -\end{DoxyCompactItemize} -\doxysubsection*{Public Attributes} -\begin{DoxyCompactItemize} -\item -std\+::vector$<$ \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} $\ast$ $>$ \mbox{\hyperlink{classcore_1_1TCPServer_aeed1bc55d099667ccda51cd682bfc633}{sessions}} -\item -\mbox{\hyperlink{classcore_1_1CommandList}{Command\+List}} \mbox{\hyperlink{classcore_1_1TCPServer_afcc44802b988e2f4292504e804dccf8b}{commands}} -\item -\mbox{\hyperlink{classcore_1_1IPAddressList}{IPAddress\+List}} $\ast$ \mbox{\hyperlink{classcore_1_1TCPServer_a82f6bf16e4ab20d8b30da09e034fffff}{black\+List}} -\item -\mbox{\hyperlink{classcore_1_1IPAddressList}{IPAddress\+List}} $\ast$ \mbox{\hyperlink{classcore_1_1TCPServer_abad6300b6234ca8b69cef9128755342e}{white\+List}} -\item -\mbox{\hyperlink{classcore_1_1SubscriptionManager}{Subscription\+Manager}} \mbox{\hyperlink{classcore_1_1TCPServer_a28302dd844cfc971ee41de2000d24aa0}{subscriptions}} -\end{DoxyCompactItemize} -\doxysubsection*{Protected Member Functions} -\begin{DoxyCompactItemize} -\item -void \mbox{\hyperlink{classcore_1_1TCPServer_a276ccbc8cb9b4380ebd78807b97f0159}{on\+Data\+Received}} (std\+::string data) override -\item -int \mbox{\hyperlink{classcore_1_1TCPServer_a6b7a7e1ac4132942fcaf418ed41c1437}{process\+Command}} (coreutils\+::\+ZString \&request, \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session) override -\end{DoxyCompactItemize} -\doxysubsection*{Additional Inherited Members} - - -\doxysubsection{Detailed Description} -\mbox{\hyperlink{classcore_1_1TCPServer}{TCPServer}} - -Manage a socket connection as a TCP server type. Connections to the socket are processed through the accept functionality. - -A list of connections is maintained in a vector object. - -This object extends the BMACommand object as well so it can be added to a Console object and process commands to display status information. - -\doxysubsection{Constructor \& Destructor Documentation} -\mbox{\Hypertarget{classcore_1_1TCPServer_abaecb97c336b757d1029d45277f9fc5b}\label{classcore_1_1TCPServer_abaecb97c336b757d1029d45277f9fc5b}} -\index{core::TCPServer@{core::TCPServer}!TCPServer@{TCPServer}} -\index{TCPServer@{TCPServer}!core::TCPServer@{core::TCPServer}} -\doxysubsubsection{\texorpdfstring{TCPServer()}{TCPServer()}} -{\footnotesize\ttfamily core\+::\+TCPServer\+::\+TCPServer (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&}]{e\+Poll, }\item[{\mbox{\hyperlink{classcore_1_1IPAddress}{IPAddress}}}]{address, }\item[{std\+::string}]{delimiter = {\ttfamily \char`\"{}~\char`\"{}}, }\item[{int}]{depth = {\ttfamily 10}, }\item[{std\+::string}]{text = {\ttfamily \char`\"{}\char`\"{}} }\end{DoxyParamCaption})} - -The constructor for the \mbox{\hyperlink{classcore_1_1TCPServer}{TCPServer}} object. - - -\begin{DoxyParams}{Parameters} -{\em e\+Poll} & the \mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} instance that manages the socket. \\ -\hline -{\em url} & the IP address for the socket to receive connection requests. \\ -\hline -{\em port} & the port number that the socket will listen on. \\ -\hline -{\em command\+Name} & the name of the command used to invoke the status display for this object. \\ -\hline -\end{DoxyParams} -\mbox{\Hypertarget{classcore_1_1TCPServer_a7ccdc057c9eee8504fce796301f82088}\label{classcore_1_1TCPServer_a7ccdc057c9eee8504fce796301f82088}} -\index{core::TCPServer@{core::TCPServer}!````~TCPServer@{$\sim$TCPServer}} -\index{````~TCPServer@{$\sim$TCPServer}!core::TCPServer@{core::TCPServer}} -\doxysubsubsection{\texorpdfstring{$\sim$TCPServer()}{~TCPServer()}} -{\footnotesize\ttfamily core\+::\+TCPServer\+::$\sim$\+TCPServer (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}} - -The destructor for this object. - -\doxysubsection{Member Function Documentation} -\mbox{\Hypertarget{classcore_1_1TCPServer_a841f02799ad8529aad7cea132f4de8a9}\label{classcore_1_1TCPServer_a841f02799ad8529aad7cea132f4de8a9}} -\index{core::TCPServer@{core::TCPServer}!getSocketAccept@{getSocketAccept}} -\index{getSocketAccept@{getSocketAccept}!core::TCPServer@{core::TCPServer}} -\doxysubsubsection{\texorpdfstring{getSocketAccept()}{getSocketAccept()}} -{\footnotesize\ttfamily \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} $\ast$ core\+::\+TCPServer\+::get\+Socket\+Accept (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&}]{epoll }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}} - -get\+Socket\+Accept is designed to allow a polymorphic extension of this object to return a type of object that extends the definition of the server socket. Returning the appropriate session object that extends from Session provides the mechanism where the server can select the protocol dialog for the desired service. - -Reimplemented in \mbox{\hyperlink{classcore_1_1ConsoleServer_a80d9ea7f3fc5e07c50d5b9e0d4943ca8}{core\+::\+Console\+Server}}. - -\mbox{\Hypertarget{classcore_1_1TCPServer_a276ccbc8cb9b4380ebd78807b97f0159}\label{classcore_1_1TCPServer_a276ccbc8cb9b4380ebd78807b97f0159}} -\index{core::TCPServer@{core::TCPServer}!onDataReceived@{onDataReceived}} -\index{onDataReceived@{onDataReceived}!core::TCPServer@{core::TCPServer}} -\doxysubsubsection{\texorpdfstring{onDataReceived()}{onDataReceived()}} -{\footnotesize\ttfamily void core\+::\+TCPServer\+::on\+Data\+Received (\begin{DoxyParamCaption}\item[{std\+::string}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [protected]}, {\ttfamily [virtual]}} - -Override the virtual data\+Received since for the server these are requests to accept the new connection socket. No data is to be read or written when this method is called. It is the response to the fact that a new connection is coming into the system - - -\begin{DoxyParams}{Parameters} -{\em data} & the pointer to the buffer containing the received data. \\ -\hline -{\em length} & the length of the associated data buffer. \\ -\hline -\end{DoxyParams} - - -Reimplemented from \mbox{\hyperlink{classcore_1_1Socket_ac8d6a2c54696eb6fc2024cf6bcf6b4e5}{core\+::\+Socket}}. - -\mbox{\Hypertarget{classcore_1_1TCPServer_a6b7a7e1ac4132942fcaf418ed41c1437}\label{classcore_1_1TCPServer_a6b7a7e1ac4132942fcaf418ed41c1437}} -\index{core::TCPServer@{core::TCPServer}!processCommand@{processCommand}} -\index{processCommand@{processCommand}!core::TCPServer@{core::TCPServer}} -\doxysubsubsection{\texorpdfstring{processCommand()}{processCommand()}} -{\footnotesize\ttfamily int core\+::\+TCPServer\+::process\+Command (\begin{DoxyParamCaption}\item[{coreutils\+::\+ZString \&}]{request, }\item[{\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&}]{session }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [protected]}, {\ttfamily [virtual]}} - -This method is called when the \mbox{\hyperlink{classcore_1_1Command}{Command}} associated with this object is requested because a user has typed in the associated command name on a command entry line. - - -\begin{DoxyParams}{Parameters} -{\em the} & session object to write the output to. \\ -\hline -\end{DoxyParams} - - -Reimplemented from \mbox{\hyperlink{classcore_1_1Command_a95176f2532c38ee14e3fee40ee28b1bd}{core\+::\+Command}}. - -\mbox{\Hypertarget{classcore_1_1TCPServer_af708df59e1bc60077c16db97f9cc8ff0}\label{classcore_1_1TCPServer_af708df59e1bc60077c16db97f9cc8ff0}} -\index{core::TCPServer@{core::TCPServer}!sendToAll@{sendToAll}} -\index{sendToAll@{sendToAll}!core::TCPServer@{core::TCPServer}} -\doxysubsubsection{\texorpdfstring{sendToAll()}{sendToAll()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}} -{\footnotesize\ttfamily void core\+::\+TCPServer\+::send\+To\+All (\begin{DoxyParamCaption}\item[{std\+::stringstream \&}]{out, }\item[{\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&}]{sender }\end{DoxyParamCaption})} - -Use this send\+To\+All method to output the contents of the out stream to all the connections on the server excluding the sender session and the entries identified by the passed in filter object. \mbox{\Hypertarget{classcore_1_1TCPServer_a7080f7d45e734087e81b83c5e1f8e676}\label{classcore_1_1TCPServer_a7080f7d45e734087e81b83c5e1f8e676}} -\index{core::TCPServer@{core::TCPServer}!sendToAll@{sendToAll}} -\index{sendToAll@{sendToAll}!core::TCPServer@{core::TCPServer}} -\doxysubsubsection{\texorpdfstring{sendToAll()}{sendToAll()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}} -{\footnotesize\ttfamily void core\+::\+TCPServer\+::send\+To\+All (\begin{DoxyParamCaption}\item[{std\+::stringstream \&}]{out, }\item[{\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&}]{sender, }\item[{\mbox{\hyperlink{classcore_1_1SessionFilter}{Session\+Filter}}}]{filter }\end{DoxyParamCaption})} - -Use this send\+To\+All method to output the contents of the out stream to all the connections on the server excluding the sender session. - -\doxysubsection{Member Data Documentation} -\mbox{\Hypertarget{classcore_1_1TCPServer_a82f6bf16e4ab20d8b30da09e034fffff}\label{classcore_1_1TCPServer_a82f6bf16e4ab20d8b30da09e034fffff}} -\index{core::TCPServer@{core::TCPServer}!blackList@{blackList}} -\index{blackList@{blackList}!core::TCPServer@{core::TCPServer}} -\doxysubsubsection{\texorpdfstring{blackList}{blackList}} -{\footnotesize\ttfamily \mbox{\hyperlink{classcore_1_1IPAddressList}{IPAddress\+List}}$\ast$ core\+::\+TCPServer\+::black\+List} - -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 this list then the connection is rejected and no accept is granted. \mbox{\Hypertarget{classcore_1_1TCPServer_afcc44802b988e2f4292504e804dccf8b}\label{classcore_1_1TCPServer_afcc44802b988e2f4292504e804dccf8b}} -\index{core::TCPServer@{core::TCPServer}!commands@{commands}} -\index{commands@{commands}!core::TCPServer@{core::TCPServer}} -\doxysubsubsection{\texorpdfstring{commands}{commands}} -{\footnotesize\ttfamily \mbox{\hyperlink{classcore_1_1CommandList}{Command\+List}} core\+::\+TCPServer\+::commands} - -The commands object is a \mbox{\hyperlink{classcore_1_1CommandList}{Command\+List}} and is used to store \mbox{\hyperlink{classcore_1_1Command}{Command}} objects to be parsed and run as data comes into the session. \mbox{\Hypertarget{classcore_1_1TCPServer_aeed1bc55d099667ccda51cd682bfc633}\label{classcore_1_1TCPServer_aeed1bc55d099667ccda51cd682bfc633}} -\index{core::TCPServer@{core::TCPServer}!sessions@{sessions}} -\index{sessions@{sessions}!core::TCPServer@{core::TCPServer}} -\doxysubsubsection{\texorpdfstring{sessions}{sessions}} -{\footnotesize\ttfamily std\+::vector$<$\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} $\ast$$>$ core\+::\+TCPServer\+::sessions} - -The list of sessions that are currently open and being maintained by this object. \mbox{\Hypertarget{classcore_1_1TCPServer_a28302dd844cfc971ee41de2000d24aa0}\label{classcore_1_1TCPServer_a28302dd844cfc971ee41de2000d24aa0}} -\index{core::TCPServer@{core::TCPServer}!subscriptions@{subscriptions}} -\index{subscriptions@{subscriptions}!core::TCPServer@{core::TCPServer}} -\doxysubsubsection{\texorpdfstring{subscriptions}{subscriptions}} -{\footnotesize\ttfamily \mbox{\hyperlink{classcore_1_1SubscriptionManager}{Subscription\+Manager}} core\+::\+TCPServer\+::subscriptions} - -The \mbox{\hyperlink{classcore_1_1Subscription}{Subscription}} Manager tracks all subscriptions on the server. \mbox{\Hypertarget{classcore_1_1TCPServer_abad6300b6234ca8b69cef9128755342e}\label{classcore_1_1TCPServer_abad6300b6234ca8b69cef9128755342e}} -\index{core::TCPServer@{core::TCPServer}!whiteList@{whiteList}} -\index{whiteList@{whiteList}!core::TCPServer@{core::TCPServer}} -\doxysubsubsection{\texorpdfstring{whiteList}{whiteList}} -{\footnotesize\ttfamily \mbox{\hyperlink{classcore_1_1IPAddressList}{IPAddress\+List}}$\ast$ core\+::\+TCPServer\+::white\+List} - -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 this list then the connection is rejected and no accept is granted. - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -TCPServer.\+h\item -TCPServer.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1TCPServer__coll__graph.md5 b/latex/classcore_1_1TCPServer__coll__graph.md5 deleted file mode 100644 index 07d9f0d..0000000 --- a/latex/classcore_1_1TCPServer__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -6217c13639011961a1bf70a3e5264d12 \ No newline at end of file diff --git a/latex/classcore_1_1TCPServer__coll__graph.pdf b/latex/classcore_1_1TCPServer__coll__graph.pdf deleted file mode 100644 index 23388c6..0000000 Binary files a/latex/classcore_1_1TCPServer__coll__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1TCPServer__inherit__graph.md5 b/latex/classcore_1_1TCPServer__inherit__graph.md5 deleted file mode 100644 index aaf0df0..0000000 --- a/latex/classcore_1_1TCPServer__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -b99be97b5935f58c2a5f55c17513c720 \ No newline at end of file diff --git a/latex/classcore_1_1TCPServer__inherit__graph.pdf b/latex/classcore_1_1TCPServer__inherit__graph.pdf deleted file mode 100644 index 3c2e06f..0000000 Binary files a/latex/classcore_1_1TCPServer__inherit__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1TCPSession.tex b/latex/classcore_1_1TCPSession.tex deleted file mode 100644 index 944faa4..0000000 --- a/latex/classcore_1_1TCPSession.tex +++ /dev/null @@ -1,161 +0,0 @@ -\hypertarget{classcore_1_1TCPSession}{}\doxysection{core\+::TCPSession Class Reference} -\label{classcore_1_1TCPSession}\index{core::TCPSession@{core::TCPSession}} - - -{\ttfamily \#include $<$TCPSession.\+h$>$} - - - -Inheritance diagram for core\+::TCPSession\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=320pt]{classcore_1_1TCPSession__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::TCPSession\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=350pt]{classcore_1_1TCPSession__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1TCPSession_a7e1192babcdeb688f463d3e9e85d0979}\label{classcore_1_1TCPSession_a7e1192babcdeb688f463d3e9e85d0979}} -{\bfseries TCPSession} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll, \mbox{\hyperlink{classcore_1_1TCPServer}{TCPServer}} \&server, std\+::string text=\char`\"{}\char`\"{}) -\item -virtual void \mbox{\hyperlink{classcore_1_1TCPSession_a50037cbfc515650e04054e5481785981}{output}} (std\+::stringstream \&data) -\item -void \mbox{\hyperlink{classcore_1_1TCPSession_a2b09eeafef5e44009a77d9da43e3b889}{send}} () -\item -void \mbox{\hyperlink{classcore_1_1TCPSession_a34936745e8d7669d5400e78d353a56d3}{terminate}} () -\end{DoxyCompactItemize} -\doxysubsection*{Public Attributes} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1TCPSession_a2c39191d695d79891989ea628f42c0a8}\label{classcore_1_1TCPSession_a2c39191d695d79891989ea628f42c0a8}} -\mbox{\hyperlink{classcore_1_1Command}{Command}} $\ast$ {\bfseries grab} = NULL -\item -\mbox{\Hypertarget{classcore_1_1TCPSession_a265d9493fa544e601b5ad5fb1663340c}\label{classcore_1_1TCPSession_a265d9493fa544e601b5ad5fb1663340c}} -\mbox{\hyperlink{classcore_1_1TCPServer}{TCPServer}} \& {\bfseries server} -\item -std\+::stringstream \mbox{\hyperlink{classcore_1_1TCPSession_abb302bbb3d7e7bc75490c736364f0d4d}{out}} -\end{DoxyCompactItemize} -\doxysubsection*{Protected Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1TCPSession_aed4ed499b978bcea57a8efefe929fc98}\label{classcore_1_1TCPSession_aed4ed499b978bcea57a8efefe929fc98}} -virtual void \mbox{\hyperlink{classcore_1_1TCPSession_aed4ed499b978bcea57a8efefe929fc98}{on\+Registered}} () override -\begin{DoxyCompactList}\small\item\em Called after the socket has been registered with epoll processing. \end{DoxyCompactList}\item -virtual void \mbox{\hyperlink{classcore_1_1TCPSession_afc2d2a92bc65e1e5122a93d120253a1d}{on\+Data\+Received}} (coreutils\+::\+ZString \&data) override -\item -virtual void \mbox{\hyperlink{classcore_1_1TCPSession_a3d9e0f14e7d24357fd1950b3f9b4eaff}{on\+Line\+Received}} (coreutils\+::\+ZString \&line) -\item -virtual void \mbox{\hyperlink{classcore_1_1TCPSession_a9c996cbbfa2e592c23cf67ed8b15a32a}{on\+Block\+Received}} (coreutils\+::\+ZString \&block) -\item -virtual void \mbox{\hyperlink{classcore_1_1TCPSession_a8719952f7bb00bf7239ec40aa2868626}{on\+Connected}} () -\item -virtual void \mbox{\hyperlink{classcore_1_1TCPSession_a98a65da2346b79bee659fca6902e94c7}{protocol}} (coreutils\+::\+ZString \&data) -\item -void \mbox{\hyperlink{classcore_1_1TCPSession_a836fb3fd5ee543ebc93262a980ae88b5}{set\+Block\+Size}} (int size=0) -\end{DoxyCompactItemize} -\doxysubsection*{Additional Inherited Members} - - -\doxysubsection{Detailed Description} -\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} - -\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} defines the nature of the interaction with the client and stores persistent data for a defined session. \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} objects are not sockets but instead provide a communications control mechanism. Protocol conversations are provided through extensions from this object. - -\doxysubsection{Member Function Documentation} -\mbox{\Hypertarget{classcore_1_1TCPSession_a9c996cbbfa2e592c23cf67ed8b15a32a}\label{classcore_1_1TCPSession_a9c996cbbfa2e592c23cf67ed8b15a32a}} -\index{core::TCPSession@{core::TCPSession}!onBlockReceived@{onBlockReceived}} -\index{onBlockReceived@{onBlockReceived}!core::TCPSession@{core::TCPSession}} -\doxysubsubsection{\texorpdfstring{onBlockReceived()}{onBlockReceived()}} -{\footnotesize\ttfamily void core\+::\+TCPSession\+::on\+Block\+Received (\begin{DoxyParamCaption}\item[{coreutils\+::\+ZString \&}]{block }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}} - -Override the on\+Block\+Received method to receive a string of characters that represents a single block of data of length determined by the block length value. If on\+Data\+Received was overriden this method will not be called unless the on\+Data\+Received calls this method explicitly using the class and member name. \mbox{\Hypertarget{classcore_1_1TCPSession_a8719952f7bb00bf7239ec40aa2868626}\label{classcore_1_1TCPSession_a8719952f7bb00bf7239ec40aa2868626}} -\index{core::TCPSession@{core::TCPSession}!onConnected@{onConnected}} -\index{onConnected@{onConnected}!core::TCPSession@{core::TCPSession}} -\doxysubsubsection{\texorpdfstring{onConnected()}{onConnected()}} -{\footnotesize\ttfamily void core\+::\+TCPSession\+::on\+Connected (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}} - -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. \mbox{\Hypertarget{classcore_1_1TCPSession_afc2d2a92bc65e1e5122a93d120253a1d}\label{classcore_1_1TCPSession_afc2d2a92bc65e1e5122a93d120253a1d}} -\index{core::TCPSession@{core::TCPSession}!onDataReceived@{onDataReceived}} -\index{onDataReceived@{onDataReceived}!core::TCPSession@{core::TCPSession}} -\doxysubsubsection{\texorpdfstring{onDataReceived()}{onDataReceived()}} -{\footnotesize\ttfamily void core\+::\+TCPSession\+::on\+Data\+Received (\begin{DoxyParamCaption}\item[{coreutils\+::\+ZString \&}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [protected]}, {\ttfamily [virtual]}} - -Override this method to receive data directly from the socket as data is received. If you need data split by line termination characters then override the on\+Line\+Received method instead. - -Reimplemented from \mbox{\hyperlink{classcore_1_1Socket}{core\+::\+Socket}}. - -\mbox{\Hypertarget{classcore_1_1TCPSession_a3d9e0f14e7d24357fd1950b3f9b4eaff}\label{classcore_1_1TCPSession_a3d9e0f14e7d24357fd1950b3f9b4eaff}} -\index{core::TCPSession@{core::TCPSession}!onLineReceived@{onLineReceived}} -\index{onLineReceived@{onLineReceived}!core::TCPSession@{core::TCPSession}} -\doxysubsubsection{\texorpdfstring{onLineReceived()}{onLineReceived()}} -{\footnotesize\ttfamily void core\+::\+TCPSession\+::on\+Line\+Received (\begin{DoxyParamCaption}\item[{coreutils\+::\+ZString \&}]{line }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}} - -Override the on\+Line\+Received method to receive a string of characters that represents a single line of data terminated by a LF or CRLF. If on\+Data\+Received was overriden this method will not be called unless the on\+Data\+Received calls this method explicitly using the class and member name. \mbox{\Hypertarget{classcore_1_1TCPSession_a50037cbfc515650e04054e5481785981}\label{classcore_1_1TCPSession_a50037cbfc515650e04054e5481785981}} -\index{core::TCPSession@{core::TCPSession}!output@{output}} -\index{output@{output}!core::TCPSession@{core::TCPSession}} -\doxysubsubsection{\texorpdfstring{output()}{output()}} -{\footnotesize\ttfamily void core\+::\+TCPSession\+::output (\begin{DoxyParamCaption}\item[{std\+::stringstream \&}]{out }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}} - -The output method is called by a socket session (\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}}) and will output the detail information for the client socket. When extending BMATCPSocket or BMASession you can override the method to add attributes to the list. - -Reimplemented from \mbox{\hyperlink{classcore_1_1TCPSocket_afacf7528ff3c9ac077d7b5a49e2116fd}{core\+::\+TCPSocket}}. - - - -Reimplemented in \mbox{\hyperlink{classcore_1_1TLSSession_ae55de8a035d1ddc560cf619b2030af43}{core\+::\+TLSSession}}. - -\mbox{\Hypertarget{classcore_1_1TCPSession_a98a65da2346b79bee659fca6902e94c7}\label{classcore_1_1TCPSession_a98a65da2346b79bee659fca6902e94c7}} -\index{core::TCPSession@{core::TCPSession}!protocol@{protocol}} -\index{protocol@{protocol}!core::TCPSession@{core::TCPSession}} -\doxysubsubsection{\texorpdfstring{protocol()}{protocol()}} -{\footnotesize\ttfamily void core\+::\+TCPSession\+::protocol (\begin{DoxyParamCaption}\item[{coreutils\+::\+ZString \&}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}} - -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 default will process the \textquotesingle{}commands\textquotesingle{} added to the server object using the process\+Request method on the session input. - -When data is received within the session two modes are available to pass the data through the protocol method\+: LINE or BLOCK. - -Reimplemented in \mbox{\hyperlink{classcore_1_1TLSSession_a208145cc1fcdc14054602aacc2c51d91}{core\+::\+TLSSession}}, and \mbox{\hyperlink{classcore_1_1ConsoleSession_aa1818efcd33a4152d2089aa545f08833}{core\+::\+Console\+Session}}. - -\mbox{\Hypertarget{classcore_1_1TCPSession_a2b09eeafef5e44009a77d9da43e3b889}\label{classcore_1_1TCPSession_a2b09eeafef5e44009a77d9da43e3b889}} -\index{core::TCPSession@{core::TCPSession}!send@{send}} -\index{send@{send}!core::TCPSession@{core::TCPSession}} -\doxysubsubsection{\texorpdfstring{send()}{send()}} -{\footnotesize\ttfamily void core\+::\+TCPSession\+::send (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} - -The send method is used to output the contents of the out stream to the session containing the stream. \mbox{\Hypertarget{classcore_1_1TCPSession_a836fb3fd5ee543ebc93262a980ae88b5}\label{classcore_1_1TCPSession_a836fb3fd5ee543ebc93262a980ae88b5}} -\index{core::TCPSession@{core::TCPSession}!setBlockSize@{setBlockSize}} -\index{setBlockSize@{setBlockSize}!core::TCPSession@{core::TCPSession}} -\doxysubsubsection{\texorpdfstring{setBlockSize()}{setBlockSize()}} -{\footnotesize\ttfamily void core\+::\+TCPSession\+::set\+Block\+Size (\begin{DoxyParamCaption}\item[{int}]{size = {\ttfamily 0} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}} - -Use set\+Block\+Size to set the amount of data that should be read at once from the session data buffer. If this value is set to 0 then the data will be retrieved \mbox{\Hypertarget{classcore_1_1TCPSession_a34936745e8d7669d5400e78d353a56d3}\label{classcore_1_1TCPSession_a34936745e8d7669d5400e78d353a56d3}} -\index{core::TCPSession@{core::TCPSession}!terminate@{terminate}} -\index{terminate@{terminate}!core::TCPSession@{core::TCPSession}} -\doxysubsubsection{\texorpdfstring{terminate()}{terminate()}} -{\footnotesize\ttfamily void core\+::\+TCPSession\+::terminate (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} - -Use this method to terminate this \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}}. - -\doxysubsection{Member Data Documentation} -\mbox{\Hypertarget{classcore_1_1TCPSession_abb302bbb3d7e7bc75490c736364f0d4d}\label{classcore_1_1TCPSession_abb302bbb3d7e7bc75490c736364f0d4d}} -\index{core::TCPSession@{core::TCPSession}!out@{out}} -\index{out@{out}!core::TCPSession@{core::TCPSession}} -\doxysubsubsection{\texorpdfstring{out}{out}} -{\footnotesize\ttfamily std\+::stringstream core\+::\+TCPSession\+::out} - -Use out to send data to the session socket or other session sockets. - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -TCPSession.\+h\item -TCPSession.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1TCPSession__coll__graph.md5 b/latex/classcore_1_1TCPSession__coll__graph.md5 deleted file mode 100644 index a022454..0000000 --- a/latex/classcore_1_1TCPSession__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -3b790dd1292cdd59467f33301651c136 \ No newline at end of file diff --git a/latex/classcore_1_1TCPSession__coll__graph.pdf b/latex/classcore_1_1TCPSession__coll__graph.pdf deleted file mode 100644 index 326a39f..0000000 Binary files a/latex/classcore_1_1TCPSession__coll__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1TCPSession__inherit__graph.md5 b/latex/classcore_1_1TCPSession__inherit__graph.md5 deleted file mode 100644 index fc624b8..0000000 --- a/latex/classcore_1_1TCPSession__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -01b803dfb26ef948867565d97c1cc8c4 \ No newline at end of file diff --git a/latex/classcore_1_1TCPSession__inherit__graph.pdf b/latex/classcore_1_1TCPSession__inherit__graph.pdf deleted file mode 100644 index 68fd7f4..0000000 Binary files a/latex/classcore_1_1TCPSession__inherit__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1TCPSocket.tex b/latex/classcore_1_1TCPSocket.tex deleted file mode 100644 index ac37dba..0000000 --- a/latex/classcore_1_1TCPSocket.tex +++ /dev/null @@ -1,71 +0,0 @@ -\hypertarget{classcore_1_1TCPSocket}{}\doxysection{core\+::TCPSocket Class Reference} -\label{classcore_1_1TCPSocket}\index{core::TCPSocket@{core::TCPSocket}} - - -{\ttfamily \#include $<$TCPSocket.\+h$>$} - - - -Inheritance diagram for core\+::TCPSocket\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=350pt]{classcore_1_1TCPSocket__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::TCPSocket\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=275pt]{classcore_1_1TCPSocket__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1TCPSocket_a09089f0bc701edcf6c148958fd29d374}\label{classcore_1_1TCPSocket_a09089f0bc701edcf6c148958fd29d374}} -{\bfseries TCPSocket} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll) -\item -\mbox{\Hypertarget{classcore_1_1TCPSocket_aa7ffbbd17827ffe769684fa8345862d6}\label{classcore_1_1TCPSocket_aa7ffbbd17827ffe769684fa8345862d6}} -{\bfseries TCPSocket} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll, std\+::string text) -\item -\mbox{\Hypertarget{classcore_1_1TCPSocket_a22dae8f5b7989d206fab918297e0df94}\label{classcore_1_1TCPSocket_a22dae8f5b7989d206fab918297e0df94}} -void {\bfseries connect} (\mbox{\hyperlink{classcore_1_1IPAddress}{IPAddress}} \&address) -\item -virtual void \mbox{\hyperlink{classcore_1_1TCPSocket_afacf7528ff3c9ac077d7b5a49e2116fd}{output}} (std\+::stringstream \&out) -\end{DoxyCompactItemize} -\doxysubsection*{Public Attributes} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1TCPSocket_abe7d0a740dc0c19c058661270a6fb630}\label{classcore_1_1TCPSocket_abe7d0a740dc0c19c058661270a6fb630}} -\mbox{\hyperlink{classcore_1_1IPAddress}{IPAddress}} {\bfseries ip\+Address} -\end{DoxyCompactItemize} -\doxysubsection*{Additional Inherited Members} - - -\doxysubsection{Detailed Description} -\mbox{\hyperlink{classcore_1_1TCPSocket}{TCPSocket}} - -Provides a network TCP socket. - -For accessing TCP network functions use this object. The connection oriented nature of TCP provides a single client persistent connection with data error correction and a durable synchronous data connection. - -\doxysubsection{Member Function Documentation} -\mbox{\Hypertarget{classcore_1_1TCPSocket_afacf7528ff3c9ac077d7b5a49e2116fd}\label{classcore_1_1TCPSocket_afacf7528ff3c9ac077d7b5a49e2116fd}} -\index{core::TCPSocket@{core::TCPSocket}!output@{output}} -\index{output@{output}!core::TCPSocket@{core::TCPSocket}} -\doxysubsubsection{\texorpdfstring{output()}{output()}} -{\footnotesize\ttfamily void core\+::\+TCPSocket\+::output (\begin{DoxyParamCaption}\item[{std\+::stringstream \&}]{out }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}} - -The output method is called by a socket session (\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}}) and will output the detail information for the client socket. When extending BMATCPSocket or BMASession you can override the method to add attributes to the list. - -Reimplemented in \mbox{\hyperlink{classcore_1_1TLSSession_ae55de8a035d1ddc560cf619b2030af43}{core\+::\+TLSSession}}, \mbox{\hyperlink{classcore_1_1TCPServer_a49e3ead1bf4e7830685780e73c4db5db}{core\+::\+TCPServer}}, and \mbox{\hyperlink{classcore_1_1TCPSession_a50037cbfc515650e04054e5481785981}{core\+::\+TCPSession}}. - - - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -TCPSocket.\+h\item -TCPSocket.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1TCPSocket__coll__graph.md5 b/latex/classcore_1_1TCPSocket__coll__graph.md5 deleted file mode 100644 index 1a3f265..0000000 --- a/latex/classcore_1_1TCPSocket__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -a33fab216720a2263f2d7805928efbed \ No newline at end of file diff --git a/latex/classcore_1_1TCPSocket__coll__graph.pdf b/latex/classcore_1_1TCPSocket__coll__graph.pdf deleted file mode 100644 index 2c6e5c7..0000000 Binary files a/latex/classcore_1_1TCPSocket__coll__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1TCPSocket__inherit__graph.md5 b/latex/classcore_1_1TCPSocket__inherit__graph.md5 deleted file mode 100644 index 9478047..0000000 --- a/latex/classcore_1_1TCPSocket__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -5cc14ce538486df71a602b5b618d16e5 \ No newline at end of file diff --git a/latex/classcore_1_1TCPSocket__inherit__graph.pdf b/latex/classcore_1_1TCPSocket__inherit__graph.pdf deleted file mode 100644 index b0a306c..0000000 Binary files a/latex/classcore_1_1TCPSocket__inherit__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1TLSServer.tex b/latex/classcore_1_1TLSServer.tex deleted file mode 100644 index 1fdc6a2..0000000 --- a/latex/classcore_1_1TLSServer.tex +++ /dev/null @@ -1,83 +0,0 @@ -\hypertarget{classcore_1_1TLSServer}{}\doxysection{core\+::TLSServer Class Reference} -\label{classcore_1_1TLSServer}\index{core::TLSServer@{core::TLSServer}} - - -{\ttfamily \#include $<$TLSServer.\+h$>$} - - - -Inheritance diagram for core\+::TLSServer\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=288pt]{classcore_1_1TLSServer__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::TLSServer\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=350pt]{classcore_1_1TLSServer__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\hyperlink{classcore_1_1TLSServer_a6460f9872936015efdfd0b8de04aa2fe}{TLSServer}} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll, \mbox{\hyperlink{classcore_1_1IPAddress}{IPAddress}} address) -\item -\mbox{\hyperlink{classcore_1_1TLSServer_ac71db77c796a1bf65357409cb96054c7}{$\sim$\+TLSServer}} () -\item -\mbox{\Hypertarget{classcore_1_1TLSServer_a984dfd9faaa792e29f905e860d2e4a9e}\label{classcore_1_1TLSServer_a984dfd9faaa792e29f905e860d2e4a9e}} -\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} $\ast$ {\bfseries get\+Socket\+Accept} () -\end{DoxyCompactItemize} -\doxysubsection*{Public Attributes} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1TLSServer_ab4e788350bda508fa44604d146e7537f}\label{classcore_1_1TLSServer_ab4e788350bda508fa44604d146e7537f}} -SSL\+\_\+\+CTX $\ast$ {\bfseries ctx} -\end{DoxyCompactItemize} -\doxysubsection*{Additional Inherited Members} - - -\doxysubsection{Detailed Description} -\mbox{\hyperlink{classcore_1_1TLSServer}{TLSServer}} - -Manage a socket connection as a TLS server type. Connections to the socket are processed through the accept functionality. - -\doxysubsection{Constructor \& Destructor Documentation} -\mbox{\Hypertarget{classcore_1_1TLSServer_a6460f9872936015efdfd0b8de04aa2fe}\label{classcore_1_1TLSServer_a6460f9872936015efdfd0b8de04aa2fe}} -\index{core::TLSServer@{core::TLSServer}!TLSServer@{TLSServer}} -\index{TLSServer@{TLSServer}!core::TLSServer@{core::TLSServer}} -\doxysubsubsection{\texorpdfstring{TLSServer()}{TLSServer()}} -{\footnotesize\ttfamily core\+::\+TLSServer\+::\+TLSServer (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&}]{e\+Poll, }\item[{\mbox{\hyperlink{classcore_1_1IPAddress}{IPAddress}}}]{address }\end{DoxyParamCaption})} - -The constructor. - - -\begin{DoxyParams}{Parameters} -{\em e\+Poll} & the BMAEPoll instance that manages the socket. \\ -\hline -{\em url} & the IP address for the socket to receive connection requests. \\ -\hline -{\em port} & the port number that the socket will listen on. \\ -\hline -{\em command\+Name} & the name of the command used to invoke the status display for this object. \\ -\hline -\end{DoxyParams} -\begin{DoxyReturn}{Returns} -the instance of the BMATLSServer\+Socket. -\end{DoxyReturn} -\mbox{\Hypertarget{classcore_1_1TLSServer_ac71db77c796a1bf65357409cb96054c7}\label{classcore_1_1TLSServer_ac71db77c796a1bf65357409cb96054c7}} -\index{core::TLSServer@{core::TLSServer}!````~TLSServer@{$\sim$TLSServer}} -\index{````~TLSServer@{$\sim$TLSServer}!core::TLSServer@{core::TLSServer}} -\doxysubsubsection{\texorpdfstring{$\sim$TLSServer()}{~TLSServer()}} -{\footnotesize\ttfamily core\+::\+TLSServer\+::$\sim$\+TLSServer (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} - -The destructor for this object. - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -TLSServer.\+h\item -TLSServer.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1TLSServer__coll__graph.md5 b/latex/classcore_1_1TLSServer__coll__graph.md5 deleted file mode 100644 index 84562fe..0000000 --- a/latex/classcore_1_1TLSServer__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -f3c936336841423916e1884cda6e5405 \ No newline at end of file diff --git a/latex/classcore_1_1TLSServer__coll__graph.pdf b/latex/classcore_1_1TLSServer__coll__graph.pdf deleted file mode 100644 index 5aa9f54..0000000 Binary files a/latex/classcore_1_1TLSServer__coll__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1TLSServer__inherit__graph.md5 b/latex/classcore_1_1TLSServer__inherit__graph.md5 deleted file mode 100644 index b9a1b2b..0000000 --- a/latex/classcore_1_1TLSServer__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -d627f85b92b90c661bf33ed669aca2d6 \ No newline at end of file diff --git a/latex/classcore_1_1TLSServer__inherit__graph.pdf b/latex/classcore_1_1TLSServer__inherit__graph.pdf deleted file mode 100644 index 539710f..0000000 Binary files a/latex/classcore_1_1TLSServer__inherit__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1TLSSession.tex b/latex/classcore_1_1TLSSession.tex deleted file mode 100644 index a835161..0000000 --- a/latex/classcore_1_1TLSSession.tex +++ /dev/null @@ -1,107 +0,0 @@ -\hypertarget{classcore_1_1TLSSession}{}\doxysection{core\+::TLSSession Class Reference} -\label{classcore_1_1TLSSession}\index{core::TLSSession@{core::TLSSession}} - - -{\ttfamily \#include $<$TLSSession.\+h$>$} - - - -Inheritance diagram for core\+::TLSSession\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=180pt]{classcore_1_1TLSSession__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::TLSSession\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=350pt]{classcore_1_1TLSSession__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1TLSSession_ac2bd48a18a46a3b6827cd689775e3552}\label{classcore_1_1TLSSession_ac2bd48a18a46a3b6827cd689775e3552}} -{\bfseries TLSSession} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll, \mbox{\hyperlink{classcore_1_1TCPServer}{TCPServer}} \&server) -\item -virtual void \mbox{\hyperlink{classcore_1_1TLSSession_ae55de8a035d1ddc560cf619b2030af43}{output}} (std\+::stringstream \&\mbox{\hyperlink{classcore_1_1TCPSession_abb302bbb3d7e7bc75490c736364f0d4d}{out}}) -\item -virtual void \mbox{\hyperlink{classcore_1_1TLSSession_a208145cc1fcdc14054602aacc2c51d91}{protocol}} (coreutils\+::\+ZString \&data) override -\end{DoxyCompactItemize} -\doxysubsection*{Protected Member Functions} -\begin{DoxyCompactItemize} -\item -void \mbox{\hyperlink{classcore_1_1TLSSession_a8507cdcd23ac4b340ce6f6d5f0b26a52}{receive\+Data}} (coreutils\+::\+ZString \&buffer) override -\item -void \mbox{\hyperlink{classcore_1_1TLSSession_a76cec7cf4851eb27abe77a2339344c6d}{on\+Register}} () -\begin{DoxyCompactList}\small\item\em Called before the socket has registered with the epoll processing. \end{DoxyCompactList}\item -\mbox{\Hypertarget{classcore_1_1TLSSession_a8e26fdc9e8a6c573b5a504a1f1b137a9}\label{classcore_1_1TLSSession_a8e26fdc9e8a6c573b5a504a1f1b137a9}} -void \mbox{\hyperlink{classcore_1_1TLSSession_a8e26fdc9e8a6c573b5a504a1f1b137a9}{on\+Registered}} () -\begin{DoxyCompactList}\small\item\em Called after the socket has been registered with epoll processing. \end{DoxyCompactList}\end{DoxyCompactItemize} -\doxysubsection*{Additional Inherited Members} - - -\doxysubsection{Detailed Description} -\mbox{\hyperlink{classcore_1_1TLSSession}{TLSSession}} - -Provides a network TLS socket. - -For accessing TLS network functions use this object. The connection oriented nature of TLS provides a single client persistent connection with data error correction and a durable synchronous data connection. - -\doxysubsection{Member Function Documentation} -\mbox{\Hypertarget{classcore_1_1TLSSession_a76cec7cf4851eb27abe77a2339344c6d}\label{classcore_1_1TLSSession_a76cec7cf4851eb27abe77a2339344c6d}} -\index{core::TLSSession@{core::TLSSession}!onRegister@{onRegister}} -\index{onRegister@{onRegister}!core::TLSSession@{core::TLSSession}} -\doxysubsubsection{\texorpdfstring{onRegister()}{onRegister()}} -{\footnotesize\ttfamily void core\+::\+TLSSession\+::on\+Register (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}} - - - -Called before the socket has registered with the epoll processing. - -The on\+Register method is called before the socket is registered with e\+Poll so objects extending the \mbox{\hyperlink{classcore_1_1Socket}{Socket}} definition can initialize the socket before receiving events. Evoked when the descriptor is set using set\+Descriptor for the socket. - -Reimplemented from \mbox{\hyperlink{classcore_1_1Socket_a81e5ee3e17834166d97c6e8b7dfe0da0}{core\+::\+Socket}}. - -\mbox{\Hypertarget{classcore_1_1TLSSession_ae55de8a035d1ddc560cf619b2030af43}\label{classcore_1_1TLSSession_ae55de8a035d1ddc560cf619b2030af43}} -\index{core::TLSSession@{core::TLSSession}!output@{output}} -\index{output@{output}!core::TLSSession@{core::TLSSession}} -\doxysubsubsection{\texorpdfstring{output()}{output()}} -{\footnotesize\ttfamily void core\+::\+TLSSession\+::output (\begin{DoxyParamCaption}\item[{std\+::stringstream \&}]{out }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}} - -The output method is called by a socket session (Session) and will output the detail information for the client socket. When extending TLSSocket or Session you can override the method to add attributes to the list. - -Reimplemented from \mbox{\hyperlink{classcore_1_1TCPSession_a50037cbfc515650e04054e5481785981}{core\+::\+TCPSession}}. - -\mbox{\Hypertarget{classcore_1_1TLSSession_a208145cc1fcdc14054602aacc2c51d91}\label{classcore_1_1TLSSession_a208145cc1fcdc14054602aacc2c51d91}} -\index{core::TLSSession@{core::TLSSession}!protocol@{protocol}} -\index{protocol@{protocol}!core::TLSSession@{core::TLSSession}} -\doxysubsubsection{\texorpdfstring{protocol()}{protocol()}} -{\footnotesize\ttfamily void core\+::\+TLSSession\+::protocol (\begin{DoxyParamCaption}\item[{coreutils\+::\+ZString \&}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}} - -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 default will process the \textquotesingle{}commands\textquotesingle{} added to the server object using the process\+Request method on the session input. - -When data is received within the session two modes are available to pass the data through the protocol method\+: LINE or BLOCK. - -Reimplemented from \mbox{\hyperlink{classcore_1_1TCPSession_a98a65da2346b79bee659fca6902e94c7}{core\+::\+TCPSession}}. - -\mbox{\Hypertarget{classcore_1_1TLSSession_a8507cdcd23ac4b340ce6f6d5f0b26a52}\label{classcore_1_1TLSSession_a8507cdcd23ac4b340ce6f6d5f0b26a52}} -\index{core::TLSSession@{core::TLSSession}!receiveData@{receiveData}} -\index{receiveData@{receiveData}!core::TLSSession@{core::TLSSession}} -\doxysubsubsection{\texorpdfstring{receiveData()}{receiveData()}} -{\footnotesize\ttfamily void core\+::\+TLSSession\+::receive\+Data (\begin{DoxyParamCaption}\item[{coreutils\+::\+ZString \&}]{buffer }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [protected]}, {\ttfamily [virtual]}} - -receive\+Data will read the data from the socket and place it in the socket buffer. TLS layer overrides this to be able to read from SSL. - -Reimplemented from \mbox{\hyperlink{classcore_1_1Socket_a46ed2e240852d3fa949979ebbc4ac875}{core\+::\+Socket}}. - - - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -TLSSession.\+h\item -TLSSession.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1TLSSession__coll__graph.md5 b/latex/classcore_1_1TLSSession__coll__graph.md5 deleted file mode 100644 index 78e7281..0000000 --- a/latex/classcore_1_1TLSSession__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -5fc9a5f70f8f3528a30212ff7794e169 \ No newline at end of file diff --git a/latex/classcore_1_1TLSSession__coll__graph.pdf b/latex/classcore_1_1TLSSession__coll__graph.pdf deleted file mode 100644 index bc31ece..0000000 Binary files a/latex/classcore_1_1TLSSession__coll__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1TLSSession__inherit__graph.md5 b/latex/classcore_1_1TLSSession__inherit__graph.md5 deleted file mode 100644 index 39319e9..0000000 --- a/latex/classcore_1_1TLSSession__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -547702fb1dc57c45ed4be5e1a8eb0583 \ No newline at end of file diff --git a/latex/classcore_1_1TLSSession__inherit__graph.pdf b/latex/classcore_1_1TLSSession__inherit__graph.pdf deleted file mode 100644 index 28b7d08..0000000 Binary files a/latex/classcore_1_1TLSSession__inherit__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1TerminalSession.tex b/latex/classcore_1_1TerminalSession.tex deleted file mode 100644 index 7790409..0000000 --- a/latex/classcore_1_1TerminalSession.tex +++ /dev/null @@ -1,84 +0,0 @@ -\hypertarget{classcore_1_1TerminalSession}{}\doxysection{core\+::Terminal\+Session Class Reference} -\label{classcore_1_1TerminalSession}\index{core::TerminalSession@{core::TerminalSession}} - - -Inheritance diagram for core\+::Terminal\+Session\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=203pt]{classcore_1_1TerminalSession__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::Terminal\+Session\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=350pt]{classcore_1_1TerminalSession__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1TerminalSession_a6773b1897d2e417ab573b28fa127230c}\label{classcore_1_1TerminalSession_a6773b1897d2e417ab573b28fa127230c}} -{\bfseries Terminal\+Session} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll, \mbox{\hyperlink{classcore_1_1TCPServer}{TCPServer}} \&server) -\item -\mbox{\Hypertarget{classcore_1_1TerminalSession_a0df0106164a7f213acf2e814e725c576}\label{classcore_1_1TerminalSession_a0df0106164a7f213acf2e814e725c576}} -int {\bfseries get\+Lines} () -\item -void \mbox{\hyperlink{classcore_1_1TerminalSession_a42bb06857891220a831da04248233935}{clear}} () -\item -void \mbox{\hyperlink{classcore_1_1TerminalSession_aa660768eed03b0b996a749e8a146446c}{clear\+EOL}} () -\item -void \mbox{\hyperlink{classcore_1_1TerminalSession_aa9939cbe36c08e1a0b8413a96ca251fa}{set\+Cursor\+Location}} (int x, int y) -\item -\mbox{\Hypertarget{classcore_1_1TerminalSession_abb104a3743f52c8237afc25c9abd3815}\label{classcore_1_1TerminalSession_abb104a3743f52c8237afc25c9abd3815}} -void {\bfseries set\+Color} (int color) -\item -\mbox{\Hypertarget{classcore_1_1TerminalSession_a96c909e28a87f2e5b64fe2ca7ab79ca7}\label{classcore_1_1TerminalSession_a96c909e28a87f2e5b64fe2ca7ab79ca7}} -void {\bfseries set\+Back\+Color} (int color) -\item -\mbox{\Hypertarget{classcore_1_1TerminalSession_a930de98aea34eca4723a1efbc0272223}\label{classcore_1_1TerminalSession_a930de98aea34eca4723a1efbc0272223}} -void {\bfseries save\+Cursor} () -\item -\mbox{\Hypertarget{classcore_1_1TerminalSession_afc89dc99e1b104bee7717b0cda2f9b37}\label{classcore_1_1TerminalSession_afc89dc99e1b104bee7717b0cda2f9b37}} -void {\bfseries restore\+Cursor} () -\item -\mbox{\Hypertarget{classcore_1_1TerminalSession_a21f8ec433bcb4c7f55807cdcbc929134}\label{classcore_1_1TerminalSession_a21f8ec433bcb4c7f55807cdcbc929134}} -void {\bfseries Next\+Line} (int lines) -\item -\mbox{\Hypertarget{classcore_1_1TerminalSession_aea2f243e65074cb174ddf8844c9126ff}\label{classcore_1_1TerminalSession_aea2f243e65074cb174ddf8844c9126ff}} -void {\bfseries Previous\+Line} (int lines) -\item -\mbox{\Hypertarget{classcore_1_1TerminalSession_a2305ddd73d1ccb8a303abd718cd6e7b0}\label{classcore_1_1TerminalSession_a2305ddd73d1ccb8a303abd718cd6e7b0}} -void {\bfseries scroll\+Area} (int start, int end) -\end{DoxyCompactItemize} -\doxysubsection*{Additional Inherited Members} - - -\doxysubsection{Member Function Documentation} -\mbox{\Hypertarget{classcore_1_1TerminalSession_a42bb06857891220a831da04248233935}\label{classcore_1_1TerminalSession_a42bb06857891220a831da04248233935}} -\index{core::TerminalSession@{core::TerminalSession}!clear@{clear}} -\index{clear@{clear}!core::TerminalSession@{core::TerminalSession}} -\doxysubsubsection{\texorpdfstring{clear()}{clear()}} -{\footnotesize\ttfamily void core\+::\+Terminal\+Session\+::clear (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} - -Clear the display. \mbox{\Hypertarget{classcore_1_1TerminalSession_aa660768eed03b0b996a749e8a146446c}\label{classcore_1_1TerminalSession_aa660768eed03b0b996a749e8a146446c}} -\index{core::TerminalSession@{core::TerminalSession}!clearEOL@{clearEOL}} -\index{clearEOL@{clearEOL}!core::TerminalSession@{core::TerminalSession}} -\doxysubsubsection{\texorpdfstring{clearEOL()}{clearEOL()}} -{\footnotesize\ttfamily void core\+::\+Terminal\+Session\+::clear\+EOL (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} - -Clear the display from the cursor to the end of line. \mbox{\Hypertarget{classcore_1_1TerminalSession_aa9939cbe36c08e1a0b8413a96ca251fa}\label{classcore_1_1TerminalSession_aa9939cbe36c08e1a0b8413a96ca251fa}} -\index{core::TerminalSession@{core::TerminalSession}!setCursorLocation@{setCursorLocation}} -\index{setCursorLocation@{setCursorLocation}!core::TerminalSession@{core::TerminalSession}} -\doxysubsubsection{\texorpdfstring{setCursorLocation()}{setCursorLocation()}} -{\footnotesize\ttfamily void core\+::\+Terminal\+Session\+::set\+Cursor\+Location (\begin{DoxyParamCaption}\item[{int}]{x, }\item[{int}]{y }\end{DoxyParamCaption})} - -Set the location of the cursor on the display. - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -Terminal\+Session.\+h\item -Terminal\+Session.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1TerminalSession__coll__graph.md5 b/latex/classcore_1_1TerminalSession__coll__graph.md5 deleted file mode 100644 index d79d57b..0000000 --- a/latex/classcore_1_1TerminalSession__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -17d88516083d283b6b2b71a206782d19 \ No newline at end of file diff --git a/latex/classcore_1_1TerminalSession__coll__graph.pdf b/latex/classcore_1_1TerminalSession__coll__graph.pdf deleted file mode 100644 index e376f56..0000000 Binary files a/latex/classcore_1_1TerminalSession__coll__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1TerminalSession__inherit__graph.md5 b/latex/classcore_1_1TerminalSession__inherit__graph.md5 deleted file mode 100644 index 68484f9..0000000 --- a/latex/classcore_1_1TerminalSession__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -3e581dfae79d3970f63743d4be890c78 \ No newline at end of file diff --git a/latex/classcore_1_1TerminalSession__inherit__graph.pdf b/latex/classcore_1_1TerminalSession__inherit__graph.pdf deleted file mode 100644 index 9a0ef5f..0000000 Binary files a/latex/classcore_1_1TerminalSession__inherit__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1Thread.tex b/latex/classcore_1_1Thread.tex deleted file mode 100644 index 0abdb62..0000000 --- a/latex/classcore_1_1Thread.tex +++ /dev/null @@ -1,71 +0,0 @@ -\hypertarget{classcore_1_1Thread}{}\doxysection{core\+::Thread Class Reference} -\label{classcore_1_1Thread}\index{core::Thread@{core::Thread}} - - -{\ttfamily \#include $<$Thread.\+h$>$} - - - -Inheritance diagram for core\+::Thread\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=157pt]{classcore_1_1Thread__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::Thread\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=157pt]{classcore_1_1Thread__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1Thread_acf8e7e682431fa6a4a3a77ce9b33aefc}\label{classcore_1_1Thread_acf8e7e682431fa6a4a3a77ce9b33aefc}} -{\bfseries Thread} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll) -\item -\mbox{\Hypertarget{classcore_1_1Thread_a88638bbc82ac8d05fc4400db90a89451}\label{classcore_1_1Thread_a88638bbc82ac8d05fc4400db90a89451}} -{\bfseries Thread} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll, \mbox{\hyperlink{classcore_1_1ThreadScope}{Thread\+Scope}} $\ast$thread) -\item -void \mbox{\hyperlink{classcore_1_1Thread_ae6885df9a9b9503669e5776518b19054}{start}} () -\item -\mbox{\Hypertarget{classcore_1_1Thread_a9ba3b9a5127dcfa0ee2c5f315d6a648d}\label{classcore_1_1Thread_a9ba3b9a5127dcfa0ee2c5f315d6a648d}} -void {\bfseries join} () -\item -\mbox{\Hypertarget{classcore_1_1Thread_a0b5d8efe9bf913e06a7768cb5ef75c8a}\label{classcore_1_1Thread_a0b5d8efe9bf913e06a7768cb5ef75c8a}} -std\+::string {\bfseries get\+Status} () -\item -\mbox{\Hypertarget{classcore_1_1Thread_adddf5bccd9189cbd81eeadf0311dbdd6}\label{classcore_1_1Thread_adddf5bccd9189cbd81eeadf0311dbdd6}} -pid\+\_\+t {\bfseries get\+Thread\+Id} () -\item -\mbox{\Hypertarget{classcore_1_1Thread_aca6a18a5aba7e87fe91a828f4896d654}\label{classcore_1_1Thread_aca6a18a5aba7e87fe91a828f4896d654}} -int {\bfseries get\+Count} () -\item -\mbox{\Hypertarget{classcore_1_1Thread_aa5b676aa441735c2ac60d05fd3ab02b5}\label{classcore_1_1Thread_aa5b676aa441735c2ac60d05fd3ab02b5}} -void {\bfseries output} (std\+::stringstream \&data) -\end{DoxyCompactItemize} -\doxysubsection*{Additional Inherited Members} - - -\doxysubsection{Detailed Description} -\mbox{\hyperlink{classcore_1_1Thread}{Thread}} - -This thread object is designed to be the thread processor for the \mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} object. It wraps the thread object to allow maintaining a status value for monitoring the thread activity. \mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} will instantiate a \mbox{\hyperlink{classcore_1_1Thread}{Thread}} object for each thread specified in the \mbox{\hyperlink{classcore_1_1EPoll}{EPoll}}\textquotesingle{}s start method. - -\doxysubsection{Member Function Documentation} -\mbox{\Hypertarget{classcore_1_1Thread_ae6885df9a9b9503669e5776518b19054}\label{classcore_1_1Thread_ae6885df9a9b9503669e5776518b19054}} -\index{core::Thread@{core::Thread}!start@{start}} -\index{start@{start}!core::Thread@{core::Thread}} -\doxysubsubsection{\texorpdfstring{start()}{start()}} -{\footnotesize\ttfamily void core\+::\+Thread\+::start (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} - -Start the thread object. This will cause the epoll scheduler to commence reading the epoll queue. - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -Thread.\+h\item -Thread.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1ThreadScope.tex b/latex/classcore_1_1ThreadScope.tex deleted file mode 100644 index 975b049..0000000 --- a/latex/classcore_1_1ThreadScope.tex +++ /dev/null @@ -1,7 +0,0 @@ -\hypertarget{classcore_1_1ThreadScope}{}\doxysection{core\+::Thread\+Scope Class Reference} -\label{classcore_1_1ThreadScope}\index{core::ThreadScope@{core::ThreadScope}} - - -The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize} -\item -Thread\+Scope.\+h\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1Thread__coll__graph.md5 b/latex/classcore_1_1Thread__coll__graph.md5 deleted file mode 100644 index bbc1377..0000000 --- a/latex/classcore_1_1Thread__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -c6c8d331b9f919c769d46392c930a2b0 \ No newline at end of file diff --git a/latex/classcore_1_1Thread__coll__graph.pdf b/latex/classcore_1_1Thread__coll__graph.pdf deleted file mode 100644 index b83ce2c..0000000 Binary files a/latex/classcore_1_1Thread__coll__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1Thread__inherit__graph.md5 b/latex/classcore_1_1Thread__inherit__graph.md5 deleted file mode 100644 index bbc1377..0000000 --- a/latex/classcore_1_1Thread__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -c6c8d331b9f919c769d46392c930a2b0 \ No newline at end of file diff --git a/latex/classcore_1_1Thread__inherit__graph.pdf b/latex/classcore_1_1Thread__inherit__graph.pdf deleted file mode 100644 index b83ce2c..0000000 Binary files a/latex/classcore_1_1Thread__inherit__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1Timer.tex b/latex/classcore_1_1Timer.tex deleted file mode 100644 index 3126db9..0000000 --- a/latex/classcore_1_1Timer.tex +++ /dev/null @@ -1,94 +0,0 @@ -\hypertarget{classcore_1_1Timer}{}\doxysection{core\+::Timer Class Reference} -\label{classcore_1_1Timer}\index{core::Timer@{core::Timer}} - - -{\ttfamily \#include $<$Timer.\+h$>$} - - - -Inheritance diagram for core\+::Timer\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=156pt]{classcore_1_1Timer__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::Timer\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=174pt]{classcore_1_1Timer__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1Timer_aa12f319bab9c7a350244c4d47fe59de9}\label{classcore_1_1Timer_aa12f319bab9c7a350244c4d47fe59de9}} -{\bfseries Timer} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll) -\item -\mbox{\Hypertarget{classcore_1_1Timer_a6ba8de81f8e3b26fd132e29230646024}\label{classcore_1_1Timer_a6ba8de81f8e3b26fd132e29230646024}} -{\bfseries Timer} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll, double delay) -\item -void \mbox{\hyperlink{classcore_1_1Timer_ac0a642cdcb76b7f995137162050d3d0b}{set\+Timer}} (double delay) -\item -void \mbox{\hyperlink{classcore_1_1Timer_a8e063f46e89dac04364871e909ab940a}{clear\+Timer}} () -\item -double \mbox{\hyperlink{classcore_1_1Timer_a0df7f1ffc05529b45d6e13713bbc0209}{get\+Elapsed}} () -\item -\mbox{\Hypertarget{classcore_1_1Timer_afee1c871ce74e6b594bd6e64ad3cb576}\label{classcore_1_1Timer_afee1c871ce74e6b594bd6e64ad3cb576}} -double {\bfseries get\+Epoch} () -\end{DoxyCompactItemize} -\doxysubsection*{Protected Member Functions} -\begin{DoxyCompactItemize} -\item -virtual void \mbox{\hyperlink{classcore_1_1Timer_ae51704ff08d985bbc30e3ff4c9b3c6ca}{on\+Timeout}} ()=0 -\end{DoxyCompactItemize} - - -\doxysubsection{Detailed Description} -\mbox{\hyperlink{classcore_1_1Timer}{Timer}} - -Set and trigger callback upon specified timeout. - -The \mbox{\hyperlink{classcore_1_1Timer}{Timer}} is used to establish a timer using the timer socket interface. It cannot be instantiated directly but must be extended. - -\doxysubsection{Member Function Documentation} -\mbox{\Hypertarget{classcore_1_1Timer_a8e063f46e89dac04364871e909ab940a}\label{classcore_1_1Timer_a8e063f46e89dac04364871e909ab940a}} -\index{core::Timer@{core::Timer}!clearTimer@{clearTimer}} -\index{clearTimer@{clearTimer}!core::Timer@{core::Timer}} -\doxysubsubsection{\texorpdfstring{clearTimer()}{clearTimer()}} -{\footnotesize\ttfamily void core\+::\+Timer\+::clear\+Timer (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} - -Use the \mbox{\hyperlink{classcore_1_1Timer_a8e063f46e89dac04364871e909ab940a}{clear\+Timer()}} to unset the timer and return the timer to an idle state. \mbox{\Hypertarget{classcore_1_1Timer_a0df7f1ffc05529b45d6e13713bbc0209}\label{classcore_1_1Timer_a0df7f1ffc05529b45d6e13713bbc0209}} -\index{core::Timer@{core::Timer}!getElapsed@{getElapsed}} -\index{getElapsed@{getElapsed}!core::Timer@{core::Timer}} -\doxysubsubsection{\texorpdfstring{getElapsed()}{getElapsed()}} -{\footnotesize\ttfamily double core\+::\+Timer\+::get\+Elapsed (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} - -Use the \mbox{\hyperlink{classcore_1_1Timer_a0df7f1ffc05529b45d6e13713bbc0209}{get\+Elapsed()}} method to obtain the amount of time that has elapsed since the timer was set. \mbox{\Hypertarget{classcore_1_1Timer_ae51704ff08d985bbc30e3ff4c9b3c6ca}\label{classcore_1_1Timer_ae51704ff08d985bbc30e3ff4c9b3c6ca}} -\index{core::Timer@{core::Timer}!onTimeout@{onTimeout}} -\index{onTimeout@{onTimeout}!core::Timer@{core::Timer}} -\doxysubsubsection{\texorpdfstring{onTimeout()}{onTimeout()}} -{\footnotesize\ttfamily virtual void core\+::\+Timer\+::on\+Timeout (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [pure virtual]}} - -This method is called when the time out occurs. \mbox{\Hypertarget{classcore_1_1Timer_ac0a642cdcb76b7f995137162050d3d0b}\label{classcore_1_1Timer_ac0a642cdcb76b7f995137162050d3d0b}} -\index{core::Timer@{core::Timer}!setTimer@{setTimer}} -\index{setTimer@{setTimer}!core::Timer@{core::Timer}} -\doxysubsubsection{\texorpdfstring{setTimer()}{setTimer()}} -{\footnotesize\ttfamily void core\+::\+Timer\+::set\+Timer (\begin{DoxyParamCaption}\item[{double}]{delay }\end{DoxyParamCaption})} - -Use the \mbox{\hyperlink{classcore_1_1Timer_ac0a642cdcb76b7f995137162050d3d0b}{set\+Timer()}} method to set the time out value for timer. Setting the timer also starts the timer countdown. The \mbox{\hyperlink{classcore_1_1Timer_a8e063f46e89dac04364871e909ab940a}{clear\+Timer()}} method can be used to reset the timer without triggering the \mbox{\hyperlink{classcore_1_1Timer_ae51704ff08d985bbc30e3ff4c9b3c6ca}{on\+Timeout()}} callback. - - -\begin{DoxyParams}{Parameters} -{\em delay} & the amount of time in seconds to wait before trigering the on\+Timeout function. \\ -\hline -\end{DoxyParams} - - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -Timer.\+h\item -Timer.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1Timer__coll__graph.md5 b/latex/classcore_1_1Timer__coll__graph.md5 deleted file mode 100644 index b287f16..0000000 --- a/latex/classcore_1_1Timer__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -7797114d50492239a6a8ab7ebcacad0b \ No newline at end of file diff --git a/latex/classcore_1_1Timer__coll__graph.pdf b/latex/classcore_1_1Timer__coll__graph.pdf deleted file mode 100644 index 4bf9272..0000000 Binary files a/latex/classcore_1_1Timer__coll__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1Timer__inherit__graph.md5 b/latex/classcore_1_1Timer__inherit__graph.md5 deleted file mode 100644 index fe84e18..0000000 --- a/latex/classcore_1_1Timer__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -ab2b38172e6372d1ef31defa9e6f6b5e \ No newline at end of file diff --git a/latex/classcore_1_1Timer__inherit__graph.pdf b/latex/classcore_1_1Timer__inherit__graph.pdf deleted file mode 100644 index ec8cc48..0000000 Binary files a/latex/classcore_1_1Timer__inherit__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1UDPServerSocket.tex b/latex/classcore_1_1UDPServerSocket.tex deleted file mode 100644 index 039ecb6..0000000 --- a/latex/classcore_1_1UDPServerSocket.tex +++ /dev/null @@ -1,80 +0,0 @@ -\hypertarget{classcore_1_1UDPServerSocket}{}\doxysection{core\+::UDPServer\+Socket Class Reference} -\label{classcore_1_1UDPServerSocket}\index{core::UDPServerSocket@{core::UDPServerSocket}} - - -{\ttfamily \#include $<$UDPServer\+Socket.\+h$>$} - - - -Inheritance diagram for core\+::UDPServer\+Socket\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=290pt]{classcore_1_1UDPServerSocket__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::UDPServer\+Socket\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=245pt]{classcore_1_1UDPServerSocket__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1UDPServerSocket_a6fee7bc6dc2f94d48734c07cbc918734}\label{classcore_1_1UDPServerSocket_a6fee7bc6dc2f94d48734c07cbc918734}} -{\bfseries UDPServer\+Socket} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll, std\+::string url, short int port, std\+::string command\+Name) -\end{DoxyCompactItemize} -\doxysubsection*{Protected Member Functions} -\begin{DoxyCompactItemize} -\item -void \mbox{\hyperlink{classcore_1_1UDPServerSocket_a41933ca153c854a800e3d047ab18313e}{on\+Data\+Received}} (std\+::string data) override -\begin{DoxyCompactList}\small\item\em Called when data is received from the socket. \end{DoxyCompactList}\item -\mbox{\Hypertarget{classcore_1_1UDPServerSocket_aef32dee99a40a8951a708e99776539d4}\label{classcore_1_1UDPServerSocket_aef32dee99a40a8951a708e99776539d4}} -int {\bfseries process\+Command} (std\+::string request, std\+::stringstream \&data) -\end{DoxyCompactItemize} -\doxysubsection*{Protected Attributes} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1UDPServerSocket_a83362532c66271699c4e60d1da2a41bc}\label{classcore_1_1UDPServerSocket_a83362532c66271699c4e60d1da2a41bc}} -std\+::vector$<$ Session $\ast$ $>$ {\bfseries sessions} -\end{DoxyCompactItemize} -\doxysubsection*{Additional Inherited Members} - - -\doxysubsection{Detailed Description} -\mbox{\hyperlink{classcore_1_1UDPSocket}{UDPSocket}} - -Manage a socket connection as a UDP server type. Connections to the socket are processed through the session list functionality. A list of sessions is maintained in a vector object. - -\doxysubsection{Member Function Documentation} -\mbox{\Hypertarget{classcore_1_1UDPServerSocket_a41933ca153c854a800e3d047ab18313e}\label{classcore_1_1UDPServerSocket_a41933ca153c854a800e3d047ab18313e}} -\index{core::UDPServerSocket@{core::UDPServerSocket}!onDataReceived@{onDataReceived}} -\index{onDataReceived@{onDataReceived}!core::UDPServerSocket@{core::UDPServerSocket}} -\doxysubsubsection{\texorpdfstring{onDataReceived()}{onDataReceived()}} -{\footnotesize\ttfamily void core\+::\+UDPServer\+Socket\+::on\+Data\+Received (\begin{DoxyParamCaption}\item[{std\+::string}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [protected]}, {\ttfamily [virtual]}} - - - -Called when data is received from the socket. - -The on\+Connected method is called when the socket is ready to communicate. Writing to the socket can begin on this call to initiate a contact with the remote device. The on\+Data\+Received method is called when the socket has received an event from epoll and there is data ready to be read from the socket. The default handler will pull the data and put it into the streambuf for the socket. EPOLLIN - - -\begin{DoxyParams}{Parameters} -{\em data} & the data that has been received from the socket. \\ -\hline -\end{DoxyParams} - - -Reimplemented from \mbox{\hyperlink{classcore_1_1Socket_ac8d6a2c54696eb6fc2024cf6bcf6b4e5}{core\+::\+Socket}}. - - - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -UDPServer\+Socket.\+h\item -UDPServer\+Socket.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1UDPServerSocket__coll__graph.md5 b/latex/classcore_1_1UDPServerSocket__coll__graph.md5 deleted file mode 100644 index eb429e0..0000000 --- a/latex/classcore_1_1UDPServerSocket__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -5fe54968761d04dd96b6878affeacc10 \ No newline at end of file diff --git a/latex/classcore_1_1UDPServerSocket__coll__graph.pdf b/latex/classcore_1_1UDPServerSocket__coll__graph.pdf deleted file mode 100644 index adb25b5..0000000 Binary files a/latex/classcore_1_1UDPServerSocket__coll__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1UDPServerSocket__inherit__graph.md5 b/latex/classcore_1_1UDPServerSocket__inherit__graph.md5 deleted file mode 100644 index 9320910..0000000 --- a/latex/classcore_1_1UDPServerSocket__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -460ca49f78cf9de9f37d9f3ea2fa6542 \ No newline at end of file diff --git a/latex/classcore_1_1UDPServerSocket__inherit__graph.pdf b/latex/classcore_1_1UDPServerSocket__inherit__graph.pdf deleted file mode 100644 index 66360ef..0000000 Binary files a/latex/classcore_1_1UDPServerSocket__inherit__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1UDPSocket.tex b/latex/classcore_1_1UDPSocket.tex deleted file mode 100644 index c36c711..0000000 --- a/latex/classcore_1_1UDPSocket.tex +++ /dev/null @@ -1,33 +0,0 @@ -\hypertarget{classcore_1_1UDPSocket}{}\doxysection{core\+::UDPSocket Class Reference} -\label{classcore_1_1UDPSocket}\index{core::UDPSocket@{core::UDPSocket}} - - -Inheritance diagram for core\+::UDPSocket\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=208pt]{classcore_1_1UDPSocket__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::UDPSocket\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=177pt]{classcore_1_1UDPSocket__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1UDPSocket_a9dcbe1203fea9c25400a391d3430e976}\label{classcore_1_1UDPSocket_a9dcbe1203fea9c25400a391d3430e976}} -{\bfseries UDPSocket} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll) -\end{DoxyCompactItemize} -\doxysubsection*{Additional Inherited Members} - - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -UDPSocket.\+h\item -UDPSocket.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1UDPSocket__coll__graph.md5 b/latex/classcore_1_1UDPSocket__coll__graph.md5 deleted file mode 100644 index fe68460..0000000 --- a/latex/classcore_1_1UDPSocket__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -e118447cd2727ab7cf67c7f37abad058 \ No newline at end of file diff --git a/latex/classcore_1_1UDPSocket__coll__graph.pdf b/latex/classcore_1_1UDPSocket__coll__graph.pdf deleted file mode 100644 index b9aedb7..0000000 Binary files a/latex/classcore_1_1UDPSocket__coll__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1UDPSocket__inherit__graph.md5 b/latex/classcore_1_1UDPSocket__inherit__graph.md5 deleted file mode 100644 index 2f748f4..0000000 --- a/latex/classcore_1_1UDPSocket__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -e21e5069bcc5ad5911e1036f19eb0699 \ No newline at end of file diff --git a/latex/classcore_1_1UDPSocket__inherit__graph.pdf b/latex/classcore_1_1UDPSocket__inherit__graph.pdf deleted file mode 100644 index fa38bf9..0000000 Binary files a/latex/classcore_1_1UDPSocket__inherit__graph.pdf and /dev/null differ diff --git a/latex/doxygen.sty b/latex/doxygen.sty deleted file mode 100644 index 8f59bcc..0000000 --- a/latex/doxygen.sty +++ /dev/null @@ -1,576 +0,0 @@ -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{doxygen} - -% Packages used by this style file -\RequirePackage{alltt} -%%\RequirePackage{array} %% moved to refman.tex due to workaround for LaTex 2019 version and unmaintained tabu package -\RequirePackage{calc} -\RequirePackage{float} -%%\RequirePackage{ifthen} %% moved to refman.tex due to workaround for LaTex 2019 version and unmaintained tabu package -\RequirePackage{verbatim} -\RequirePackage[table]{xcolor} -\RequirePackage{longtable_doxygen} -\RequirePackage{tabu_doxygen} -\RequirePackage{fancyvrb} -\RequirePackage{tabularx} -\RequirePackage{multicol} -\RequirePackage{multirow} -\RequirePackage{hanging} -\RequirePackage{ifpdf} -\RequirePackage{adjustbox} -\RequirePackage{amssymb} -\RequirePackage{stackengine} -\RequirePackage[normalem]{ulem} % for strikeout, but don't modify emphasis - -%---------- 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{\DoxyHorRuler}[1]{% - \setlength{\parskip}{0ex plus 0ex minus 0ex}% - \ifthenelse{#1=0}% - {% - \hrule% - }% - {% - \hrulefilll% - }% -} -\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
     ... 
    -\newenvironment{DoxyPre}{% - \small% - \begin{alltt}% -}{% - \end{alltt}% - \normalsize% -} -% Necessary for redefining not defined characters, i.e. "Replacement Character" in tex output. -\newlength{\CodeWidthChar} -\newlength{\CodeHeightChar} -\settowidth{\CodeWidthChar}{?} -\settoheight{\CodeHeightChar}{?} -% Necessary for hanging indent -\newlength{\DoxyCodeWidth} - -\newcommand\DoxyCodeLine[1]{\hangpara{\DoxyCodeWidth}{1}{#1}\par} - -\newcommand\NiceSpace{% - \discretionary{}{\kern\fontdimen2\font}{\kern\fontdimen2\font}% -} - -% Used by @code ... @endcode -\newenvironment{DoxyCode}[1]{% - \par% - \scriptsize% - \normalfont\ttfamily% - \rightskip0pt plus 1fil% - \settowidth{\DoxyCodeWidth}{000000}% - \settowidth{\CodeWidthChar}{?}% - \settoheight{\CodeHeightChar}{?}% - \setlength{\parskip}{0ex plus 0ex minus 0ex}% - \ifthenelse{\equal{#1}{0}} - { - {\lccode`~32 \lowercase{\global\let~}\NiceSpace}\obeyspaces% - } - { - {\lccode`~32 \lowercase{\global\let~}}\obeyspaces% - } - -}{% - \normalfont% - \normalsize% - \settowidth{\CodeWidthChar}{?}% - \settoheight{\CodeHeightChar}{?}% -} - -% Redefining not defined characters, i.e. "Replacement Character" in tex output. -\def\ucr{\adjustbox{width=\CodeWidthChar,height=\CodeHeightChar}{\stackinset{c}{}{c}{-.2pt}{% - \textcolor{white}{\sffamily\bfseries\small ?}}{% - \rotatebox{45}{$\blacksquare$}}}} - -% Used by @example, @include, @includelineno and @dontinclude -\newenvironment{DoxyCodeInclude}[1]{% - \DoxyCode{#1}% -}{% - \endDoxyCode% -} - -% Used by @verbatim ... @endverbatim -\newenvironment{DoxyVerb}{% - \footnotesize% - \verbatim% -}{% - \endverbatim% - \normalsize% -} - -% Used by @verbinclude -\newenvironment{DoxyVerbInclude}{% - \DoxyVerb% -}{% - \endDoxyVerb% -} - -% Used by numbered lists (using '-#' or
      ...
    ) -\newenvironment{DoxyEnumerate}{% - \enumerate% -}{% - \endenumerate% -} - -% Used by bullet lists (using '-', @li, @arg, or
      ...
    ) -\newenvironment{DoxyItemize}{% - \itemize% -}{% - \enditemize% -} - -% Used by description lists (using
    ...
    ) -\newenvironment{DoxyDescription}{% - \description% -}{% - \enddescription% -} - -% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc -% (only if caption is specified) -\newenvironment{DoxyImage}{% - \begin{figure}[H]% - \centering% -}{% - \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 @image -% (only if inline is specified) -\newenvironment{DoxyInlineImage}{% -}{% -} - -% 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{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% 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}{}}} - -% possibility to have sections etc. be within the margins -% unfortunately had to copy part of book.cls and add \raggedright -\makeatletter -\newcommand\doxysection{\@startsection {section}{1}{\z@}% - {-3.5ex \@plus -1ex \@minus -.2ex}% - {2.3ex \@plus.2ex}% - {\raggedright\normalfont\Large\bfseries}} -\newcommand\doxysubsection{\@startsection{subsection}{2}{\z@}% - {-3.25ex\@plus -1ex \@minus -.2ex}% - {1.5ex \@plus .2ex}% - {\raggedright\normalfont\large\bfseries}} -\newcommand\doxysubsubsection{\@startsection{subsubsection}{3}{\z@}% - {-3.25ex\@plus -1ex \@minus -.2ex}% - {1.5ex \@plus .2ex}% - {\raggedright\normalfont\normalsize\bfseries}} -\newcommand\doxyparagraph{\@startsection{paragraph}{4}{\z@}% - {3.25ex \@plus1ex \@minus.2ex}% - {-1em}% - {\raggedright\normalfont\normalsize\bfseries}} -\newcommand\doxysubparagraph{\@startsection{subparagraph}{5}{\parindent}% - {3.25ex \@plus1ex \@minus .2ex}% - {-1em}% - {\raggedright\normalfont\normalsize\bfseries}} -\makeatother -% Define caption that is also suitable in a table -\makeatletter -\def\doxyfigcaption{% -\H@refstepcounter{figure}% -\@dblarg{\@caption{figure}}} -\makeatother diff --git a/latex/hierarchy.tex b/latex/hierarchy.tex deleted file mode 100644 index dd9b309..0000000 --- a/latex/hierarchy.tex +++ /dev/null @@ -1,48 +0,0 @@ -\doxysection{Class Hierarchy} -This inheritance list is sorted roughly, but not completely, alphabetically\+:\begin{DoxyCompactList} -\item \contentsline{section}{core\+::Command}{\pageref{classcore_1_1Command}}{} -\begin{DoxyCompactList} -\item \contentsline{section}{core\+::Command\+List}{\pageref{classcore_1_1CommandList}}{} -\item \contentsline{section}{core\+::EPoll}{\pageref{classcore_1_1EPoll}}{} -\item \contentsline{section}{core\+::Subscription\+Manager}{\pageref{classcore_1_1SubscriptionManager}}{} -\item \contentsline{section}{core\+::TCPServer}{\pageref{classcore_1_1TCPServer}}{} -\begin{DoxyCompactList} -\item \contentsline{section}{core\+::Console\+Server}{\pageref{classcore_1_1ConsoleServer}}{} -\item \contentsline{section}{core\+::TLSServer}{\pageref{classcore_1_1TLSServer}}{} -\end{DoxyCompactList} -\item \contentsline{section}{core\+::UDPServer\+Socket}{\pageref{classcore_1_1UDPServerSocket}}{} -\end{DoxyCompactList} -\item \contentsline{section}{core\+::IPAddress\+List}{\pageref{classcore_1_1IPAddressList}}{} -\item coreutils\+::Log\+Listener\begin{DoxyCompactList} -\item \contentsline{section}{core\+::Console\+Server}{\pageref{classcore_1_1ConsoleServer}}{} -\end{DoxyCompactList} -\item \contentsline{section}{core\+::Object}{\pageref{classcore_1_1Object}}{} -\begin{DoxyCompactList} -\item \contentsline{section}{core\+::IPAddress}{\pageref{classcore_1_1IPAddress}}{} -\item \contentsline{section}{core\+::Session\+Filter}{\pageref{classcore_1_1SessionFilter}}{} -\item \contentsline{section}{core\+::Thread}{\pageref{classcore_1_1Thread}}{} -\end{DoxyCompactList} -\item \contentsline{section}{core\+::Socket}{\pageref{classcore_1_1Socket}}{} -\begin{DoxyCompactList} -\item \contentsline{section}{core\+::INotify}{\pageref{classcore_1_1INotify}}{} -\item \contentsline{section}{core\+::TCPSocket}{\pageref{classcore_1_1TCPSocket}}{} -\begin{DoxyCompactList} -\item \contentsline{section}{core\+::TCPServer}{\pageref{classcore_1_1TCPServer}}{} -\item \contentsline{section}{core\+::TCPSession}{\pageref{classcore_1_1TCPSession}}{} -\begin{DoxyCompactList} -\item \contentsline{section}{core\+::TLSSession}{\pageref{classcore_1_1TLSSession}}{} -\item \contentsline{section}{core\+::Terminal\+Session}{\pageref{classcore_1_1TerminalSession}}{} -\begin{DoxyCompactList} -\item \contentsline{section}{core\+::Console\+Session}{\pageref{classcore_1_1ConsoleSession}}{} -\end{DoxyCompactList} -\end{DoxyCompactList} -\end{DoxyCompactList} -\item \contentsline{section}{core\+::Timer}{\pageref{classcore_1_1Timer}}{} -\item \contentsline{section}{core\+::UDPSocket}{\pageref{classcore_1_1UDPSocket}}{} -\begin{DoxyCompactList} -\item \contentsline{section}{core\+::UDPServer\+Socket}{\pageref{classcore_1_1UDPServerSocket}}{} -\end{DoxyCompactList} -\end{DoxyCompactList} -\item \contentsline{section}{core\+::Subscription}{\pageref{classcore_1_1Subscription}}{} -\item \contentsline{section}{core\+::Thread\+Scope}{\pageref{classcore_1_1ThreadScope}}{} -\end{DoxyCompactList} diff --git a/latex/longtable_doxygen.sty b/latex/longtable_doxygen.sty deleted file mode 100644 index a0eb314..0000000 --- a/latex/longtable_doxygen.sty +++ /dev/null @@ -1,448 +0,0 @@ -%% -%% This is file `longtable.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% longtable.dtx (with options: `package') -%% -%% This is a generated file. -%% -%% The source is maintained by the LaTeX Project team and bug -%% reports for it can be opened at http://latex-project.org/bugs.html -%% (but please observe conditions on bug reports sent to that address!) -%% -%% Copyright 1993-2016 -%% The LaTeX3 Project and any individual authors listed elsewhere -%% in this file. -%% -%% This file was generated from file(s) of the Standard LaTeX `Tools Bundle'. -%% -------------------------------------------------------------------------- -%% -%% It may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3c -%% of this license or (at your option) any later version. -%% The latest version of this license is in -%% http://www.latex-project.org/lppl.txt -%% and version 1.3c or later is part of all distributions of LaTeX -%% version 2005/12/01 or later. -%% -%% This file may only be distributed together with a copy of the LaTeX -%% `Tools Bundle'. You may however distribute the LaTeX `Tools Bundle' -%% without such generated files. -%% -%% The list of all files belonging to the LaTeX `Tools Bundle' is -%% given in the file `manifest.txt'. -%% -%% File: longtable.dtx Copyright (C) 1990-2001 David Carlisle -\NeedsTeXFormat{LaTeX2e}[1995/06/01] -\ProvidesPackage{longtable_doxygen} - [2014/10/28 v4.11 Multi-page Table package (DPC) - frozen version for doxygen] -\def\LT@err{\PackageError{longtable}} -\def\LT@warn{\PackageWarning{longtable}} -\def\LT@final@warn{% - \AtEndDocument{% - \LT@warn{Table \@width s have changed. Rerun LaTeX.\@gobbletwo}}% - \global\let\LT@final@warn\relax} -\DeclareOption{errorshow}{% - \def\LT@warn{\PackageInfo{longtable}}} -\DeclareOption{pausing}{% - \def\LT@warn#1{% - \LT@err{#1}{This is not really an error}}} -\DeclareOption{set}{} -\DeclareOption{final}{} -\ProcessOptions -\newskip\LTleft \LTleft=\fill -\newskip\LTright \LTright=\fill -\newskip\LTpre \LTpre=\bigskipamount -\newskip\LTpost \LTpost=\bigskipamount -\newcount\LTchunksize \LTchunksize=20 -\let\c@LTchunksize\LTchunksize -\newdimen\LTcapwidth \LTcapwidth=4in -\newbox\LT@head -\newbox\LT@firsthead -\newbox\LT@foot -\newbox\LT@lastfoot -\newcount\LT@cols -\newcount\LT@rows -\newcounter{LT@tables} -\newcounter{LT@chunks}[LT@tables] -\ifx\c@table\undefined - \newcounter{table} - \def\fnum@table{\tablename~\thetable} -\fi -\ifx\tablename\undefined - \def\tablename{Table} -\fi -\newtoks\LT@p@ftn -\mathchardef\LT@end@pen=30000 -\def\longtable{% - \par - \ifx\multicols\@undefined - \else - \ifnum\col@number>\@ne - \@twocolumntrue - \fi - \fi - \if@twocolumn - \LT@err{longtable not in 1-column mode}\@ehc - \fi - \begingroup - \@ifnextchar[\LT@array{\LT@array[x]}} -\def\LT@array[#1]#2{% - \refstepcounter{table}\stepcounter{LT@tables}% - \if l#1% - \LTleft\z@ \LTright\fill - \else\if r#1% - \LTleft\fill \LTright\z@ - \else\if c#1% - \LTleft\fill \LTright\fill - \fi\fi\fi - \let\LT@mcol\multicolumn - \let\LT@@tabarray\@tabarray - \let\LT@@hl\hline - \def\@tabarray{% - \let\hline\LT@@hl - \LT@@tabarray}% - \let\\\LT@tabularcr\let\tabularnewline\\% - \def\newpage{\noalign{\break}}% - \def\pagebreak{\noalign{\ifnum`}=0\fi\@testopt{\LT@no@pgbk-}4}% - \def\nopagebreak{\noalign{\ifnum`}=0\fi\@testopt\LT@no@pgbk4}% - \let\hline\LT@hline \let\kill\LT@kill\let\caption\LT@caption - \@tempdima\ht\strutbox - \let\@endpbox\LT@endpbox - \ifx\extrarowheight\@undefined - \let\@acol\@tabacol - \let\@classz\@tabclassz \let\@classiv\@tabclassiv - \def\@startpbox{\vtop\LT@startpbox}% - \let\@@startpbox\@startpbox - \let\@@endpbox\@endpbox - \let\LT@LL@FM@cr\@tabularcr - \else - \advance\@tempdima\extrarowheight - \col@sep\tabcolsep - \let\@startpbox\LT@startpbox\let\LT@LL@FM@cr\@arraycr - \fi - \setbox\@arstrutbox\hbox{\vrule - \@height \arraystretch \@tempdima - \@depth \arraystretch \dp \strutbox - \@width \z@}% - \let\@sharp##\let\protect\relax - \begingroup - \@mkpream{#2}% - \xdef\LT@bchunk{% - \global\advance\c@LT@chunks\@ne - \global\LT@rows\z@\setbox\z@\vbox\bgroup - \LT@setprevdepth - \tabskip\LTleft \noexpand\halign to\hsize\bgroup - \tabskip\z@ \@arstrut \@preamble \tabskip\LTright \cr}% - \endgroup - \expandafter\LT@nofcols\LT@bchunk&\LT@nofcols - \LT@make@row - \m@th\let\par\@empty - \everycr{}\lineskip\z@\baselineskip\z@ - \LT@bchunk} -\def\LT@no@pgbk#1[#2]{\penalty #1\@getpen{#2}\ifnum`{=0\fi}} -\def\LT@start{% - \let\LT@start\endgraf - \endgraf\penalty\z@\vskip\LTpre - \dimen@\pagetotal - \advance\dimen@ \ht\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi - \advance\dimen@ \dp\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi - \advance\dimen@ \ht\LT@foot - \dimen@ii\vfuzz - \vfuzz\maxdimen - \setbox\tw@\copy\z@ - \setbox\tw@\vsplit\tw@ to \ht\@arstrutbox - \setbox\tw@\vbox{\unvbox\tw@}% - \vfuzz\dimen@ii - \advance\dimen@ \ht - \ifdim\ht\@arstrutbox>\ht\tw@\@arstrutbox\else\tw@\fi - \advance\dimen@\dp - \ifdim\dp\@arstrutbox>\dp\tw@\@arstrutbox\else\tw@\fi - \advance\dimen@ -\pagegoal - \ifdim \dimen@>\z@\vfil\break\fi - \global\@colroom\@colht - \ifvoid\LT@foot\else - \advance\vsize-\ht\LT@foot - \global\advance\@colroom-\ht\LT@foot - \dimen@\pagegoal\advance\dimen@-\ht\LT@foot\pagegoal\dimen@ - \maxdepth\z@ - \fi - \ifvoid\LT@firsthead\copy\LT@head\else\box\LT@firsthead\fi\nobreak - \output{\LT@output}} -\def\endlongtable{% - \crcr - \noalign{% - \let\LT@entry\LT@entry@chop - \xdef\LT@save@row{\LT@save@row}}% - \LT@echunk - \LT@start - \unvbox\z@ - \LT@get@widths - \if@filesw - {\let\LT@entry\LT@entry@write\immediate\write\@auxout{% - \gdef\expandafter\noexpand - \csname LT@\romannumeral\c@LT@tables\endcsname - {\LT@save@row}}}% - \fi - \ifx\LT@save@row\LT@@save@row - \else - \LT@warn{Column \@width s have changed\MessageBreak - in table \thetable}% - \LT@final@warn - \fi - \endgraf\penalty -\LT@end@pen - \endgroup - \global\@mparbottom\z@ - \pagegoal\vsize - \endgraf\penalty\z@\addvspace\LTpost - \ifvoid\footins\else\insert\footins{}\fi} -\def\LT@nofcols#1&{% - \futurelet\@let@token\LT@n@fcols} -\def\LT@n@fcols{% - \advance\LT@cols\@ne - \ifx\@let@token\LT@nofcols - \expandafter\@gobble - \else - \expandafter\LT@nofcols - \fi} -\def\LT@tabularcr{% - \relax\iffalse{\fi\ifnum0=`}\fi - \@ifstar - {\def\crcr{\LT@crcr\noalign{\nobreak}}\let\cr\crcr - \LT@t@bularcr}% - {\LT@t@bularcr}} -\let\LT@crcr\crcr -\let\LT@setprevdepth\relax -\def\LT@t@bularcr{% - \global\advance\LT@rows\@ne - \ifnum\LT@rows=\LTchunksize - \gdef\LT@setprevdepth{% - \prevdepth\z@\global - \global\let\LT@setprevdepth\relax}% - \expandafter\LT@xtabularcr - \else - \ifnum0=`{}\fi - \expandafter\LT@LL@FM@cr - \fi} -\def\LT@xtabularcr{% - \@ifnextchar[\LT@argtabularcr\LT@ntabularcr} -\def\LT@ntabularcr{% - \ifnum0=`{}\fi - \LT@echunk - \LT@start - \unvbox\z@ - \LT@get@widths - \LT@bchunk} -\def\LT@argtabularcr[#1]{% - \ifnum0=`{}\fi - \ifdim #1>\z@ - \unskip\@xargarraycr{#1}% - \else - \@yargarraycr{#1}% - \fi - \LT@echunk - \LT@start - \unvbox\z@ - \LT@get@widths - \LT@bchunk} -\def\LT@echunk{% - \crcr\LT@save@row\cr\egroup - \global\setbox\@ne\lastbox - \unskip - \egroup} -\def\LT@entry#1#2{% - \ifhmode\@firstofone{&}\fi\omit - \ifnum#1=\c@LT@chunks - \else - \kern#2\relax - \fi} -\def\LT@entry@chop#1#2{% - \noexpand\LT@entry - {\ifnum#1>\c@LT@chunks - 1}{0pt% - \else - #1}{#2% - \fi}} -\def\LT@entry@write{% - \noexpand\LT@entry^^J% - \@spaces} -\def\LT@kill{% - \LT@echunk - \LT@get@widths - \expandafter\LT@rebox\LT@bchunk} -\def\LT@rebox#1\bgroup{% - #1\bgroup - \unvbox\z@ - \unskip - \setbox\z@\lastbox} -\def\LT@blank@row{% - \xdef\LT@save@row{\expandafter\LT@build@blank - \romannumeral\number\LT@cols 001 }} -\def\LT@build@blank#1{% - \if#1m% - \noexpand\LT@entry{1}{0pt}% - \expandafter\LT@build@blank - \fi} -\def\LT@make@row{% - \global\expandafter\let\expandafter\LT@save@row - \csname LT@\romannumeral\c@LT@tables\endcsname - \ifx\LT@save@row\relax - \LT@blank@row - \else - {\let\LT@entry\or - \if!% - \ifcase\expandafter\expandafter\expandafter\LT@cols - \expandafter\@gobble\LT@save@row - \or - \else - \relax - \fi - !% - \else - \aftergroup\LT@blank@row - \fi}% - \fi} -\let\setlongtables\relax -\def\LT@get@widths{% - \setbox\tw@\hbox{% - \unhbox\@ne - \let\LT@old@row\LT@save@row - \global\let\LT@save@row\@empty - \count@\LT@cols - \loop - \unskip - \setbox\tw@\lastbox - \ifhbox\tw@ - \LT@def@row - \advance\count@\m@ne - \repeat}% - \ifx\LT@@save@row\@undefined - \let\LT@@save@row\LT@save@row - \fi} -\def\LT@def@row{% - \let\LT@entry\or - \edef\@tempa{% - \ifcase\expandafter\count@\LT@old@row - \else - {1}{0pt}% - \fi}% - \let\LT@entry\relax - \xdef\LT@save@row{% - \LT@entry - \expandafter\LT@max@sel\@tempa - \LT@save@row}} -\def\LT@max@sel#1#2{% - {\ifdim#2=\wd\tw@ - #1% - \else - \number\c@LT@chunks - \fi}% - {\the\wd\tw@}} -\def\LT@hline{% - \noalign{\ifnum0=`}\fi - \penalty\@M - \futurelet\@let@token\LT@@hline} -\def\LT@@hline{% - \ifx\@let@token\hline - \global\let\@gtempa\@gobble - \gdef\LT@sep{\penalty-\@medpenalty\vskip\doublerulesep}% - \else - \global\let\@gtempa\@empty - \gdef\LT@sep{\penalty-\@lowpenalty\vskip-\arrayrulewidth}% - \fi - \ifnum0=`{\fi}% - \multispan\LT@cols - \unskip\leaders\hrule\@height\arrayrulewidth\hfill\cr - \noalign{\LT@sep}% - \multispan\LT@cols - \unskip\leaders\hrule\@height\arrayrulewidth\hfill\cr - \noalign{\penalty\@M}% - \@gtempa} -\def\LT@caption{% - \noalign\bgroup - \@ifnextchar[{\egroup\LT@c@ption\@firstofone}\LT@capti@n} -\def\LT@c@ption#1[#2]#3{% - \LT@makecaption#1\fnum@table{#3}% - \def\@tempa{#2}% - \ifx\@tempa\@empty\else - {\let\\\space - \addcontentsline{lot}{table}{\protect\numberline{\thetable}{#2}}}% - \fi} -\def\LT@capti@n{% - \@ifstar - {\egroup\LT@c@ption\@gobble[]}% - {\egroup\@xdblarg{\LT@c@ption\@firstofone}}} -\def\LT@makecaption#1#2#3{% - \LT@mcol\LT@cols c{\hbox to\z@{\hss\parbox[t]\LTcapwidth{% - \sbox\@tempboxa{#1{#2: }#3}% - \ifdim\wd\@tempboxa>\hsize - #1{#2: }#3% - \else - \hbox to\hsize{\hfil\box\@tempboxa\hfil}% - \fi - \endgraf\vskip\baselineskip}% - \hss}}} -\def\LT@output{% - \ifnum\outputpenalty <-\@Mi - \ifnum\outputpenalty > -\LT@end@pen - \LT@err{floats and marginpars not allowed in a longtable}\@ehc - \else - \setbox\z@\vbox{\unvbox\@cclv}% - \ifdim \ht\LT@lastfoot>\ht\LT@foot - \dimen@\pagegoal - \advance\dimen@-\ht\LT@lastfoot - \ifdim\dimen@<\ht\z@ - \setbox\@cclv\vbox{\unvbox\z@\copy\LT@foot\vss}% - \@makecol - \@outputpage - \setbox\z@\vbox{\box\LT@head}% - \fi - \fi - \global\@colroom\@colht - \global\vsize\@colht - \vbox - {\unvbox\z@\box\ifvoid\LT@lastfoot\LT@foot\else\LT@lastfoot\fi}% - \fi - \else - \setbox\@cclv\vbox{\unvbox\@cclv\copy\LT@foot\vss}% - \@makecol - \@outputpage - \global\vsize\@colroom - \copy\LT@head\nobreak - \fi} -\def\LT@end@hd@ft#1{% - \LT@echunk - \ifx\LT@start\endgraf - \LT@err - {Longtable head or foot not at start of table}% - {Increase LTchunksize}% - \fi - \setbox#1\box\z@ - \LT@get@widths - \LT@bchunk} -\def\endfirsthead{\LT@end@hd@ft\LT@firsthead} -\def\endhead{\LT@end@hd@ft\LT@head} -\def\endfoot{\LT@end@hd@ft\LT@foot} -\def\endlastfoot{\LT@end@hd@ft\LT@lastfoot} -\def\LT@startpbox#1{% - \bgroup - \let\@footnotetext\LT@p@ftntext - \setlength\hsize{#1}% - \@arrayparboxrestore - \vrule \@height \ht\@arstrutbox \@width \z@} -\def\LT@endpbox{% - \@finalstrut\@arstrutbox - \egroup - \the\LT@p@ftn - \global\LT@p@ftn{}% - \hfil} -\def\LT@p@ftntext#1{% - \edef\@tempa{\the\LT@p@ftn\noexpand\footnotetext[\the\c@footnote]}% - \global\LT@p@ftn\expandafter{\@tempa{#1}}}% - -\@namedef{ver@longtable.sty}{2014/10/28 v4.11 Multi-page Table package (DPC) - frozen version for doxygen} -\endinput -%% -%% End of file `longtable.sty'. diff --git a/latex/refman.tex b/latex/refman.tex deleted file mode 100644 index 5127819..0000000 --- a/latex/refman.tex +++ /dev/null @@ -1,213 +0,0 @@ -\let\mypdfximage\pdfximage\def\pdfximage{\immediate\mypdfximage}\documentclass[twoside]{book} - -%% moved from doxygen.sty due to workaround for LaTex 2019 version and unmaintained tabu package -\usepackage{ifthen} -\ifx\requestedLaTeXdate\undefined -\usepackage{array} -\else -\usepackage{array}[=2016-10-06] -\fi -%% -% Packages required by doxygen -\usepackage{fixltx2e} -\usepackage{doxygen} -\usepackage{graphicx} -\usepackage[utf8]{inputenc} -\usepackage{makeidx} -\PassOptionsToPackage{warn}{textcomp} -\usepackage{textcomp} -\usepackage[nointegrals]{wasysym} -\usepackage{ifxetex} - -% Font selection -\usepackage[T1]{fontenc} -\usepackage[scaled=.90]{helvet} -\usepackage{courier} -\renewcommand{\familydefault}{\sfdefault} -\usepackage{sectsty} -\allsectionsfont{% - \fontseries{bc}\selectfont% - \color{darkgray}% -} -\renewcommand{\DoxyLabelFont}{% - \fontseries{bc}\selectfont% - \color{darkgray}% -} -\newcommand{\+}{\discretionary{\mbox{\scriptsize$\hookleftarrow$}}{}{}} - -% Arguments of doxygenemoji: -% 1) '::' form of the emoji, already "LaTeX"-escaped -% 2) file with the name of the emoji without the .png extension -% in case image exist use this otherwise use the '::' form -\newcommand{\doxygenemoji}[2]{% - \IfFileExists{./#2.png}{\raisebox{-0.1em}{\includegraphics[height=0.9em]{./#2.png}}}{#1}% -} -% 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} -\newcommand{\doxynormalparskip}{\setlength{\parskip}{3ex plus 2ex minus 2ex}} -\newcommand{\doxytocparskip}{\setlength{\parskip}{1ex plus 0ex minus 0ex}} -\doxynormalparskip -\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 - -\makeatletter -\newcommand\hrulefilll{\leavevmode\leaders\hrule\hskip 0pt plus 1filll\kern\z@} -\makeatother - -% Headers & footers -\usepackage{fancyhdr} -\pagestyle{fancyplain} -\renewcommand{\footrulewidth}{0.4pt} -% -\fancypagestyle{fancyplain}{ -\fancyhf{} -\fancyhead[LE, RO]{\bfseries\thepage} -\fancyhead[LO]{\bfseries\rightmark} -\fancyhead[RE]{\bfseries\leftmark} -\fancyfoot[LO, RE]{\bfseries\scriptsize Generated by Doxygen } -} -% -\fancypagestyle{plain}{ -\fancyhf{} -\fancyfoot[LO, RE]{\bfseries\scriptsize Generated by Doxygen } -\renewcommand{\headrulewidth}{0pt}} -% -\pagestyle{fancyplain} -% -\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 - -\usepackage{newunicodechar} - \newunicodechar{⁻}{${}^{-}$}% Superscript minus - \newunicodechar{²}{${}^{2}$}% Superscript two - \newunicodechar{³}{${}^{3}$}% Superscript three - -% Hyperlinks (required, but should be loaded last) -\ifpdf - \usepackage[pdftex,pagebackref=true]{hyperref} -\else - \ifxetex - \usepackage[pagebackref=true]{hyperref} - \else - \usepackage[ps2pdf,pagebackref=true]{hyperref} - \fi -\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} - -\usepackage{etoc} -\etocsettocstyle{\doxytocparskip}{\doxynormalparskip} -\renewcommand{\numberline}[1]{#1~} -%===== C O N T E N T S ===== - -\begin{document} -\raggedbottom - -% 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.9.1}\\ -\end{center} -\end{titlepage} -\clearemptydoublepage -\pagenumbering{roman} -\tableofcontents -\clearemptydoublepage -\pagenumbering{arabic} -\hypersetup{pageanchor=true} - -%--- Begin generated contents --- -\chapter{Hierarchical Index} -\input{hierarchy} -\chapter{Class Index} -\input{annotated} -\chapter{Class Documentation} -\input{classcore_1_1Command} -\input{classcore_1_1CommandList} -\input{classcore_1_1ConsoleServer} -\input{classcore_1_1ConsoleSession} -\input{classcore_1_1EPoll} -\input{classcore_1_1INotify} -\input{classcore_1_1IPAddress} -\input{classcore_1_1IPAddressList} -\input{classcore_1_1Object} -\input{classcore_1_1SessionFilter} -\input{classcore_1_1Socket} -\input{classcore_1_1Subscription} -\input{classcore_1_1SubscriptionManager} -\input{classcore_1_1TCPServer} -\input{classcore_1_1TCPSession} -\input{classcore_1_1TCPSocket} -\input{classcore_1_1TerminalSession} -\input{classcore_1_1Thread} -\input{classcore_1_1ThreadScope} -\input{classcore_1_1Timer} -\input{classcore_1_1TLSServer} -\input{classcore_1_1TLSSession} -\input{classcore_1_1UDPServerSocket} -\input{classcore_1_1UDPSocket} -%--- End generated contents --- - -% Index -\backmatter -\newpage -\phantomsection -\clearemptydoublepage -\addcontentsline{toc}{chapter}{\indexname} -\printindex - -\end{document} diff --git a/latex/tabu_doxygen.sty b/latex/tabu_doxygen.sty deleted file mode 100644 index 60fd7e8..0000000 --- a/latex/tabu_doxygen.sty +++ /dev/null @@ -1,2557 +0,0 @@ -%% -%% This is file `tabu.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% tabu.dtx (with options: `package') -%% -%% This is a generated file. -%% Copyright (FC) 2010-2011 - lppl -%% -%% tabu : 2011/02/26 v2.8 - tabu : Flexible LaTeX tabulars -%% -%% ********************************************************************************************** -%% \begin{tabu} { preamble } => default target: \linewidth or \linegoal -%% \begin{tabu} to { preamble } => target specified -%% \begin{tabu} spread { preamble } => target relative to the ``natural width'' -%% -%% tabu works in text and in math modes. -%% -%% X columns: automatic width adjustment + horizontal and vertical alignment -%% \begin{tabu} { X[4c] X[1c] X[-2ml] } -%% -%% Horizontal lines and / or leaders: -%% \hline\hline => double horizontal line -%% \firsthline\hline => for nested tabulars -%% \lasthline\hline => for nested tabulars -%% \tabucline[line spec]{column-column} => ``funny'' lines (dash/leader) -%% Automatic lines / leaders : -%% \everyrow{\hline\hline} -%% -%% Vertical lines and / or leaders: -%% \begin{tabu} { |[3pt red] X[4c] X[1c] X[-2ml] |[3pt blue] } -%% \begin{tabu} { |[3pt red] X[4c] X[1c] X[-2ml] |[3pt on 2pt off 4pt blue] } -%% -%% Fixed vertical spacing adjustment: -%% \extrarowheight= \extrarowdepth= -%% or: \extrarowsep= => may be prefixed by \global -%% -%% Dynamic vertical spacing adjustment: -%% \abovetabulinesep= \belowtabulinesep= -%% or: \tabulinesep= => may be prefixed by \global -%% -%% delarray.sty shortcuts: in math and text modes -%% \begin{tabu} .... \({ preamble }\) -%% -%% Algorithms reports: -%% \tracingtabu=1 \tracingtabu=2 -%% -%% ********************************************************************************************** -%% -%% This work may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either -%% version 1.3 of this license or (at your option) any later -%% version. The latest version of this license is in -%% http://www.latex-project.org/lppl.txt -%% -%% This work consists of the main source file tabu.dtx -%% and the derived files -%% tabu.sty, tabu.pdf, tabu.ins -%% -%% tabu : Flexible LaTeX tabulars -%% lppl copyright 2010-2011 by FC -%% - -\NeedsTeXFormat{LaTeX2e}[2005/12/01] -\ProvidesPackage{tabu_doxygen}[2011/02/26 v2.8 - flexible LaTeX tabulars (FC), frozen version for doxygen] -\RequirePackage{array}[2008/09/09] -\RequirePackage{varwidth}[2009/03/30] -\AtEndOfPackage{\tabu@AtEnd \let\tabu@AtEnd \@undefined} -\let\tabu@AtEnd\@empty -\def\TMP@EnsureCode#1={% - \edef\tabu@AtEnd{\tabu@AtEnd - \catcode#1 \the\catcode#1}% - \catcode#1=% -}% \TMP@EnsureCode -\TMP@EnsureCode 33 = 12 % ! -\TMP@EnsureCode 58 = 12 % : (for siunitx) -\TMP@EnsureCode124 = 12 % | -\TMP@EnsureCode 36 = 3 % $ = math shift -\TMP@EnsureCode 38 = 4 % & = tab alignment character -\TMP@EnsureCode 32 = 10 % space -\TMP@EnsureCode 94 = 7 % ^ -\TMP@EnsureCode 95 = 8 % _ -%% Constants -------------------------------------------------------- -\newcount \c@taburow \def\thetaburow {\number\c@taburow} -\newcount \tabu@nbcols -\newcount \tabu@cnt -\newcount \tabu@Xcol -\let\tabu@start \@tempcnta -\let\tabu@stop \@tempcntb -\newcount \tabu@alloc \tabu@alloc=\m@ne -\newcount \tabu@nested -\def\tabu@alloc@{\global\advance\tabu@alloc \@ne \tabu@nested\tabu@alloc} -\newdimen \tabu@target -\newdimen \tabu@spreadtarget -\newdimen \tabu@naturalX -\newdimen \tabucolX -\let\tabu@DELTA \@tempdimc -\let\tabu@thick \@tempdima -\let\tabu@on \@tempdimb -\let\tabu@off \@tempdimc -\newdimen \tabu@Xsum -\newdimen \extrarowdepth -\newdimen \abovetabulinesep -\newdimen \belowtabulinesep -\newdimen \tabustrutrule \tabustrutrule \z@ -\newtoks \tabu@thebody -\newtoks \tabu@footnotes -\newsavebox \tabu@box -\newsavebox \tabu@arstrutbox -\newsavebox \tabu@hleads -\newsavebox \tabu@vleads -\newif \iftabu@colortbl -\newif \iftabu@siunitx -\newif \iftabu@measuring -\newif \iftabu@spread -\newif \iftabu@negcoef -\newif \iftabu@everyrow -\def\tabu@everyrowtrue {\global\let\iftabu@everyrow \iftrue} -\def\tabu@everyrowfalse{\global\let\iftabu@everyrow \iffalse} -\newif \iftabu@long -\newif \iftabuscantokens -\def\tabu@rescan {\tabu@verbatim \scantokens } -%% Utilities (for internal usage) ----------------------------------- -\def\tabu@gobblespace #1 {#1} -\def\tabu@gobbletoken #1#2{#1} -\def\tabu@gobbleX{\futurelet\@let@token \tabu@gobblex} -\def\tabu@gobblex{\if ^^J\noexpand\@let@token \expandafter\@gobble - \else\ifx \@sptoken\@let@token - \expandafter\tabu@gobblespace\expandafter\tabu@gobbleX - \fi\fi -}% \tabu@gobblex -\def\tabu@X{^^J} -{\obeyspaces -\global\let\tabu@spxiii= % saves an active space (for \ifx) -\gdef\tabu@@spxiii{ }} -\def\tabu@ifenvir {% only for \multicolumn - \expandafter\tabu@if@nvir\csname\@currenvir\endcsname -}% \tabu@ifenvir -\def\tabu@if@nvir #1{\csname @\ifx\tabu#1first\else - \ifx\longtabu#1first\else - second\fi\fi oftwo\endcsname -}% \tabu@ifenvir -\def\tabu@modulo #1#2{\numexpr\ifnum\numexpr#1=\z@ 0\else #1-(#1-(#2-1)/2)/(#2)*(#2)\fi} -{\catcode`\&=3 -\gdef\tabu@strtrim #1{% #1 = control sequence to trim - \ifodd 1\ifx #1\@empty \else \ifx #1\space \else 0\fi \fi - \let\tabu@c@l@r \@empty \let#1\@empty - \else \expandafter \tabu@trimspaces #1\@nnil - \fi -}% \tabu@strtrim -\gdef\tabu@trimspaces #1\@nnil{\let\tabu@c@l@r=#2\tabu@firstspace .#1& }% -\gdef\tabu@firstspace #1#2#3 &{\tabu@lastspace #2#3&} -\gdef\tabu@lastspace #1{\def #3{#1}% - \ifx #3\tabu@c@l@r \def\tabu@c@l@r{\protect\color{#1}}\expandafter\remove@to@nnil \fi - \tabu@trimspaces #1\@nnil} -}% \catcode -\def\tabu@sanitizearg #1#2{{% - \csname \ifcsname if@safe@actives\endcsname % - @safe@activestrue\else - relax\fi \endcsname - \edef#2{#1}\tabu@strtrim#2\@onelevel@sanitize#2% - \expandafter}\expandafter\def\expandafter#2\expandafter{#2}% -}% \tabu@sanitizearg -\def\tabu@textbar #1{\begingroup \endlinechar\m@ne \scantokens{\def\:{|}}% - \expandafter\endgroup \expandafter#1\:% !!! semi simple group !!! -}% \tabu@textbar -\def\tabu@everyrow@bgroup{\iftabu@everyrow \begingroup \else \noalign{\ifnum0=`}\fi \fi} -\def\tabu@everyrow@egroup{% - \iftabu@everyrow \expandafter \endgroup \the\toks@ - \else \ifnum0=`{\fi}% - \fi -}% \tabu@everyrow@egroup -\def\tabu@arstrut {\global\setbox\@arstrutbox \hbox{\vrule - height \arraystretch \dimexpr\ht\strutbox+\extrarowheight - depth \arraystretch \dimexpr\dp\strutbox+\extrarowdepth - width \z@}% -}% \tabu@arstrut -\def\tabu@rearstrut {% - \@tempdima \arraystretch\dimexpr\ht\strutbox+\extrarowheight \relax - \@tempdimb \arraystretch\dimexpr\dp\strutbox+\extrarowdepth \relax - \ifodd 1\ifdim \ht\@arstrutbox=\@tempdima - \ifdim \dp\@arstrutbox=\@tempdimb 0 \fi\fi - \tabu@mkarstrut - \fi -}% \tabu@rearstrut -\def\tabu@@DBG #1{\ifdim\tabustrutrule>\z@ \color{#1}\fi} -\def\tabu@DBG@arstrut {\global\setbox\@arstrutbox - \hbox to\z@{\hbox to\z@{\hss - {\tabu@DBG{cyan}\vrule - height \arraystretch \dimexpr\ht\strutbox+\extrarowheight - depth \z@ - width \tabustrutrule}\kern-\tabustrutrule - {\tabu@DBG{pink}\vrule - height \z@ - depth \arraystretch \dimexpr\dp\strutbox+\extrarowdepth - width \tabustrutrule}}}% -}% \tabu@DBG@arstrut -\def\tabu@save@decl{\toks\count@ \expandafter{\the\toks\expandafter\count@ - \@nextchar}}% -\def\tabu@savedecl{\ifcat$\d@llarend\else - \let\save@decl \tabu@save@decl \fi % no inversion of tokens in text mode -}% \tabu@savedecl -\def\tabu@finalstrut #1{\unskip\ifhmode\nobreak\fi\vrule height\z@ depth\z@ width\z@} -\newcommand*\tabuDisableCommands {\g@addto@macro\tabu@trialh@@k } -\let\tabu@trialh@@k \@empty -\def\tabu@nowrite #1#{{\afterassignment}\toks@} -\let\tabu@write\write -\let\tabu@immediate\immediate -\def\tabu@WRITE{\begingroup - \def\immediate\write{\aftergroup\endgroup - \tabu@immediate\tabu@write}% -}% \tabu@WRITE -\expandafter\def\expandafter\tabu@GenericError\expandafter{% - \expandafter\tabu@WRITE\GenericError} -\def\tabu@warn{\tabu@WRITE\PackageWarning{tabu}} -\def\tabu@noxfootnote [#1]{\@gobble} -\def\tabu@nocolor #1#{\@gobble} -\newcommand*\tabu@norowcolor[2][]{} -\def\tabu@maybesiunitx #1{\def\tabu@temp{#1}% - \futurelet\@let@token \tabu@m@ybesiunitx} -\def\tabu@m@ybesiunitx #1{\def\tabu@m@ybesiunitx {% - \ifx #1\@let@token \let\tabu@cellleft \@empty \let\tabu@cellright \@empty \fi - \tabu@temp}% \tabu@m@ybesiunitx -}\expandafter\tabu@m@ybesiunitx \csname siunitx_table_collect_begin:Nn\endcsname -\def\tabu@celllalign@def #1{\def\tabu@celllalign{\tabu@maybesiunitx{#1}}}% -%% Fixed vertical spacing adjustment: \extrarowsep ------------------ -\newcommand*\extrarowsep{\edef\tabu@C@extra{\the\numexpr\tabu@C@extra+1}% - \iftabu@everyrow \aftergroup\tabu@Gextra - \else \aftergroup\tabu@n@Gextra - \fi - \@ifnextchar={\tabu@gobbletoken\tabu@extra} \tabu@extra -}% \extrarowsep -\def\tabu@extra {\@ifnextchar_% - {\tabu@gobbletoken{\tabu@setextra\extrarowheight \extrarowdepth}} - {\ifx ^\@let@token \def\tabu@temp{% - \tabu@gobbletoken{\tabu@setextra\extrarowdepth \extrarowheight}}% - \else \let\tabu@temp \@empty - \afterassignment \tabu@setextrasep \extrarowdepth - \fi \tabu@temp}% -}% \tabu@extra -\def\tabu@setextra #1#2{\def\tabu@temp{\tabu@extr@#1#2}\afterassignment\tabu@temp#2} -\def\tabu@extr@ #1#2{\@ifnextchar^% - {\tabu@gobbletoken{\tabu@setextra\extrarowdepth \extrarowheight}} - {\ifx _\@let@token \def\tabu@temp{% - \tabu@gobbletoken{\tabu@setextra\extrarowheight \extrarowdepth}}% - \else \let\tabu@temp \@empty - \tabu@Gsave \tabu@G@extra \tabu@C@extra \extrarowheight \extrarowdepth - \fi \tabu@temp}% -}% \tabu@extr@ -\def\tabu@setextrasep {\extrarowheight=\extrarowdepth - \tabu@Gsave \tabu@G@extra \tabu@C@extra \extrarowheight \extrarowdepth -}% \tabu@setextrasep -\def\tabu@Gextra{\ifx \tabu@G@extra\@empty \else {\tabu@Rextra}\fi} -\def\tabu@n@Gextra{\ifx \tabu@G@extra\@empty \else \noalign{\tabu@Rextra}\fi} -\def\tabu@Rextra{\tabu@Grestore \tabu@G@extra \tabu@C@extra} -\let\tabu@C@extra \z@ -\let\tabu@G@extra \@empty -%% Dynamic vertical spacing adjustment: \tabulinesep ---------------- -\newcommand*\tabulinesep{\edef\tabu@C@linesep{\the\numexpr\tabu@C@linesep+1}% - \iftabu@everyrow \aftergroup\tabu@Glinesep - \else \aftergroup\tabu@n@Glinesep - \fi - \@ifnextchar={\tabu@gobbletoken\tabu@linesep} \tabu@linesep -}% \tabulinesep -\def\tabu@linesep {\@ifnextchar_% - {\tabu@gobbletoken{\tabu@setsep\abovetabulinesep \belowtabulinesep}} - {\ifx ^\@let@token \def\tabu@temp{% - \tabu@gobbletoken{\tabu@setsep\belowtabulinesep \abovetabulinesep}}% - \else \let\tabu@temp \@empty - \afterassignment \tabu@setlinesep \abovetabulinesep - \fi \tabu@temp}% -}% \tabu@linesep -\def\tabu@setsep #1#2{\def\tabu@temp{\tabu@sets@p#1#2}\afterassignment\tabu@temp#2} -\def\tabu@sets@p #1#2{\@ifnextchar^% - {\tabu@gobbletoken{\tabu@setsep\belowtabulinesep \abovetabulinesep}} - {\ifx _\@let@token \def\tabu@temp{% - \tabu@gobbletoken{\tabu@setsep\abovetabulinesep \belowtabulinesep}}% - \else \let\tabu@temp \@empty - \tabu@Gsave \tabu@G@linesep \tabu@C@linesep \abovetabulinesep \belowtabulinesep - \fi \tabu@temp}% -}% \tabu@sets@p -\def\tabu@setlinesep {\belowtabulinesep=\abovetabulinesep - \tabu@Gsave \tabu@G@linesep \tabu@C@linesep \abovetabulinesep \belowtabulinesep -}% \tabu@setlinesep -\def\tabu@Glinesep{\ifx \tabu@G@linesep\@empty \else {\tabu@Rlinesep}\fi} -\def\tabu@n@Glinesep{\ifx \tabu@G@linesep\@empty \else \noalign{\tabu@Rlinesep}\fi} -\def\tabu@Rlinesep{\tabu@Grestore \tabu@G@linesep \tabu@C@linesep} -\let\tabu@C@linesep \z@ -\let\tabu@G@linesep \@empty -%% \global\extrarowsep and \global\tabulinesep ------------------- -\def\tabu@Gsave #1#2#3#4{\xdef#1{#1% - \toks#2{\toks\the\currentgrouplevel{\global#3\the#3\global#4\the#4}}}% -}% \tabu@Gsave -\def\tabu@Grestore#1#2{% - \toks#2{}#1\toks\currentgrouplevel\expandafter{\expandafter}\the\toks#2\relax - \ifcat$\the\toks\currentgrouplevel$\else - \global\let#1\@empty \global\let#2\z@ - \the\toks\currentgrouplevel - \fi -}% \tabu@Grestore -%% Setting code for every row --------------------------------------- -\newcommand*\everyrow{\tabu@everyrow@bgroup - \tabu@start \z@ \tabu@stop \z@ \tabu@evrstartstop -}% \everyrow -\def\tabu@evrstartstop {\@ifnextchar^% - {\afterassignment \tabu@evrstartstop \tabu@stop=}% - {\ifx ^\@let@token - \afterassignment\tabu@evrstartstop \tabu@start=% - \else \afterassignment\tabu@everyr@w \toks@ - \fi}% -}% \tabu@evrstartstop -\def\tabu@everyr@w {% - \xdef\tabu@everyrow{% - \noexpand\tabu@everyrowfalse - \let\noalign \relax - \noexpand\tabu@rowfontreset - \iftabu@colortbl \noexpand\tabu@rc@ \fi % \taburowcolors - \let\noexpand\tabu@docline \noexpand\tabu@docline@evr - \the\toks@ - \noexpand\tabu@evrh@@k - \noexpand\tabu@rearstrut - \global\advance\c@taburow \@ne}% - \iftabu@everyrow \toks@\expandafter - {\expandafter\def\expandafter\tabu@evr@L\expandafter{\the\toks@}\ignorespaces}% - \else \xdef\tabu@evr@G{\the\toks@}% - \fi - \tabu@everyrow@egroup -}% \tabu@everyr@w -\def\tabu@evr {\def\tabu@evrh@@k} % for internal use only -\tabu@evr{} -%% line style and leaders ------------------------------------------- -\newcommand*\newtabulinestyle [1]{% - {\@for \@tempa :=#1\do{\expandafter\tabu@newlinestyle \@tempa==\@nil}}% -}% \newtabulinestyle -\def\tabu@newlinestyle #1=#2=#3\@nil{\tabu@getline {#2}% - \tabu@sanitizearg {#1}\@tempa - \ifodd 1\ifx \@tempa\@empty \ifdefined\tabu@linestyle@ 0 \fi\fi - \global\expandafter\let - \csname tabu@linestyle@\@tempa \endcsname =\tabu@thestyle \fi -}% \tabu@newlinestyle -\newcommand*\tabulinestyle [1]{\tabu@everyrow@bgroup \tabu@getline{#1}% - \iftabu@everyrow - \toks@\expandafter{\expandafter \def \expandafter - \tabu@ls@L\expandafter{\tabu@thestyle}\ignorespaces}% - \gdef\tabu@ls@{\tabu@ls@L}% - \else - \global\let\tabu@ls@G \tabu@thestyle - \gdef\tabu@ls@{\tabu@ls@G}% - \fi - \tabu@everyrow@egroup -}% \tabulinestyle -\newcommand*\taburulecolor{\tabu@everyrow@bgroup \tabu@textbar \tabu@rulecolor} -\def\tabu@rulecolor #1{\toks@{}% - \def\tabu@temp #1##1#1{\tabu@ruledrsc{##1}}\@ifnextchar #1% - \tabu@temp - \tabu@rulearc -}% \tabu@rulecolor -\def\tabu@ruledrsc #1{\edef\tabu@temp{#1}\tabu@strtrim\tabu@temp - \ifx \tabu@temp\@empty \def\tabu@temp{\tabu@rule@drsc@ {}{}}% - \else \edef\tabu@temp{\noexpand\tabu@rule@drsc@ {}{\tabu@temp}}% - \fi - \tabu@temp -}% \tabu@ruledrsc@ -\def\tabu@ruledrsc@ #1#{\tabu@rule@drsc@ {#1}} -\def\tabu@rule@drsc@ #1#2{% - \iftabu@everyrow - \ifx \\#1#2\\\toks@{\let\CT@drsc@ \relax}% - \else \toks@{\def\CT@drsc@{\color #1{#2}}}% - \fi - \else - \ifx \\#1#2\\\global\let\CT@drsc@ \relax - \else \gdef\CT@drsc@{\color #1{#2}}% - \fi - \fi - \tabu@rulearc -}% \tabu@rule@drsc@ -\def\tabu@rulearc #1#{\tabu@rule@arc@ {#1}} -\def\tabu@rule@arc@ #1#2{% - \iftabu@everyrow - \ifx \\#1#2\\\toks@\expandafter{\the\toks@ \def\CT@arc@{}}% - \else \toks@\expandafter{\the\toks@ \def\CT@arc@{\color #1{#2}}}% - \fi - \toks@\expandafter{\the\toks@ - \let\tabu@arc@L \CT@arc@ - \let\tabu@drsc@L \CT@drsc@ - \ignorespaces}% - \else - \ifx \\#1#2\\\gdef\CT@arc@{}% - \else \gdef\CT@arc@{\color #1{#2}}% - \fi - \global\let\tabu@arc@G \CT@arc@ - \global\let\tabu@drsc@G \CT@drsc@ - \fi - \tabu@everyrow@egroup -}% \tabu@rule@arc@ -\def\taburowcolors {\tabu@everyrow@bgroup \@testopt \tabu@rowcolors 1} -\def\tabu@rowcolors [#1]#2#{\tabu@rowc@lors{#1}{#2}} -\def\tabu@rowc@lors #1#2#3{% - \toks@{}\@defaultunits \count@ =\number0#2\relax \@nnil - \@defaultunits \tabu@start =\number0#1\relax \@nnil - \ifnum \count@<\tw@ \count@=\tw@ \fi - \advance\tabu@start \m@ne - \ifnum \tabu@start<\z@ \tabu@start \z@ \fi - \tabu@rowcolorseries #3\in@..\in@ \@nnil -}% \tabu@rowcolors -\def\tabu@rowcolorseries #1..#2\in@ #3\@nnil {% - \ifx \in@#1\relax - \iftabu@everyrow \toks@{\def\tabu@rc@{}\let\tabu@rc@L \tabu@rc@}% - \else \gdef\tabu@rc@{}\global\let\tabu@rc@G \tabu@rc@ - \fi - \else - \ifx \\#2\\\tabu@rowcolorserieserror \fi - \tabu@sanitizearg{#1}\tabu@temp - \tabu@sanitizearg{#2}\@tempa - \advance\count@ \m@ne - \iftabu@everyrow - \def\tabu@rc@ ##1##2##3##4{\def\tabu@rc@{% - \ifnum ##2=\c@taburow - \definecolorseries{tabu@rcseries@\the\tabu@nested}{rgb}{last}{##3}{##4}\fi - \ifnum \c@taburow<##2 \else - \ifnum \tabu@modulo {\c@taburow-##2}{##1+1}=\z@ - \resetcolorseries[{##1}]{tabu@rcseries@\the\tabu@nested}\fi - \xglobal\colorlet{tabu@rc@\the\tabu@nested}{tabu@rcseries@\the\tabu@nested!!+}% - \rowcolor{tabu@rc@\the\tabu@nested}\fi}% - }\edef\x{\noexpand\tabu@rc@ {\the\count@} - {\the\tabu@start} - {\tabu@temp} - {\@tempa}% - }\x - \toks@\expandafter{\expandafter\def\expandafter\tabu@rc@\expandafter{\tabu@rc@}}% - \toks@\expandafter{\the\toks@ \let\tabu@rc@L \tabu@rc@ \ignorespaces}% - \else % inside \noalign - \definecolorseries{tabu@rcseries@\the\tabu@nested}{rgb}{last}{\tabu@temp}{\@tempa}% - \expandafter\resetcolorseries\expandafter[\the\count@]{tabu@rcseries@\the\tabu@nested}% - \xglobal\colorlet{tabu@rc@\the\tabu@nested}{tabu@rcseries@\the\tabu@nested!!+}% - \let\noalign \relax \rowcolor{tabu@rc@\the\tabu@nested}% - \def\tabu@rc@ ##1##2{\gdef\tabu@rc@{% - \ifnum \tabu@modulo {\c@taburow-##2}{##1+1}=\@ne - \resetcolorseries[{##1}]{tabu@rcseries@\the\tabu@nested}\fi - \xglobal\colorlet{tabu@rc@\the\tabu@nested}{tabu@rcseries@\the\tabu@nested!!+}% - \rowcolor{tabu@rc@\the\tabu@nested}}% - }\edef\x{\noexpand\tabu@rc@{\the\count@}{\the\c@taburow}}\x - \global\let\tabu@rc@G \tabu@rc@ - \fi - \fi - \tabu@everyrow@egroup -}% \tabu@rowcolorseries -\tabuDisableCommands {\let\tabu@rc@ \@empty } -\def\tabu@rowcolorserieserror {\PackageError{tabu} - {Invalid syntax for \string\taburowcolors - \MessageBreak Please look at the documentation!}\@ehd -}% \tabu@rowcolorserieserror -\newcommand*\tabureset {% - \tabulinesep=\z@ \extrarowsep=\z@ \extratabsurround=\z@ - \tabulinestyle{}\everyrow{}\taburulecolor||{}\taburowcolors{}% -}% \tabureset -%% Parsing the line styles ------------------------------------------ -\def\tabu@getline #1{\begingroup - \csname \ifcsname if@safe@actives\endcsname % - @safe@activestrue\else - relax\fi \endcsname - \edef\tabu@temp{#1}\tabu@sanitizearg{#1}\@tempa - \let\tabu@thestyle \relax - \ifcsname tabu@linestyle@\@tempa \endcsname - \edef\tabu@thestyle{\endgroup - \def\tabu@thestyle{\expandafter\noexpand - \csname tabu@linestyle@\@tempa\endcsname}% - }\tabu@thestyle - \else \expandafter\tabu@definestyle \tabu@temp \@nil - \fi -}% \tabu@getline -\def\tabu@definestyle #1#2\@nil {\endlinechar \m@ne \makeatletter - \tabu@thick \maxdimen \tabu@on \maxdimen \tabu@off \maxdimen - \let\tabu@c@lon \@undefined \let\tabu@c@loff \@undefined - \ifodd 1\ifcat .#1\else\ifcat\relax #1\else 0\fi\fi % catcode 12 or non expandable cs - \def\tabu@temp{\tabu@getparam{thick}}% - \else \def\tabu@temp{\tabu@getparam{thick}\maxdimen}% - \fi - {% - \let\tabu@ \relax - \def\:{\obeyspaces \tabu@oXIII \tabu@commaXIII \edef\:}% (space active \: happy ;-)) - \scantokens{\:{\tabu@temp #1#2 \tabu@\tabu@}}% - \expandafter}\expandafter - \def\expandafter\:\expandafter{\:}% line spec rewritten now ;-) - \def\;{\def\:}% - \scantokens\expandafter{\expandafter\;\expandafter{\:}}% space is now inactive (catcode 10) - \let\tabu@ \tabu@getcolor \:% all arguments are ready now ;-) - \ifdefined\tabu@c@lon \else \let\tabu@c@lon\@empty \fi - \ifx \tabu@c@lon\@empty \def\tabu@c@lon{\CT@arc@}\fi - \ifdefined\tabu@c@loff \else \let\tabu@c@loff \@empty \fi - \ifdim \tabu@on=\maxdimen \ifdim \tabu@off<\maxdimen - \tabu@on \tabulineon \fi\fi - \ifdim \tabu@off=\maxdimen \ifdim \tabu@on<\maxdimen - \tabu@off \tabulineoff \fi\fi - \ifodd 1\ifdim \tabu@off=\maxdimen \ifdim \tabu@on=\maxdimen 0 \fi\fi - \in@true % - \else \in@false % - \fi - \ifdim\tabu@thick=\maxdimen \def\tabu@thick{\arrayrulewidth}% - \else \edef\tabu@thick{\the\tabu@thick}% - \fi - \edef \tabu@thestyle ##1##2{\endgroup - \def\tabu@thestyle{% - \ifin@ \noexpand\tabu@leadersstyle {\tabu@thick} - {\the\tabu@on}{##1} - {\the\tabu@off}{##2}% - \else \noexpand\tabu@rulesstyle - {##1\vrule width \tabu@thick}% - {##1\leaders \hrule height \tabu@thick \hfil}% - \fi}% - }\expandafter \expandafter - \expandafter \tabu@thestyle \expandafter - \expandafter \expandafter - {\expandafter\tabu@c@lon\expandafter}\expandafter{\tabu@c@loff}% -}% \tabu@definestyle -{\catcode`\O=\active \lccode`\O=`\o \catcode`\,=\active - \lowercase{\gdef\tabu@oXIII {\catcode`\o=\active \let O=\tabu@oxiii}} - \gdef\tabu@commaXIII {\catcode`\,=\active \let ,=\space} -}% \catcode -\def\tabu@oxiii #1{% - \ifcase \ifx n#1\z@ \else - \ifx f#1\@ne\else - \tw@ \fi\fi - \expandafter\tabu@onxiii - \or \expandafter\tabu@ofxiii - \else o% - \fi#1}% -\def\tabu@onxiii #1#2{% - \ifcase \ifx !#2\tw@ \else - \ifcat.\noexpand#2\z@ \else - \ifx \tabu@spxiii#2\@ne\else - \tw@ \fi\fi\fi - \tabu@getparam{on}#2\expandafter\@gobble - \or \expandafter\tabu@onxiii % (space is active) - \else o\expandafter\@firstofone - \fi{#1#2}}% -\def\tabu@ofxiii #1#2{% - \ifx #2f\expandafter\tabu@offxiii - \else o\expandafter\@firstofone - \fi{#1#2}} -\def\tabu@offxiii #1#2{% - \ifcase \ifx !#2\tw@ \else - \ifcat.\noexpand#2\z@ \else - \ifx\tabu@spxiii#2\@ne \else - \tw@ \fi\fi\fi - \tabu@getparam{off}#2\expandafter\@gobble - \or \expandafter\tabu@offxiii % (space is active) - \else o\expandafter\@firstofone - \fi{#1#2}} -\def\tabu@getparam #1{\tabu@ \csname tabu@#1\endcsname=} -\def\tabu@getcolor #1{% \tabu@ <- \tabu@getcolor after \edef - \ifx \tabu@#1\else % no more spec - \let\tabu@theparam=#1\afterassignment \tabu@getc@l@r #1\fi -}% \tabu@getcolor -\def\tabu@getc@l@r #1\tabu@ {% - \def\tabu@temp{#1}\tabu@strtrim \tabu@temp - \ifx \tabu@temp\@empty - \else%\ifcsname \string\color@\tabu@temp \endcsname % if the color exists - \ifx \tabu@theparam \tabu@off \let\tabu@c@loff \tabu@c@l@r - \else \let\tabu@c@lon \tabu@c@l@r - \fi - %\else \tabu@warncolour{\tabu@temp}% - \fi%\fi - \tabu@ % next spec -}% \tabu@getc@l@r -\def\tabu@warncolour #1{\PackageWarning{tabu} - {Color #1 is not defined. Default color used}% -}% \tabu@warncolour -\def\tabu@leadersstyle #1#2#3#4#5{\def\tabu@leaders{{#1}{#2}{#3}{#4}{#5}}% - \ifx \tabu@leaders\tabu@leaders@G \else - \tabu@LEADERS{#1}{#2}{#3}{#4}{#5}\fi -}% \tabu@leadersstyle -\def\tabu@rulesstyle #1#2{\let\tabu@leaders \@undefined - \gdef\tabu@thevrule{#1}\gdef\tabu@thehrule{#2}% -}% \tabu@rulesstyle -%% The leaders boxes ------------------------------------------------ -\def\tabu@LEADERS #1#2#3#4#5{%% width, dash, dash color, gap, gap color - {\let\color \tabu@color % => during trials -> \color = \tabu@nocolor - {% % but the leaders boxes should have colors ! - \def\@therule{\vrule}\def\@thick{height}\def\@length{width}% - \def\@box{\hbox}\def\@unbox{\unhbox}\def\@elt{\wd}% - \def\@skip{\hskip}\def\@ss{\hss}\def\tabu@leads{\tabu@hleads}% - \tabu@l@@d@rs {#1}{#2}{#3}{#4}{#5}% - \global\let\tabu@thehleaders \tabu@theleaders - }% - {% - \def\@therule{\hrule}\def\@thick{width}\def\@length{height}% - \def\@box{\vbox}\def\@unbox{\unvbox}\def\@elt{\ht}% - \def\@skip{\vskip}\def\@ss{\vss}\def\tabu@leads{\tabu@vleads}% - \tabu@l@@d@rs {#1}{#2}{#3}{#4}{#5}% - \global\let\tabu@thevleaders \tabu@theleaders - }% - \gdef\tabu@leaders@G{{#1}{#2}{#3}{#4}{#5}}% - }% -}% \tabu@LEADERS -\def\tabu@therule #1#2{\@therule \@thick#1\@length\dimexpr#2/2 \@depth\z@} -\def\tabu@l@@d@rs #1#2#3#4#5{%% width, dash, dash color, gap, gap color - \global\setbox \tabu@leads=\@box{% - {#3\tabu@therule{#1}{#2}}% - \ifx\\#5\\\@skip#4\else{#5\tabu@therule{#1}{#4*2}}\fi - {#3\tabu@therule{#1}{#2}}}% - \global\setbox\tabu@leads=\@box to\@elt\tabu@leads{\@ss - {#3\tabu@therule{#1}{#2}}\@unbox\tabu@leads}% - \edef\tabu@theleaders ##1{\def\noexpand\tabu@theleaders {% - {##1\tabu@therule{#1}{#2}}% - \xleaders \copy\tabu@leads \@ss - \tabu@therule{0pt}{-#2}{##1\tabu@therule{#1}{#2}}}% - }\tabu@theleaders{#3}% -}% \tabu@l@@d@rs -%% \tabu \endtabu \tabu* \longtabu \endlongtabu \longtabu* ---------- -\newcommand*\tabu {\tabu@longfalse - \ifmmode \def\tabu@ {\array}\def\endtabu {\endarray}% - \else \def\tabu@ {\tabu@tabular}\def\endtabu {\endtabular}\fi - \expandafter\let\csname tabu*\endcsname \tabu - \expandafter\def\csname endtabu*\endcsname{\endtabu}% - \tabu@spreadfalse \tabu@negcoeffalse \tabu@settarget -}% {tabu} -\let\tabu@tabular \tabular % -\expandafter\def\csname tabu*\endcsname{\tabuscantokenstrue \tabu} -\newcommand*\longtabu {\tabu@longtrue - \ifmmode\PackageError{tabu}{longtabu not allowed in math mode}\fi - \def\tabu@{\longtable}\def\endlongtabu{\endlongtable}% - \LTchunksize=\@M - \expandafter\let\csname tabu*\endcsname \tabu - \expandafter\def\csname endlongtabu*\endcsname{\endlongtabu}% - \let\LT@startpbox \tabu@LT@startpbox % \everypar{ array struts } - \tabu@spreadfalse \tabu@negcoeffalse \tabu@settarget -}% {longtabu} -\expandafter\def\csname longtabu*\endcsname{\tabuscantokenstrue \longtabu} -\def\tabu@nolongtabu{\PackageError{tabu} - {longtabu requires the longtable package}\@ehd} -%% Read the target and then : \tabular or \@array ------------------ -\def\tabu@settarget {\futurelet\@let@token \tabu@sett@rget } -\def\tabu@sett@rget {\tabu@target \z@ - \ifcase \ifx \bgroup\@let@token \z@ \else - \ifx \@sptoken\@let@token \@ne \else - \if t\@let@token \tw@ \else - \if s\@let@token \thr@@\else - \z@\fi\fi\fi\fi - \expandafter\tabu@begin - \or \expandafter\tabu@gobblespace\expandafter\tabu@settarget - \or \expandafter\tabu@to - \or \expandafter\tabu@spread - \fi -}% \tabu@sett@rget -\def\tabu@to to{\def\tabu@halignto{to}\tabu@gettarget} -\def\tabu@spread spread{\tabu@spreadtrue\def\tabu@halignto{spread}\tabu@gettarget} -\def\tabu@gettarget {\afterassignment\tabu@linegoaltarget \tabu@target } -\def\tabu@linegoaltarget {\futurelet\tabu@temp \tabu@linegoalt@rget } -\def\tabu@linegoalt@rget {% - \ifx \tabu@temp\LNGL@setlinegoal - \LNGL@setlinegoal \expandafter \@firstoftwo \fi % @gobbles \LNGL@setlinegoal - \tabu@begin -}% \tabu@linegoalt@rget -\def\tabu@begin #1#{% - \iftabu@measuring \expandafter\tabu@nestedmeasure \fi - \ifdim \tabu@target=\z@ \let\tabu@halignto \@empty - \else \edef\tabu@halignto{\tabu@halignto\the\tabu@target}% - \fi - \@testopt \tabu@tabu@ \tabu@aligndefault #1\@nil -}% \tabu@begin -\long\def\tabu@tabu@ [#1]#2\@nil #3{\tabu@setup - \def\tabu@align {#1}\def\tabu@savedpream{\NC@find #3}% - \tabu@ [\tabu@align ]#2{#3\tabu@rewritefirst }% -}% \tabu@tabu@ -\def\tabu@nestedmeasure {% - \ifodd 1\iftabu@spread \else \ifdim\tabu@target=\z@ \else 0 \fi\fi\relax - \tabu@spreadtrue - \else \begingroup \iffalse{\fi \ifnum0=`}\fi - \toks@{}\def\tabu@stack{b}% - \expandafter\tabu@collectbody\expandafter\tabu@quickrule - \expandafter\endgroup - \fi -}% \tabu@nestedmeasure -\def\tabu@quickrule {\indent\vrule height\z@ depth\z@ width\tabu@target} -%% \tabu@setup \tabu@init \tabu@indent -\def\tabu@setup{\tabu@alloc@ - \ifcase \tabu@nested - \ifmmode \else \iftabu@spread\else \ifdim\tabu@target=\z@ - \let\tabu@afterendpar \par - \fi\fi\fi - \def\tabu@aligndefault{c}\tabu@init \tabu@indent - \else % - \def\tabu@aligndefault{t}\let\tabudefaulttarget \linewidth - \fi - \let\tabu@thetarget \tabudefaulttarget \let\tabu@restored \@undefined - \edef\tabu@NC@list{\the\NC@list}\NC@list{\NC@do \tabu@rewritefirst}% - \everycr{}\let\@startpbox \tabu@startpbox % for nested tabu inside longtabu... - \let\@endpbox \tabu@endpbox % idem " " " " " " - \let\@tabarray \tabu@tabarray % idem " " " " " " - \tabu@setcleanup \tabu@setreset -}% \tabu@setup -\def\tabu@init{\tabu@starttimer \tabu@measuringfalse - \edef\tabu@hfuzz {\the\dimexpr\hfuzz+1sp}\global\tabu@footnotes{}% - \let\firsthline \tabu@firsthline \let\lasthline \tabu@lasthline - \let\firstline \tabu@firstline \let\lastline \tabu@lastline - \let\hline \tabu@hline \let\@xhline \tabu@xhline - \let\color \tabu@color \let\@arstrutbox \tabu@arstrutbox - \iftabu@colortbl\else\let\LT@@hline \tabu@LT@@hline \fi - \tabu@trivlist % - \let\@footnotetext \tabu@footnotetext \let\@xfootnotetext \tabu@xfootnotetext - \let\@xfootnote \tabu@xfootnote \let\centering \tabu@centering - \let\raggedright \tabu@raggedright \let\raggedleft \tabu@raggedleft - \let\tabudecimal \tabu@tabudecimal \let\Centering \tabu@Centering - \let\RaggedRight \tabu@RaggedRight \let\RaggedLeft \tabu@RaggedLeft - \let\justifying \tabu@justifying \let\rowfont \tabu@rowfont - \let\fbox \tabu@fbox \let\color@b@x \tabu@color@b@x - \let\tabu@@everycr \everycr \let\tabu@@everypar \everypar - \let\tabu@prepnext@tokORI \prepnext@tok\let\prepnext@tok \tabu@prepnext@tok - \let\tabu@multicolumnORI\multicolumn \let\multicolumn \tabu@multicolumn - \let\tabu@startpbox \@startpbox % for nested tabu inside longtabu pfff !!! - \let\tabu@endpbox \@endpbox % idem " " " " " " " - \let\tabu@tabarray \@tabarray % idem " " " " " " " - \tabu@adl@fix \let\endarray \tabu@endarray % colortbl & arydshln (delarray) - \iftabu@colortbl\CT@everycr\expandafter{\expandafter\iftabu@everyrow \the\CT@everycr \fi}\fi -}% \tabu@init -\def\tabu@indent{% correction for indentation - \ifdim \parindent>\z@\ifx \linewidth\tabudefaulttarget - \everypar\expandafter{% - \the\everypar\everypar\expandafter{\the\everypar}% - \setbox\z@=\lastbox - \ifdim\wd\z@>\z@ \edef\tabu@thetarget - {\the\dimexpr -\wd\z@+\tabudefaulttarget}\fi - \box\z@}% - \fi\fi -}% \tabu@indent -\def\tabu@setcleanup {% saves last global assignments - \ifodd 1\ifmmode \else \iftabu@long \else 0\fi\fi\relax - \def\tabu@aftergroupcleanup{% - \def\tabu@aftergroupcleanup{\aftergroup\tabu@cleanup}}% - \else - \def\tabu@aftergroupcleanup{% - \aftergroup\aftergroup\aftergroup\tabu@cleanup - \let\tabu@aftergroupcleanup \relax}% - \fi - \let\tabu@arc@Gsave \tabu@arc@G - \let\tabu@arc@G \tabu@arc@L % - \let\tabu@drsc@Gsave \tabu@drsc@G - \let\tabu@drsc@G \tabu@drsc@L % - \let\tabu@ls@Gsave \tabu@ls@G - \let\tabu@ls@G \tabu@ls@L % - \let\tabu@rc@Gsave \tabu@rc@G - \let\tabu@rc@G \tabu@rc@L % - \let\tabu@evr@Gsave \tabu@evr@G - \let\tabu@evr@G \tabu@evr@L % - \let\tabu@celllalign@save \tabu@celllalign - \let\tabu@cellralign@save \tabu@cellralign - \let\tabu@cellleft@save \tabu@cellleft - \let\tabu@cellright@save \tabu@cellright - \let\tabu@@celllalign@save \tabu@@celllalign - \let\tabu@@cellralign@save \tabu@@cellralign - \let\tabu@@cellleft@save \tabu@@cellleft - \let\tabu@@cellright@save \tabu@@cellright - \let\tabu@rowfontreset@save \tabu@rowfontreset - \let\tabu@@rowfontreset@save\tabu@@rowfontreset - \let\tabu@rowfontreset \@empty - \edef\tabu@alloc@save {\the\tabu@alloc}% restore at \tabu@reset - \edef\c@taburow@save {\the\c@taburow}% - \edef\tabu@naturalX@save {\the\tabu@naturalX}% - \let\tabu@naturalXmin@save \tabu@naturalXmin - \let\tabu@naturalXmax@save \tabu@naturalXmax - \let\tabu@mkarstrut@save \tabu@mkarstrut - \edef\tabu@clarstrut{% - \extrarowheight \the\dimexpr \ht\@arstrutbox-\ht\strutbox \relax - \extrarowdepth \the\dimexpr \dp\@arstrutbox-\dp\strutbox \relax - \let\noexpand\@arraystretch \@ne \noexpand\tabu@rearstrut}% -}% \tabu@setcleanup -\def\tabu@cleanup {\begingroup - \globaldefs\@ne \tabu@everyrowtrue - \let\tabu@arc@G \tabu@arc@Gsave - \let\CT@arc@ \tabu@arc@G - \let\tabu@drsc@G \tabu@drsc@Gsave - \let\CT@drsc@ \tabu@drsc@G - \let\tabu@ls@G \tabu@ls@Gsave - \let\tabu@ls@ \tabu@ls@G - \let\tabu@rc@G \tabu@rc@Gsave - \let\tabu@rc@ \tabu@rc@G - \let\CT@do@color \relax - \let\tabu@evr@G \tabu@evr@Gsave - \let\tabu@celllalign \tabu@celllalign@save - \let\tabu@cellralign \tabu@cellralign@save - \let\tabu@cellleft \tabu@cellleft@save - \let\tabu@cellright \tabu@cellright@save - \let\tabu@@celllalign \tabu@@celllalign@save - \let\tabu@@cellralign \tabu@@cellralign@save - \let\tabu@@cellleft \tabu@@cellleft@save - \let\tabu@@cellright \tabu@@cellright@save - \let\tabu@rowfontreset \tabu@rowfontreset@save - \let\tabu@@rowfontreset \tabu@@rowfontreset@save - \tabu@naturalX =\tabu@naturalX@save - \let\tabu@naturalXmax \tabu@naturalXmax@save - \let\tabu@naturalXmin \tabu@naturalXmin@save - \let\tabu@mkarstrut \tabu@mkarstrut@save - \c@taburow =\c@taburow@save - \ifcase \tabu@nested \tabu@alloc \m@ne\fi - \endgroup % - \ifcase \tabu@nested - \the\tabu@footnotes \global\tabu@footnotes{}% - \tabu@afterendpar \tabu@elapsedtime - \fi - \tabu@clarstrut - \everyrow\expandafter {\tabu@evr@G}% -}% \tabu@cleanup -\let\tabu@afterendpar \relax -\def\tabu@setreset {% - \edef\tabu@savedparams {% \relax for \tabu@message@save - \ifmmode \col@sep \the\arraycolsep - \else \col@sep \the\tabcolsep \fi \relax - \arrayrulewidth \the\arrayrulewidth \relax - \doublerulesep \the\doublerulesep \relax - \extratabsurround \the\extratabsurround \relax - \extrarowheight \the\extrarowheight \relax - \extrarowdepth \the\extrarowdepth \relax - \abovetabulinesep \the\abovetabulinesep \relax - \belowtabulinesep \the\belowtabulinesep \relax - \def\noexpand\arraystretch{\arraystretch}% - \ifdefined\minrowclearance \minrowclearance\the\minrowclearance\relax\fi}% - \begingroup - \@temptokena\expandafter{\tabu@savedparams}% => only for \savetabu / \usetabu - \ifx \tabu@arc@L\relax \else \tabu@setsave \tabu@arc@L \fi - \ifx \tabu@drsc@L\relax \else \tabu@setsave \tabu@drsc@L \fi - \tabu@setsave \tabu@ls@L \tabu@setsave \tabu@evr@L - \expandafter \endgroup \expandafter - \def\expandafter\tabu@saved@ \expandafter{\the\@temptokena - \let\tabu@arc@G \tabu@arc@L - \let\tabu@drsc@G \tabu@drsc@L - \let\tabu@ls@G \tabu@ls@L - \let\tabu@rc@G \tabu@rc@L - \let\tabu@evr@G \tabu@evr@L}% - \def\tabu@reset{\tabu@savedparams - \tabu@everyrowtrue \c@taburow \z@ - \let\CT@arc@ \tabu@arc@L - \let\CT@drsc@ \tabu@drsc@L - \let\tabu@ls@ \tabu@ls@L - \let\tabu@rc@ \tabu@rc@L - \global\tabu@alloc \tabu@alloc@save - \everyrow\expandafter{\tabu@evr@L}}% -}% \tabu@reset -\def\tabu@setsave #1{\expandafter\tabu@sets@ve #1\@nil{#1}} -\long\def\tabu@sets@ve #1\@nil #2{\@temptokena\expandafter{\the\@temptokena \def#2{#1}}} -%% The Rewriting Process ------------------------------------------- -\def\tabu@newcolumntype #1{% - \expandafter\tabu@new@columntype - \csname NC@find@\string#1\expandafter\endcsname - \csname NC@rewrite@\string#1\endcsname - {#1}% -}% \tabu@newcolumntype -\def\tabu@new@columntype #1#2#3{% - \def#1##1#3{\NC@{##1}}% - \let#2\relax \newcommand*#2% -}% \tabu@new@columntype -\def\tabu@privatecolumntype #1{% - \expandafter\tabu@private@columntype - \csname NC@find@\string#1\expandafter\endcsname - \csname NC@rewrite@\string#1\expandafter\endcsname - \csname tabu@NC@find@\string#1\expandafter\endcsname - \csname tabu@NC@rewrite@\string#1\endcsname - {#1}% -}% \tabu@privatecolumntype -\def\tabu@private@columntype#1#2#3#4{% - \g@addto@macro\tabu@privatecolumns{\let#1#3\let#2#4}% - \tabu@new@columntype#3#4% -}% \tabu@private@columntype -\let\tabu@privatecolumns \@empty -\newcommand*\tabucolumn [1]{\expandafter \def \expandafter - \tabu@highprioritycolumns\expandafter{\tabu@highprioritycolumns - \NC@do #1}}% -\let\tabu@highprioritycolumns \@empty -%% The | ``column'' : rewriting process -------------------------- -\tabu@privatecolumntype |{\tabu@rewritevline} -\newcommand*\tabu@rewritevline[1][]{\tabu@vlinearg{#1}% - \expandafter \NC@find \tabu@rewritten} -\def\tabu@lines #1{% - \ifx|#1\else \tabu@privatecolumntype #1{\tabu@rewritevline}\fi - \NC@list\expandafter{\the\NC@list \NC@do #1}% -}% \tabu@lines@ -\def\tabu@vlinearg #1{% - \ifx\\#1\\\def\tabu@thestyle {\tabu@ls@}% - \else\tabu@getline {#1}% - \fi - \def\tabu@rewritten ##1{\def\tabu@rewritten{!{##1\tabu@thevline}}% - }\expandafter\tabu@rewritten\expandafter{\tabu@thestyle}% - \expandafter \tabu@keepls \tabu@thestyle \@nil -}% \tabu@vlinearg -\def\tabu@keepls #1\@nil{% - \ifcat $\@cdr #1\@nil $% - \ifx \relax#1\else - \ifx \tabu@ls@#1\else - \let#1\relax - \xdef\tabu@mkpreambuffer{\tabu@mkpreambuffer - \tabu@savels\noexpand#1}\fi\fi\fi -}% \tabu@keepls -\def\tabu@thevline {\begingroup - \ifdefined\tabu@leaders - \setbox\@tempboxa=\vtop to\dimexpr - \ht\@arstrutbox+\dp\@arstrutbox{{\tabu@thevleaders}}% - \ht\@tempboxa=\ht\@arstrutbox \dp\@tempboxa=\dp\@arstrutbox - \box\@tempboxa - \else - \tabu@thevrule - \fi \endgroup -}% \tabu@thevline -\def\tabu@savels #1{% - \expandafter\let\csname\string#1\endcsname #1% - \expandafter\def\expandafter\tabu@reset\expandafter{\tabu@reset - \tabu@resetls#1}}% -\def\tabu@resetls #1{\expandafter\let\expandafter#1\csname\string#1\endcsname}% -%% \multicolumn inside tabu environment ----------------------------- -\tabu@newcolumntype \tabu@rewritemulticolumn{% - \aftergroup \tabu@endrewritemulticolumn % after \@mkpream group - \NC@list{\NC@do *}\tabu@textbar \tabu@lines - \tabu@savedecl - \tabu@privatecolumns - \NC@list\expandafter{\the\expandafter\NC@list \tabu@NC@list}% - \let\tabu@savels \relax - \NC@find -}% \tabu@rewritemulticolumn -\def\tabu@endrewritemulticolumn{\gdef\tabu@mkpreambuffer{}\endgroup} -\def\tabu@multicolumn{\tabu@ifenvir \tabu@multic@lumn \tabu@multicolumnORI} -\long\def\tabu@multic@lumn #1#2#3{\multispan{#1}\begingroup - \tabu@everyrowtrue - \NC@list{\NC@do \tabu@rewritemulticolumn}% - \expandafter\@gobbletwo % gobbles \multispan{#1} - \tabu@multicolumnORI{#1}{\tabu@rewritemulticolumn #2}% - {\iftabuscantokens \tabu@rescan \else \expandafter\@firstofone \fi - {#3}}% -}% \tabu@multic@lumn -%% The X column(s): rewriting process ----------------------------- -\tabu@privatecolumntype X[1][]{\begingroup \tabu@siunitx{\endgroup \tabu@rewriteX {#1}}} -\def\tabu@nosiunitx #1{#1{}{}\expandafter \NC@find \tabu@rewritten } -\def\tabu@siunitx #1{\@ifnextchar \bgroup - {\tabu@rewriteX@Ss{#1}} - {\tabu@nosiunitx{#1}}} -\def\tabu@rewriteX@Ss #1#2{\@temptokena{}% - \@defaultunits \let\tabu@temp =#2\relax\@nnil - \ifodd 1\ifx S\tabu@temp \else \ifx s\tabu@temp \else 0 \fi\fi - \def\NC@find{\def\NC@find >####1####2<####3\relax{#1 {####1}{####3}% - }\expandafter\NC@find \the\@temptokena \relax - }\expandafter\NC@rewrite@S \@gobble #2\relax - \else \tabu@siunitxerror - \fi - \expandafter \NC@find \tabu@rewritten -}% \tabu@rewriteX@Ss -\def\tabu@siunitxerror {\PackageError{tabu}{Not a S nor s column ! - \MessageBreak X column can only embed siunitx S or s columns}\@ehd -}% \tabu@siunitxerror -\def\tabu@rewriteX #1#2#3{\tabu@Xarg {#1}{#2}{#3}% - \iftabu@measuring - \else \tabu@measuringtrue % first X column found in the preamble - \let\@halignto \relax \let\tabu@halignto \relax - \iftabu@spread \tabu@spreadtarget \tabu@target \tabu@target \z@ - \else \tabu@spreadtarget \z@ \fi - \ifdim \tabu@target=\z@ - \setlength\tabu@target \tabu@thetarget - \tabu@message{\tabu@message@defaulttarget}% - \else \tabu@message{\tabu@message@target}\fi - \fi -}% \tabu@rewriteX -\def\tabu@rewriteXrestore #1#2#3{\let\@halignto \relax - \def\tabu@rewritten{l}} -\def\tabu@Xarg #1#2#3{% - \advance\tabu@Xcol \@ne \let\tabu@Xlcr \@empty - \let\tabu@Xdisp \@empty \let\tabu@Xmath \@empty - \ifx\\#1\\% - \def\tabu@rewritten{p}\tabucolX \p@ % - \else - \let\tabu@rewritten \@empty \let\tabu@temp \@empty \tabucolX \z@ - \tabu@Xparse {}#1\relax - \fi - \tabu@Xrewritten{#2}{#3}% -}% \tabu@Xarg -\def\tabu@Xparse #1{\futurelet\@let@token \tabu@Xtest} -\expandafter\def\expandafter\tabu@Xparsespace\space{\tabu@Xparse{}} -\def\tabu@Xtest{% - \ifcase \ifx \relax\@let@token \z@ \else - \if ,\@let@token \m@ne\else - \if p\@let@token 1\else - \if m\@let@token 2\else - \if b\@let@token 3\else - \if l\@let@token 4\else - \if c\@let@token 5\else - \if r\@let@token 6\else - \if j\@let@token 7\else - \if L\@let@token 8\else - \if C\@let@token 9\else - \if R\@let@token 10\else - \if J\@let@token 11\else - \ifx \@sptoken\@let@token 12\else - \if .\@let@token 13\else - \if -\@let@token 13\else - \ifcat $\@let@token 14\else - 15\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\relax - \or \tabu@Xtype {p}% - \or \tabu@Xtype {m}% - \or \tabu@Xtype {b}% - \or \tabu@Xalign \raggedright\relax - \or \tabu@Xalign \centering\relax - \or \tabu@Xalign \raggedleft\relax - \or \tabu@Xalign \tabu@justify\relax - \or \tabu@Xalign \RaggedRight\raggedright - \or \tabu@Xalign \Centering\centering - \or \tabu@Xalign \RaggedLeft\raggedleft - \or \tabu@Xalign \justifying\tabu@justify - \or \expandafter \tabu@Xparsespace - \or \expandafter \tabu@Xcoef - \or \expandafter \tabu@Xm@th - \or \tabu@Xcoef{}% - \else\expandafter \tabu@Xparse - \fi -}% \tabu@Xtest -\def\tabu@Xalign #1#2{% - \ifx \tabu@Xlcr\@empty \else \PackageWarning{tabu} - {Duplicate horizontal alignment specification}\fi - \ifdefined#1\def\tabu@Xlcr{#1}\let#1\relax - \else \def\tabu@Xlcr{#2}\let#2\relax\fi - \expandafter\tabu@Xparse -}% \tabu@Xalign -\def\tabu@Xtype #1{% - \ifx \tabu@rewritten\@empty \else \PackageWarning{tabu} - {Duplicate vertical alignment specification}\fi - \def\tabu@rewritten{#1}\expandafter\tabu@Xparse -}% \tabu@Xtype -\def\tabu@Xcoef#1{\edef\tabu@temp{\tabu@temp#1}% - \afterassignment\tabu@Xc@ef \tabu@cnt\number\if-#10\fi -}% \tabu@Xcoef -\def\tabu@Xc@ef{\advance\tabucolX \tabu@temp\the\tabu@cnt\p@ - \tabu@Xparse{}% -}% \tabu@Xc@ef -\def\tabu@Xm@th #1{\futurelet \@let@token \tabu@Xd@sp} -\def\tabu@Xd@sp{\let\tabu@Xmath=$% - \ifx $\@let@token \def\tabu@Xdisp{\displaystyle}% - \expandafter\tabu@Xparse - \else \expandafter\tabu@Xparse\expandafter{\expandafter}% - \fi -}% \tabu@Xd@sp -\def\tabu@Xrewritten {% - \ifx \tabu@rewritten\@empty \def\tabu@rewritten{p}\fi - \ifdim \tabucolX<\z@ \tabu@negcoeftrue - \else\ifdim \tabucolX=\z@ \tabucolX \p@ - \fi\fi - \edef\tabu@temp{{\the\tabu@Xcol}{\tabu@strippt\tabucolX}}% - \edef\tabu@Xcoefs{\tabu@Xcoefs \tabu@ \tabu@temp}% - \edef\tabu@rewritten ##1##2{\def\noexpand\tabu@rewritten{% - >{\tabu@Xlcr \ifx$\tabu@Xmath$\tabu@Xdisp\fi ##1}% - \tabu@rewritten {\tabu@hsize \tabu@temp}% - <{##2\ifx$\tabu@Xmath$\fi}}% - }\tabu@rewritten -}% \tabu@Xrewritten -\def\tabu@hsize #1#2{% - \ifdim #2\p@<\z@ - \ifdim \tabucolX=\maxdimen \tabu@wd{#1}\else - \ifdim \tabu@wd{#1}<-#2\tabucolX \tabu@wd{#1}\else -#2\tabucolX\fi - \fi - \else #2\tabucolX - \fi -}% \tabu@hsize -%% \usetabu and \preamble: rewriting process --------------------- -\tabu@privatecolumntype \usetabu [1]{% - \ifx\\#1\\\tabu@saveerr{}\else - \@ifundefined{tabu@saved@\string#1} - {\tabu@saveerr{#1}} - {\let\tabu@rewriteX \tabu@rewriteXrestore - \csname tabu@saved@\string#1\expandafter\endcsname\expandafter\@ne}% - \fi -}% \NC@rewrite@\usetabu -\tabu@privatecolumntype \preamble [1]{% - \ifx\\#1\\\tabu@saveerr{}\else - \@ifundefined{tabu@saved@\string#1} - {\tabu@saveerr{#1}} - {\csname tabu@saved@\string#1\expandafter\endcsname\expandafter\z@}% - \fi -}% \NC@rewrite@\preamble -%% Controlling the rewriting process ------------------------------- -\tabu@newcolumntype \tabu@rewritefirst{% - \iftabu@long \aftergroup \tabu@longpream % - \else \aftergroup \tabu@pream - \fi - \let\tabu@ \relax \let\tabu@hsize \relax - \let\tabu@Xcoefs \@empty \let\tabu@savels \relax - \tabu@Xcol \z@ \tabu@cnt \tw@ - \gdef\tabu@mkpreambuffer{\tabu@{}}\tabu@measuringfalse - \global\setbox\@arstrutbox \box\@arstrutbox - \NC@list{\NC@do *}\tabu@textbar \tabu@lines - \NC@list\expandafter{\the\NC@list \NC@do X}% - \iftabu@siunitx % - \NC@list\expandafter{\the\NC@list \NC@do S\NC@do s}\fi - \NC@list\expandafter{\the\expandafter\NC@list \tabu@highprioritycolumns}% - \expandafter\def\expandafter\tabu@NC@list\expandafter{% - \the\expandafter\NC@list \tabu@NC@list}% % * | X S - \NC@list\expandafter{\expandafter \NC@do \expandafter\usetabu - \expandafter \NC@do \expandafter\preamble - \the\NC@list \NC@do \tabu@rewritemiddle - \NC@do \tabu@rewritelast}% - \tabu@savedecl - \tabu@privatecolumns - \edef\tabu@prev{\the\@temptokena}\NC@find \tabu@rewritemiddle -}% NC@rewrite@\tabu@rewritefirst -\tabu@newcolumntype \tabu@rewritemiddle{% - \edef\tabu@temp{\the\@temptokena}\NC@find \tabu@rewritelast -}% \NC@rewrite@\tabu@rewritemiddle -\tabu@newcolumntype \tabu@rewritelast{% - \ifx \tabu@temp\tabu@prev \advance\tabu@cnt \m@ne - \NC@list\expandafter{\tabu@NC@list \NC@do \tabu@rewritemiddle - \NC@do \tabu@rewritelast}% - \else \let\tabu@prev\tabu@temp - \fi - \ifcase \tabu@cnt \expandafter\tabu@endrewrite - \else \expandafter\NC@find \expandafter\tabu@rewritemiddle - \fi -}% \NC@rewrite@\tabu@rewritelast -%% Choosing the strategy -------------------------------------------- -\def\tabu@endrewrite {% - \let\tabu@temp \NC@find - \ifx \@arrayright\relax \let\@arrayright \@empty \fi - \count@=% - \ifx \@finalstrut\tabu@finalstrut \z@ % outer in mode 0 print - \iftabu@measuring - \xdef\tabu@mkpreambuffer{\tabu@mkpreambuffer - \tabu@target \csname tabu@\the\tabu@nested.T\endcsname - \tabucolX \csname tabu@\the\tabu@nested.X\endcsname - \edef\@halignto {\ifx\@arrayright\@empty to\tabu@target\fi}}% - \fi - \else\iftabu@measuring 4 % X columns - \xdef\tabu@mkpreambuffer{\tabu@{\tabu@mkpreambuffer - \tabu@target \the\tabu@target - \tabu@spreadtarget \the\tabu@spreadtarget}% - \def\noexpand\tabu@Xcoefs{\tabu@Xcoefs}% - \edef\tabu@halignto{\ifx \@arrayright\@empty to\tabu@target\fi}}% - \let\tabu@Xcoefs \relax - \else\ifcase\tabu@nested \thr@@ % outer, no X - \global\let\tabu@afterendpar \relax - \else \@ne % inner, no X, outer in mode 1 or 2 - \fi - \ifdefined\tabu@usetabu - \else \ifdim\tabu@target=\z@ - \else \let\tabu@temp \tabu@extracolsep - \fi\fi - \fi - \fi - \xdef\tabu@mkpreambuffer{\count@ \the\count@ \tabu@mkpreambuffer}% - \tabu@temp -}% \tabu@endrewrite -\def\tabu@extracolsep{\@defaultunits \expandafter\let - \expandafter\tabu@temp \expandafter=\the\@temptokena \relax\@nnil - \ifx \tabu@temp\@sptoken - \expandafter\tabu@gobblespace \expandafter\tabu@extracolsep - \else - \edef\tabu@temp{\noexpand\NC@find - \if |\noexpand\tabu@temp @% - \else\if !\noexpand\tabu@temp @% - \else !% - \fi\fi - {\noexpand\extracolsep\noexpand\@flushglue}}% - \fi - \tabu@temp -}% \tabu@extrac@lsep -%% Implementing the strategy ---------------------------------------- -\long\def\tabu@pream #1\@preamble {% - \let\tabu@ \tabu@@ \tabu@mkpreambuffer \tabu@aftergroupcleanup - \NC@list\expandafter {\tabu@NC@list}% in case of nesting... - \ifdefined\tabu@usetabu \tabu@usetabu \tabu@target \z@ \fi - \let\tabu@savedpreamble \@preamble - \global\let\tabu@elapsedtime \relax - \tabu@thebody ={#1\tabu@aftergroupcleanup}% - \tabu@thebody =\expandafter{\the\expandafter\tabu@thebody - \@preamble}% - \edef\tabuthepreamble {\the\tabu@thebody}% ( no @ allowed for \scantokens ) - \tabu@select -}% \tabu@pream -\long\def\tabu@longpream #1\LT@bchunk #2\LT@bchunk{% - \let\tabu@ \tabu@@ \tabu@mkpreambuffer \tabu@aftergroupcleanup - \NC@list\expandafter {\tabu@NC@list}% in case of nesting... - \let\tabu@savedpreamble \@preamble - \global\let\tabu@elapsedtime \relax - \tabu@thebody ={#1\LT@bchunk #2\tabu@aftergroupcleanup \LT@bchunk}% - \edef\tabuthepreamble {\the\tabu@thebody}% ( no @ allowed for \scantokens ) - \tabu@select -}% \tabu@longpream -\def\tabu@select {% - \ifnum\tabu@nested>\z@ \tabuscantokensfalse \fi - \ifnum \count@=\@ne \iftabu@measuring \count@=\tw@ \fi\fi - \ifcase \count@ - \global\let\tabu@elapsedtime \relax - \tabu@seteverycr - \expandafter \tabuthepreamble % vertical adjustment (inherited from outer) - \or % exit in vertical measure + struts per cell because no X and outer in mode 3 - \tabu@evr{\tabu@verticalinit}\tabu@celllalign@def{\tabu@verticalmeasure}% - \def\tabu@cellralign{\tabu@verticalspacing}% - \tabu@seteverycr - \expandafter \tabuthepreamble - \or % exit without measure because no X and outer in mode 4 - \tabu@evr{}\tabu@celllalign@def{}\let\tabu@cellralign \@empty - \tabu@seteverycr - \expandafter \tabuthepreamble - \else % needs trials - \tabu@evr{}\tabu@celllalign@def{}\let\tabu@cellralign \@empty - \tabu@savecounters - \expandafter \tabu@setstrategy - \fi -}% \tabu@select -\def\tabu@@ {\gdef\tabu@mkpreambuffer} -%% Protections to set up before trials ------------------------------ -\def\tabu@setstrategy {\begingroup % - \tabu@trialh@@k \tabu@cnt \z@ % number of trials - \hbadness \@M \let\hbadness \@tempcnta - \hfuzz \maxdimen \let\hfuzz \@tempdima - \let\write \tabu@nowrite\let\GenericError \tabu@GenericError - \let\savetabu \@gobble \let\tabudefaulttarget \linewidth - \let\@footnotetext \@gobble \let\@xfootnote \tabu@xfootnote - \let\color \tabu@nocolor\let\rowcolor \tabu@norowcolor - \let\tabu@aftergroupcleanup \relax % only after the last trial - \tabu@mkpreambuffer - \ifnum \count@>\thr@@ \let\@halignto \@empty \tabucolX@init - \def\tabu@lasttry{\m@ne\p@}\fi - \begingroup \iffalse{\fi \ifnum0=`}\fi - \toks@{}\def\tabu@stack{b}\iftabuscantokens \endlinechar=10 \obeyspaces \fi % - \tabu@collectbody \tabu@strategy % -}% \tabu@setstrategy -\def\tabu@savecounters{% - \def\@elt ##1{\csname c@##1\endcsname\the\csname c@##1\endcsname}% - \edef\tabu@clckpt {\begingroup \globaldefs=\@ne \cl@@ckpt \endgroup}\let\@elt \relax -}% \tabu@savecounters -\def\tabucolX@init {% \tabucolX <= \tabu@target / (sum coefs > 0) - \dimen@ \z@ \tabu@Xsum \z@ \tabucolX \z@ \let\tabu@ \tabu@Xinit \tabu@Xcoefs - \ifdim \dimen@>\z@ - \@tempdima \dimexpr \tabu@target *\p@/\dimen@ + \tabu@hfuzz\relax - \ifdim \tabucolX<\@tempdima \tabucolX \@tempdima \fi - \fi -}% \tabucolX@init -\def\tabu@Xinit #1#2{\tabu@Xcol #1 \advance \tabu@Xsum - \ifdim #2\p@>\z@ #2\p@ \advance\dimen@ #2\p@ - \else -#2\p@ \tabu@negcoeftrue - \@tempdima \dimexpr \tabu@target*\p@/\dimexpr-#2\p@\relax \relax - \ifdim \tabucolX<\@tempdima \tabucolX \@tempdima \fi - \tabu@wddef{#1}{0pt}% - \fi -}% \tabu@Xinit -%% Collecting the environment body ---------------------------------- -\long\def\tabu@collectbody #1#2\end #3{% - \edef\tabu@stack{\tabu@pushbegins #2\begin\end\expandafter\@gobble\tabu@stack}% - \ifx \tabu@stack\@empty - \toks@\expandafter{\expandafter\tabu@thebody\expandafter{\the\toks@ #2}% - \def\tabu@end@envir{\end{#3}}% - \iftabuscantokens - \iftabu@long \def\tabu@endenvir {\end{#3}\tabu@gobbleX}% - \else \def\tabu@endenvir {\let\endarray \@empty - \end{#3}\tabu@gobbleX}% - \fi - \else \def\tabu@endenvir {\end{#3}}\fi}% - \let\tabu@collectbody \tabu@endofcollect - \else\def\tabu@temp{#3}% - \ifx \tabu@temp\@empty \toks@\expandafter{\the\toks@ #2\end }% - \else \ifx\tabu@temp\tabu@@spxiii \toks@\expandafter{\the\toks@ #2\end #3}% - \else \ifx\tabu@temp\tabu@X \toks@\expandafter{\the\toks@ #2\end #3}% - \else \toks@\expandafter{\the\toks@ #2\end{#3}}% - \fi\fi\fi - \fi - \tabu@collectbody{#1}% -}% \tabu@collectbody -\long\def\tabu@pushbegins#1\begin#2{\ifx\end#2\else b\expandafter\tabu@pushbegins\fi}% -\def\tabu@endofcollect #1{\ifnum0=`{}\fi - \expandafter\endgroup \the\toks@ #1% -}% \tabu@endofcollect -%% The trials: switching between strategies ------------------------- -\def\tabu@strategy {\relax % stops \count@ assignment ! - \ifcase\count@ % case 0 = print with vertical adjustment (outer is finished) - \expandafter \tabu@endoftrials - \or % case 1 = exit in vertical measure (outer in mode 3) - \expandafter\xdef\csname tabu@\the\tabu@nested.T\endcsname{\the\tabu@target}% - \expandafter\xdef\csname tabu@\the\tabu@nested.X\endcsname{\the\tabucolX}% - \expandafter \tabu@endoftrials - \or % case 2 = exit with a rule replacing the table (outer in mode 4) - \expandafter \tabu@quickend - \or % case 3 = outer is in mode 3 because of no X - \begingroup - \tabu@evr{\tabu@verticalinit}\tabu@celllalign@def{\tabu@verticalmeasure}% - \def\tabu@cellralign{\tabu@verticalspacing}% - \expandafter \tabu@measuring - \else % case 4 = horizontal measure - \begingroup - \global\let\tabu@elapsedtime \tabu@message@etime - \long\def\multicolumn##1##2##3{\multispan{##1}}% - \let\tabu@startpboxORI \@startpbox - \iftabu@spread - \def\tabu@naturalXmax {\z@}% - \let\tabu@naturalXmin \tabu@naturalXmax - \tabu@evr{\global\tabu@naturalX \z@}% - \let\@startpbox \tabu@startpboxmeasure - \else\iftabu@negcoef - \let\@startpbox \tabu@startpboxmeasure - \else \let\@startpbox \tabu@startpboxquick - \fi\fi - \expandafter \tabu@measuring - \fi -}% \tabu@strategy -\def\tabu@measuring{\expandafter \tabu@trial \expandafter - \count@ \the\count@ \tabu@endtrial -}% \tabu@measuring -\def\tabu@trial{\iftabu@long \tabu@longtrial \else \tabu@shorttrial \fi} -\def\tabu@shorttrial {\setbox\tabu@box \hbox\bgroup \tabu@seteverycr - \ifx \tabu@savecounters\relax \else - \let\tabu@savecounters \relax \tabu@clckpt \fi - $\iftabuscantokens \tabu@rescan \else \expandafter\@secondoftwo \fi - \expandafter{\expandafter \tabuthepreamble - \the\tabu@thebody - \csname tabu@adl@endtrial\endcsname - \endarray}$\egroup % got \tabu@box -}% \tabu@shorttrial -\def\tabu@longtrial {\setbox\tabu@box \hbox\bgroup \tabu@seteverycr - \ifx \tabu@savecounters\relax \else - \let\tabu@savecounters \relax \tabu@clckpt \fi - \iftabuscantokens \tabu@rescan \else \expandafter\@secondoftwo \fi - \expandafter{\expandafter \tabuthepreamble - \the\tabu@thebody - \tabuendlongtrial}\egroup % got \tabu@box -}% \tabu@longtrial -\def\tabuendlongtrial{% no @ allowed for \scantokens - \LT@echunk \global\setbox\@ne \hbox{\unhbox\@ne}\kern\wd\@ne - \LT@get@widths -}% \tabuendlongtrial -\def\tabu@adl@endtrial{% - \crcr \noalign{\global\adl@ncol \tabu@nbcols}}% anything global is crap, junky and fails ! -\def\tabu@seteverycr {\tabu@reset - \everycr \expandafter{\the\everycr \tabu@everycr}% - \let\everycr \tabu@noeverycr % -}% \tabu@seteverycr -\def\tabu@noeverycr{{\aftergroup\tabu@restoreeverycr \afterassignment}\toks@} -\def\tabu@restoreeverycr {\let\everycr \tabu@@everycr} -\def\tabu@everycr {\iftabu@everyrow \noalign{\tabu@everyrow}\fi} -\def\tabu@endoftrials {% - \iftabuscantokens \expandafter\@firstoftwo - \else \expandafter\@secondoftwo - \fi - {\expandafter \tabu@closetrialsgroup \expandafter - \tabu@rescan \expandafter{% - \expandafter\tabuthepreamble - \the\expandafter\tabu@thebody - \iftabu@long \else \endarray \fi}} - {\expandafter\tabu@closetrialsgroup \expandafter - \tabuthepreamble - \the\tabu@thebody}% - \tabu@endenvir % Finish ! -}% \tabu@endoftrials -\def\tabu@closetrialsgroup {% - \toks@\expandafter{\tabu@endenvir}% - \edef\tabu@bufferX{\endgroup - \tabucolX \the\tabucolX - \tabu@target \the\tabu@target - \tabu@cnt \the\tabu@cnt - \def\noexpand\tabu@endenvir{\the\toks@}% - %Quid de \@halignto = \tabu@halignto ?? - }% \tabu@bufferX - \tabu@bufferX - \ifcase\tabu@nested % print out (outer in mode 0) - \global\tabu@cnt \tabu@cnt - \tabu@evr{\tabu@verticaldynamicadjustment}% - \tabu@celllalign@def{\everypar{}}\let\tabu@cellralign \@empty - \let\@finalstrut \tabu@finalstrut - \else % vertical measure of nested tabu - \tabu@evr{\tabu@verticalinit}% - \tabu@celllalign@def{\tabu@verticalmeasure}% - \def\tabu@cellralign{\tabu@verticalspacing}% - \fi - \tabu@clckpt \let\@halignto \tabu@halignto - \let\@halignto \@empty - \tabu@seteverycr - \ifdim \tabustrutrule>\z@ \ifnum\tabu@nested=\z@ - \setbox\@arstrutbox \box\voidb@x % force \@arstrutbox to be rebuilt (visible struts) - \fi\fi -}% \tabu@closetrialsgroup -\def\tabu@quickend {\expandafter \endgroup \expandafter - \tabu@target \the\tabu@target \tabu@quickrule - \let\endarray \relax \tabu@endenvir -}% \tabu@quickend -\def\tabu@endtrial {\relax % stops \count@ assignment ! - \ifcase \count@ \tabu@err % case 0 = impossible here - \or \tabu@err % case 1 = impossible here - \or \tabu@err % case 2 = impossible here - \or % case 3 = outer goes into mode 0 - \def\tabu@bufferX{\endgroup}\count@ \z@ - \else % case 4 = outer goes into mode 3 - \iftabu@spread \tabu@spreadarith % inner into mode 1 (outer in mode 3) - \else \tabu@arith % or 2 (outer in mode 4) - \fi - \count@=% - \ifcase\tabu@nested \thr@@ % outer goes into mode 3 - \else\iftabu@measuring \tw@ % outer is in mode 4 - \else \@ne % outer is in mode 3 - \fi\fi - \edef\tabu@bufferX{\endgroup - \tabucolX \the\tabucolX - \tabu@target \the\tabu@target}% - \fi - \expandafter \tabu@bufferX \expandafter - \count@ \the\count@ \tabu@strategy -}% \tabu@endtrial -\def\tabu@err{\errmessage{(tabu) Internal impossible error! (\count@=\the\count@)}} -%% The algorithms: compute the widths / stop or go on --------------- -\def\tabu@arithnegcoef {% - \@tempdima \z@ \dimen@ \z@ \let\tabu@ \tabu@arith@negcoef \tabu@Xcoefs -}% \tabu@arithnegcoef -\def\tabu@arith@negcoef #1#2{% - \ifdim #2\p@>\z@ \advance\dimen@ #2\p@ % saturated by definition - \advance\@tempdima #2\tabucolX - \else - \ifdim -#2\tabucolX <\tabu@wd{#1}% c_i X < natural width <= \tabu@target-> saturated - \advance\dimen@ -#2\p@ - \advance\@tempdima -#2\tabucolX - \else - \advance\@tempdima \tabu@wd{#1}% natural width <= c_i X => neutralised - \ifdim \tabu@wd{#1}<\tabu@target \else % neutralised - \advance\dimen@ -#2\p@ % saturated (natural width = tabu@target) - \fi - \fi - \fi -}% \tabu@arith@negcoef -\def\tabu@givespace #1#2{% here \tabu@DELTA < \z@ - \ifdim \@tempdima=\z@ - \tabu@wddef{#1}{\the\dimexpr -\tabu@DELTA*\p@/\tabu@Xsum}% - \else - \tabu@wddef{#1}{\the\dimexpr \tabu@hsize{#1}{#2} - *(\p@ -\tabu@DELTA*\p@/\@tempdima)/\p@\relax}% - \fi -}% \tabu@givespace -\def\tabu@arith {\advance\tabu@cnt \@ne - \ifnum \tabu@cnt=\@ne \tabu@message{\tabu@titles}\fi - \tabu@arithnegcoef - \@tempdimb \dimexpr \wd\tabu@box -\@tempdima \relax % - \tabu@DELTA = \dimexpr \wd\tabu@box - \tabu@target \relax - \tabu@message{\tabu@message@arith}% - \ifdim \tabu@DELTA <\tabu@hfuzz - \ifdim \tabu@DELTA<\z@ % wd (tabu)<\tabu@target ? - \let\tabu@ \tabu@givespace \tabu@Xcoefs - \advance\@tempdima \@tempdimb \advance\@tempdima -\tabu@DELTA % for message - \else % already converged: nothing to do but nearly impossible... - \fi - \tabucolX \maxdimen - \tabu@measuringfalse - \else % need for narrower X columns - \tabucolX =\dimexpr (\@tempdima -\tabu@DELTA) *\p@/\tabu@Xsum \relax - \tabu@measuringtrue - \@whilesw \iftabu@measuring\fi {% - \advance\tabu@cnt \@ne - \tabu@arithnegcoef - \tabu@DELTA =\dimexpr \@tempdima+\@tempdimb -\tabu@target \relax % always < 0 here - \tabu@message{\tabu@header - \tabu@msgalign \tabucolX { }{ }{ }{ }{ }\@@ - \tabu@msgalign \@tempdima+\@tempdimb { }{ }{ }{ }{ }\@@ - \tabu@msgalign \tabu@target { }{ }{ }{ }{ }\@@ - \tabu@msgalign@PT \dimen@ { }{}{}{}{}{}{}\@@ - \ifdim -\tabu@DELTA<\tabu@hfuzz \tabu@spaces target ok\else - \tabu@msgalign \dimexpr -\tabu@DELTA *\p@/\dimen@ {}{}{}{}{}\@@ - \fi}% - \ifdim -\tabu@DELTA<\tabu@hfuzz - \advance\@tempdima \@tempdimb % for message - \tabu@measuringfalse - \else - \advance\tabucolX \dimexpr -\tabu@DELTA *\p@/\dimen@ \relax - \fi - }% - \fi - \tabu@message{\tabu@message@reached}% - \edef\tabu@bufferX{\endgroup \tabu@cnt \the\tabu@cnt - \tabucolX \the\tabucolX - \tabu@target \the\tabu@target}% -}% \tabu@arith -\def\tabu@spreadarith {% - \dimen@ \z@ \@tempdima \tabu@naturalXmax \let\tabu@ \tabu@spread@arith \tabu@Xcoefs - \edef\tabu@naturalXmin {\the\dimexpr\tabu@naturalXmin*\dimen@/\p@}% - \@tempdimc =\dimexpr \wd\tabu@box -\tabu@naturalXmax+\tabu@naturalXmin \relax - \iftabu@measuring - \tabu@target =\dimexpr \@tempdimc+\tabu@spreadtarget \relax - \edef\tabu@bufferX{\endgroup \tabucolX \the\tabucolX \tabu@target\the\tabu@target}% - \else - \tabu@message{\tabu@message@spreadarith}% - \ifdim \dimexpr \@tempdimc+\tabu@spreadtarget >\tabu@target - \tabu@message{(tabu) spread - \ifdim \@tempdimc>\tabu@target useless here: default target used% - \else too large: reduced to fit default target\fi.}% - \else - \tabu@target =\dimexpr \@tempdimc+\tabu@spreadtarget \relax - \tabu@message{(tabu) spread: New target set to \the\tabu@target^^J}% - \fi - \begingroup \let\tabu@wddef \@gobbletwo - \@tempdimb \@tempdima - \tabucolX@init - \tabu@arithnegcoef - \wd\tabu@box =\dimexpr \wd\tabu@box +\@tempdima-\@tempdimb \relax - \expandafter\endgroup \expandafter\tabucolX \the\tabucolX - \tabu@arith - \fi -}% \tabu@spreadarith -\def\tabu@spread@arith #1#2{% - \ifdim #2\p@>\z@ \advance\dimen@ #2\p@ - \else \advance\@tempdima \tabu@wd{#1}\relax - \fi -}% \tabu@spread@arith -%% Reporting in the .log file --------------------------------------- -\def\tabu@message@defaulttarget{% - \ifnum\tabu@nested=\z@^^J(tabu) Default target: - \ifx\tabudefaulttarget\linewidth \string\linewidth - \ifdim \tabu@thetarget=\linewidth \else - -\the\dimexpr\linewidth-\tabu@thetarget\fi = - \else\ifx\tabudefaulttarget\linegoal\string\linegoal= - \fi\fi - \else (tabu) Default target (nested): \fi - \the\tabu@target \on@line - \ifnum\tabu@nested=\z@ , page \the\c@page\fi} -\def\tabu@message@target {^^J(tabu) Target specified: - \the\tabu@target \on@line, page \the\c@page} -\def\tabu@message@arith {\tabu@header - \tabu@msgalign \tabucolX { }{ }{ }{ }{ }\@@ - \tabu@msgalign \wd\tabu@box { }{ }{ }{ }{ }\@@ - \tabu@msgalign \tabu@target { }{ }{ }{ }{ }\@@ - \tabu@msgalign@PT \dimen@ { }{}{}{}{}{}{}\@@ - \ifdim \tabu@DELTA<\tabu@hfuzz giving space\else - \tabu@msgalign \dimexpr (\@tempdima-\tabu@DELTA) *\p@/\tabu@Xsum -\tabucolX {}{}{}{}{}\@@ - \fi -}% \tabu@message@arith -\def\tabu@message@spreadarith {\tabu@spreadheader - \tabu@msgalign \tabu@spreadtarget { }{ }{ }{ }{}\@@ - \tabu@msgalign \wd\tabu@box { }{ }{ }{ }{}\@@ - \tabu@msgalign -\tabu@naturalXmax { }{}{}{}{}\@@ - \tabu@msgalign \tabu@naturalXmin { }{ }{ }{ }{}\@@ - \tabu@msgalign \ifdim \dimexpr\@tempdimc>\tabu@target \tabu@target - \else \@tempdimc+\tabu@spreadtarget \fi - {}{}{}{}{}\@@} -\def\tabu@message@negcoef #1#2{ - \tabu@spaces\tabu@spaces\space * #1. X[\rem@pt#2]: - \space width = \tabu@wd {#1} - \expandafter\string\csname tabu@\the\tabu@nested.W\number#1\endcsname - \ifdim -\tabu@pt#2\tabucolX<\tabu@target - < \number-\rem@pt#2 X - = \the\dimexpr -\tabu@pt#2\tabucolX \relax - \else - <= \the\tabu@target\space < \number-\rem@pt#2 X\fi} -\def\tabu@message@reached{\tabu@header - ******* Reached Target: - hfuzz = \tabu@hfuzz\on@line\space *******} -\def\tabu@message@etime{\edef\tabu@stoptime{\the\pdfelapsedtime}% - \tabu@message{(tabu)\tabu@spaces Time elapsed during measure: - \the\numexpr(\tabu@stoptime-\tabu@starttime-32767)/65536\relax sec - \the\numexpr\numexpr(\tabu@stoptime-\tabu@starttime) - -\numexpr(\tabu@stoptime-\tabu@starttime-32767)/65536\relax*65536\relax - *1000/65536\relax ms \tabu@spaces(\the\tabu@cnt\space - cycle\ifnum\tabu@cnt>\@ne s\fi)^^J^^J}} -\def\tabu@message@verticalsp {% - \ifdim \@tempdima>\tabu@ht - \ifdim \@tempdimb>\tabu@dp - \expandafter\expandafter\expandafter\string\tabu@ht = - \tabu@msgalign \@tempdima { }{ }{ }{ }{ }\@@ - \expandafter\expandafter\expandafter\string\tabu@dp = - \tabu@msgalign \@tempdimb { }{ }{ }{ }{ }\@@^^J% - \else - \expandafter\expandafter\expandafter\string\tabu@ht = - \tabu@msgalign \@tempdima { }{ }{ }{ }{ }\@@^^J% - \fi - \else\ifdim \@tempdimb>\tabu@dp - \tabu@spaces\tabu@spaces\tabu@spaces - \expandafter\expandafter\expandafter\string\tabu@dp = - \tabu@msgalign \@tempdimb { }{ }{ }{ }{ }\@@^^J\fi - \fi -}% \tabu@message@verticalsp -\edef\tabu@spaces{\@spaces} -\def\tabu@strippt{\expandafter\tabu@pt\the} -{\@makeother\P \@makeother\T\lowercase{\gdef\tabu@pt #1PT{#1}}} -\def\tabu@msgalign{\expandafter\tabu@msg@align\the\dimexpr} -\def\tabu@msgalign@PT{\expandafter\tabu@msg@align\romannumeral-`\0\tabu@strippt} -\def\do #1{% - \def\tabu@msg@align##1.##2##3##4##5##6##7##8##9\@@{% - \ifnum##1<10 #1 #1\else - \ifnum##1<100 #1 \else - \ifnum##1<\@m #1\fi\fi\fi - ##1.##2##3##4##5##6##7##8#1}% - \def\tabu@header{(tabu) \ifnum\tabu@cnt<10 #1\fi\the\tabu@cnt) }% - \def\tabu@titles{\ifnum \tabu@nested=\z@ - (tabu) Try#1 #1 tabu X #1 #1 #1tabu Width #1 #1 Target - #1 #1 #1 Coefs #1 #1 #1 Update^^J\fi}% - \def\tabu@spreadheader{% - (tabu) Try#1 #1 Spread #1 #1 tabu Width #1 #1 #1 Nat. X #1 #1 #1 #1Nat. Min. - #1 New Target^^J% - (tabu) sprd} - \def\tabu@message@save {\begingroup - \def\x ####1{\tabu@msg@align ####1{ }{ }{ }{ }{}\@@} - \def\z ####1{\expandafter\x\expandafter{\romannumeral-`\0\tabu@strippt - \dimexpr####1\p@{ }{ }}}% - \let\color \relax \def\tabu@rulesstyle ####1####2{\detokenize{####1}}% - \let\CT@arc@ \relax \let\@preamble \@gobble - \let\tabu@savedpream \@firstofone - \let\tabu@savedparams \@firstofone - \def\tabu@target ####1\relax {(tabu) target #1 #1 #1 #1 #1 = \x{####1}^^J}% - \def\tabucolX ####1\relax {(tabu) X columns width#1 = \x{####1}^^J}% - \def\tabu@nbcols ####1\relax {(tabu) Number of columns: \z{####1}^^J}% - \def\tabu@aligndefault ####1{(tabu) Default alignment: #1 #1 ####1^^J}% - \def\col@sep ####1\relax {(tabu) column sep #1 #1 #1 = \x{####1}^^J}% - \def\arrayrulewidth ####1\relax{(tabu) arrayrulewidth #1 = \x{####1}}% - \def\doublerulesep ####1\relax { doublerulesep = \x{####1}^^J}% - \def\extratabsurround####1\relax{(tabu) extratabsurround = \x{####1}^^J}% - \def\extrarowheight ####1\relax{(tabu) extrarowheight #1 = \x{####1}}% - \def\extrarowdepth ####1\relax {extrarowdepth = \x{####1}^^J}% - \def\abovetabulinesep####1\relax{(tabu) abovetabulinesep=\x{####1} }% - \def\belowtabulinesep####1\relax{ belowtabulinesep=\x{####1}^^J}% - \def\arraystretch ####1{(tabu) arraystretch #1 #1 = \z{####1}^^J}% - \def\minrowclearance####1\relax{(tabu) minrowclearance #1 = \x{####1}^^J}% - \def\tabu@arc@L ####1{(tabu) taburulecolor #1 #1 = ####1^^J}% - \def\tabu@drsc@L ####1{(tabu) tabudoublerulecolor= ####1^^J}% - \def\tabu@evr@L ####1{(tabu) everyrow #1 #1 #1 #1 = \detokenize{####1}^^J}% - \def\tabu@ls@L ####1{(tabu) line style = \detokenize{####1}^^J}% - \def\NC@find ####1\@nil{(tabu) tabu preamble#1 #1 = \detokenize{####1}^^J}% - \def\tabu@wddef####1####2{(tabu) Natural width ####1 = \x{####2}^^J}% - \let\edef \@gobbletwo \let\def \@empty \let\let \@gobbletwo - \tabu@message{% - (tabu) \string\savetabu{\tabu@temp}: \on@line^^J% - \tabu@usetabu \@nil^^J}% - \endgroup} -}\do{ } -%% Measuring the natural width (varwidth) - store the results ------- -\def\tabu@startpboxmeasure #1{\bgroup % entering \vtop - \edef\tabu@temp{\expandafter\@secondoftwo \ifx\tabu@hsize #1\else\relax\fi}% - \ifodd 1\ifx \tabu@temp\@empty 0 \else % starts with \tabu@hsize ? - \iftabu@spread \else % if spread -> measure - \ifdim \tabu@temp\p@>\z@ 0 \fi\fi\fi% if coef>0 -> do not measure - \let\@startpbox \tabu@startpboxORI % restore immediately (nesting) - \tabu@measuringtrue % for the quick option... - \tabu@Xcol =\expandafter\@firstoftwo\ifx\tabu@hsize #1\fi - \ifdim \tabu@temp\p@>\z@ \ifdim \tabu@temp\tabucolX<\tabu@target - \tabu@target=\tabu@temp\tabucolX \fi\fi - \setbox\tabu@box \hbox \bgroup - \begin{varwidth}\tabu@target - \let\FV@ListProcessLine \tabu@FV@ListProcessLine % \hbox to natural width... - \narrowragged \arraybackslash \parfillskip \@flushglue - \ifdefined\pdfadjustspacing \pdfadjustspacing\z@ \fi - \bgroup \aftergroup\tabu@endpboxmeasure - \ifdefined \cellspacetoplimit \tabu@cellspacepatch \fi - \else \expandafter\@gobble - \tabu@startpboxquick{#1}% \@gobble \bgroup - \fi -}% \tabu@startpboxmeasure -\def\tabu@cellspacepatch{\def\bcolumn##1\@nil{}\let\ecolumn\@empty - \bgroup\color@begingroup} -\def\tabu@endpboxmeasure {% - \@finalstrut \@arstrutbox - \end{varwidth}\egroup % - \ifdim \tabu@temp\p@ <\z@ % neg coef - \ifdim \tabu@wd\tabu@Xcol <\wd\tabu@box - \tabu@wddef\tabu@Xcol {\the\wd\tabu@box}% - \tabu@debug{\tabu@message@endpboxmeasure}% - \fi - \else % spread coef>0 - \global\advance \tabu@naturalX \wd\tabu@box - \@tempdima =\dimexpr \wd\tabu@box *\p@/\dimexpr \tabu@temp\p@\relax \relax - \ifdim \tabu@naturalXmax <\tabu@naturalX - \xdef\tabu@naturalXmax {\the\tabu@naturalX}\fi - \ifdim \tabu@naturalXmin <\@tempdima - \xdef\tabu@naturalXmin {\the\@tempdima}\fi - \fi - \box\tabu@box \egroup % end of \vtop (measure) restore \tabu@target -}% \tabu@endpboxmeasure -\def\tabu@wddef #1{\expandafter\xdef - \csname tabu@\the\tabu@nested.W\number#1\endcsname} -\def\tabu@wd #1{\csname tabu@\the\tabu@nested.W\number#1\endcsname} -\def\tabu@message@endpboxmeasure{\tabu@spaces\tabu@spaces<-> % <-> save natural wd - \the\tabu@Xcol. X[\tabu@temp]: - target = \the\tabucolX \space - \expandafter\expandafter\expandafter\string\tabu@wd\tabu@Xcol - =\tabu@wd\tabu@Xcol -}% \tabu@message@endpboxmeasure -\def\tabu@startpboxquick {\bgroup - \let\@startpbox \tabu@startpboxORI % restore immediately - \let\tabu \tabu@quick % \begin is expanded before... - \expandafter\@gobble \@startpbox % gobbles \bgroup -}% \tabu@startpboxquick -\def\tabu@quick {\begingroup \iffalse{\fi \ifnum0=`}\fi - \toks@{}\def\tabu@stack{b}\tabu@collectbody \tabu@endquick -}% \tabu@quick -\def\tabu@endquick {% - \ifodd 1\ifx\tabu@end@envir\tabu@endtabu \else - \ifx\tabu@end@envir\tabu@endtabus \else 0\fi\fi\relax - \endgroup - \else \let\endtabu \relax - \tabu@end@envir - \fi -}% \tabu@quick -\def\tabu@endtabu {\end{tabu}} -\def\tabu@endtabus {\end{tabu*}} -%% Measuring the heights and depths - store the results ------------- -\def\tabu@verticalmeasure{\everypar{}% - \ifnum \currentgrouptype>12 % 14=semi-simple, 15=math shift group - \setbox\tabu@box =\hbox\bgroup - \let\tabu@verticalspacing \tabu@verticalsp@lcr - \d@llarbegin % after \hbox ... - \else - \edef\tabu@temp{\ifnum\currentgrouptype=5\vtop - \else\ifnum\currentgrouptype=12\vcenter - \else\vbox\fi\fi}% - \setbox\tabu@box \hbox\bgroup$\tabu@temp \bgroup - \let\tabu@verticalspacing \tabu@verticalsp@pmb - \fi -}% \tabu@verticalmeasure -\def\tabu@verticalsp@lcr{% - \d@llarend \egroup % - \@tempdima \dimexpr \ht\tabu@box+\abovetabulinesep - \@tempdimb \dimexpr \dp\tabu@box+\belowtabulinesep \relax - \ifdim\tabustrutrule>\z@ \tabu@debug{\tabu@message@verticalsp}\fi - \ifdim \tabu@ht<\@tempdima \tabu@htdef{\the\@tempdima}\fi - \ifdim \tabu@dp<\@tempdimb \tabu@dpdef{\the\@tempdimb}\fi - \noindent\vrule height\@tempdima depth\@tempdimb -}% \tabu@verticalsp@lcr -\def\tabu@verticalsp@pmb{% inserts struts as needed - \par \expandafter\egroup - \expandafter$\expandafter - \egroup \expandafter - \@tempdimc \the\prevdepth - \@tempdima \dimexpr \ht\tabu@box+\abovetabulinesep - \@tempdimb \dimexpr \dp\tabu@box+\belowtabulinesep \relax - \ifdim\tabustrutrule>\z@ \tabu@debug{\tabu@message@verticalsp}\fi - \ifdim \tabu@ht<\@tempdima \tabu@htdef{\the\@tempdima}\fi - \ifdim \tabu@dp<\@tempdimb \tabu@dpdef{\the\@tempdimb}\fi - \let\@finalstrut \@gobble - \hrule height\@tempdima depth\@tempdimb width\hsize -%% \box\tabu@box -}% \tabu@verticalsp@pmb - -\def\tabu@verticalinit{% - \ifnum \c@taburow=\z@ \tabu@rearstrut \fi % after \tabu@reset ! - \advance\c@taburow \@ne - \tabu@htdef{\the\ht\@arstrutbox}\tabu@dpdef{\the\dp\@arstrutbox}% - \advance\c@taburow \m@ne -}% \tabu@verticalinit -\def\tabu@htdef {\expandafter\xdef \csname tabu@\the\tabu@nested.H\the\c@taburow\endcsname} -\def\tabu@ht {\csname tabu@\the\tabu@nested.H\the\c@taburow\endcsname} -\def\tabu@dpdef {\expandafter\xdef \csname tabu@\the\tabu@nested.D\the\c@taburow\endcsname} -\def\tabu@dp {\csname tabu@\the\tabu@nested.D\the\c@taburow\endcsname} -\def\tabu@verticaldynamicadjustment {% - \advance\c@taburow \@ne - \extrarowheight \dimexpr\tabu@ht - \ht\strutbox - \extrarowdepth \dimexpr\tabu@dp - \dp\strutbox - \let\arraystretch \@empty - \advance\c@taburow \m@ne -}% \tabu@verticaldynamicadjustment -\def\tabuphantomline{\crcr \noalign{% - {\globaldefs \@ne - \setbox\@arstrutbox \box\voidb@x - \let\tabu@@celllalign \tabu@celllalign - \let\tabu@@cellralign \tabu@cellralign - \let\tabu@@cellleft \tabu@cellleft - \let\tabu@@cellright \tabu@cellright - \let\tabu@@thevline \tabu@thevline - \let\tabu@celllalign \@empty - \let\tabu@cellralign \@empty - \let\tabu@cellright \@empty - \let\tabu@cellleft \@empty - \let\tabu@thevline \relax}% - \edef\tabu@temp{\tabu@multispan \tabu@nbcols{\noindent &}}% - \toks@\expandafter{\tabu@temp \noindent\tabu@everyrowfalse \cr - \noalign{\tabu@rearstrut - {\globaldefs\@ne - \let\tabu@celllalign \tabu@@celllalign - \let\tabu@cellralign \tabu@@cellralign - \let\tabu@cellleft \tabu@@cellleft - \let\tabu@cellright \tabu@@cellright - \let\tabu@thevline \tabu@@thevline}}}% - \expandafter}\the\toks@ -}% \tabuphantomline -%% \firsthline and \lasthline corrections --------------------------- -\def\tabu@firstline {\tabu@hlineAZ \tabu@firsthlinecorrection {}} -\def\tabu@firsthline{\tabu@hlineAZ \tabu@firsthlinecorrection \hline} -\def\tabu@lastline {\tabu@hlineAZ \tabu@lasthlinecorrection {}} -\def\tabu@lasthline {\tabu@hlineAZ \tabu@lasthlinecorrection \hline} -\def\tabu@hline {% replaces \hline if no colortbl (see \AtBeginDocument) - \noalign{\ifnum0=`}\fi - {\CT@arc@\hrule height\arrayrulewidth}% - \futurelet \tabu@temp \tabu@xhline -}% \tabu@hline -\def\tabu@xhline{% - \ifx \tabu@temp \hline - {\ifx \CT@drsc@\relax \vskip - \else\ifx \CT@drsc@\@empty \vskip - \else \CT@drsc@\hrule height - \fi\fi - \doublerulesep}% - \fi - \ifnum0=`{\fi}% -}% \tabu@xhline -\def\tabu@hlineAZ #1#2{\noalign{\ifnum0=`}\fi \dimen@ \z@ \count@ \z@ - \toks@{}\def\tabu@hlinecorrection{#1}\def\tabu@temp{#2}% - \tabu@hlineAZsurround -}% \tabu@hlineAZ -\newcommand*\tabu@hlineAZsurround[1][\extratabsurround]{% - \extratabsurround #1\let\tabucline \tabucline@scan - \let\hline \tabu@hlinescan \let\firsthline \hline - \let\cline \tabu@clinescan \let\lasthline \hline - \expandafter \futurelet \expandafter \tabu@temp - \expandafter \tabu@nexthlineAZ \tabu@temp -}% \tabu@hlineAZsurround -\def\tabu@hlinescan {\tabu@thick \arrayrulewidth \tabu@xhlineAZ \hline} -\def\tabu@clinescan #1{\tabu@thick \arrayrulewidth \tabu@xhlineAZ {\cline{#1}}} -\def\tabucline@scan{\@testopt \tabucline@sc@n {}} -\def\tabucline@sc@n #1[#2]{\tabu@xhlineAZ {\tabucline[{#1}]{#2}}} -\def\tabu@nexthlineAZ{% - \ifx \tabu@temp\hline \else - \ifx \tabu@temp\cline \else - \ifx \tabu@temp\tabucline \else - \tabu@hlinecorrection - \fi\fi\fi -}% \tabu@nexthlineAZ -\def\tabu@xhlineAZ #1{% - \toks@\expandafter{\the\toks@ #1}% - \@tempdimc \tabu@thick % The last line width - \ifcase\count@ \@tempdimb \tabu@thick % The first line width - \else \advance\dimen@ \dimexpr \tabu@thick+\doublerulesep \relax - \fi - \advance\count@ \@ne \futurelet \tabu@temp \tabu@nexthlineAZ -}% \tabu@xhlineAZ -\def\tabu@firsthlinecorrection{% \count@ = number of \hline -1 - \@tempdima \dimexpr \ht\@arstrutbox+\dimen@ - \edef\firsthline{% - \omit \hbox to\z@{\hss{\noexpand\tabu@DBG{yellow}\vrule - height \the\dimexpr\@tempdima+\extratabsurround - depth \dp\@arstrutbox - width \tabustrutrule}\hss}\cr - \noalign{\vskip -\the\dimexpr \@tempdima+\@tempdimb - +\dp\@arstrutbox \relax}% - \the\toks@ - }\ifnum0=`{\fi - \expandafter}\firsthline % we are then ! -}% \tabu@firsthlinecorrection -\def\tabu@lasthlinecorrection{% - \@tempdima \dimexpr \dp\@arstrutbox+\dimen@+\@tempdimb+\@tempdimc - \edef\lasthline{% - \the\toks@ - \noalign{\vskip -\the\dimexpr\dimen@+\@tempdimb+\dp\@arstrutbox}% - \omit \hbox to\z@{\hss{\noexpand\tabu@DBG{yellow}\vrule - depth \the\dimexpr \dp\@arstrutbox+\@tempdimb+\dimen@ - +\extratabsurround-\@tempdimc - height \z@ - width \tabustrutrule}\hss}\cr - }\ifnum0=`{\fi - \expandafter}\lasthline % we are then ! -}% \tabu@lasthlinecorrection -\def\tabu@LT@@hline{% - \ifx\LT@next\hline - \global\let\LT@next \@gobble - \ifx \CT@drsc@\relax - \gdef\CT@LT@sep{% - \noalign{\penalty-\@medpenalty\vskip\doublerulesep}}% - \else - \gdef\CT@LT@sep{% - \multispan\LT@cols{% - \CT@drsc@\leaders\hrule\@height\doublerulesep\hfill}\cr}% - \fi - \else - \global\let\LT@next\empty - \gdef\CT@LT@sep{% - \noalign{\penalty-\@lowpenalty\vskip-\arrayrulewidth}}% - \fi - \ifnum0=`{\fi}% - \multispan\LT@cols - {\CT@arc@\leaders\hrule\@height\arrayrulewidth\hfill}\cr - \CT@LT@sep - \multispan\LT@cols - {\CT@arc@\leaders\hrule\@height\arrayrulewidth\hfill}\cr - \noalign{\penalty\@M}% - \LT@next -}% \tabu@LT@@hline -%% Horizontal lines : \tabucline ------------------------------------ -\let\tabu@start \@tempcnta -\let\tabu@stop \@tempcntb -\newcommand*\tabucline{\noalign{\ifnum0=`}\fi \tabu@cline} -\newcommand*\tabu@cline[2][]{\tabu@startstop{#2}% - \ifnum \tabu@stop<\z@ \toks@{}% - \else \tabu@clinearg{#1}\tabu@thestyle - \edef\tabucline{\toks@{% - \ifnum \tabu@start>\z@ \omit - \tabu@multispan\tabu@start {\span\omit}&\fi - \omit \tabu@multispan\tabu@stop {\span\omit}% - \tabu@thehline\cr - }}\tabucline - \tabu@tracinglines{(tabu:tabucline) Style: #1^^J\the\toks@^^J^^J}% - \fi - \futurelet \tabu@temp \tabu@xcline -}% \tabu@cline -\def\tabu@clinearg #1{% - \ifx\\#1\\\let\tabu@thestyle \tabu@ls@ - \else \@defaultunits \expandafter\let\expandafter\@tempa - \romannumeral-`\0#1\relax \@nnil - \ifx \hbox\@tempa \tabu@clinebox{#1}% - \else\ifx \box\@tempa \tabu@clinebox{#1}% - \else\ifx \vbox\@tempa \tabu@clinebox{#1}% - \else\ifx \vtop\@tempa \tabu@clinebox{#1}% - \else\ifx \copy\@tempa \tabu@clinebox{#1}% - \else\ifx \leaders\@tempa \tabu@clineleads{#1}% - \else\ifx \cleaders\@tempa \tabu@clineleads{#1}% - \else\ifx \xleaders\@tempa \tabu@clineleads{#1}% - \else\tabu@getline {#1}% - \fi\fi\fi\fi\fi\fi\fi\fi - \fi -}% \tabu@clinearg -\def\tabu@clinebox #1{\tabu@clineleads{\xleaders#1\hss}} -\def\tabu@clineleads #1{% - \let\tabu@thestyle \relax \let\tabu@leaders \@undefined - \gdef\tabu@thehrule{#1}} -\def\tabu@thehline{\begingroup - \ifdefined\tabu@leaders - \noexpand\tabu@thehleaders - \else \noexpand\tabu@thehrule - \fi \endgroup -}% \tabu@thehline -\def\tabu@xcline{% - \ifx \tabu@temp\tabucline - \toks@\expandafter{\the\toks@ \noalign - {\ifx\CT@drsc@\relax \vskip - \else \CT@drsc@\hrule height - \fi - \doublerulesep}}% - \fi - \tabu@docline -}% \tabu@xcline -\def\tabu@docline {\ifnum0=`{\fi \expandafter}\the\toks@} -\def\tabu@docline@evr {\xdef\tabu@doclineafter{\the\toks@}% - \ifnum0=`{\fi}\aftergroup\tabu@doclineafter} -\def\tabu@multispan #1#2{% - \ifnum\numexpr#1>\@ne #2\expandafter\tabu@multispan - \else \expandafter\@gobbletwo - \fi {#1-1}{#2}% -}% \tabu@multispan -\def\tabu@startstop #1{\tabu@start@stop #1\relax 1-\tabu@nbcols \@nnil} -\def\tabu@start@stop #1-#2\@nnil{% - \@defaultunits \tabu@start\number 0#1\relax \@nnil - \@defaultunits \tabu@stop \number 0#2\relax \@nnil - \tabu@stop \ifnum \tabu@start>\tabu@nbcols \m@ne - \else\ifnum \tabu@stop=\z@ \tabu@nbcols - \else\ifnum \tabu@stop>\tabu@nbcols \tabu@nbcols - \else \tabu@stop - \fi\fi\fi - \advance\tabu@start \m@ne - \ifnum \tabu@start>\z@ \advance\tabu@stop -\tabu@start \fi -}% \tabu@start@stop -%% Numbers: siunitx S columns (and \tabudecimal) ------------------- -\def\tabu@tabudecimal #1{% - \def\tabu@decimal{#1}\@temptokena{}% - \let\tabu@getdecimal@ \tabu@getdecimal@ignorespaces - \tabu@scandecimal -}% \tabu@tabudecimal -\def\tabu@scandecimal{\futurelet \tabu@temp \tabu@getdecimal@} -\def\tabu@skipdecimal#1{#1\tabu@scandecimal} -\def\tabu@getdecimal@ignorespaces{% - \ifcase 0\ifx\tabu@temp\ignorespaces\else - \ifx\tabu@temp\@sptoken1\else - 2\fi\fi\relax - \let\tabu@getdecimal@ \tabu@getdecimal - \expandafter\tabu@skipdecimal - \or \expandafter\tabu@gobblespace\expandafter\tabu@scandecimal - \else \expandafter\tabu@skipdecimal - \fi -}% \tabu@getdecimal@ignorespaces -\def\tabu@get@decimal#1{\@temptokena\expandafter{\the\@temptokena #1}% - \tabu@scandecimal} -\def\do#1{% - \def\tabu@get@decimalspace#1{% - \@temptokena\expandafter{\the\@temptokena #1}\tabu@scandecimal}% -}\do{ } -\let\tabu@@tabudecimal \tabu@tabudecimal -\def\tabu@getdecimal{% - \ifcase 0\ifx 0\tabu@temp\else - \ifx 1\tabu@temp\else - \ifx 2\tabu@temp\else - \ifx 3\tabu@temp\else - \ifx 4\tabu@temp\else - \ifx 5\tabu@temp\else - \ifx 6\tabu@temp\else - \ifx 7\tabu@temp\else - \ifx 8\tabu@temp\else - \ifx 9\tabu@temp\else - \ifx .\tabu@temp\else - \ifx ,\tabu@temp\else - \ifx -\tabu@temp\else - \ifx +\tabu@temp\else - \ifx e\tabu@temp\else - \ifx E\tabu@temp\else - \ifx\tabu@cellleft\tabu@temp1\else - \ifx\ignorespaces\tabu@temp1\else - \ifx\@sptoken\tabu@temp2\else - 3\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\relax - \expandafter\tabu@get@decimal - \or \expandafter\tabu@skipdecimal - \or \expandafter\tabu@get@decimalspace - \else\expandafter\tabu@printdecimal - \fi -}% \tabu@getdecimal -\def\tabu@printdecimal{% - \edef\tabu@temp{\the\@temptokena}% - \ifx\tabu@temp\@empty\else - \ifx\tabu@temp\space\else - \expandafter\tabu@decimal\expandafter{\the\@temptokena}% - \fi\fi -}% \tabu@printdecimal -%% Verbatim inside X columns ---------------------------------------- -\def\tabu@verbatim{% - \let\verb \tabu@verb - \let\FV@DefineCheckEnd \tabu@FV@DefineCheckEnd -}% \tabu@verbatim -\let\tabu@ltx@verb \verb -\def\tabu@verb{\@ifstar {\tabu@ltx@verb*} \tabu@ltx@verb} -\def\tabu@fancyvrb {% - \def\tabu@FV@DefineCheckEnd ##1{% - \def\tabu@FV@DefineCheckEnd{% - ##1% - \let\FV@CheckEnd \tabu@FV@CheckEnd - \let\FV@@CheckEnd \tabu@FV@@CheckEnd - \let\FV@@@CheckEnd \tabu@FV@@@CheckEnd - \edef\FV@EndScanning{% - \def\noexpand\next{\noexpand\end{\FV@EnvironName}}% - \global\let\noexpand\FV@EnvironName\relax - \noexpand\next}% - \xdef\FV@EnvironName{\detokenize\expandafter{\FV@EnvironName}}}% - }\expandafter\tabu@FV@DefineCheckEnd\expandafter{\FV@DefineCheckEnd} -}% \tabu@fancyvrb -\def\tabu@FV@CheckEnd #1{\expandafter\FV@@CheckEnd \detokenize{#1\end{}}\@nil} -\edef\tabu@FV@@@CheckEnd {\detokenize{\end{}}} -\begingroup -\catcode`\[1 \catcode`\]2 -\@makeother\{ \@makeother\} - \edef\x[\endgroup - \def\noexpand\tabu@FV@@CheckEnd ##1\detokenize[\end{]##2\detokenize[}]##3% - ]\x \@nil{\def\@tempa{#2}\def\@tempb{#3}} -\def\tabu@FV@ListProcessLine #1{% - \hbox {%to \hsize{% - \kern\leftmargin - \hbox {%to \linewidth{% - \FV@LeftListNumber - \FV@LeftListFrame - \FancyVerbFormatLine{#1}\hss -%% DG/SR modification begin - Jan. 28, 1998 (for numbers=right add-on) -%% \FV@RightListFrame}% - \FV@RightListFrame - \FV@RightListNumber}% -%% DG/SR modification end - \hss}} -%% \savetabu -------------------------------------------------------- -\newcommand*\savetabu[1]{\noalign{% - \tabu@sanitizearg{#1}\tabu@temp - \ifx \tabu@temp\@empty \tabu@savewarn{}{The tabu will not be saved}\else - \@ifundefined{tabu@saved@\tabu@temp}{}{\tabu@savewarn{#1}{Overwriting}}% - \ifdefined\tabu@restored \expandafter\let - \csname tabu@saved@\tabu@temp \endcsname \tabu@restored - \else {\tabu@save}% - \fi - \fi}% -}% \savetabu -\def\tabu@save {% - \toks0\expandafter{\tabu@saved@}% - \iftabu@negcoef - \let\tabu@wddef \relax \let\tabu@ \tabu@savewd \edef\tabu@savewd{\tabu@Xcoefs}% - \toks0\expandafter{\the\toks\expandafter0\tabu@savewd}\fi - \toks1\expandafter{\tabu@savedpream}% - \toks2\expandafter{\tabu@savedpreamble}% - \let\@preamble \relax - \let\tabu@savedpream \relax \let\tabu@savedparams \relax - \edef\tabu@preamble{% - \def\noexpand\tabu@aligndefault{\tabu@align}% - \def\tabu@savedparams {\noexpand\the\toks0}% - \def\tabu@savedpream {\noexpand\the\toks1}}% - \edef\tabu@usetabu{% - \def\@preamble {\noexpand\the\toks2}% - \tabu@target \the\tabu@target \relax - \tabucolX \the\tabucolX \relax - \tabu@nbcols \the\tabu@nbcols \relax - \def\noexpand\tabu@aligndefault{\tabu@align}% - \def\tabu@savedparams {\noexpand\the\toks0}% - \def\tabu@savedpream {\noexpand\the\toks1}}% - \let\tabu@aligndefault \relax \let\@sharp \relax - \edef\@tempa{\noexpand\tabu@s@ved - {\tabu@usetabu} - {\tabu@preamble} - {\the\toks1}}\@tempa - \tabu@message@save -}% \tabu@save -\long\def\tabu@s@ved #1#2#3{% - \def\tabu@usetabu{#1}% - \expandafter\gdef\csname tabu@saved@\tabu@temp\endcsname ##1{% - \ifodd ##1% \usetabu - \tabu@measuringfalse \tabu@spreadfalse % Just in case... - \gdef\tabu@usetabu {% - \ifdim \tabu@target>\z@ \tabu@warn@usetabu \fi - \global\let\tabu@usetabu \@undefined - \def\@halignto {to\tabu@target}% - #1% - \ifx \tabu@align\tabu@aligndefault@text - \ifnum \tabu@nested=\z@ - \let\tabu@align \tabu@aligndefault \fi\fi}% - \else % \preamble - \gdef\tabu@preamble {% - \global\let\tabu@preamble \@undefined - #2% - \ifx \tabu@align\tabu@aligndefault@text - \ifnum \tabu@nested=\z@ - \let\tabu@align \tabu@aligndefault \fi\fi}% - \fi - #3}% -}% \tabu@s@ved -\def\tabu@aligndefault@text {\tabu@aligndefault}% -\def\tabu@warn@usetabu {\PackageWarning{tabu} - {Specifying a target with \string\usetabu\space is useless - \MessageBreak The target cannot be changed!}} -\def\tabu@savewd #1#2{\ifdim #2\p@<\z@ \tabu@wddef{#1}{\tabu@wd{#1}}\fi} -\def\tabu@savewarn#1#2{\PackageInfo{tabu} - {User-name `#1' already used for \string\savetabu - \MessageBreak #2}}% -\def\tabu@saveerr#1{\PackageError{tabu} - {User-name `#1' is unknown for \string\usetabu - \MessageBreak I cannot restore an unknown preamble!}\@ehd} -%% \rowfont --------------------------------------------------------- -\newskip \tabu@cellskip -\def\tabu@rowfont{\ifdim \baselineskip=\z@\noalign\fi - {\ifnum0=`}\fi \tabu@row@font} -\newcommand*\tabu@row@font[2][]{% - \ifnum7=\currentgrouptype - \global\let\tabu@@cellleft \tabu@cellleft - \global\let\tabu@@cellright \tabu@cellright - \global\let\tabu@@celllalign \tabu@celllalign - \global\let\tabu@@cellralign \tabu@cellralign - \global\let\tabu@@rowfontreset\tabu@rowfontreset - \fi - \global\let\tabu@rowfontreset \tabu@rowfont@reset - \expandafter\gdef\expandafter\tabu@cellleft\expandafter{\tabu@cellleft #2}% - \ifcsname tabu@cell@#1\endcsname % row alignment - \csname tabu@cell@#1\endcsname \fi - \ifnum0=`{\fi}% end of group / noalign group -}% \rowfont -\def\tabu@ifcolorleavevmode #1{\let\color \tabu@leavevmodecolor #1\let\color\tabu@color}% -\def\tabu@rowfont@reset{% - \global\let\tabu@rowfontreset \tabu@@rowfontreset - \global\let\tabu@cellleft \tabu@@cellleft - \global\let\tabu@cellright \tabu@@cellright - \global\let\tabu@cellfont \@empty - \global\let\tabu@celllalign \tabu@@celllalign - \global\let\tabu@cellralign \tabu@@cellralign -}% \tabu@@rowfontreset -\let\tabu@rowfontreset \@empty % overwritten \AtBeginDocument if colortbl -%% \tabu@prepnext@tok ----------------------------------------------- -\newif \iftabu@cellright -\def\tabu@prepnext@tok{% - \ifnum \count@<\z@ % - \@tempcnta \@M % - \tabu@nbcols\z@ - \let\tabu@fornoopORI \@fornoop - \tabu@cellrightfalse - \else - \ifcase \numexpr \count@-\@tempcnta \relax % (case 0): prev. token is left - \advance \tabu@nbcols \@ne - \iftabu@cellright % before-previous token is right and is finished - \tabu@cellrightfalse % - \tabu@righttok - \fi - \tabu@lefttok - \or % (case 1) previous token is right - \tabu@cellrighttrue \let\@fornoop \tabu@lastnoop - \else % special column: do not change the token - \iftabu@cellright % before-previous token is right - \tabu@cellrightfalse - \tabu@righttok - \fi - \fi % \ifcase - \fi - \tabu@prepnext@tokORI -}% \tabu@prepnext@tok -\long\def\tabu@lastnoop#1\@@#2#3{\tabu@lastn@@p #2\@nextchar \in@\in@@} -\def\tabu@lastn@@p #1\@nextchar #2#3\in@@{% - \ifx \in@#2\else - \let\@fornoop \tabu@fornoopORI - \xdef\tabu@mkpreambuffer{\tabu@nbcols\the\tabu@nbcols \tabu@mkpreambuffer}% - \toks0\expandafter{\expandafter\tabu@everyrowtrue \the\toks0}% - \expandafter\prepnext@tok - \fi -}% \tabu@lastnoop -\def\tabu@righttok{% - \advance \count@ \m@ne - \toks\count@\expandafter {\the\toks\count@ \tabu@cellright \tabu@cellralign}% - \advance \count@ \@ne -}% \tabu@righttok -\def\tabu@lefttok{\toks\count@\expandafter{\expandafter\tabu@celllalign - \the\toks\count@ \tabu@cellleft}% after because of $ -}% \tabu@lefttok -%% Neutralisation of glues ------------------------------------------ -\let\tabu@cellleft \@empty -\let\tabu@cellright \@empty -\tabu@celllalign@def{\tabu@cellleft}% -\let\tabu@cellralign \@empty -\def\tabu@cell@align #1#2#3{% - \let\tabu@maybesiunitx \toks@ \tabu@celllalign - \global \expandafter \tabu@celllalign@def \expandafter {\the\toks@ #1}% - \toks@\expandafter{\tabu@cellralign #2}% - \xdef\tabu@cellralign{\the\toks@}% - \toks@\expandafter{\tabu@cellleft #3}% - \xdef\tabu@cellleft{\the\toks@}% -}% \tabu@cell@align -\def\tabu@cell@l{% force alignment to left - \tabu@cell@align - {\tabu@removehfil \raggedright \tabu@cellleft}% left - {\tabu@flush1\tabu@ignorehfil}% right - \raggedright -}% \tabu@cell@l -\def\tabu@cell@c{% force alignment to center - \tabu@cell@align - {\tabu@removehfil \centering \tabu@flush{.5}\tabu@cellleft} - {\tabu@flush{.5}\tabu@ignorehfil} - \centering -}% \tabu@cell@c -\def\tabu@cell@r{% force alignment to right - \tabu@cell@align - {\tabu@removehfil \raggedleft \tabu@flush1\tabu@cellleft} - \tabu@ignorehfil - \raggedleft -}% \tabu@cell@r -\def\tabu@cell@j{% force justification (for p, m, b columns) - \tabu@cell@align - {\tabu@justify\tabu@cellleft} - {} - \tabu@justify -}% \tabu@cell@j -\def\tabu@justify{% - \leftskip\z@skip \@rightskip\leftskip \rightskip\@rightskip - \parfillskip\@flushglue -}% \tabu@justify -%% ragged2e settings -\def\tabu@cell@L{% force alignment to left (ragged2e) - \tabu@cell@align - {\tabu@removehfil \RaggedRight \tabu@cellleft} - {\tabu@flush 1\tabu@ignorehfil} - \RaggedRight -}% \tabu@cell@L -\def\tabu@cell@C{% force alignment to center (ragged2e) - \tabu@cell@align - {\tabu@removehfil \Centering \tabu@flush{.5}\tabu@cellleft} - {\tabu@flush{.5}\tabu@ignorehfil} - \Centering -}% \tabu@cell@C -\def\tabu@cell@R{% force alignment to right (ragged2e) - \tabu@cell@align - {\tabu@removehfil \RaggedLeft \tabu@flush 1\tabu@cellleft} - \tabu@ignorehfil - \RaggedLeft -}% \tabu@cell@R -\def\tabu@cell@J{% force justification (ragged2e) - \tabu@cell@align - {\justifying \tabu@cellleft} - {} - \justifying -}% \tabu@cell@J -\def\tabu@flush#1{% - \iftabu@colortbl % colortbl uses \hfill rather than \hfil - \hskip \ifnum13<\currentgrouptype \stretch{#1}% - \else \ifdim#1pt<\p@ \tabu@cellskip - \else \stretch{#1} - \fi\fi \relax - \else % array.sty - \ifnum 13<\currentgrouptype - \hfil \hskip1sp \relax \fi - \fi -}% \tabu@flush -\let\tabu@hfil \hfil -\let\tabu@hfill \hfill -\let\tabu@hskip \hskip -\def\tabu@removehfil{% - \iftabu@colortbl - \unkern \tabu@cellskip =\lastskip - \ifnum\gluestretchorder\tabu@cellskip =\tw@ \hskip-\tabu@cellskip - \else \tabu@cellskip \z@skip - \fi - \else - \ifdim\lastskip=1sp\unskip\fi - \ifnum\gluestretchorder\lastskip =\@ne - \hfilneg % \hfilneg for array.sty but not for colortbl... - \fi - \fi -}% \tabu@removehfil -\def\tabu@ignorehfil{\aftergroup \tabu@nohfil} -\def\tabu@nohfil{% \hfil -> do nothing + restore original \hfil - \def\hfil{\let\hfil \tabu@hfil}% local to (alignment template) group -}% \tabu@nohfil -\def\tabu@colortblalignments {% if colortbl - \def\tabu@nohfil{% - \def\hfil {\let\hfil \tabu@hfil}% local to (alignment template) group - \def\hfill {\let\hfill \tabu@hfill}% (colortbl uses \hfill) pfff... - \def\hskip ####1\relax{\let\hskip \tabu@hskip}}% local -}% \tabu@colortblalignments -%% Taking care of footnotes and hyperfootnotes ---------------------- -\long\def\tabu@footnotetext #1{% - \edef\@tempa{\the\tabu@footnotes - \noexpand\footnotetext [\the\csname c@\@mpfn\endcsname]}% - \global\tabu@footnotes\expandafter{\@tempa {#1}}}% -\long\def\tabu@xfootnotetext [#1]#2{% - \global\tabu@footnotes\expandafter{\the\tabu@footnotes - \footnotetext [{#1}]{#2}}} -\let\tabu@xfootnote \@xfootnote -\long\def\tabu@Hy@ftntext{\tabu@Hy@ftntxt {\the \c@footnote }} -\long\def\tabu@Hy@xfootnote [#1]{% - \begingroup - \value\@mpfn #1\relax - \protected@xdef \@thefnmark {\thempfn}% - \endgroup - \@footnotemark \tabu@Hy@ftntxt {#1}% -}% \tabu@Hy@xfootnote -\long\def\tabu@Hy@ftntxt #1#2{% - \edef\@tempa{% - \the\tabu@footnotes - \begingroup - \value\@mpfn #1\relax - \noexpand\protected@xdef\noexpand\@thefnmark {\noexpand\thempfn}% - \expandafter \noexpand \expandafter - \tabu@Hy@footnotetext \expandafter{\Hy@footnote@currentHref}% - }% - \global\tabu@footnotes\expandafter{\@tempa {#2}% - \endgroup}% -}% \tabu@Hy@ftntxt -\long\def\tabu@Hy@footnotetext #1#2{% - \H@@footnotetext{% - \ifHy@nesting - \hyper@@anchor {#1}{#2}% - \else - \Hy@raisedlink{% - \hyper@@anchor {#1}{\relax}% - }% - \def\@currentHref {#1}% - \let\@currentlabelname \@empty - #2% - \fi - }% -}% \tabu@Hy@footnotetext -%% No need for \arraybackslash ! ------------------------------------ -\def\tabu@latextwoe {% -\def\tabu@temp##1##2##3{{\toks@\expandafter{##2##3}\xdef##1{\the\toks@}}} -\tabu@temp \tabu@centering \centering \arraybackslash -\tabu@temp \tabu@raggedleft \raggedleft \arraybackslash -\tabu@temp \tabu@raggedright \raggedright \arraybackslash -}% \tabu@latextwoe -\def\tabu@raggedtwoe {% -\def\tabu@temp ##1##2##3{{\toks@\expandafter{##2##3}\xdef##1{\the\toks@}}} -\tabu@temp \tabu@Centering \Centering \arraybackslash -\tabu@temp \tabu@RaggedLeft \RaggedLeft \arraybackslash -\tabu@temp \tabu@RaggedRight \RaggedRight \arraybackslash -\tabu@temp \tabu@justifying \justifying \arraybackslash -}% \tabu@raggedtwoe -\def\tabu@normalcrbackslash{\let\\\@normalcr} -\def\tabu@trivlist{\expandafter\def\expandafter\@trivlist\expandafter{% - \expandafter\tabu@normalcrbackslash \@trivlist}} -%% Utilities: \fbox \fcolorbox and \tabudecimal ------------------- -\def\tabu@fbox {\leavevmode\afterassignment\tabu@beginfbox \setbox\@tempboxa\hbox} -\def\tabu@beginfbox {\bgroup \kern\fboxsep - \bgroup\aftergroup\tabu@endfbox} -\def\tabu@endfbox {\kern\fboxsep\egroup\egroup - \@frameb@x\relax} -\def\tabu@color@b@x #1#2{\leavevmode \bgroup - \def\tabu@docolor@b@x{#1{#2\color@block{\wd\z@}{\ht\z@}{\dp\z@}\box\z@}}% - \afterassignment\tabu@begincolor@b@x \setbox\z@ \hbox -}% \tabu@color@b@x -\def\tabu@begincolor@b@x {\kern\fboxsep \bgroup - \aftergroup\tabu@endcolor@b@x \set@color} -\def\tabu@endcolor@b@x {\kern\fboxsep \egroup - \dimen@\ht\z@ \advance\dimen@ \fboxsep \ht\z@ \dimen@ - \dimen@\dp\z@ \advance\dimen@ \fboxsep \dp\z@ \dimen@ - \tabu@docolor@b@x \egroup -}% \tabu@endcolor@b@x -%% Corrections (arydshln, delarray, colortbl) ----------------------- -\def\tabu@fix@arrayright {%% \@arrayright is missing from \endarray - \iftabu@colortbl - \ifdefined\adl@array % - \def\tabu@endarray{% - \adl@endarray \egroup \adl@arrayrestore \CT@end \egroup % - \@arrayright % - \gdef\@preamble{}}% - \else % - \def\tabu@endarray{% - \crcr \egroup \egroup % - \@arrayright % - \gdef\@preamble{}\CT@end}% - \fi - \else - \ifdefined\adl@array % - \def\tabu@endarray{% - \adl@endarray \egroup \adl@arrayrestore \egroup % - \@arrayright % - \gdef\@preamble{}}% - \else % - \PackageWarning{tabu} - {\string\@arrayright\space is missing from the - \MessageBreak definition of \string\endarray. - \MessageBreak Compatibility with delarray.sty is broken.}% - \fi\fi -}% \tabu@fix@arrayright -\def\tabu@adl@xarraydashrule #1#2#3{% - \ifnum\@lastchclass=\adl@class@start\else - \ifnum\@lastchclass=\@ne\else - \ifnum\@lastchclass=5 \else % @-arg (class 5) and !-arg (class 1) - \adl@leftrulefalse \fi\fi % must be treated the same - \fi - \ifadl@zwvrule\else \ifadl@inactive\else - \@addtopreamble{\vrule\@width\arrayrulewidth - \@height\z@ \@depth\z@}\fi \fi - \ifadl@leftrule - \@addtopreamble{\adl@vlineL{\CT@arc@}{\adl@dashgapcolor}% - {\number#1}#3}% - \else \@addtopreamble{\adl@vlineR{\CT@arc@}{\adl@dashgapcolor}% - {\number#2}#3} - \fi -}% \tabu@adl@xarraydashrule -\def\tabu@adl@act@endpbox {% - \unskip \ifhmode \nobreak \fi \@finalstrut \@arstrutbox - \egroup \egroup - \adl@colhtdp \box\adl@box \hfil -}% \tabu@adl@act@endpbox -\def\tabu@adl@fix {% - \let\adl@xarraydashrule \tabu@adl@xarraydashrule % arydshln - \let\adl@act@endpbox \tabu@adl@act@endpbox % arydshln - \let\adl@act@@endpbox \tabu@adl@act@endpbox % arydshln - \let\@preamerror \@preamerr % arydshln -}% \tabu@adl@fix -%% Correction for longtable' \@startbox definition ------------------ -%% => \everypar is ``missing'' : TeX should be in vertical mode -\def\tabu@LT@startpbox #1{% - \bgroup - \let\@footnotetext\LT@p@ftntext - \setlength\hsize{#1}% - \@arrayparboxrestore - \everypar{% - \vrule \@height \ht\@arstrutbox \@width \z@ - \everypar{}}% -}% \tabu@LT@startpbox -%% \tracingtabu and the package options ------------------ -\DeclareOption{delarray}{\AtEndOfPackage{\RequirePackage{delarray}}} -\DeclareOption{linegoal}{% - \AtEndOfPackage{% - \RequirePackage{linegoal}[2010/12/07]% - \let\tabudefaulttarget \linegoal% \linegoal is \linewidth if not pdfTeX -}} -\DeclareOption{scantokens}{\tabuscantokenstrue} -\DeclareOption{debugshow}{\AtEndOfPackage{\tracingtabu=\tw@}} -\def\tracingtabu {\begingroup\@ifnextchar=% - {\afterassignment\tabu@tracing\count@} - {\afterassignment\tabu@tracing\count@1\relax}} -\def\tabu@tracing{\expandafter\endgroup - \expandafter\tabu@tr@cing \the\count@ \relax -}% \tabu@tracing -\def\tabu@tr@cing #1\relax {% - \ifnum#1>\thr@@ \let\tabu@tracinglines\message - \else \let\tabu@tracinglines\@gobble - \fi - \ifnum#1>\tw@ \let\tabu@DBG \tabu@@DBG - \def\tabu@mkarstrut {\tabu@DBG@arstrut}% - \tabustrutrule 1.5\p@ - \else \let\tabu@DBG \@gobble - \def\tabu@mkarstrut {\tabu@arstrut}% - \tabustrutrule \z@ - \fi - \ifnum#1>\@ne \let\tabu@debug \message - \else \let\tabu@debug \@gobble - \fi - \ifnum#1>\z@ - \let\tabu@message \message - \let\tabu@tracing@save \tabu@message@save - \let\tabu@starttimer \tabu@pdftimer - \else - \let\tabu@message \@gobble - \let\tabu@tracing@save \@gobble - \let\tabu@starttimer \relax - \fi -}% \tabu@tr@cing -%% Setup \AtBeginDocument -\AtBeginDocument{\tabu@AtBeginDocument} -\def\tabu@AtBeginDocument{\let\tabu@AtBeginDocument \@undefined - \ifdefined\arrayrulecolor \tabu@colortbltrue % - \tabu@colortblalignments % different glues are used - \else \tabu@colortblfalse \fi - \ifdefined\CT@arc@ \else \let\CT@arc@ \relax \fi - \ifdefined\CT@drsc@\else \let\CT@drsc@ \relax \fi - \let\tabu@arc@L \CT@arc@ \let\tabu@drsc@L \CT@drsc@ - \ifodd 1\ifcsname siunitx_table_collect_begin:Nn\endcsname % - \expandafter\ifx - \csname siunitx_table_collect_begin:Nn\endcsname\relax 0\fi\fi\relax - \tabu@siunitxtrue - \else \let\tabu@maybesiunitx \@firstofone % - \let\tabu@siunitx \tabu@nosiunitx - \tabu@siunitxfalse - \fi - \ifdefined\adl@array % - \else \let\tabu@adl@fix \relax - \let\tabu@adl@endtrial \@empty \fi - \ifdefined\longtable % - \else \let\longtabu \tabu@nolongtabu \fi - \ifdefined\cellspacetoplimit \tabu@warn@cellspace\fi - \csname\ifcsname ifHy@hyperfootnotes\endcsname % - ifHy@hyperfootnotes\else iffalse\fi\endcsname - \let\tabu@footnotetext \tabu@Hy@ftntext - \let\tabu@xfootnote \tabu@Hy@xfootnote \fi - \ifdefined\FV@DefineCheckEnd% - \tabu@fancyvrb \fi - \ifdefined\color % - \let\tabu@color \color - \def\tabu@leavevmodecolor ##1{% - \def\tabu@leavevmodecolor {\leavevmode ##1}% - }\expandafter\tabu@leavevmodecolor\expandafter{\color}% - \else - \let\tabu@color \tabu@nocolor - \let\tabu@leavevmodecolor \@firstofone \fi - \tabu@latextwoe - \ifdefined\@raggedtwoe@everyselectfont % - \tabu@raggedtwoe - \else - \let\tabu@cell@L \tabu@cell@l - \let\tabu@cell@R \tabu@cell@r - \let\tabu@cell@C \tabu@cell@c - \let\tabu@cell@J \tabu@cell@j \fi - \expandafter\in@ \expandafter\@arrayright \expandafter{\endarray}% - \ifin@ \let\tabu@endarray \endarray - \else \tabu@fix@arrayright \fi% - \everyrow{}% -}% \tabu@AtBeginDocument -\def\tabu@warn@cellspace{% - \PackageWarning{tabu}{% - Package cellspace has some limitations - \MessageBreak And redefines some macros of array.sty. - \MessageBreak Please use \string\tabulinesep\space to control - \MessageBreak vertical spacing of lines inside tabu environment}% -}% \tabu@warn@cellspace -%% tabu Package initialisation -\tabuscantokensfalse -\let\tabu@arc@G \relax -\let\tabu@drsc@G \relax -\let\tabu@evr@G \@empty -\let\tabu@rc@G \@empty -\def\tabu@ls@G {\tabu@linestyle@}% -\let\tabu@@rowfontreset \@empty % -\let\tabu@@celllalign \@empty -\let\tabu@@cellralign \@empty -\let\tabu@@cellleft \@empty -\let\tabu@@cellright \@empty -\def\tabu@naturalXmin {\z@} -\def\tabu@naturalXmax {\z@} -\let\tabu@rowfontreset \@empty -\def\tabulineon {4pt}\let\tabulineoff \tabulineon -\tabu@everyrowtrue -\ifdefined\pdfelapsedtime % - \def\tabu@pdftimer {\xdef\tabu@starttime{\the\pdfelapsedtime}}% -\else \let\tabu@pdftimer \relax \let\tabu@message@etime \relax -\fi -\tracingtabu=\z@ -\newtabulinestyle {=\maxdimen}% creates the 'factory' settings \tabu@linestyle@ -\tabulinestyle{} -\taburowcolors{} -\let\tabudefaulttarget \linewidth -\ProcessOptions* % \ProcessOptions* is quicker ! -\endinput -%% -%% End of file `tabu.sty'.