|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.hd.d.pg2k.test.dev.SystemVariablesTest.BasicVarMgrEndpoint
static final class SystemVariablesTest.BasicVarMgrEndpoint
Simple final pipeline stage (an endpoint) variable values. Note that all data operations return null; this class is for var testing purposes only (thus is not public).
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from interface org.hd.d.pg2k.svrCore.datasource.SimpleExhibitPipelineIF |
|---|
SimpleExhibitPipelineIF.PropsKey |
| Field Summary | |
|---|---|
private BasicVarMgr |
vars
Variable store; must be an end-point |
| Fields inherited from interface org.hd.d.pg2k.svrCore.datasource.SimpleExhibitPipelineIF |
|---|
MAX_USER_READ_SIZE |
| Constructor Summary | |
|---|---|
SystemVariablesTest.BasicVarMgrEndpoint()
|
|
| Method Summary | |
|---|---|
void |
destroy()
Does nothing in this implementation. |
AllExhibitImmutableData |
getAllExhibitImmutableData(long oldStamp)
Gets set of all static exhibit data if its timestamp is not that specified. |
AllExhibitProperties |
getAllExhibitProperties(long oldHash)
Gets set of all exhibit properties if its hash is not that specified; never null for -1 argument. |
EventVariableValue |
getEventValue(SimpleVariableDefinition def,
EventPeriod intervalSelector,
boolean current)
Get the current partial, or previous full, event set at the specified interval; never null. |
EventVariableValue[] |
getEventValues(SimpleVariableDefinition def,
EventPeriod intervalSelector,
long intervalNumber,
java.util.BitSet whichValues)
Get the specified event sets for the specified intervals; never null. |
GenProps |
getGenProps(long oldStamp)
Gets the general properties as a GenProps object if its timestamp is not that specified; never null for -1 argument. |
java.util.Properties |
getGenSecProps(long oldStamp)
Gets the generic security properties as a Properties object if its timestamp is not that specified. |
java.util.Properties |
getProperties(SimpleExhibitPipelineIF.PropsKey key,
long versionID)
Get requested Properties selected by key and versionID. |
void |
getRawFile(java.nio.ByteBuffer buf,
Name.ExhibitFull exhibitName,
int position,
boolean dontCache)
Read a chunk of the raw exhibit binary into the given buffer. |
ExhibitStaticAttr |
getStaticAttr(Name.ExhibitFull name)
Get the static attributes for a given exhibit. |
ExhibitThumbnails |
getThumbnails(Name.ExhibitFull name,
boolean create)
Gets the thumbnails for an exhibit. |
SimpleVariableValue |
getVariable(SimpleVariableDefinition var)
Get a single variable value; returns null if no such value or wrong type. |
SimpleVariableValue[] |
getVariables(long changedSince)
Get set of variable values altered on or after specified time, or get all values with -1; never null. |
void |
poll(GenProps gp)
Poll periodically (of the order of seconds) to do background work. |
void |
setVariable(SimpleVariableValue newValue)
Set variable to the given value (the variable name and definition are implicit). |
int |
setVariables(SimpleVariableValue[] newValues)
Update a number of variables at once for efficiency; returns the number of variables set. |
void |
syncVariables(boolean force)
Synchronise variables with upstream values. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
private final BasicVarMgr vars
| Constructor Detail |
|---|
SystemVariablesTest.BasicVarMgrEndpoint()
| Method Detail |
|---|
public ExhibitStaticAttr getStaticAttr(Name.ExhibitFull name)
SimpleExhibitPipelineIF
getStaticAttr in interface SimpleExhibitPipelineIF
public void getRawFile(java.nio.ByteBuffer buf,
Name.ExhibitFull exhibitName,
int position,
boolean dontCache)
SimpleExhibitPipelineIF
getRawFile in interface SimpleExhibitPipelineIFbuf - the buffer into which to read the data;
must be non-null, in put()able state,
and with remaining capacity of at least the requested number of bytesexhibitName - the full name of the exhibit to read from;
never null and must be syntactically validposition - position/index of first byte in exhibitFile to read;
non-negativedontCache - if true, this is a hint not to attempt to cache this
or displace anything from extant caches for this data
as it may for example be precaching or random activity;
by default callers should leave this false to allow cacheingpublic AllExhibitImmutableData getAllExhibitImmutableData(long oldStamp)
SimpleExhibitPipelineIFIf no exhibits are currently installed a default set with a zero timestamp is returned.
If the caller's copy appears to be up-to-date (eg the oldStamp matches that that would have been returned) null is returned.
getAllExhibitImmutableData in interface SimpleExhibitPipelineIFpublic AllExhibitProperties getAllExhibitProperties(long oldHash)
SimpleExhibitPipelineIFIf no exhibits are currently installed a default set with a zero timestamp is returned.
If the caller's copy appears to be up-to-date (eg the oldHash matches that that would have been returned) null is returned.
getAllExhibitProperties in interface SimpleExhibitPipelineIFpublic GenProps getGenProps(long oldStamp)
SimpleExhibitPipelineIFIf no props are currently installed/available a default set with a zero timestamp is returned.
If the caller's copy appears to be up-to-date (eg the oldStamp matches that that would have been returned) null is returned.
getGenProps in interface SimpleExhibitPipelineIFpublic java.util.Properties getGenSecProps(long oldStamp)
SimpleExhibitPipelineIFIf no props are currently installed/available a default set with a zero timestamp is returned.
If the caller's copy appears to be up-to-date (eg the oldStamp matches that that would have been returned) null is returned.
getGenSecProps in interface SimpleExhibitPipelineIF
public ExhibitThumbnails getThumbnails(Name.ExhibitFull name,
boolean create)
SimpleExhibitPipelineIF
getThumbnails in interface SimpleExhibitPipelineIFcreate - if true, and no thumbnail yet exists, try to
create one if possible, else if create is false
only return an existing one and return null if none is to hand
public void setVariable(SimpleVariableValue newValue)
throws java.io.IOException,
java.lang.UnsupportedOperationException
BasicVarMgrInterfaceThis is also used to send events, the last event value being the variable's value.
setVariable in interface BasicVarMgrInterfacejava.io.IOException - in case of I/O difficulty
java.lang.UnsupportedOperationException - if a variable is set that
we could never handle, eg a non-System-ID local variable at
the client end of a tunnel
public int setVariables(SimpleVariableValue[] newValues)
throws java.io.IOException
BasicVarMgrInterfaceFurthermore it behaves as if the set operations are done in order, from low index to high index, unless variables are coalesced (multiple sets of the same simple variable can keep just the last value). Set operations of different variables may be re-ordered with respect to one another in order that redundancy may reduced for transmission and storage, so this implicitly allows, for example, events to be re-ordered with respect to non-event variables.
An implementation may "fail fast" on the first error/exception, or may attempt to continue and do as much as possible.
An implementation may throw an IllegalArgumentException on attempt to: set a variable with value of wrong type or incompatible definition, set a non-existent or read-only variable (or these may be ignored)
setVariables in interface BasicVarMgrInterfacejava.io.IOExceptionpublic SimpleVariableValue getVariable(SimpleVariableDefinition var)
BasicVarMgrInterfaceOnly the last event value for a given event variable is returned by this method.
getVariable in interface BasicVarMgrInterfacevar - definition of variable to fetch; never nullpublic SimpleVariableValue[] getVariables(long changedSince)
BasicVarMgrInterfaceOnly the last event value of each event variable is returned by this method.
getVariables in interface BasicVarMgrInterface
public EventVariableValue getEventValue(SimpleVariableDefinition def,
EventPeriod intervalSelector,
boolean current)
BasicVarMgrInterfaceThe current set is the most timely, but may not contain enough data to be meaningful if the new interval has just started.
The previous set is complete and thus most likely to have enough samples to be useful, but is not completely current.
If the requested event set is not available, an empty non-authoritative synthetic one is created and returned. Thus, with this interface, it is not possible to distinguish between there being no events in the given interval or simply no data at all, but this is relatively simple and safe to use.
getEventValue in interface BasicVarMgrInterfacedef - event definition (must be for an event); never nullintervalSelector - never nullcurrent - if true the current event set is returned,
else the previous complete set is returned
public EventVariableValue[] getEventValues(SimpleVariableDefinition def,
EventPeriod intervalSelector,
long intervalNumber,
java.util.BitSet whichValues)
BasicVarMgrInterfaceRequests for more than SystemVariables.EVENT_SAMPLES_RETAINED in the past (or for the future!) cannot be satisfied and data will not be returned for them.
Usually not more than SystemVariables.EVENT_SAMPLES_RETAINED samples will be returned in response to any one request as a safety measure.
An implementation that is not an end-point may go upstream to fetch missing values and cache them to satisfy future requests. However, if unable to fetch authoritative data (quickly) then we will return null or non-authoritative data as appropriate for each slot; this does not throw IOException.
getEventValues in interface BasicVarMgrInterfacedef - event definition (must be for an event); never nullintervalSelector - never nullintervalNumber - the number of the first interval
for which data is potentially required;
if too far in the past or future then possibly no data
will be available,
zero is used to select the "all" bucketwhichValues - each true bit represents a slot for which data is
required, bit 0 indicating data from the slot within which
firstIntervalTime is located, bit 1 the previous slot, etc;
null is treated as the common case equivalent to just bit 0 set
public void syncVariables(boolean force)
SimpleVariablePipelineIFWhen called with force==true, this acts like a full "memory barrier", flushing all write-cached items downstream immediately and afterwards getting the value of all upstream values with getVariables(-1), but may be expensive in terms of CPU or bandwidth, so use sparingly.
When called with force==false, this incrementally flushes outstanding writes and will then fetch all, or only new, values from upstream, so is potentially much less resource-intensive. In particular, this does not propagate the sync() upstream.
In any case, it is rarely the right thing for a casual user to call this as it may be very expensive.
syncVariables in interface SimpleVariablePipelineIFforce - if true, this will force a full write flush,
a full sync upstream,
then full read with getVariables(-1),
to get the effect of a full "barrier";
otherwise, in general, a more incremental and non-propagating
mode is used which still does a write flush but may chose
to do a partial read of "new" upstream values
public java.util.Properties getProperties(SimpleExhibitPipelineIF.PropsKey key,
long versionID)
throws java.io.IOException
getProperties in interface SimpleExhibitPipelineIFkey - selector (with possible embedded sub-key)
for desired properties set; never nullversionID - if -1 then map is always returned if available,
else must be non-negative and null is returned if the versionID
presented matches that of the current version
(ie if the caller has presumably got the up-to-date version);
may be a timestamp or a hash or other value,
and by convention is zero only for an empty properties set
java.io.IOExceptionpublic void poll(GenProps gp)
SimpleExhibitPipelineIF
poll in interface SimpleExhibitPipelineIFpublic void destroy()
destroy in interface SimpleExhibitPipelineIF
|
DHD Multimedia Gallery V1.53.0 | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||