RuneHive-Game
Loading...
Searching...
No Matches
FileServer.java
Go to the documentation of this file.
1package dev.advo.fs;
2
3import java.net.InetSocketAddress;
4import java.net.SocketAddress;
5import java.util.concurrent.ExecutorService;
6import java.util.concurrent.Executors;
7import java.util.logging.Level;
8import java.util.logging.Logger;
9
10import org.jboss.netty.bootstrap.ServerBootstrap;
11import org.jboss.netty.channel.ChannelPipelineFactory;
12import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory;
13import org.jboss.netty.util.HashedWheelTimer;
14import org.jboss.netty.util.Timer;
15
16import dev.advo.fs.dispatch.RequestWorkerPool;
17import dev.advo.fs.net.FileServerHandler;
18import dev.advo.fs.net.NetworkConstants;
19import dev.advo.fs.net.OnDemandPipelineFactory;
20
21public final class FileServer {
22 private static final Logger logger = Logger.getLogger(FileServer.class.getName());
23
24 public static void main(String[] args) {
25 try {
26 new FileServer().start();
27 } catch (Throwable t) {
28 logger.log(Level.SEVERE, "Error starting server.", t);
29 }
30 }
31
32 private final ExecutorService service = Executors.newCachedThreadPool();
33
36
37
38 private final Timer timer = new HashedWheelTimer();
39
40 public void start() throws Exception {
41 logger.info("Starting workers...");
42 pool.start();
43
44 logger.info("Starting services...");
46
47 logger.info("Ready for connections.");
48 }
49
50 private void start(String name, ChannelPipelineFactory pipelineFactory, int port) {
51 SocketAddress address = new InetSocketAddress(port);
52
53 logger.info("Binding " + name + " service to " + address + "...");
54
55 ServerBootstrap bootstrap = new ServerBootstrap();
56 bootstrap.setFactory(new NioServerSocketChannelFactory(service, service));
57 bootstrap.setPipelineFactory(pipelineFactory);
58 bootstrap.bind(address);
59 }
60
61}
final ExecutorService service
final FileServerHandler handler
static final Logger logger
void start(String name, ChannelPipelineFactory pipelineFactory, int port)
static void main(String[] args)
final RequestWorkerPool pool
A class which manages the pool of request workers.