A B C D E F G H I K L M N O P Q R S T U V W 

A

add(Daemon.UDPListener) - Method in class se.rupy.http.Daemon
Add multicast listener.
add(Service) - Method in class se.rupy.http.Daemon
You can only add services manually in unhosted mode.
archive(String, boolean) - Method in class se.rupy.http.Daemon
 
Async - Class in se.rupy.http
High speed HTTP async NIO client.

This exists because Apache HAC:

- Can't handle Murphy's law.
- Rarely blocks forever stuck in sun.misc.Unsafe.park().
- Is pretty slow and big (adds ~20-30 ms.
Async.Call - Class in se.rupy.http
Holds the channel and buffer.
Async.Timeout - Exception in se.rupy.http
Thrown when SocketChannel.read(ByteBuffer) returns -1.
Async.Timeout(String) - Constructor for exception se.rupy.http.Async.Timeout
 
Async.Work - Class in se.rupy.http
This is your Async callback.
Async.Work(Event) - Constructor for class se.rupy.http.Async.Work
 
available() - Method in class se.rupy.http.Input
 

B

big(String) - Method in class se.rupy.http.Event
 
big(String) - Method in class se.rupy.http.Hash
 
big(String, long) - Method in class se.rupy.http.Hash
 
bind() - Method in class se.rupy.http.Daemon
 
bit(String) - Method in class se.rupy.http.Event
 
bit(String, boolean) - Method in class se.rupy.http.Hash
Returns the boolean value, with a twist though since a parameter is true if it's key is present.
broadcast(byte[]) - Method in class se.rupy.http.Daemon
Send inter-cluster-node UDP multicast message.

C

chain(Event, String) - Method in class se.rupy.http.Daemon
 
client() - Method in class se.rupy.http.Daemon
 
close() - Method in class se.rupy.http.Event
 
CLOSED - Static variable in class se.rupy.http.Reply
If the reply has been closed, try increasing timeout variable.
code() - Method in class se.rupy.http.Reply
 
code(String) - Method in class se.rupy.http.Reply
Important: call Reply.header(String, String) before you call this.
com() - Method in class se.rupy.http.Daemon
To get the COM port.
complete() - Method in class se.rupy.http.Output
Used for comet applications to be able to prune disconnected clients.
COMPLETE - Static variable in class se.rupy.http.Reply
If the reply has been completed.
create(Daemon) - Method in class se.rupy.http.Root
 
CREATE - Static variable in class se.rupy.http.Service
When the session is created, read the incoming cookie key and/or set the key you wish to be stored, the domain and the expire date.
create(Daemon) - Method in class se.rupy.http.Service
Initiate service dependencies.

D

Daemon - Class in se.rupy.http
A tiny HTTP daemon.
Daemon() - Constructor for class se.rupy.http.Daemon
Don't forget to call Daemon.start().
Daemon(Properties) - Constructor for class se.rupy.http.Daemon
Don't forget to call Daemon.start().
daemon() - Method in class se.rupy.http.Event
 
Daemon.ComListener - Interface in se.rupy.http
Receives COM port data.
Daemon.ComPort - Class in se.rupy.http
COM port.
Daemon.ComPort() - Constructor for class se.rupy.http.Daemon.ComPort
 
Daemon.DNSListener - Interface in se.rupy.http
So that you can hot-deploy your DNS solution.
Daemon.ErrListener - Interface in se.rupy.http
Error listener, so you can for example send a warning mail and swallow certain exceptions to not be logged.
Daemon.JVMListener - Interface in se.rupy.http
Cross class-loader communication interface.
Daemon.Lock - Class in se.rupy.http
 
Daemon.SPIData - Class in se.rupy.http
SPI data.
Daemon.SPIData() - Constructor for class se.rupy.http.Daemon.SPIData
 
Daemon.SPIListener - Interface in se.rupy.http
Receives SPI interrupt.
Daemon.UDPListener - Interface in se.rupy.http
Cross cluster-node communication interface.
date() - Method in class se.rupy.http.Deploy.Archive
 
DATE - Static variable in class se.rupy.http.Root.Find
 
date() - Method in class se.rupy.http.Session
 
debug() - Method in class se.rupy.http.Async
 
DELETE - Static variable in class se.rupy.http.Query
 
Deploy - Class in se.rupy.http
Hot-deploys an application containing one or many service filters from disk with simplistic dynamic class loading, eventually after receiving it through a HTTP POST.
Deploy(String, String) - Constructor for class se.rupy.http.Deploy
 
Deploy(String) - Constructor for class se.rupy.http.Deploy
 
deploy(String, File, String) - Static method in class se.rupy.http.Deploy
Sync hot-deploy.
deploy(Event, String, File, String) - Static method in class se.rupy.http.Deploy
Async hot-deploy.
Deploy.Archive - Class in se.rupy.http
This is our dynamic classloader.
destroy() - Method in class se.rupy.http.Service
Free service dependencies.
DISCONNECT - Static variable in class se.rupy.http.Service
The client actively disconnected it's last TCP socket.
domain() - Method in class se.rupy.http.Daemon
 
domain() - Method in class se.rupy.http.Session
 

E

encode(String) - Static method in class se.rupy.http.Event
HTML encodes.
EOL - Static variable in class se.rupy.http.Output
 
escape(String) - Static method in class se.rupy.http.Event
Escape JSON.
event(int) - Method in class se.rupy.http.Daemon
Disabled for hosted mode.
Event - Class in se.rupy.http
Asynchronous HTTP request/response, this virtually represents a client socket, but in the case where the server is behind a proxy we cannot depend on that fact since sockets will be reused by multiple different external clients.

The hierarchy of the code is as follows:

   Event -+-- Query <-- Input <--- +-----------+
          |                        |           |
          X                        |  Browser  |
          |                        |           |
          +-> Reply --> Output --> +-----------+

Where X marks the potential Comet pause point.
event() - Method in class se.rupy.http.Session
 
Event.Block - Interface in se.rupy.http
Non blocking IO requires some blocking logic to handle ethernet latency.
expires() - Method in class se.rupy.http.Session
 

F

fail(String, Exception) - Method in class se.rupy.http.Async.Work
If this happens with Async.Timeout, just resend.
Failure - Exception in se.rupy.http
The failure, if thrown, does not display the error to the user but disconnects the client.
Failure(String) - Constructor for exception se.rupy.http.Failure
 
file(String) - Static method in class se.rupy.http.Root
 
file(File) - Static method in class se.rupy.http.Root
 
fill() - Method in interface se.rupy.http.Event.Block
This is used by the event to ask the query/reply to pull/push data.
fill() - Method in class se.rupy.http.Input
 
fill() - Method in class se.rupy.http.Output
 
filter(Event) - Method in class se.rupy.http.Daemon.Lock
 
filter(Event) - Method in class se.rupy.http.Deploy
 
filter(Event) - Method in class se.rupy.http.Root
 
filter(Event) - Method in class se.rupy.http.Root.Find
 
filter(Event) - Method in class se.rupy.http.Root.Hash
 
filter(Event) - Method in class se.rupy.http.Root.Link
 
filter(Event) - Method in class se.rupy.http.Root.Meta
 
filter(Event) - Method in class se.rupy.http.Root.Node
 
filter(Event) - Method in class se.rupy.http.Root.Salt
 
filter(Event) - Method in class se.rupy.http.Root.Tree
 
filter(Event) - Method in class se.rupy.http.Service
The service method, equivalent of HttpServlet.service().
filter(Event) - Method in class se.rupy.http.User
 
finish() - Method in class se.rupy.http.Output
Flush the terminating empty chunk of a asynchronous stream push.
flush() - Method in class se.rupy.http.Output
 

G

get(String, String) - Method in class se.rupy.http.Async.Call
Headers should be \r\n separated, but no trailing \r\n.
GET - Static variable in class se.rupy.http.Query
 
getHost() - Static method in class se.rupy.http.Root
 
getIp() - Static method in class se.rupy.http.Root
 
getMessage() - Method in exception se.rupy.http.Async.Timeout
 

H

hash(File, String, String) - Static method in class se.rupy.http.Deploy
The hash chain: file -> pass -> cookie = the man in the middle can read your deployment file but he cannot alter, deploy or re-deploy it!

Basically: don't put passwords in clear text in the deployment jar and you will be fine! To get your host, pass and database IP on host.rupy.se call Daemon.send(Event event, Object message) with "{"type": "account"}" like so:

    String account = (String) daemon.send("{\"type\": \"account\"}");

It returns something like: "{"host": "xxx", "pass": "xxx", "ip": "xxx"}"
hash(String, String) - Static method in class se.rupy.http.Deploy
Hash string to hex.
hash(File, String) - Static method in class se.rupy.http.Deploy
Hash file to hex.
Hash - Class in se.rupy.http
Convenience class to avoid casting and parsing everywhere.
Hash(boolean) - Constructor for class se.rupy.http.Hash
 
hash(String) - Static method in class se.rupy.http.Root
 
HEAD - Static variable in class se.rupy.http.Query
 
header(String) - Method in class se.rupy.http.Query
The headers are stored and fetched as lower case.
header() - Method in class se.rupy.http.Query
 
header(String, String) - Method in class se.rupy.http.Reply
This has to be called before Reply.output() to have effect.
hold() - Method in class se.rupy.http.Event
Keeps the chunked reply open for asynchronous writes.
home() - Static method in class se.rupy.http.Root
A cross functional Root home folder detection for your deploy.
host() - Method in class se.rupy.http.Deploy.Archive
 
host() - Static method in class se.rupy.http.Root
 

I

id(String, String) - Static method in class se.rupy.http.Root
Fetch the id for a key.
index() - Method in class se.rupy.http.Event
 
index() - Method in class se.rupy.http.Service
Where in the filter chain is this service? Default position is first (index 0).
index() - Method in class se.rupy.http.Worker
 
init(String[]) - Static method in class se.rupy.http.Daemon
To use your own main method if you for example need COM port handling.
input() - Method in class se.rupy.http.Event
 
Input - Class in se.rupy.http
Handles the incoming request data.
input() - Method in class se.rupy.http.Query
 
interrupt() - Method in interface se.rupy.http.Daemon.SPIListener
 

K

key() - Method in class se.rupy.http.Session
 
key(String, String, long) - Method in class se.rupy.http.Session
Set the key you wish to store in the clients cookie here, together with the expire date.

L

length() - Method in class se.rupy.http.Query
 
line() - Method in class se.rupy.http.Input
Reads a \r\n terminated line of text from the input.
listener - Variable in class se.rupy.http.Daemon.ComPort
 
listener - Variable in class se.rupy.http.Daemon.SPIData
 
local() - Static method in class se.rupy.http.Root
 
log(Event, Throwable) - Method in interface se.rupy.http.Daemon.ErrListener
Here you will receive all errors before they are logged.

M

main(String[]) - Static method in class se.rupy.http.Daemon
 
main(String[]) - Static method in class se.rupy.http.Deploy
 
markSupported() - Method in class se.rupy.http.Input
 
medium(String) - Method in class se.rupy.http.Event
 
medium(String) - Method in class se.rupy.http.Hash
 
medium(String, int) - Method in class se.rupy.http.Hash
 
method() - Method in class se.rupy.http.Query
 
metric(String) - Method in class se.rupy.http.Daemon
 
modified() - Method in class se.rupy.http.Query
 

N

name() - Method in class se.rupy.http.Daemon
 
name() - Method in class se.rupy.http.Deploy.Archive
 
name(String) - Static method in class se.rupy.http.Deploy
 
NAME - Static variable in class se.rupy.http.Root.Find
 

O

OK - Static variable in class se.rupy.http.Reply
The reply was successfully awakened.
online() - Method in class se.rupy.http.Daemon
 
output() - Method in class se.rupy.http.Event
 
Output - Class in se.rupy.http
Handles the outgoing response data.
output() - Method in class se.rupy.http.Reply
output(long) - Method in class se.rupy.http.Reply
Important: call Reply.header(String, String) and Reply.code(String) first, in that order, this method is the point of no return for delivery of a request.

P

parameters() - Method in class se.rupy.http.Query
Returns the parameters of the request.
parse() - Method in class se.rupy.http.Query
Parse the parameters from GET or POST.
parse(int) - Method in class se.rupy.http.Query
Parse the parameters from GET or POST.
path() - Method in class se.rupy.http.Deploy
 
path() - Method in class se.rupy.http.Query
 
path() - Method in class se.rupy.http.Root.Find
 
path() - Method in class se.rupy.http.Root.Hash
 
path() - Method in class se.rupy.http.Root.Link
 
path() - Method in class se.rupy.http.Root.Meta
 
path() - Method in class se.rupy.http.Root.Node
 
path() - Method in class se.rupy.http.Root
 
path(long) - Static method in class se.rupy.http.Root
 
path(String) - Static method in class se.rupy.http.Root
 
path() - Method in class se.rupy.http.Root.Salt
 
path() - Method in class se.rupy.http.Root.Tree
 
path() - Method in class se.rupy.http.Service
The identifier that should trigger this service.
path() - Method in class se.rupy.http.User
 
percent(String) - Static method in class se.rupy.http.Event
URL encodes.
persist() - Method in class se.rupy.http.Event
Creates a session variable to enable cross hot-deploy sessions on headless real-time comet-stream applications.
pipe(InputStream, OutputStream) - Static method in class se.rupy.http.Deploy
 
pipe(InputStream, OutputStream, int) - Static method in class se.rupy.http.Deploy
 
pipe(InputStream, OutputStream, int, int) - Static method in class se.rupy.http.Deploy
 
policy() - Method in class se.rupy.http.Query
 
post(String, String, byte[]) - Method in class se.rupy.http.Async.Call
Headers should be \r\n separated, but no trailing \r\n.
post(String, String, File) - Method in class se.rupy.http.Async.Call
Headers should be \r\n separated, but no trailing \r\n.
POST - Static variable in class se.rupy.http.Query
 
premain(String, Instrumentation) - Static method in class se.rupy.http.Daemon
 
print(Object) - Method in class se.rupy.http.Output
 
print(long) - Method in class se.rupy.http.Output
 
print(boolean) - Method in class se.rupy.http.Output
 
println(Object) - Method in class se.rupy.http.Output
 
println(long) - Method in class se.rupy.http.Output
 
println(boolean) - Method in class se.rupy.http.Output
 
properties() - Method in class se.rupy.http.Daemon
 
push() - Method in class se.rupy.http.Event
 
put(String, long) - Method in class se.rupy.http.Hash
 
put(String, int) - Method in class se.rupy.http.Hash
 
put(String, short) - Method in class se.rupy.http.Hash
 
put(String, byte) - Method in class se.rupy.http.Hash
 
put(String, boolean) - Method in class se.rupy.http.Hash
 
put(Object, Object) - Method in class se.rupy.http.Hash
 
PUT - Static variable in class se.rupy.http.Query
 

Q

query() - Method in class se.rupy.http.Event
 
Query - Class in se.rupy.http
HTTP request and query in one.

R

random(int) - Static method in class se.rupy.http.Event
 
read(String, String) - Method in class se.rupy.http.Async.Work
Will probably return String headers and byte[] body at some point.
read(byte[], int) - Method in interface se.rupy.http.Daemon.ComListener
 
receive(byte[]) - Method in interface se.rupy.http.Daemon.DNSListener
 
receive(Event, Object) - Method in interface se.rupy.http.Daemon.JVMListener
 
receive(byte[]) - Method in interface se.rupy.http.Daemon.UDPListener
 
recurse(File, String, int, int, int, int, int, boolean, boolean) - Method in class se.rupy.http.Root.Find
 
redirect(Event) - Static method in class se.rupy.http.User
 
redirect(Event, String) - Static method in class se.rupy.http.User
 
redirect(Event, String, boolean) - Static method in class se.rupy.http.User
 
refill(Event) - Static method in class se.rupy.http.User
 
remote() - Method in class se.rupy.http.Event
 
remove(Daemon.UDPListener) - Method in class se.rupy.http.Daemon
Remove multicast listener.
reply() - Method in class se.rupy.http.Event
 
Reply - Class in se.rupy.http
HTTP response.
Root - Class in se.rupy.http
Secure Unique Identity Cluster.
Root(String, Properties) - Constructor for class se.rupy.http.Root
 
Root.Find - Class in se.rupy.http
 
Root.Find() - Constructor for class se.rupy.http.Root.Find
 
Root.Hash - Class in se.rupy.http
 
Root.Hash() - Constructor for class se.rupy.http.Root.Hash
 
Root.KeyFail - Exception in se.rupy.http
 
Root.KeyFail(String) - Constructor for exception se.rupy.http.Root.KeyFail
 
Root.Link - Class in se.rupy.http
 
Root.Link() - Constructor for class se.rupy.http.Root.Link
 
Root.LinkFail - Exception in se.rupy.http
 
Root.LinkFail(String) - Constructor for exception se.rupy.http.Root.LinkFail
 
Root.Meta - Class in se.rupy.http
 
Root.Meta() - Constructor for class se.rupy.http.Root.Meta
 
Root.MetaFail - Exception in se.rupy.http
 
Root.MetaFail(String) - Constructor for exception se.rupy.http.Root.MetaFail
 
Root.Node - Class in se.rupy.http
 
Root.Node() - Constructor for class se.rupy.http.Root.Node
 
Root.Salt - Class in se.rupy.http
 
Root.Salt() - Constructor for class se.rupy.http.Root.Salt
 
Root.SortFail - Exception in se.rupy.http
 
Root.SortFail(String) - Constructor for exception se.rupy.http.Root.SortFail
 
Root.Tree - Class in se.rupy.http
 
Root.Tree() - Constructor for class se.rupy.http.Root.Tree
 
run() - Method in class se.rupy.http.Async.Call
 
run() - Method in class se.rupy.http.Async
 
run() - Method in class se.rupy.http.Daemon
 
run() - Method in class se.rupy.http.Worker
 

S

se.rupy.http - package se.rupy.http
Instructions: start Daemon, implement Service then Deploy.

Rupy is lightweight and fast.
It also consumes very few joules per request.

The hierarchy of the code is as follows:

   Event -+-- Query <-- Input <--- +-----------+
          |                        |           |
          X                        |  Browser  |
          |                        |           |
          +-> Reply --> Output --> +-----------+

Where X marks the potential Comet pause point.

Failure, Hash, Session and Worker should be pretty self explanatory.

For more details on how to configure rupy, see the properties for Daemon.

----

Root is a distributed JSON database, unfortunately; if you can't figure it out from playing around with these forms then you are out of luck for now!

The only thing I can say simply is each node has a key (private) that allows you to write the node and an id (public) that allows you to read it.

User is a privileged node, because you don't want that to be readable without some kind of authentication; we use double round-trip server salt password hashing over plain HTTP, simple yet secure after registration as long as the connection between the backend and database is trusted because we send the permanent key back over that connection unencrypted.

Other than that, link is one-to-many and meta is many-to-many-to-tree (basically replacing cross reference tables and enabling tree structures in one go).

One use for meta is the inventory system in fuse: see drop, pick, save, load.
send(String, Async.Work, int) - Method in class se.rupy.http.Async
Send work to some host.
send(Async.Call) - Method in class se.rupy.http.Async.Work
send(Event, Object) - Method in class se.rupy.http.Daemon
Send Object to JVM listener.
Service - Class in se.rupy.http
The service filter is like a servlet which describes its own identifier.
Service() - Constructor for class se.rupy.http.Service
 
session() - Method in class se.rupy.http.Event
 
session(Session, int) - Method in class se.rupy.http.Service
If sessions are used and a session invokes a service, that service will then be notified before the session is added, so that you may assign your own session cookie id; or removed, so that you may act upon both session timeout and physical TCP disconnects.
Session - Class in se.rupy.http
If you save a class that is hot-deployed here it will throw a ClassCastException if you re-deploy the application.
set(Daemon.ComListener) - Method in class se.rupy.http.Daemon.ComPort
To set the hot-deploy as listener.
set(Daemon.JVMListener) - Method in class se.rupy.http.Daemon
Intra JVM many-to-one listener.
set(Daemon.DNSListener) - Method in class se.rupy.http.Daemon
Set the host controller as DNS server.
set(Daemon.ComPort) - Method in class se.rupy.http.Daemon
To use the COM interface you should boot rupy with your own main method.
set(Daemon.SPIData, int) - Method in class se.rupy.http.Daemon
To use the SPI interface you should boot rupy with your own main method.
set(Daemon.ErrListener) - Method in class se.rupy.http.Daemon
Listens for errors.
set(Daemon.SPIListener) - Method in class se.rupy.http.Daemon.SPIData
To set the hot-deploy as listener.
set() - Method in class se.rupy.http.Session
Has the session cookie been set?
set(boolean) - Method in class se.rupy.http.Session
Has the session cookie been set? false means no and therefore set it, true means yea; so don't set it.
small(String) - Method in class se.rupy.http.Event
 
small(String) - Method in class se.rupy.http.Hash
 
small(String, short) - Method in class se.rupy.http.Hash
 
spi(int) - Method in class se.rupy.http.Daemon
To get the SPI data channel.
start() - Method in class se.rupy.http.Daemon
Starts the selector, heartbeat and worker threads.
stop() - Method in class se.rupy.http.Daemon
Stops the selector, heartbeat and worker threads.
string(String) - Method in class se.rupy.http.Event
 
string(String) - Method in class se.rupy.http.Hash
 
string(String, String) - Method in class se.rupy.http.Hash
 
sync(Event, String, String, boolean) - Static method in class se.rupy.http.Root
Create and synchronize a unique node key across the cluster.

T

TIMEOUT - Static variable in class se.rupy.http.Service
Normal timeout, the client simply was inactive for too long.
tiny(String) - Method in class se.rupy.http.Event
 
tiny(String) - Method in class se.rupy.http.Hash
 
tiny(String, byte) - Method in class se.rupy.http.Hash
 
toCase(String) - Static method in class se.rupy.http.Root.Find
 
toString() - Method in class se.rupy.http.Deploy.Archive
 
toString() - Method in class se.rupy.http.Event
 
toString() - Method in class se.rupy.http.Hash
 
toString() - Method in class se.rupy.http.Query
 
toString() - Method in class se.rupy.http.Reply
 
toString() - Method in class se.rupy.http.Session
 
toString() - Method in class se.rupy.http.Worker
 
touch() - Method in class se.rupy.http.Event
Touch the worker if you have a http connection that needs to wait.
type() - Method in class se.rupy.http.Query
 
type() - Method in class se.rupy.http.Reply
 
type(String) - Method in class se.rupy.http.Reply
This has to be called before Reply.output() to have effect.

U

User - Class in se.rupy.http
 
User() - Constructor for class se.rupy.http.User
 

V

version() - Method in class se.rupy.http.Async.Call
 
version() - Method in class se.rupy.http.Query
 

W

wakeup() - Method in class se.rupy.http.Reply
 
wakeup(boolean) - Method in class se.rupy.http.Reply
To send data asynchronously, call this and the event will be re-filtered.
warn(String) - Static method in class se.rupy.http.Event
Wraps a message with HTML and an inline SVG warning triangle.
warn(int, String) - Static method in class se.rupy.http.Event
SVG warning triangle.
worker() - Method in class se.rupy.http.Event
 
Worker - Class in se.rupy.http
Worker gets the job done.
WORKING - Static variable in class se.rupy.http.Reply
If the reply has a thread writing already you can automatically queue wakeup with Reply.wakeup(boolean) to assure the wakeup is successful.
write(byte[]) - Method in class se.rupy.http.Daemon.ComPort
 
write(int, byte[], int) - Method in class se.rupy.http.Daemon.SPIData
 
A B C D E F G H I K L M N O P Q R S T U V W