diff options
Diffstat (limited to 'src/main/java/net/cshift/transit/network/PoolManifest.java')
-rw-r--r-- | src/main/java/net/cshift/transit/network/PoolManifest.java | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/main/java/net/cshift/transit/network/PoolManifest.java b/src/main/java/net/cshift/transit/network/PoolManifest.java new file mode 100644 index 0000000..bc406fe --- /dev/null +++ b/src/main/java/net/cshift/transit/network/PoolManifest.java @@ -0,0 +1,42 @@ +package net.cshift.transit.network; + +/** + * @author Kyle Gunger + * @apiNote A pool manifest represents a set of possible data/resource pools that another node can request a channel to. + */ +public abstract class PoolManifest { + + /** Represents the number of pools that the node has access to. + * @apiNote A "pool" in this context represents an independent network of resources. + * Each network in the pool may represent a different TypeGroup. + * Pool zero should be the default group that simple nodes will attempt to connect to. + * @param group The TypeGroup that the pool belongs to + */ + public abstract int poolCount(); + + /** If the mod supports named pools, the names can be queried through this function. + * + * @param group The TypeGroup the pool belongs to + * @param pool Array-like index for pool (gotten from poolCount) + */ + public String poolName(int pool) { + return ""; + } + + /** Returns true if the pool with the given id supports the given group + * + * @param pool The pool ID to query + * @param group The TypeGroup to query + * @return {@code true} if the pool supports the specified group, {@code false} otherwise + */ + public abstract boolean poolProvides(int pool, String group); + + /** If the mod supports pool descriptions, they can be accessed by this method. + * + * @param group The TypeGroup the pool belongs to + * @param pool Array-like index for pool (gotten from poolCount) + */ + public String poolDescription(int pool) { + return ""; + } +} |