com.planet_ink.coffee_mud.core.smtp
Class SMTPserver

java.lang.Object
  extended by java.lang.Thread
      extended by com.planet_ink.coffee_mud.core.smtp.SMTPserver
All Implemented Interfaces:
CMObject, Tickable, java.lang.Cloneable, java.lang.Comparable<CMObject>, java.lang.Runnable

public class SMTPserver
extends java.lang.Thread
implements Tickable


Nested Class Summary
 
Nested classes/interfaces inherited from class java.lang.Thread
java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler
 
Field Summary
static float HOST_VERSION_MAJOR
           
static float HOST_VERSION_MINOR
           
static CMProps iniPage
           
 boolean isOK
           
 long lastAllProcessing
           
 CMProps page
           
static java.lang.String ServerVersionString
           
 java.net.ServerSocket servsock
           
 long tickStatus
           
static java.util.Hashtable webMacros
           
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Fields inherited from interface com.planet_ink.coffee_mud.core.interfaces.Tickable
STATUS_AFFECT, STATUS_ALIVE, STATUS_BEHAVIOR, STATUS_CLASS, STATUS_DEAD, STATUS_END, STATUS_FIGHT, STATUS_MISC, STATUS_MISC2, STATUS_MISC3, STATUS_MISC4, STATUS_MISC5, STATUS_MISC6, STATUS_MISC7, STATUS_NOT, STATUS_OTHER, STATUS_RACE, STATUS_REBIRTH, STATUS_SCRIPT, STATUS_START, STATUS_WEATHER, TICKID_AREA, TICKID_CLAN, TICKID_CLANITEM, TICKID_DEADBODY_DECAY, TICKID_EMAIL, TICKID_EXIT_BEHAVIOR, TICKID_EXIT_REOPEN, TICKID_ITEM_BEHAVIOR, TICKID_ITEM_BOUNCEBACK, TICKID_LIGHT_FLICKERS, TICKID_LIVEAUCTION, TICKID_LONGERMASK, TICKID_MOB, TICKID_QUEST, TICKID_READYTOSTOP, TICKID_ROOM_BEHAVIOR, TICKID_ROOM_ITEM_REJUV, TICKID_SPELL_AFFECT, TICKID_TIMEAUCTION, TICKID_TRAP_DESTRUCTION, TICKID_TRAP_RESET, TICKMASK_SOLITARY, TICKS_PER_RLMIN, TIME_MILIS_PER_MUDHOUR, TIME_TICK, TIME_TICK_DOUBLE
 
Constructor Summary
SMTPserver()
           
SMTPserver(MudHost a_mud)
           
 
Method Summary
 int compareTo(CMObject o)
           
 CMObject copyOf()
          Similar to Cloneable.clone(), but does its best to make sure that any internal objects to this class are also copyOfed.
 java.lang.String domainName()
           
 java.lang.String getAnEmailJournal(java.lang.String journal)
           
 java.util.Properties getCommonPropPage()
           
 int getEmailDays()
           
 int getFailureDays()
           
 java.lang.String getJournalCriteria(java.lang.String journal)
           
 int getJournalDays()
           
 java.util.Hashtable getMailingLists(java.util.Hashtable oldH)
           
 int getMaxMsgs()
           
 long getMaxMsgSize()
           
 MudHost getMUD()
           
 long getTickStatus()
          A coded status for this object during the period where its tick method is being called.
 java.lang.String ID()
          The CoffeeMud Java Class ID shared by all instances of this object.
 void initializeClass()
          Called ONCE after all objects are loaded, but before the map is read in during initialization.
protected  boolean initServer()
           
 void interrupt()
           
 boolean isAForwardingJournal(java.lang.String journal)
           
 boolean isAKeepAllJournal(java.lang.String journal)
           
 boolean isASubscribeOnlyJournal(java.lang.String journal)
           
protected  boolean loadPropPage()
           
 java.lang.String mailboxName()
           
 java.lang.String name()
          The nice displayable name of this instance of this object
 CMObject newInstance()
          Returns a new instance of this class.
 void processEmails(java.util.Vector emails, java.lang.String overrideReplyTo, boolean usePrivateRules)
           
protected  boolean rightTimeToSendEmail(long email)
           
 void run()
           
 void shutdown()
           
 void shutdown(Session S)
           
 boolean tick(Tickable ticking, int tickID)
          this is the method which is called periodically by the threading engine.
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

tickStatus

public long tickStatus

lastAllProcessing

public long lastAllProcessing

page

public CMProps page

HOST_VERSION_MAJOR

public static final float HOST_VERSION_MAJOR
See Also:
Constant Field Values

HOST_VERSION_MINOR

public static final float HOST_VERSION_MINOR
See Also:
Constant Field Values

webMacros

public static java.util.Hashtable webMacros

iniPage

public static CMProps iniPage

servsock

public java.net.ServerSocket servsock

isOK

public boolean isOK

ServerVersionString

public static final java.lang.String ServerVersionString
See Also:
Constant Field Values
Constructor Detail

SMTPserver

public SMTPserver()

SMTPserver

public SMTPserver(MudHost a_mud)
Method Detail

ID

public java.lang.String ID()
Description copied from interface: CMObject
The CoffeeMud Java Class ID shared by all instances of this object. Unlike the Java Class name, this method does not include package information. However, it must return a String value unique to its class category in the ClassLoader. Class categories include Libraries, Common, Areas, Abilities, Behaviors, CharClasses, Commands, Exits Locales, MOBS, Races, WebMacros, Basic Items, Armor, Weapons, ClanItems, MiscTech. The name is typically identical to the class name.

Specified by:
ID in interface CMObject
Returns:
the name of this class

name

public java.lang.String name()
Description copied from interface: Tickable
The nice displayable name of this instance of this object

Specified by:
name in interface Tickable
Returns:
the displayable name of this object instance

newInstance

public CMObject newInstance()
Description copied from interface: CMObject
Returns a new instance of this class.

Specified by:
newInstance in interface CMObject
Returns:
a new instance of this class

initializeClass

public void initializeClass()
Description copied from interface: CMObject
Called ONCE after all objects are loaded, but before the map is read in during initialization.

Specified by:
initializeClass in interface CMObject

copyOf

public CMObject copyOf()
Description copied from interface: CMObject
Similar to Cloneable.clone(), but does its best to make sure that any internal objects to this class are also copyOfed.

Specified by:
copyOf in interface CMObject
Returns:
a clone of this object

compareTo

public int compareTo(CMObject o)
Specified by:
compareTo in interface java.lang.Comparable<CMObject>

getTickStatus

public long getTickStatus()
Description copied from interface: Tickable
A coded status for this object during the period where its tick method is being called. The statis is defined, at least in part, by constants in this interface STATUS_*. STATUS_NOT should be returned when the objects tick method is not currently in execution. It should never return STATUS_NOT when the objects tick method is in execution.

Specified by:
getTickStatus in interface Tickable
Returns:
the numeric status of this object
See Also:
Tickable.tick(Tickable, int)

getMUD

public MudHost getMUD()

domainName

public java.lang.String domainName()

mailboxName

public java.lang.String mailboxName()

getCommonPropPage

public java.util.Properties getCommonPropPage()

initServer

protected boolean initServer()

getAnEmailJournal

public java.lang.String getAnEmailJournal(java.lang.String journal)

isAForwardingJournal

public boolean isAForwardingJournal(java.lang.String journal)

isASubscribeOnlyJournal

public boolean isASubscribeOnlyJournal(java.lang.String journal)

isAKeepAllJournal

public boolean isAKeepAllJournal(java.lang.String journal)

getJournalCriteria

public java.lang.String getJournalCriteria(java.lang.String journal)

loadPropPage

protected boolean loadPropPage()

run

public void run()
Specified by:
run in interface java.lang.Runnable
Overrides:
run in class java.lang.Thread

shutdown

public void shutdown(Session S)

shutdown

public void shutdown()

rightTimeToSendEmail

protected boolean rightTimeToSendEmail(long email)

getMailingLists

public java.util.Hashtable getMailingLists(java.util.Hashtable oldH)

tick

public boolean tick(Tickable ticking,
                    int tickID)
Description copied from interface: Tickable
this is the method which is called periodically by the threading engine. How often it is called depends on the parameters passed to the threadding engine when it is submitted for thread access. Typically the period is once per TIME_TICK period, but that is determined when the object is submitted to the thread engine.

Specified by:
tick in interface Tickable
Parameters:
ticking - a reference to this Tickable object
tickID - the TICKID_ constant describing this periodic call, as defined in Tickable
Returns:
true always, unless this object no longer wishes to ever tick again, in which case false
See Also:
Tickable, ServiceEngine, TickableGroup

processEmails

public void processEmails(java.util.Vector emails,
                          java.lang.String overrideReplyTo,
                          boolean usePrivateRules)

interrupt

public void interrupt()
Overrides:
interrupt in class java.lang.Thread

getMaxMsgs

public int getMaxMsgs()

getEmailDays

public int getEmailDays()

getJournalDays

public int getJournalDays()

getFailureDays

public int getFailureDays()

getMaxMsgSize

public long getMaxMsgSize()