Class PerspectiveSessionCollection
- java.lang.Object
 - 
- com.inductiveautomation.ignition.common.lifecycle.AbstractLifecycle
 - 
- com.inductiveautomation.perspective.gateway.session.PerspectiveSessionCollection
 
 
 
- 
- All Implemented Interfaces:
 java.util.EventListener,javax.servlet.http.HttpSessionBindingListener
public class PerspectiveSessionCollection extends AbstractLifecycle implements javax.servlet.http.HttpSessionBindingListener
This is the top level of session object for a collection of "project" sessions. A given "auth session" (which correlates to a browser instance) can run multiple projects simultaneously because of tabbed browsing. 
- 
- 
Nested Class Summary
Nested Classes Modifier and Type Class Description static classPerspectiveSessionCollection.Builder 
- 
Field Summary
Fields Modifier and Type Field Description PerspectiveContextcontextjava.lang.Stringidid of the parent HttpSession that owns usSessionScopescope"scope" of this session - Client or Designerstatic java.lang.StringSESSION_KEYThis is the name ( "perspective-session" ) used to store this object on an HttpSessionjava.lang.StringuuidUUID to help keep track of sessions by session monitor. 
- 
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static PerspectiveSessionCollection.Builderbuilder()java.util.Optional<InternalSession>findProjectSession(java.lang.String project)PerspectiveContextgetContext()NativeDevicegetDevice()com.inductiveautomation.ignition.common.gson.GsongetGson()java.util.LocalegetLocale()Returns the preferredLocalethat the client will accept content in, based on the Accept-Language header.java.util.List<java.util.Locale>getLocales()Returns aListofLocaleobjects indicating, in decreasing order starting with the preferred locale, the locales that are acceptable to the client based on the Accept-Language header in the request which created this session.InternalSessiongetOrCreateSession(java.lang.String projectName)Fetch theInternalSessionassociated with the given project name and version or create one if it does not exist in this session collection.InternalSessiongetOrCreateSession(java.lang.String projectName, java.util.UUID sessionId)java.lang.LonggetRecentBytesSent()java.lang.StringgetRemoteAddr()java.lang.StringgetRemoteHost()SessionScopegetScope()com.google.common.collect.ImmutableCollection<java.lang.String>getSecurityZones()java.math.BigIntegergetTotalBytesSent()voidhandleLogs(LogMessage log)Called when the client has POSTed log messages back to the server.booleanisBrokeredAuth()booleanisValidMobile()booleanisValidWorkstation()voidnotifyConnected(MessageChannel channel)voidnotifyDisconnected(MessageChannel channel)voidonShutdown()Stops any ongoing processes running as part of the project running in this session.protected voidonStartup()voidreceive(MessageChannel channel, java.lang.String protocol, java.io.Reader payload)voidsetRecentBytesSent(java.lang.Long recentBytesSent)voidvalidate(java.lang.String challengeResponse)Received challenge response from mobile devicevoidvalueBound(javax.servlet.http.HttpSessionBindingEvent event)voidvalueUnbound(javax.servlet.http.HttpSessionBindingEvent event)- 
Methods inherited from class com.inductiveautomation.ignition.common.lifecycle.AbstractLifecycle
isRunning, shutdown, startup 
 - 
 
 - 
 
- 
- 
Field Detail
- 
SESSION_KEY
public static final java.lang.String SESSION_KEY
This is the name ( "perspective-session" ) used to store this object on an HttpSession- See Also:
 - Constant Field Values
 
 
- 
context
public final PerspectiveContext context
 
- 
id
public final java.lang.String id
id of the parent HttpSession that owns us 
- 
uuid
public final java.lang.String uuid
UUID to help keep track of sessions by session monitor. 
- 
scope
public final SessionScope scope
"scope" of this session - Client or Designer 
 - 
 
- 
Method Detail
- 
getRemoteHost
public java.lang.String getRemoteHost()
 
- 
getRemoteAddr
public java.lang.String getRemoteAddr()
 
- 
getGson
public com.inductiveautomation.ignition.common.gson.Gson getGson()
 
- 
getLocale
public java.util.Locale getLocale()
Returns the preferredLocalethat the client will accept content in, based on the Accept-Language header. If the client request doesn't provide an Accept-Language header, this method returns the default locale for the server.- Returns:
 - the preferred 
Localefor the client 
 
- 
isValidMobile
public boolean isValidMobile()
 
- 
isValidWorkstation
public boolean isValidWorkstation()
 
- 
isBrokeredAuth
public boolean isBrokeredAuth()
 
- 
getDevice
public NativeDevice getDevice()
 
- 
validate
public void validate(@Nullable java.lang.String challengeResponse)Received challenge response from mobile device 
- 
getLocales
public java.util.List<java.util.Locale> getLocales()
Returns aListofLocaleobjects indicating, in decreasing order starting with the preferred locale, the locales that are acceptable to the client based on the Accept-Language header in the request which created this session. If the client request doesn't provide an Accept-Language header, this method returns aListcontaining oneLocale, the default locale for the server.- Returns:
 - a 
Listof preferredLocaleobjects for the client 
 
- 
getOrCreateSession
@Nonnull public InternalSession getOrCreateSession(@Nonnull java.lang.String projectName)
Fetch theInternalSessionassociated with the given project name and version or create one if it does not exist in this session collection.- Parameters:
 projectName- the project name- Returns:
 - the 
InternalSessionassociated with the given project name and version in a running state 
 
- 
getOrCreateSession
@Nonnull public InternalSession getOrCreateSession(@Nonnull java.lang.String projectName, java.util.UUID sessionId)
 
- 
findProjectSession
@Nonnull public java.util.Optional<InternalSession> findProjectSession(@Nonnull java.lang.String project)
 
- 
getScope
public SessionScope getScope()
 
- 
getContext
public PerspectiveContext getContext()
 
- 
valueBound
public void valueBound(javax.servlet.http.HttpSessionBindingEvent event)
- Specified by:
 valueBoundin interfacejavax.servlet.http.HttpSessionBindingListener
 
- 
valueUnbound
public void valueUnbound(javax.servlet.http.HttpSessionBindingEvent event)
- Specified by:
 valueUnboundin interfacejavax.servlet.http.HttpSessionBindingListener
 
- 
onStartup
protected void onStartup()
- Specified by:
 onStartupin classAbstractLifecycle
 
- 
onShutdown
public void onShutdown()
Stops any ongoing processes running as part of the project running in this session.- Specified by:
 onShutdownin classAbstractLifecycle
 
- 
notifyConnected
public void notifyConnected(MessageChannel channel)
 
- 
notifyDisconnected
public void notifyDisconnected(MessageChannel channel)
 
- 
receive
public void receive(MessageChannel channel, java.lang.String protocol, java.io.Reader payload)
 
- 
handleLogs
public void handleLogs(LogMessage log)
Called when the client has POSTed log messages back to the server. 
- 
builder
@Nonnull public static PerspectiveSessionCollection.Builder builder()
 
- 
getSecurityZones
@Nonnull public com.google.common.collect.ImmutableCollection<java.lang.String> getSecurityZones()
 
- 
getTotalBytesSent
public java.math.BigInteger getTotalBytesSent()
 
- 
getRecentBytesSent
public java.lang.Long getRecentBytesSent()
 
- 
setRecentBytesSent
public void setRecentBytesSent(java.lang.Long recentBytesSent)
 
 - 
 
 -