Class FSBuddyStorage

java.lang.Object
com.smartfoxserver.buddylist.storage.FSBuddyStorage
All Implemented Interfaces:
BuddyStorage

public class FSBuddyStorage extends Object implements BuddyStorage
Default (file system based) BuddyStorage class

Stores each buddy list under the {SFS-folder}/data/buddylists/{Zonename}/{Username} folder
Where {Username} is the "encoded" version of the User name. The encoded name consist simply of the hexadecimal version of the name. This allows to store any user name in the file system including those containing avoid characters (such as *, :, ? etc...)

  • Constructor Details

    • FSBuddyStorage

      public FSBuddyStorage()
  • Method Details

    • init

      public void init()
      Description copied from interface: BuddyStorage
      Initialize the Storage class

      Add here all the necessary code to startup your BuddyStorage class. If you are using a database, this is the right place to start up your connection etc...

      Specified by:
      init in interface BuddyStorage
    • destroy

      public void destroy()
      Description copied from interface: BuddyStorage
      Destroy the Storage class.

      This method is invoked by the server when shutting down the Zones. Here you should make sure to release any resources you might have acquired in the init() phase.

      Specified by:
      destroy in interface BuddyStorage
    • loadList

      public BuddyList loadList(String ownerName) throws SFSBuddyListNotFoundException, IOException
      Description copied from interface: BuddyStorage
      Load a Buddy List from your data source. This method is invoked by the Buddy System when Buddy data needs to be loaded.
      Specified by:
      loadList in interface BuddyStorage
      Parameters:
      ownerName - name of the BuddyList owner
      Returns:
      the BuddyList
      Throws:
      SFSBuddyListNotFoundException - thrown if no BuddyList is found for the required User
      IOException - thrown if any problem arises during the loading process
    • saveList

      public void saveList(BuddyList buddyList) throws IOException
      Description copied from interface: BuddyStorage
      This method is invoked by the Buddy System when a BuddyList needs to be saved.
      Specified by:
      saveList in interface BuddyStorage
      Parameters:
      buddyList - the BuddyList
      Throws:
      IOException - thrown if any error arises during the saving process
    • getOfflineVariables

      public List<BuddyVariable> getOfflineVariables(String buddyName) throws IOException
      Description copied from interface: BuddyStorage
      Load the offline persistent variables for a specific User.

      Since offline variables are available even when the Buddy is not online this method can be called at any time by the Buddy System. Using a cache to store these variables is usually recommended in order to avoid loading this data multiple timese from a "slow" data sources, such as the Database.

      Specified by:
      getOfflineVariables in interface BuddyStorage
      Parameters:
      buddyName - the name of the Buddy
      Returns:
      the List of offline BuddyVariables
      Throws:
      IOException - thrown if the loading process fails
    • getBuddyListManager

      public BuddyListManager getBuddyListManager()
      Description copied from interface: BuddyStorage
      Get a reference to the BuddyManager managing this BuddyStorage class
      Specified by:
      getBuddyListManager in interface BuddyStorage
      Returns:
      the BuddyManager
    • setBuddyListManager

      public void setBuddyListManager(BuddyListManager buddyListManager)
      Specified by:
      setBuddyListManager in interface BuddyStorage