Class StandardHubProfile

java.lang.Object
org.astrogrid.samp.xmlrpc.StandardHubProfile
All Implemented Interfaces:
HubProfile, ProfileToken

public class StandardHubProfile extends Object implements HubProfile
HubProfile implementation for the SAMP Standard Profile.
Since:
31 Jan 2011
Author:
Mark Taylor
  • Constructor Details

    • StandardHubProfile

      public StandardHubProfile(SampXmlRpcClientFactory xClientFactory, SampXmlRpcServerFactory xServerFactory, File lockfile, String secret)
      Constructs a hub profile with given configuration information. If the supplied lockfile is null, no lockfile will be written at hub startup.
      Parameters:
      xClientFactory - XML-RPC client factory implementation
      xServerFactory - XML-RPC server implementation
      lockfile - location to use for hub lockfile, or null
      secret - value for samp.secret lockfile key
    • StandardHubProfile

      public StandardHubProfile() throws IOException
      Constructs a hub profile with default configuration.
      Throws:
      IOException
  • Method Details

    • getProfileName

      public String getProfileName()
      Description copied from interface: HubProfile
      Returns the name of this profile.
      Specified by:
      getProfileName in interface HubProfile
      Specified by:
      getProfileName in interface ProfileToken
      Returns:
      profile name, usually one word
    • getMessageRestriction

      public MessageRestriction getMessageRestriction()
      Description copied from interface: ProfileToken
      Returns a MessageRestriction object which controls what messages may be sent by clients registering under ths profile. If null is returned, any messages may be sent.
      Specified by:
      getMessageRestriction in interface ProfileToken
      Returns:
      message restriction, or null
    • start

      public void start(ClientProfile profile) throws IOException
      Description copied from interface: HubProfile
      Starts this profile's activity allowing access to a given supplier of hub connections.
      Specified by:
      start in interface HubProfile
      Parameters:
      profile - object which can provide hub connections
      Throws:
      IOException
    • isRunning

      public boolean isRunning()
      Description copied from interface: HubProfile
      Indicates whether this profile is currently running.
      Specified by:
      isRunning in interface HubProfile
      Returns:
      true iff profile is running
    • stop

      public void stop()
      Description copied from interface: HubProfile
      Ends this profile's activity on behalf of the hub. Any resources associated with the profile should be released. This does not include messaging registered clients about profile termination; that should be taken care of by the user of this profile.
      Specified by:
      stop in interface HubProfile
    • getLockInfo

      public LockInfo getLockInfo()
      Returns the lockfile information associated with this object. Only present when running.
      Returns:
      lock info
    • publishLockfile

      public URL publishLockfile() throws IOException
      Returns an HTTP URL at which the lockfile for this hub can be found. The first call to this method causes the lockfile to be published in this way; subsequent calls return the same value.

      Use this with care; publishing your lockfile means that other people can connect to your hub and potentially do disruptive things.

      Returns:
      lockfile information URL
      Throws:
      IOException
    • createSecret

      public static String createSecret()
      Returns a string suitable for use as a Standard Profile Secret.
      Returns:
      new secret