Most recent edit on 2008-02-06 20:34:23 by JeromeFlesch [meh]
Additions:
The whole implementation is based on the model Observable/Observer(s). See http://java.sun.com/j2se/1.4.2/docs/api/java/util/Observable.html∞ and http://java.sun.com/j2se/1.4.2/docs/api/java/util/Observer.html∞.
Deletions:
The whole implementation is based on the model Observable/Observer(s).
Edited on 2008-02-06 20:33:22 by JeromeFlesch [meh]
Additions:
Most of the FCPQuery are Observable and notify their observers at each (even minor) change.
Deletions:
All the Thaw FCP implementation uses heavily the java.util.Observer / java.util.Observable mechanism. The observers are notified for almost all the changes.
Edited on 2008-02-06 20:32:17 by JeromeFlesch [meh]
Additions:
Use "FCPQueueManager.addQueryToThePendingQueue(FCPTransferQuery)" to add a query to the queue of pending queries (see 'Transfers' tab in Thaw). The number of simultaneous requests can be limited (see the configuration in advanced mode), so if it is, the query will be queued, else it will started immediatly.
You can also use FCPQueueManager.addQueryToTheRunningQueue(FCPTransferQueue) if you want it to start immediatly (even if it should be queued) and to be visible to the plugin "QueueWatcher".
Deletions:
Use "FCPQueueManager.addQueryToThePendingQueue(FCPTransferQuery)" to add a query to the visible queue (see 'Transfers' tab in Thaw). The number of simultaneous requests can be limited (see the configuration in advanced mode), so if it is, the query will be ... err ... queued ? :)
Edited on 2008-02-06 20:30:18 by JeromeFlesch [meh]
Additions:
Use "FCPQueueManager.addQueryToThePendingQueue(FCPTransferQuery)" to add a query to the visible queue (see 'Transfers' tab in Thaw). The number of simultaneous requests can be limited (see the configuration in advanced mode), so if it is, the query will be ... err ... queued ? :)
Deletions:
Use "FCPQueueManager.addQueryToThePendingQueue(FCPTransferQuery)" to add a query to the visible queue (see 'State' tab in Thaw). The number of simultaneous requests can be limited (see the configuration in advanced mode), so if it is, the query will be ... err ... queued ? :)
Edited on 2008-02-06 20:29:58 by JeromeFlesch [meh]
Additions:
FCPQueueManager manages a queue of transfers (some of them can be only on Thaw side (not started ; waiting), some of them can be running on the node). Its job is to start waiting transfers when possible, and to keep track of the running ones (FCPQueueManager is optional if you want to use this implementation in another software than Thaw). All the transfers managed by the FCPQueueManager are displayed by the plugin QueueWatcher of Thaw.
Deletions:
FCPQueueManager manages a queue of transfers (some of them can be only on Thaw side (not started ; waiting), some of them can be running on the node). Its job is to start waiting transfers when possible, and to keep track of the running ones (FCPQueueManager is optional if you want to use this implementation in another software than Thaw). All the transfers managed by the FCPQueueManager are displayed by the QueueWatcher plugin of Thaw.
Edited on 2008-02-06 20:28:59 by JeromeFlesch [meh]
Additions:
FCPTransferQuery is an abstract class extended by:
Deletions:
FCPTransferQuery is an abstract class implemented by:
Edited on 2008-02-06 20:26:35 by JeromeFlesch [meh]
Additions:
All the classes for Thaw FCP Implementation are in the package 'thaw.fcp'. But these classes may also need 'thaw.core.Logger' (should be fixed later).
Deletions:
All the classes for Thaw FCP Implementation are in the package 'thaw.fcp'. These classes call often 'thaw.core.Logger' and sometimes 'thaw.core.FreenetURIHelper'.
Edited on 2008-02-06 20:25:11 by JeromeFlesch [meh]
Additions:
Note: In the future, it's possible that FCPTransferQuery.start(FCPQueueManager) becomes FCPTransferQuery.start(FCPQueryManager).
Note: the constructor of FCPClientPut sucks and will probably be modified later.
Deletions:
NB: In the future, it's possible that FCPTransferQuery.start(FCPQueueManager) becomes FCPTransferQuery.start(FCPQueryManager).
Edited on 2008-02-06 20:23:11 by JeromeFlesch [meh]
Additions:
Note: The word "query" is misused here. The correct word would be "request". But I'm too lazy to fix it :p
Edited on 2008-02-06 20:13:00 by JeromeFlesch [meh]
Additions:
FCPQueueManager manages a queue of transfers (some of them can be only on Thaw side (not started ; waiting), some of them can be running on the node). Its job is to start waiting transfers when possible, and to keep track of the running ones (FCPQueueManager is optional if you want to use this implementation in another software than Thaw). All the transfers managed by the FCPQueueManager are displayed by the QueueWatcher plugin of Thaw.
Deletions:
FCPQueueManager manages a queue of transfers (some of them can be only on Thaw side (not started ; waiting), some of them can be running on the node). Its job is to start waiting transfers when possible, and to keep track of the running ones. (the queueManager is optional if you want to use this implementation in another software than Thaw).
Edited on 2008-02-06 20:08:15 by JeromeFlesch [meh]
Additions:
FCPQueueManager doesn't read PersistentGet/PersistentPut messages (and so doesn't load the queue from the node by itself). This job is done by FCPQueueLoader.
Deletions:
FCPQueueManager doesn't read PersistentGet/PersistentPut messages. This job is done by FCPQueueLoader.
Edited on 2008-02-06 20:07:20 by JeromeFlesch [meh]
Additions:
FCPTransferQuery is an abstract class implemented by:
- All the classes extending FCPTransferQuery
- ...
Deletions:
FCPTransferQuery is an interface implemented by:
- All the classes implementing FCPTransferQuery
Edited on 2008-02-06 20:06:48 by JeromeFlesch [meh]
Additions:
FCPConnection manages the connection to the node at a low level (connect(), read(), write(), disconnect()).
FCPQueryManager transforms what is read by FCPConnection into FCPMessages and then notify its Observers with as parameter the FCPMessage.
FCPQueueManager manages a queue of transfers (some of them can be only on Thaw side (not started ; waiting), some of them can be running on the node). Its job is to start waiting transfers when possible, and to keep track of the running ones. (the queueManager is optional if you want to use this implementation in another software than Thaw).
Edited on 2008-02-06 20:02:51 by JeromeFlesch [meh]
Additions:
FCPQueueManager doesn't read PersistentGet/PersistentPut messages. This job is done by FCPQueueLoader.
Edited on 2008-02-06 20:01:39 by JeromeFlesch [add a note about the initiatilisation]
Additions:
Initialisation & connection process
This part is a little tricky. I think the easiest way to understand how to do it is to look at thaw.core.Core.initConnection() and thaw.core.Core.ConnectionProcess.process().
See http://freenet.googlecode.com/svn/trunk/apps/Thaw/src/thaw/core/Core.java∞
Edited on 2008-02-06 19:58:52 by JeromeFlesch [moh]
Additions:
The whole implementation is based on the model Observable/Observer(s).
Edited on 2006-12-31 11:49:57 by JeromeFlesch
Additions:
| FCPQueryManager | <
> FCPQuery / FCPTransferQuery (FCPClientGet, FCPClientPut, etc)
Deletions:
| FCPQueryManager | <
> FCPQuery / FCPTransferQuery
Edited on 2006-12-31 11:48:33 by JeromeFlesch
Additions:
All the classes for Thaw FCP Implementation are in the package 'thaw.fcp'. These classes call often 'thaw.core.Logger' and sometimes 'thaw.core.FreenetURIHelper'.
Deletions:
All the classes for Thaw FCP Implementation are in the package 'thaw.fcp'. These classes call often 'thaw.core.Logger'.
Edited on 2006-11-04 19:51:30 by JeromeFlesch
Additions:
Utilization
All the Thaw FCP implementation uses heavily the java.util.Observer / java.util.Observable mechanism. The observers are notified for almost all the changes.
Oldest known version of this page was edited on 2006-11-04 19:47:50 by JeromeFlesch []
Page view:
Thaw FCP implementation
homepage
FCP
FCP (version 2) is the protocol used by Thaw to talk to the node. This protocol is simple and efficient.
See
FreenetFCPSpec2Point0.
Thaw implementation
All the classes for Thaw FCP Implementation are in the package 'thaw.fcp'. These classes call often 'thaw.core.Logger'.
FCPTransferQuery is an interface implemented by:
-
FCPClientPut
-
FCPClientGet
FCPQuery is an interface implemented by
- All the classes implementing
FCPTransferQuery
-
FCPGenerateSSK
-
FCPListPersistentRequests
-
FCPWatchGlobal
-------------------
| FCPQueueManager | <----------------> FCPTransferQuery
-------------------
|
|
\/
------------------- FCPMessage
| FCPQueryManager | <----------------> FCPQuery / FCPTransferQuery
-------------------
|
|
\/
-------------------
| FCPConnection |
-------------------
|
|
\/
Socket (---> Node ---> Freenet)
Use "
FCPQueueManager.addQueryToThePendingQueue(
FCPTransferQuery)" to add a query to the visible queue (see 'State' tab in Thaw). The number of simultaneous requests can be limited (see the configuration in advanced mode), so if it is, the query will be ... err ... queued ? :)
Use "
FCPTransferQuery.start(
FCPQueueManager)" to start a query without making this query visible to the user (-> will never be queued).
NB: In the future, it's possible that
FCPTransferQuery.start(
FCPQueueManager) becomes
FCPTransferQuery.start(
FCPQueryManager).