|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.hd.d.pg2k.test.dev.SimpleCacheTest.DummyDataSource
public static class SimpleCacheTest.DummyDataSource
Dummy data source. Has one or more fake "virtual" exhibits, each of which contain some synthetic virtual data.
This can be wrapped to make a sort of "mock object" that can flag certain undesirable access patterns as test failures.
This returns data based on the exhibit data supplied to the constructor.
This never returns thumbnails.
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from interface org.hd.d.pg2k.svrCore.datasource.SimpleExhibitPipelineIF |
|---|
SimpleExhibitPipelineIF.PropsKey |
| Field Summary | |
|---|---|
private AllExhibitProperties |
aep
The set of exhibit properties; never null. |
private GenProps |
gp
Test set of GenProps; may be null. |
private BasicVarMgr |
vars
Basic "endpoint" set of variables. |
| Fields inherited from interface org.hd.d.pg2k.svrCore.datasource.SimpleExhibitPipelineIF |
|---|
MAX_USER_READ_SIZE |
| Constructor Summary | |
|---|---|
SimpleCacheTest.DummyDataSource()
Construct a new instance with empty properties. |
|
SimpleCacheTest.DummyDataSource(AllExhibitProperties aep,
GenProps gp)
Construct a new instance with the given properties. |
|
| 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)
Returns fixed (supplied) set of GenProps. |
java.util.Properties |
getGenSecProps(long oldStamp)
Always returns empty Properties set. |
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)
Minimalist implementation; not really the spirit of the contract. |
ExhibitStaticAttr |
getStaticAttr(Name.ExhibitFull name)
Get the static attributes for a given exhibit. |
ExhibitThumbnails |
getThumbnails(Name.ExhibitFull name,
boolean create)
Always returns null, ie we have no thumbnails. |
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)
Polling does nothing in this implementation. |
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 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 AllExhibitProperties aep
private final GenProps gp
private final BasicVarMgr vars
| Constructor Detail |
|---|
public SimpleCacheTest.DummyDataSource(AllExhibitProperties aep,
GenProps gp)
aep - set of exhibit properties; never nullgp - set of GenProps; may be nullpublic SimpleCacheTest.DummyDataSource()
| Method Detail |
|---|
public ExhibitStaticAttr getStaticAttr(Name.ExhibitFull name)
throws java.io.IOException
SimpleExhibitPipelineIF
getStaticAttr in interface SimpleExhibitPipelineIFjava.io.IOException - if the operation cannot be completed due to I/O
restrictions or failure
public void getRawFile(java.nio.ByteBuffer buf,
Name.ExhibitFull exhibitName,
int position,
boolean dontCache)
throws java.io.IOException
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 cacheing
java.io.IOException - for requests that cannot be fulfilled because of
I/O restrictions or problems, such as link failure or
an upper bound on the length of a request
public AllExhibitImmutableData getAllExhibitImmutableData(long oldStamp)
throws java.io.IOException
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 SimpleExhibitPipelineIFjava.io.IOException - if the operation cannot be completed due to I/O
restrictions or failure
public AllExhibitProperties getAllExhibitProperties(long oldHash)
throws java.io.IOException
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 SimpleExhibitPipelineIFjava.io.IOException - if the operation cannot be completed due to I/O
restrictions or failure
public GenProps getGenProps(long oldStamp)
throws java.io.IOException
getGenProps in interface SimpleExhibitPipelineIFjava.io.IOException - if the operation cannot be completed due to I/O
restrictions or failure
public java.util.Properties getGenSecProps(long oldStamp)
throws java.io.IOException
getGenSecProps in interface SimpleExhibitPipelineIFjava.io.IOException - if the operation cannot be completed due to I/O
restrictions or failure
public ExhibitThumbnails getThumbnails(Name.ExhibitFull name,
boolean create)
throws java.io.IOException
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
java.io.IOException - if the operation cannot be completed due to I/O
restrictions or failure
public void setVariable(SimpleVariableValue newValue)
throws java.io.IOException
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
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.IOException
public SimpleVariableValue getVariable(SimpleVariableDefinition var)
throws java.io.IOException
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 null
java.io.IOException - in case of I/O difficulty
public SimpleVariableValue[] getVariables(long changedSince)
throws java.io.IOException
BasicVarMgrInterfaceOnly the last event value of each event variable is returned by this method.
getVariables in interface BasicVarMgrInterfacejava.io.IOException - in case of I/O difficulty
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)
throws java.io.IOException
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
java.io.IOException - if one is received from upstream
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.IOException
public void poll(GenProps gp)
throws java.io.IOException
poll in interface SimpleExhibitPipelineIFjava.io.IOException - in case of difficulty, but even if a sub-ordinate
call throws IOException then poll() call should continue
to do as much of its remaining work as reasonably possiblepublic 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 | ||||||||