SockHop Class Inheritance Graph  (in mind-blowing ASCII-Visiontm !!)
 
 
             BArchivable                     BFlattenable              
                 ||                            //||\\                  
         SHDistributableObject           _____// || \\_____            
                 ||                     //       ||       \\           
             SHComponent         SHNodeSpec   SHFlavor   SHFileSpec     
               //||\\                                                
       _______// || \\________                                       
      //         ||          \\                 SHSessionAcceptor   
  SHSorter    SHWorker  SHAccessPolicy                              
     ||                       ||                SHDirectConnection  
 SHWi1dPathSorter    SHDefaultAccessPolicy                          
 
Brief class Descriptions



These classes are simple convenient containers for information describing virtual network node parameters and cacheable files, respectively.  There is no reason to subclass them; instead, just instantiate them and add them to your BMessages.
 
SHNodeSpec Specifies parameters for an endpoint of SockHop network communications.
SHFileSpec Specifies a set of file flavors that can be downloaded to child nodes.
SHFlavor Specifies a single cacheable file on disk.  
 



These are abstract classes that must be subclassed to be useful.  Note that SHAccessPolicy, SHSorter, and SHWorker all derive from SHComponent, which in turn derives from SHDistributableObject.  User code may find it useful to subclass directly from any of these classes, except SHComponent.
 
SHDistributableObject Represents an object that SockHop can automatically distribute across the network, executable code and all, in a cross-platform manner.
SHComponent Represents an object that SockHop can add to a node of its tree.
SHSorter Represents an object that SockHop can use to direct the routing of BMessages through the tree.
SHWorker Represents an object that contains user code and data.  Contains a BLooper thread.  Most all user code will reside in an SHWorker subclass.
SHAccessPolicy Represents an object that controls who may connect to a SockHop node, and what operations they may perform after they've connected.
 
 


These are concrete utility subclasses of the above-mentioned classes that are included in libsockhop.so.
 
SHWi1dPathSorter The default BMessage routing algorithm for SockHop.  Whenever a new node is created, it is automatically given one of these.
SHDefaultAccessPolicy The default access policy for SockHop.  Unless a different policy is specified on the command line, each new SockHop server and node uses one of these.
 



These are utility classes that handle communication with "external" programs--that is, SockHop programs that aren't actually part of your SockHop tree.  They allow the establishment of BMessage pathways that aren't part of the SockHop node tree.
 
SHSessionAcceptor Used to accept multiple TCP connections from SHDirectConnection objects elsewhere on the net.
SHDirectConnection Used to connect to SHSessionAcceptors, or receive connections from other SHDirectConnections.