Several changes to support EPICS time stamps in areaDetector were made in areaDetector/ADCore R2-0. These are used by setting the TSE field in the EPICS records to -2. The record support then directly uses the TIME field in the record as the timestamp. Device support must have properly set the TIME field in the record.
Setting the timestamp when the driver processes, rather than later on when the record processes can be desirable because the timestamp then reflects more accurately the actual time that the I/O operation was performed. It is also desirable to allow for a user-defined function to provide the timestamp, rather than being restricted to simply calling epicsTimeGetCurrent(). For example, the driver may be associated with a particular EPICS event, and the user-defined function would then call epicsTimeGetEvent() with that event ID. This can also return a site-specific time format. For example at LCLS epicsTimeGetEvent() returns a timestamp where the low-order bits of the nsec field encode the pulse ID. They want the areaDetector drivers to read that timestamp as soon as possible after the I/O is complete. In areaDetector these timestamps should also be written to data files by the standard file-writing plugins whenever possible.
asyn R4-22 added new timestamp support functions to asynManager and asynPortDriver. areaDetector R2-0 uses these new functions. now.
A new field has been added to the NDArray class. This is the definition of that field.
epicsTimeStamp epicsTS; /**< The epicsTimeStamp; this is set with * pasynManager->updateTimeStamp(), * and can come from a user-defined timestamp source. */
Two new asynInt32 parameters have been added to the asynNDArrayDriver class.
2 new records have been added to NDPluginBase.template.
All detector drivers required a single-line addition of a call to updateTimeStamp, like the following:
pImage->timeStamp = startTime.secPastEpoch + startTime.nsec / 1.e9; updateTimeStamp(&pImage->epicsTS);
The drivers were already setting the double NDArray.timeStamp field, typically with the time from a call to epicsTimeGetCurrent. The call to asynPortDriver::updateTimeStamp calls pasynManager->updateTimeStamp(), which gets the current time either from its internal time stamp source function, or from a user-defined timestamp source function. This line has been added to all detector drivers in areaDetector. Any detector drivers that are not part of the areaDetector module will also need this line to be added.
NDPluginDriver, which is the base class from which all plugins derive has had the following additions to the NDPluginDriver::processCallbacks() method:
setIntegerParam(NDColorMode, colorMode); setIntegerParam(NDBayerPattern, bayerPattern); setIntegerParam(NDUniqueId, pArray->uniqueId); + setTimeStamp(&pArray->epicsTS); setDoubleParam(NDTimeStamp, pArray->timeStamp); + setIntegerParam(NDEpicsTSSec, pArray->epicsTS.secPastEpoch); + setIntegerParam(NDEpicsTSNsec, pArray->epicsTS.nsec); /* See if the array dimensions have changed. If so then do callbacks on them. */
It calls setTimeStamp with the epicsTimeStamp from NDArray that was passed to the plugin. setTimeStamp sets the internal timestamp in pasynManager. This is the timestamp that will be used for all callbacks to device support and read() operations in this plugin asynPortDriver. Thus, the record timestamps will come from the NDArray passed to the plugin if the record TSE field is -2. It also sets the new asynNDArrayDriver NDEpicsTSSec and NDEpicsTSNsec parameters to the fields from the NDArray.epicsTS. These records can then be used to monitor the EPICS timestamp in the NDArray even if TSE is not -2.
The pasynUser->timestamp field is now set from the NDArray.epicsTS field for both array callbacks and array read operations. The waveform records holding the NDArray data thus have the timestamps from the NDArray if TSE=-2.
The netCDF file writing plugin was changed to write 2 new variables to every netCDF file for each NDArray. epicsTSSec contains NDArray.epicsTS.secPastEpoch. epicsTSNsec contains NDArray.epicsTS.nsec. Note that these variables are arrays of length numArrays, where numArrays is the number of NDArrays (images) in the file. It was not possible to write the timestamp as a single 64-bit value because the classic netCDF file format does not support 64-bit integers.
The TIFF file writing plugin previously had one user-defined TIFF tag that contained the double NDArray.timeStamp field.
Tag=65000, field name=NDTimeStamp, field_type=TIFF_DOUBLE, value=NDArray.timeStamp.
3 new TIFF tags have been added to each TIFF file:
Tag=65001, field name=NDUniqueId, field_type=TIFF_LONG, value=NDArray.uniqueId. Tag=65002, field name=EPICSTSSec, field_type=TIFF_LONG, value=NDArray.epicsTS.secPastEpoch. Tag=65003, field name=EPICSTSNsec, field_type=TIFF_LONG, value=NDArray.epicsTS.nsec.
It was not possible to write the timestamp as a single 64-bit value because TIFF does not support 64-bit integer tags. It does have a type called TIFF_RATIONAL which is a pair of 32-bit integers. However, when reading such a tag what is returned is the quotient of the two numbers, which is not what is desired.
ADApp/ADSrc/myTimeStampSource.cpp is a new file that contains an example of a user-defined timestamp source. The timestamp source in that file simply calls epicsTimeGetCurrent(&timeStamp) and then sets timeStamp.nsec=0, so the time stamp is always an integer number of seconds. This makes it easy to tell that the user-defined timestamp source is being used. That function is loaded and unloaded with the new commands that were recently added to asyn:
registerTimeStampSource("port", "myTimeStampSource")
and
unregisterTimeStampSource("port")
A new shell script for testing has been added in ADCore/iocs/simDetectorIOC/iocBoot/timeStampMonitor.sh. This script takes 2 arguments: $1=PV prefix, $2=TSE value for records being monitored. The script first sets the TSE field of all records being monitored to $2, and then runs camonitor on all of the PVs. It monitors some PVs from the detector database (ADBase.template), some PVs from the NDPluginStdArrays plugin (image1), some PVs from the NDPluginROI plugin (ROI1), and some PVs from the NDPluginStats plugin (Stats1). The plugins are arranged with Prosilica driver->ROI1->Stats1. Thus, monitoring timestamps on the Stats1 plugin tests whether the timestamps are passed correctly through a plugin chain. The timestamp tests were done with the Prosilica camera running at a fixed rate of 2 frames/sec. Tests were done with TSE=0 (normal operation), TSE=-2 with default timestamp source, and TSE=-2 with the user-defined timestamp source.
corvette:~/devel/areaDetector/iocBoot>./timeStampMonitor.sh 13PS1 0 Old : 13PS1:cam1:ArrayCounter_RBV.TSE 0 New : 13PS1:cam1:ArrayCounter_RBV.TSE 0 Old : 13PS1:image1:ArrayCounter_RBV.TSE 0 New : 13PS1:image1:ArrayCounter_RBV.TSE 0 Old : 13PS1:image1:UniqueId_RBV.TSE 0 New : 13PS1:image1:UniqueId_RBV.TSE 0 Old : 13PS1:image1:ArrayData.TSE 0 New : 13PS1:image1:ArrayData.TSE 0 Old : 13PS1:image1:EpicsTSSec_RBV.TSE 0 New : 13PS1:image1:EpicsTSSec_RBV.TSE 0 Old : 13PS1:image1:EpicsTSNsec_RBV.TSE 0 New : 13PS1:image1:EpicsTSNsec_RBV.TSE 0 Old : 13PS1:ROI1:ArrayCounter_RBV.TSE 0 New : 13PS1:ROI1:ArrayCounter_RBV.TSE 0 Old : 13PS1:ROI1:UniqueId_RBV.TSE 0 New : 13PS1:ROI1:UniqueId_RBV.TSE 0 Old : 13PS1:Stats1:ArrayCounter_RBV.TSE 0 New : 13PS1:Stats1:ArrayCounter_RBV.TSE 0 Old : 13PS1:Stats1:UniqueId_RBV.TSE 0 New : 13PS1:Stats1:UniqueId_RBV.TSE 0 Old : 13PS1:Stats1:MeanValue_RBV.TSE 0 New : 13PS1:Stats1:MeanValue_RBV.TSE 0 13PS1:cam1:ArrayCounter_RBV 2013-09-15 12:00:19.230659 1 20529 13PS1:image1:ArrayCounter_RBV 2013-09-15 12:00:19.231246 1 20529 13PS1:image1:UniqueId_RBV 2013-09-15 12:00:19.231249 1 20529 13PS1:image1:ArrayData 2013-09-15 12:00:19.231243 1 33 13PS1:image1:EpicsTSSec_RBV 2013-09-15 12:00:19.231253 1 748112419 13PS1:image1:EpicsTSNsec_RBV 2013-09-15 12:00:19.231255 1 230464364 13PS1:ROI1:ArrayCounter_RBV 2013-09-15 12:00:19.230632 1 20455 13PS1:ROI1:UniqueId_RBV 2013-09-15 12:00:19.230635 1 20529 13PS1:Stats1:ArrayCounter_RBV 2013-09-15 12:00:19.237740 1 20455 13PS1:Stats1:UniqueId_RBV 2013-09-15 12:00:19.237743 1 20529 13PS1:Stats1:MeanValue_RBV 2013-09-15 12:00:19.237758 1 73.3657 13PS1:ROI1:ArrayCounter_RBV 2013-09-15 12:00:19.730675 1 20456 13PS1:ROI1:UniqueId_RBV 2013-09-15 12:00:19.730739 1 20530 13PS1:cam1:ArrayCounter_RBV 2013-09-15 12:00:19.730760 1 20530 13PS1:image1:ArrayData 2013-09-15 12:00:19.731286 1 33 13PS1:image1:ArrayCounter_RBV 2013-09-15 12:00:19.731348 1 20530 13PS1:image1:UniqueId_RBV 2013-09-15 12:00:19.731352 1 20530 13PS1:image1:EpicsTSNsec_RBV 2013-09-15 12:00:19.731357 1 730472829 13PS1:Stats1:ArrayCounter_RBV 2013-09-15 12:00:19.737856 1 20456 13PS1:Stats1:UniqueId_RBV 2013-09-15 12:00:19.737866 1 20530 13PS1:Stats1:MeanValue_RBV 2013-09-15 12:00:19.737889 1 73.6318 13PS1:ROI1:ArrayCounter_RBV 2013-09-15 12:00:20.230544 1 20457 13PS1:ROI1:UniqueId_RBV 2013-09-15 12:00:20.230604 1 20531 13PS1:cam1:ArrayCounter_RBV 2013-09-15 12:00:20.230650 1 20531 13PS1:image1:ArrayData 2013-09-15 12:00:20.231253 1 33 13PS1:image1:ArrayCounter_RBV 2013-09-15 12:00:20.231316 1 20531 13PS1:image1:UniqueId_RBV 2013-09-15 12:00:20.231320 1 20531 13PS1:image1:EpicsTSSec_RBV 2013-09-15 12:00:20.231327 1 748112420 13PS1:image1:EpicsTSNsec_RBV 2013-09-15 12:00:20.231332 1 230366264 13PS1:Stats1:ArrayCounter_RBV 2013-09-15 12:00:20.237810 1 20457 13PS1:Stats1:UniqueId_RBV 2013-09-15 12:00:20.237885 1 20531 13PS1:Stats1:MeanValue_RBV 2013-09-15 12:00:20.237911 1 74.2664 13PS1:ROI1:ArrayCounter_RBV 2013-09-15 12:00:20.730565 1 20458 13PS1:ROI1:UniqueId_RBV 2013-09-15 12:00:20.730625 1 20532 13PS1:cam1:ArrayCounter_RBV 2013-09-15 12:00:20.730644 1 20532 13PS1:image1:ArrayData 2013-09-15 12:00:20.731285 1 32 13PS1:image1:ArrayCounter_RBV 2013-09-15 12:00:20.731325 1 20532 13PS1:image1:UniqueId_RBV 2013-09-15 12:00:20.731330 1 20532 13PS1:image1:EpicsTSNsec_RBV 2013-09-15 12:00:20.731376 1 730415475 13PS1:Stats1:ArrayCounter_RBV 2013-09-15 12:00:20.738065 1 20458 13PS1:Stats1:UniqueId_RBV 2013-09-15 12:00:20.738103 1 20532 13PS1:Stats1:MeanValue_RBV 2013-09-15 12:00:20.738127 1 74.8682 13PS1:ROI1:ArrayCounter_RBV 2013-09-15 12:00:21.230629 1 20459 13PS1:ROI1:UniqueId_RBV 2013-09-15 12:00:21.230648 1 20533 13PS1:cam1:ArrayCounter_RBV 2013-09-15 12:00:21.230678 1 20533 13PS1:image1:ArrayData 2013-09-15 12:00:21.231301 1 32 13PS1:image1:ArrayCounter_RBV 2013-09-15 12:00:21.231341 1 20533 13PS1:image1:UniqueId_RBV 2013-09-15 12:00:21.231345 1 20533 13PS1:image1:EpicsTSSec_RBV 2013-09-15 12:00:21.231352 1 748112421 13PS1:image1:EpicsTSNsec_RBV 2013-09-15 12:00:21.231355 1 230466245 13PS1:Stats1:ArrayCounter_RBV 2013-09-15 12:00:21.237705 1 20459 13PS1:Stats1:UniqueId_RBV 2013-09-15 12:00:21.237716 1 20533 13PS1:Stats1:MeanValue_RBV 2013-09-15 12:00:21.237734 1 75.4404
This test shows the expected normal behavior. Each record is processing every 0.5 seconds. The timestamps for each record in the group are slightly different because the timestamp is generated when the record processes.
corvette:~/devel/areaDetector/iocBoot>./timeStampMonitor.sh 13PS1 -2 Old : 13PS1:cam1:ArrayCounter_RBV.TSE -2 New : 13PS1:cam1:ArrayCounter_RBV.TSE -2 Old : 13PS1:image1:ArrayCounter_RBV.TSE -2 New : 13PS1:image1:ArrayCounter_RBV.TSE -2 Old : 13PS1:image1:UniqueId_RBV.TSE -2 New : 13PS1:image1:UniqueId_RBV.TSE -2 Old : 13PS1:image1:ArrayData.TSE -2 New : 13PS1:image1:ArrayData.TSE -2 Old : 13PS1:image1:EpicsTSSec_RBV.TSE -2 New : 13PS1:image1:EpicsTSSec_RBV.TSE -2 Old : 13PS1:image1:EpicsTSNsec_RBV.TSE -2 New : 13PS1:image1:EpicsTSNsec_RBV.TSE -2 Old : 13PS1:ROI1:ArrayCounter_RBV.TSE -2 New : 13PS1:ROI1:ArrayCounter_RBV.TSE -2 Old : 13PS1:ROI1:UniqueId_RBV.TSE -2 New : 13PS1:ROI1:UniqueId_RBV.TSE -2 Old : 13PS1:Stats1:ArrayCounter_RBV.TSE -2 New : 13PS1:Stats1:ArrayCounter_RBV.TSE -2 Old : 13PS1:Stats1:UniqueId_RBV.TSE -2 New : 13PS1:Stats1:UniqueId_RBV.TSE -2 Old : 13PS1:Stats1:MeanValue_RBV.TSE -2 New : 13PS1:Stats1:MeanValue_RBV.TSE -2 13PS1:cam1:ArrayCounter_RBV 2013-09-15 12:03:55.228895 1 20961 13PS1:image1:ArrayCounter_RBV 2013-09-15 12:03:55.228895 1 20961 13PS1:image1:UniqueId_RBV 2013-09-15 12:03:55.228895 1 20961 13PS1:image1:ArrayData 2013-09-15 12:03:55.228895 1 40 13PS1:image1:EpicsTSSec_RBV 2013-09-15 12:03:55.228895 1 748112635 13PS1:image1:EpicsTSNsec_RBV 2013-09-15 12:03:55.228895 1 228895370 13PS1:ROI1:ArrayCounter_RBV 2013-09-15 12:03:55.228895 1 20887 13PS1:ROI1:UniqueId_RBV 2013-09-15 12:03:55.228895 1 20961 13PS1:Stats1:ArrayCounter_RBV 2013-09-15 12:03:55.228895 1 20887 13PS1:Stats1:UniqueId_RBV 2013-09-15 12:03:55.228895 1 20961 13PS1:Stats1:MeanValue_RBV 2013-09-15 12:03:55.228895 1 85.0236 13PS1:ROI1:ArrayCounter_RBV 2013-09-15 12:03:55.728924 1 20888 13PS1:ROI1:UniqueId_RBV 2013-09-15 12:03:55.728924 1 20962 13PS1:cam1:ArrayCounter_RBV 2013-09-15 12:03:55.728924 1 20962 13PS1:image1:ArrayData 2013-09-15 12:03:55.728924 1 38 13PS1:image1:ArrayCounter_RBV 2013-09-15 12:03:55.728924 1 20962 13PS1:image1:UniqueId_RBV 2013-09-15 12:03:55.728924 1 20962 13PS1:image1:EpicsTSNsec_RBV 2013-09-15 12:03:55.728924 1 728923543 13PS1:Stats1:ArrayCounter_RBV 2013-09-15 12:03:55.728924 1 20888 13PS1:Stats1:UniqueId_RBV 2013-09-15 12:03:55.728924 1 20962 13PS1:Stats1:MeanValue_RBV 2013-09-15 12:03:55.728924 1 84.8537 13PS1:ROI1:ArrayCounter_RBV 2013-09-15 12:03:56.229066 1 20889 13PS1:ROI1:UniqueId_RBV 2013-09-15 12:03:56.229066 1 20963 13PS1:cam1:ArrayCounter_RBV 2013-09-15 12:03:56.229066 1 20963 13PS1:image1:ArrayData 2013-09-15 12:03:56.229066 1 39 13PS1:image1:ArrayCounter_RBV 2013-09-15 12:03:56.229066 1 20963 13PS1:image1:UniqueId_RBV 2013-09-15 12:03:56.229066 1 20963 13PS1:image1:EpicsTSSec_RBV 2013-09-15 12:03:56.229066 1 748112636 13PS1:image1:EpicsTSNsec_RBV 2013-09-15 12:03:56.229066 1 229065628 13PS1:Stats1:ArrayCounter_RBV 2013-09-15 12:03:56.229066 1 20889 13PS1:Stats1:UniqueId_RBV 2013-09-15 12:03:56.229066 1 20963 13PS1:Stats1:MeanValue_RBV 2013-09-15 12:03:56.229066 1 84.968 13PS1:ROI1:ArrayCounter_RBV 2013-09-15 12:03:56.728913 1 20890 13PS1:ROI1:UniqueId_RBV 2013-09-15 12:03:56.728913 1 20964 13PS1:cam1:ArrayCounter_RBV 2013-09-15 12:03:56.728913 1 20964 13PS1:image1:ArrayData 2013-09-15 12:03:56.728913 1 38 13PS1:image1:ArrayCounter_RBV 2013-09-15 12:03:56.728913 1 20964 13PS1:image1:UniqueId_RBV 2013-09-15 12:03:56.728913 1 20964 13PS1:image1:EpicsTSNsec_RBV 2013-09-15 12:03:56.728913 1 728913237 13PS1:Stats1:ArrayCounter_RBV 2013-09-15 12:03:56.728913 1 20890 13PS1:Stats1:UniqueId_RBV 2013-09-15 12:03:56.728913 1 20964 13PS1:Stats1:MeanValue_RBV 2013-09-15 12:03:56.728913 1 85.035 13PS1:ROI1:ArrayCounter_RBV 2013-09-15 12:03:57.228957 1 20891 13PS1:ROI1:UniqueId_RBV 2013-09-15 12:03:57.228957 1 20965 13PS1:cam1:ArrayCounter_RBV 2013-09-15 12:03:57.228957 1 20965 13PS1:image1:ArrayData 2013-09-15 12:03:57.228957 1 38 13PS1:image1:ArrayCounter_RBV 2013-09-15 12:03:57.228957 1 20965 13PS1:image1:UniqueId_RBV 2013-09-15 12:03:57.228957 1 20965 13PS1:image1:EpicsTSSec_RBV 2013-09-15 12:03:57.228957 1 748112637 13PS1:image1:EpicsTSNsec_RBV 2013-09-15 12:03:57.228957 1 228957340 13PS1:Stats1:ArrayCounter_RBV 2013-09-15 12:03:57.228957 1 20891 13PS1:Stats1:UniqueId_RBV 2013-09-15 12:03:57.228957 1 20965 13PS1:Stats1:MeanValue_RBV 2013-09-15 12:03:57.228957 1 84.9281
This test shows the expected result. The timestamps within a single 0.5 second group are identical, which is different from test 1. Timestamps for the Prosilica driver records (13PS1:cam1:ArrayCounter_RBV) are coming from the most recent call by the driver to updateTimeStamp(). Timestamps for all of the plugin records are coming from the NDArray.epicsTS field, which is used in the call to setTimeStamp() in the plugin driver. The default timestamp source is clearly being used because the fractional seconds are non-zero. This has the desired result that all records associated with a particular image have the timestamp at the time the Prosilica driver received that image.
corvette:~/devel/areaDetector/iocBoot>./timeStampMonitor.sh 13PS1 -2 Old : 13PS1:cam1:ArrayCounter_RBV.TSE -2 New : 13PS1:cam1:ArrayCounter_RBV.TSE -2 Old : 13PS1:image1:ArrayCounter_RBV.TSE -2 New : 13PS1:image1:ArrayCounter_RBV.TSE -2 Old : 13PS1:image1:UniqueId_RBV.TSE -2 New : 13PS1:image1:UniqueId_RBV.TSE -2 Old : 13PS1:image1:ArrayData.TSE -2 New : 13PS1:image1:ArrayData.TSE -2 Old : 13PS1:image1:EpicsTSSec_RBV.TSE -2 New : 13PS1:image1:EpicsTSSec_RBV.TSE -2 Old : 13PS1:image1:EpicsTSNsec_RBV.TSE -2 New : 13PS1:image1:EpicsTSNsec_RBV.TSE -2 Old : 13PS1:ROI1:ArrayCounter_RBV.TSE -2 New : 13PS1:ROI1:ArrayCounter_RBV.TSE -2 Old : 13PS1:ROI1:UniqueId_RBV.TSE -2 New : 13PS1:ROI1:UniqueId_RBV.TSE -2 Old : 13PS1:Stats1:ArrayCounter_RBV.TSE -2 New : 13PS1:Stats1:ArrayCounter_RBV.TSE -2 Old : 13PS1:Stats1:UniqueId_RBV.TSE -2 New : 13PS1:Stats1:UniqueId_RBV.TSE -2 Old : 13PS1:Stats1:MeanValue_RBV.TSE -2 New : 13PS1:Stats1:MeanValue_RBV.TSE -2 13PS1:cam1:ArrayCounter_RBV 2013-09-15 12:13:25.000000 1 22102 13PS1:image1:ArrayCounter_RBV 2013-09-15 12:13:25.000000 1 22102 13PS1:image1:UniqueId_RBV 2013-09-15 12:13:25.000000 1 22102 13PS1:image1:ArrayData 2013-09-15 12:13:25.000000 1 27 13PS1:image1:EpicsTSSec_RBV 2013-09-15 12:13:25.000000 1 748113205 13PS1:image1:EpicsTSNsec_RBV 2013-09-15 12:13:22.000000 1 0 13PS1:ROI1:ArrayCounter_RBV 2013-09-15 12:13:25.000000 1 22028 13PS1:ROI1:UniqueId_RBV 2013-09-15 12:13:25.000000 1 22102 13PS1:Stats1:ArrayCounter_RBV 2013-09-15 12:13:25.000000 1 22028 13PS1:Stats1:UniqueId_RBV 2013-09-15 12:13:25.000000 1 22102 13PS1:Stats1:MeanValue_RBV 2013-09-15 12:13:25.000000 1 59.7119 13PS1:ROI1:ArrayCounter_RBV 2013-09-15 12:13:26.000000 1 22029 13PS1:ROI1:UniqueId_RBV 2013-09-15 12:13:26.000000 1 22103 13PS1:cam1:ArrayCounter_RBV 2013-09-15 12:13:26.000000 1 22103 13PS1:image1:ArrayData 2013-09-15 12:13:26.000000 1 28 13PS1:image1:ArrayCounter_RBV 2013-09-15 12:13:26.000000 1 22103 13PS1:image1:UniqueId_RBV 2013-09-15 12:13:26.000000 1 22103 13PS1:image1:EpicsTSSec_RBV 2013-09-15 12:13:26.000000 1 748113206 13PS1:Stats1:ArrayCounter_RBV 2013-09-15 12:13:26.000000 1 22029 13PS1:Stats1:UniqueId_RBV 2013-09-15 12:13:26.000000 1 22103 13PS1:Stats1:MeanValue_RBV 2013-09-15 12:13:26.000000 1 60.5082 13PS1:ROI1:ArrayCounter_RBV 2013-09-15 12:13:26.000000 1 22030 13PS1:ROI1:UniqueId_RBV 2013-09-15 12:13:26.000000 1 22104 13PS1:cam1:ArrayCounter_RBV 2013-09-15 12:13:26.000000 1 22104 13PS1:image1:ArrayData 2013-09-15 12:13:26.000000 1 28 13PS1:image1:ArrayCounter_RBV 2013-09-15 12:13:26.000000 1 22104 13PS1:image1:UniqueId_RBV 2013-09-15 12:13:26.000000 1 22104 13PS1:Stats1:ArrayCounter_RBV 2013-09-15 12:13:26.000000 1 22030 13PS1:Stats1:UniqueId_RBV 2013-09-15 12:13:26.000000 1 22104 13PS1:Stats1:MeanValue_RBV 2013-09-15 12:13:26.000000 1 61.1341 13PS1:ROI1:ArrayCounter_RBV 2013-09-15 12:13:27.000000 1 22031 13PS1:ROI1:UniqueId_RBV 2013-09-15 12:13:27.000000 1 22105 13PS1:cam1:ArrayCounter_RBV 2013-09-15 12:13:27.000000 1 22105 13PS1:image1:ArrayData 2013-09-15 12:13:27.000000 1 29 13PS1:image1:ArrayCounter_RBV 2013-09-15 12:13:27.000000 1 22105 13PS1:image1:UniqueId_RBV 2013-09-15 12:13:27.000000 1 22105 13PS1:image1:EpicsTSSec_RBV 2013-09-15 12:13:27.000000 1 748113207 13PS1:Stats1:ArrayCounter_RBV 2013-09-15 12:13:27.000000 1 22031 13PS1:Stats1:UniqueId_RBV 2013-09-15 12:13:27.000000 1 22105 13PS1:Stats1:MeanValue_RBV 2013-09-15 12:13:27.000000 1 62.0059 13PS1:ROI1:ArrayCounter_RBV 2013-09-15 12:13:27.000000 1 22032 13PS1:ROI1:UniqueId_RBV 2013-09-15 12:13:27.000000 1 22106 13PS1:cam1:ArrayCounter_RBV 2013-09-15 12:13:27.000000 1 22106 13PS1:image1:ArrayData 2013-09-15 12:13:27.000000 1 30 13PS1:image1:ArrayCounter_RBV 2013-09-15 12:13:27.000000 1 22106 13PS1:image1:UniqueId_RBV 2013-09-15 12:13:27.000000 1 22106 13PS1:Stats1:ArrayCounter_RBV 2013-09-15 12:13:27.000000 1 22032 13PS1:Stats1:UniqueId_RBV 2013-09-15 12:13:27.000000 1 22106 13PS1:Stats1:MeanValue_RBV 2013-09-15 12:13:27.000000 1 62.6052
This test shows the expected result. The timestamps within a single 0.5 second group are identical, the same as test 2. The user timestamp source is clearly being used because the fractional seconds are all zero. This has the desired result that all records associated with a particular image have the timestamp at the time the Prosilica driver received that image, and the user-defined timestamp source is being used.
The netCDF files should now contain the NDArray.epicsTS data in two arrays. The values do not depend on TSE, since that only affects the record timestamps. The values do depend on whether the default timestamp source or the user-defined timestamp source is being used. For these tests 10 images were collected in each netCDF file in "stream" mode.
This is the output of the "ncdump" utility on a netCDF file collected with the default timestamp source:
corvette:~/scratch>ncdump -v uniqueId,timeStamp,epicsTSSec,epicsTSNsec ~/scratch/test_DefaultSource_001.nc netcdf test_DefaultSource_001 { dimensions: numArrays = UNLIMITED ; // (10 currently) dim0 = 512 ; dim1 = 680 ; attrStringSize = 256 ; variables: int uniqueId(numArrays) ; double timeStamp(numArrays) ; int epicsTSSec(numArrays) ; int epicsTSNsec(numArrays) ; byte array_data(numArrays, dim0, dim1) ; int Attr_BayerPattern(numArrays) ; int Attr_ColorMode(numArrays) ; double Attr_AcquireTime(numArrays) ; char Attr_CameraModel(numArrays, attrStringSize) ; int Attr_FramesDropped(numArrays) ; // global attributes: :dataType = 1 ; :NDNetCDFFileVersion = 3. ; :numArrayDims = 2 ; :dimSize = 680, 512 ; :dimOffset = 0, 0 ; :dimBinning = 2, 2 ; :dimReverse = 0, 0 ; :Attr_BayerPattern_DataType = "Int32" ; :Attr_BayerPattern_Description = "Bayer Pattern" ; :Attr_BayerPattern_Source = ; :Attr_BayerPattern_SourceType = "Driver" ; :Attr_ColorMode_DataType = "Int32" ; :Attr_ColorMode_Description = "Color Mode" ; :Attr_ColorMode_Source = ; :Attr_ColorMode_SourceType = "Driver" ; :Attr_AcquireTime_DataType = "Float64" ; :Attr_AcquireTime_Description = "Camera acquire time" ; :Attr_AcquireTime_Source = "13PS1:cam1:AcquireTime" ; :Attr_AcquireTime_SourceType = "EPICS_PV" ; :Attr_CameraModel_DataType = "String" ; :Attr_CameraModel_Description = "CameraModel" ; :Attr_CameraModel_Source = "MODEL" ; :Attr_CameraModel_SourceType = "Param" ; :Attr_FramesDropped_DataType = "Int32" ; :Attr_FramesDropped_Description = "FramesDropped" ; :Attr_FramesDropped_Source = "PS_FRAMES_DROPPED" ; :Attr_FramesDropped_SourceType = "Param" ; data: uniqueId = 23569, 23570, 23571, 23572, 23573, 23574, 23575, 23576, 23577, 23578 ; timeStamp = 748113951.240688, 748113951.740688, 748113952.240688, 748113952.740688, 748113953.240688, 748113953.740688, 748113954.240688, 748113954.740688, 748113955.240688, 748113955.740688 ; epicsTSSec = 748113951, 748113951, 748113952, 748113952, 748113953, 748113953, 748113954, 748113954, 748113955, 748113955 ; epicsTSNsec = 259958854, 759958117, 259985340, 759984911, 259874142, 760020860, 259933342, 759950117, 259764554, 759964413 ; }
This shows the expected result. The epicsTSNsec values are non-zero, because the default timestamp source is being used. The epicsTSSec values are the same as the integer part of the timeStamp values.
This is the output of the "ncdump" utility on a netCDF file collected with the user-defined timestamp source:
corvette:~/scratch>ncdump -v uniqueId,timeStamp,epicsTSSec,epicsTSNsec ~/scratch/test_UserSource_001.nc netcdf test_UserSource_001 { dimensions: numArrays = UNLIMITED ; // (10 currently) dim0 = 512 ; dim1 = 680 ; attrStringSize = 256 ; variables: int uniqueId(numArrays) ; double timeStamp(numArrays) ; int epicsTSSec(numArrays) ; int epicsTSNsec(numArrays) ; byte array_data(numArrays, dim0, dim1) ; int Attr_BayerPattern(numArrays) ; int Attr_ColorMode(numArrays) ; double Attr_AcquireTime(numArrays) ; char Attr_CameraModel(numArrays, attrStringSize) ; int Attr_FramesDropped(numArrays) ; // global attributes: :dataType = 1 ; :NDNetCDFFileVersion = 3. ; :numArrayDims = 2 ; :dimSize = 680, 512 ; :dimOffset = 0, 0 ; :dimBinning = 2, 2 ; :dimReverse = 0, 0 ; :Attr_BayerPattern_DataType = "Int32" ; :Attr_BayerPattern_Description = "Bayer Pattern" ; :Attr_BayerPattern_Source = ; :Attr_BayerPattern_SourceType = "Driver" ; :Attr_ColorMode_DataType = "Int32" ; :Attr_ColorMode_Description = "Color Mode" ; :Attr_ColorMode_Source = ; :Attr_ColorMode_SourceType = "Driver" ; :Attr_AcquireTime_DataType = "Float64" ; :Attr_AcquireTime_Description = "Camera acquire time" ; :Attr_AcquireTime_Source = "13PS1:cam1:AcquireTime" ; :Attr_AcquireTime_SourceType = "EPICS_PV" ; :Attr_CameraModel_DataType = "String" ; :Attr_CameraModel_Description = "CameraModel" ; :Attr_CameraModel_Source = "MODEL" ; :Attr_CameraModel_SourceType = "Param" ; :Attr_FramesDropped_DataType = "Int32" ; :Attr_FramesDropped_Description = "FramesDropped" ; :Attr_FramesDropped_Source = "PS_FRAMES_DROPPED" ; :Attr_FramesDropped_SourceType = "Param" ; data: uniqueId = 24063, 24064, 24065, 24066, 24067, 24068, 24069, 24070, 24071, 24072 ; timeStamp = 748114198.240688, 748114198.740688, 748114199.240688, 748114199.740688, 748114200.240688, 748114200.740688, 748114201.240688, 748114201.740688, 748114202.240688, 748114202.740688 ; epicsTSSec = 748114198, 748114198, 748114199, 748114199, 748114200, 748114200, 748114201, 748114201, 748114202, 748114202 ; epicsTSNsec = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ; }
This shows the expected result. The epicsTSNsec values are zero, because the user-defined timestamp source is being used. The epicsTSSec values are the same as the integer part of the timeStamp values.
The netCDF files should now contain the NDArray.epicsTS data in two tags, 65002 and 65003. The values do not depend on TSE, since that only affects the record timestamps. The values do depend on whether the default timestamp source or the user-defined timestamp source is being used.
This is the output of the "tiffinfo" utility on a TIFF file collected with the default timestamp source:
corvette:~/scratch>tiffinfo tiff_DefaultTS_001.tif TIFFReadDirectory: Warning, tiff_DefaultTS_001.tif: unknown field with tag 65000 (0xfde8) encountered. TIFFReadDirectory: Warning, tiff_DefaultTS_001.tif: unknown field with tag 65001 (0xfde9) encountered. TIFFReadDirectory: Warning, tiff_DefaultTS_001.tif: unknown field with tag 65002 (0xfdea) encountered. TIFFReadDirectory: Warning, tiff_DefaultTS_001.tif: unknown field with tag 65003 (0xfdeb) encountered. TIFF Directory at offset 0x55008 (348168) Image Width: 680 Image Length: 512 Bits/Sample: 8 Sample Format: unsigned integer Compression Scheme: None Photometric Interpretation: min-is-black Samples/Pixel: 1 Rows/Strip: 512 Planar Configuration: single image plane Make: Unknown Model: Unknown Tag 65000: 748114737.240688 Tag 65001: 25141 Tag 65002: 748114737 Tag 65003: 254905820
This shows the expected result. The epicsTSNsec (tag 65003) values are non-zero, because the default timestamp source is being used. The epicsTSSec values are the same as the integer part of the timeStamp values.
This is the output of the "tiffinfo" utility on a TIFF file collected with the used-defined timestamp source:
corvette:~/scratch>tiffinfo tiff_UserTS_001.tif TIFFReadDirectory: Warning, tiff_UserTS_001.tif: unknown field with tag 65000 (0xfde8) encountered. TIFFReadDirectory: Warning, tiff_UserTS_001.tif: unknown field with tag 65001 (0xfde9) encountered. TIFFReadDirectory: Warning, tiff_UserTS_001.tif: unknown field with tag 65002 (0xfdea) encountered. TIFFReadDirectory: Warning, tiff_UserTS_001.tif: unknown field with tag 65003 (0xfdeb) encountered. TIFF Directory at offset 0x55008 (348168) Image Width: 680 Image Length: 512 Bits/Sample: 8 Sample Format: unsigned integer Compression Scheme: None Photometric Interpretation: min-is-black Samples/Pixel: 1 Rows/Strip: 512 Planar Configuration: single image plane Make: Unknown Model: Unknown Tag 65000: 748114762.240688 Tag 65001: 25191 Tag 65002: 748114762 Tag 65003: 0
This shows the expected result. The epicsTSNsec (tag 65003) values are zero, because the user-defined timestamp source is being used. The epicsTSSec values are the same as the integer part of the timeStamp values.
While making these changes I found that the NDFileNexus and NDFileHDF5 plugins, which write Nexus-HDF5 and native HDF5 files respectively, do not currently store the NDArray.timeStamp information at all in the files. This is an oversight that should be fixed, and they should of course be extended to also store NDArray.epicsTS. I did not write these plugins, so I am hoping that the original authors can make these changes.


public interface ProxyLogicHandler
| Modifier and Type | Method and Description |
|---|---|
void |
doHandshake(IoFilter.NextFilter nextFilter)
Called at each step of the handshake procedure.
|
void |
enqueueWriteRequest(IoFilter.NextFilter nextFilter,
WriteRequest writeRequest)
Enqueue a message to be written once handshaking is complete.
|
ProxyIoSession |
getProxyIoSession() |
boolean |
isHandshakeComplete()
Tests if handshake process is complete.
|
void |
messageReceived(IoFilter.NextFilter nextFilter,
IoBuffer buf)
Handle incoming data during the handshake process.
|
boolean isHandshakeComplete()
void messageReceived(IoFilter.NextFilter nextFilter, IoBuffer buf) throws ProxyAuthException
nextFilter
- the next filter in the filter chainbuf
- the buffer holding the received dataProxyAuthException
- if authentication failsvoid doHandshake(IoFilter.NextFilter nextFilter) throws ProxyAuthException
nextFilter
- the next filter in filter chainProxyAuthException
- if authentication failsProxyIoSession getProxyIoSession()
ProxyIoSession
.void enqueueWriteRequest(IoFilter.NextFilter nextFilter, WriteRequest writeRequest)
nextFilter
- the next filter in filter chainwriteRequest
- the data to be writtenCopyright © 2004–2016 Apache MINA Project. All rights reserved.


--- layout: post title: no title date: '2011-06-15T17:40:59+02:00' tags: - travel - siracusa - sicily tumblr_url: http://dotmr.tumblr.com/post/6565780502 ---


Interface IEmailControllerApiSync
Represents a collection of functions to interact with the API endpoints
Inherited Members
Namespace: mailslurp.Api
Assembly: mailslurp.dll
Syntax
public interface IEmailControllerApiSync : IApiAccessor
Methods
View SourceApplyImapFlagOperation(Guid, ImapFlagOperationOptions, int)
Set IMAP flags associated with a message. Only supports '\Seen' flag.
Declaration
EmailPreview ApplyImapFlagOperation(Guid emailId, ImapFlagOperationOptions imapFlagOperationOptions, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | emailId | |
| ImapFlagOperationOptions | imapFlagOperationOptions | |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| EmailPreview | EmailPreview |
Remarks
Apply RFC3501 section-2.3.2 IMAP flag operations on an email
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
ApplyImapFlagOperationWithHttpInfo(Guid, ImapFlagOperationOptions, int)
Set IMAP flags associated with a message. Only supports '\Seen' flag.
Declaration
ApiResponse<EmailPreview> ApplyImapFlagOperationWithHttpInfo(Guid emailId, ImapFlagOperationOptions imapFlagOperationOptions, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | emailId | |
| ImapFlagOperationOptions | imapFlagOperationOptions | |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| ApiResponse<EmailPreview> | ApiResponse of EmailPreview |
Remarks
Apply RFC3501 section-2.3.2 IMAP flag operations on an email
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
DeleteAllEmails(int)
Delete all emails in all inboxes.
Declaration
void DeleteAllEmails(int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| int | operationIndex | Index associated with the operation. |
Remarks
Deletes all emails in your account. Be careful as emails cannot be recovered
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
DeleteAllEmailsWithHttpInfo(int)
Delete all emails in all inboxes.
Declaration
ApiResponse<object> DeleteAllEmailsWithHttpInfo(int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| ApiResponse<object> | ApiResponse of Object(void) |
Remarks
Deletes all emails in your account. Be careful as emails cannot be recovered
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
DeleteEmail(Guid, int)
Delete an email
Declaration
void DeleteEmail(Guid emailId, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | emailId | ID of email to delete |
| int | operationIndex | Index associated with the operation. |
Remarks
Deletes an email and removes it from the inbox. Deleted emails cannot be recovered.
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
DeleteEmailWithHttpInfo(Guid, int)
Delete an email
Declaration
ApiResponse<object> DeleteEmailWithHttpInfo(Guid emailId, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | emailId | ID of email to delete |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| ApiResponse<object> | ApiResponse of Object(void) |
Remarks
Deletes an email and removes it from the inbox. Deleted emails cannot be recovered.
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
DownloadAttachment(Guid, string, string, int)
Get email attachment bytes. Returned as octet-stream
with content type header. If you have trouble with byte responses try the downloadAttachmentBase64
response endpoints and convert the base 64 encoded content to a file or string.
Declaration
byte[] DownloadAttachment(Guid emailId, string attachmentId, string apiKey = null, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | emailId | ID of email |
| string | attachmentId | ID of attachment |
| string | apiKey | Can pass apiKey in url for this request if you wish to download the file in a browser. Content type will be set to original content type of the attachment file. This is so that browsers can download the file correctly. (optional) |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| byte[] | byte[] |
Remarks
Returns the specified attachment for a given email as a stream / array of bytes. You can find attachment ids in email responses endpoint responses. The response type is application/octet-stream.
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
DownloadAttachmentBase64(Guid, string, int)
Get email attachment as base64 encoded string as an alternative to binary responses. Decode the base64FileContents
as a utf-8
encoded string or array of bytes depending on the contentType
.
Declaration
DownloadAttachmentDto DownloadAttachmentBase64(Guid emailId, string attachmentId, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | emailId | ID of email |
| string | attachmentId | ID of attachment |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| DownloadAttachmentDto | DownloadAttachmentDto |
Remarks
Returns the specified attachment for a given email as a base 64 encoded string. The response type is application/json. This method is similar to the downloadAttachment
method but allows some clients to get around issues with binary responses.
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
DownloadAttachmentBase64WithHttpInfo(Guid, string, int)
Get email attachment as base64 encoded string as an alternative to binary responses. Decode the base64FileContents
as a utf-8
encoded string or array of bytes depending on the contentType
.
Declaration
ApiResponse<DownloadAttachmentDto> DownloadAttachmentBase64WithHttpInfo(Guid emailId, string attachmentId, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | emailId | ID of email |
| string | attachmentId | ID of attachment |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| ApiResponse<DownloadAttachmentDto> | ApiResponse of DownloadAttachmentDto |
Remarks
Returns the specified attachment for a given email as a base 64 encoded string. The response type is application/json. This method is similar to the downloadAttachment
method but allows some clients to get around issues with binary responses.
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
DownloadAttachmentWithHttpInfo(Guid, string, string, int)
Get email attachment bytes. Returned as octet-stream
with content type header. If you have trouble with byte responses try the downloadAttachmentBase64
response endpoints and convert the base 64 encoded content to a file or string.
Declaration
ApiResponse<byte[]> DownloadAttachmentWithHttpInfo(Guid emailId, string attachmentId, string apiKey = null, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | emailId | ID of email |
| string | attachmentId | ID of attachment |
| string | apiKey | Can pass apiKey in url for this request if you wish to download the file in a browser. Content type will be set to original content type of the attachment file. This is so that browsers can download the file correctly. (optional) |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| ApiResponse<byte[]> | ApiResponse of byte[] |
Remarks
Returns the specified attachment for a given email as a stream / array of bytes. You can find attachment ids in email responses endpoint responses. The response type is application/octet-stream.
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
DownloadBody(Guid, int)
Get email body as string. Returned as plain/text
with content type header.
Declaration
string DownloadBody(Guid emailId, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | emailId | ID of email |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| string | string |
Remarks
Returns the specified email body for a given email as a string
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
DownloadBodyBytes(Guid, int)
Get email body in bytes. Returned as octet-stream
with content type header.
Declaration
byte[] DownloadBodyBytes(Guid emailId, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | emailId | ID of email |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| byte[] | byte[] |
Remarks
Returns the specified email body for a given email as a stream / array of bytes.
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
DownloadBodyBytesWithHttpInfo(Guid, int)
Get email body in bytes. Returned as octet-stream
with content type header.
Declaration
ApiResponse<byte[]> DownloadBodyBytesWithHttpInfo(Guid emailId, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | emailId | ID of email |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| ApiResponse<byte[]> | ApiResponse of byte[] |
Remarks
Returns the specified email body for a given email as a stream / array of bytes.
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
DownloadBodyWithHttpInfo(Guid, int)
Get email body as string. Returned as plain/text
with content type header.
Declaration
ApiResponse<string> DownloadBodyWithHttpInfo(Guid emailId, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | emailId | ID of email |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| ApiResponse<string> | ApiResponse of string |
Remarks
Returns the specified email body for a given email as a string
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
ForwardEmail(Guid, ForwardEmailOptions, int)
Forward email to recipients
Declaration
SentEmailDto ForwardEmail(Guid emailId, ForwardEmailOptions forwardEmailOptions, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | emailId | ID of email |
| ForwardEmailOptions | forwardEmailOptions | |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| SentEmailDto | SentEmailDto |
Remarks
Forward an existing email to new recipients. The sender of the email will be the inbox that received the email you are forwarding. You can override the sender with the from
option. Note you must have access to the from address in MailSlurp to use the override. For more control consider fetching the email and sending it a new using the send email endpoints.
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
ForwardEmailWithHttpInfo(Guid, ForwardEmailOptions, int)
Forward email to recipients
Declaration
ApiResponse<SentEmailDto> ForwardEmailWithHttpInfo(Guid emailId, ForwardEmailOptions forwardEmailOptions, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | emailId | ID of email |
| ForwardEmailOptions | forwardEmailOptions | |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| ApiResponse<SentEmailDto> | ApiResponse of SentEmailDto |
Remarks
Forward an existing email to new recipients. The sender of the email will be the inbox that received the email you are forwarding. You can override the sender with the from
option. Note you must have access to the from address in MailSlurp to use the override. For more control consider fetching the email and sending it a new using the send email endpoints.
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
GetAttachmentMetaData(Guid, string, int)
Get email attachment metadata. This is the contentType
and contentLength
of an attachment. To get the individual attachments use the downloadAttachment
methods.
Declaration
AttachmentMetaData GetAttachmentMetaData(Guid emailId, string attachmentId, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | emailId | ID of email |
| string | attachmentId | ID of attachment |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| AttachmentMetaData | AttachmentMetaData |
Remarks
Returns the metadata such as name and content-type for a given attachment and email.
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
GetAttachmentMetaDataWithHttpInfo(Guid, string, int)
Get email attachment metadata. This is the contentType
and contentLength
of an attachment. To get the individual attachments use the downloadAttachment
methods.
Declaration
ApiResponse<AttachmentMetaData> GetAttachmentMetaDataWithHttpInfo(Guid emailId, string attachmentId, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | emailId | ID of email |
| string | attachmentId | ID of attachment |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| ApiResponse<AttachmentMetaData> | ApiResponse of AttachmentMetaData |
Remarks
Returns the metadata such as name and content-type for a given attachment and email.
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
GetEmail(Guid, bool?, int)
Get email content including headers and body. Expects email to exist by ID. For emails that may not have arrived yet use the WaitForController.
Declaration
Email GetEmail(Guid emailId, bool? decode = null, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | emailId | |
| bool? | decode | Decode email body quoted-printable encoding to plain text. SMTP servers often encode text using quoted-printable format (for instance |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
Remarks
Returns a email summary object with headers and content. To retrieve the raw unparsed email use the getRawEmail endpoints
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
GetEmailAttachments(Guid, int)
Get all email attachment metadata. Metadata includes name and size of attachments.
Declaration
List<AttachmentMetaData> GetEmailAttachments(Guid emailId, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | emailId | ID of email |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| List<AttachmentMetaData> | List<AttachmentMetaData> |
Remarks
Returns an array of attachment metadata such as name and content-type for a given email if present.
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
GetEmailAttachmentsWithHttpInfo(Guid, int)
Get all email attachment metadata. Metadata includes name and size of attachments.
Declaration
ApiResponse<List<AttachmentMetaData>> GetEmailAttachmentsWithHttpInfo(Guid emailId, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | emailId | ID of email |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| ApiResponse<List<AttachmentMetaData>> | ApiResponse of List<AttachmentMetaData> |
Remarks
Returns an array of attachment metadata such as name and content-type for a given email if present.
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
GetEmailContentMatch(Guid, ContentMatchOptions, int)
Get email content regex pattern match results. Runs regex against email body and returns match groups.
Declaration
EmailContentMatchResult GetEmailContentMatch(Guid emailId, ContentMatchOptions contentMatchOptions, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | emailId | ID of email to match against |
| ContentMatchOptions | contentMatchOptions | |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| EmailContentMatchResult | EmailContentMatchResult |
Remarks
Return the matches for a given Java style regex pattern. Do not include the typical /
at start or end of regex in some languages. Given an example your code is: 12345
the pattern to extract match looks like code is: (\\d{6})
. This will return an array of matches with the first matching the entire pattern and the subsequent matching the groups: ['code is: 123456', '123456']
See https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html for more information of available patterns.
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
GetEmailContentMatchWithHttpInfo(Guid, ContentMatchOptions, int)
Get email content regex pattern match results. Runs regex against email body and returns match groups.
Declaration
ApiResponse<EmailContentMatchResult> GetEmailContentMatchWithHttpInfo(Guid emailId, ContentMatchOptions contentMatchOptions, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | emailId | ID of email to match against |
| ContentMatchOptions | contentMatchOptions | |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| ApiResponse<EmailContentMatchResult> | ApiResponse of EmailContentMatchResult |
Remarks
Return the matches for a given Java style regex pattern. Do not include the typical /
at start or end of regex in some languages. Given an example your code is: 12345
the pattern to extract match looks like code is: (\\d{6})
. This will return an array of matches with the first matching the entire pattern and the subsequent matching the groups: ['code is: 123456', '123456']
See https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html for more information of available patterns.
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
GetEmailCount(int)
Get email count
Declaration
CountDto GetEmailCount(int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| CountDto | CountDto |
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
GetEmailCountWithHttpInfo(int)
Get email count
Declaration
ApiResponse<CountDto> GetEmailCountWithHttpInfo(int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| ApiResponse<CountDto> | ApiResponse of CountDto |
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
GetEmailHTML(Guid, bool?, int)
Get email content as HTML. For displaying emails in browser context.
Declaration
string GetEmailHTML(Guid emailId, bool? decode = null, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | emailId | |
| bool? | decode | (optional, default to false) |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| string | string |
Remarks
Retrieve email content as HTML response for viewing in browsers. Decodes quoted-printable entities and converts charset to UTF-8. Pass your API KEY as a request parameter when viewing in a browser: ?apiKey=xxx
. Returns content-type text/html;charset=utf-8
so you must call expecting that content response not JSON. For JSON response see the getEmailHTMLJson
method.
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
GetEmailHTMLJson(Guid, bool?, int)
Get email content as HTML in JSON wrapper. For fetching entity decoded HTML content
Declaration
EmailHtmlDto GetEmailHTMLJson(Guid emailId, bool? decode = null, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | emailId | |
| bool? | decode | (optional, default to false) |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| EmailHtmlDto | EmailHtmlDto |
Remarks
Retrieve email content as HTML response. Decodes quoted-printable entities and converts charset to UTF-8. Returns content-type application/json;charset=utf-8
so you must call expecting that content response not JSON.
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
GetEmailHTMLJsonWithHttpInfo(Guid, bool?, int)
Get email content as HTML in JSON wrapper. For fetching entity decoded HTML content
Declaration
ApiResponse<EmailHtmlDto> GetEmailHTMLJsonWithHttpInfo(Guid emailId, bool? decode = null, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | emailId | |
| bool? | decode | (optional, default to false) |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| ApiResponse<EmailHtmlDto> | ApiResponse of EmailHtmlDto |
Remarks
Retrieve email content as HTML response. Decodes quoted-printable entities and converts charset to UTF-8. Returns content-type application/json;charset=utf-8
so you must call expecting that content response not JSON.
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
GetEmailHTMLQuery(Guid, string, int)
Parse and return text from an email, stripping HTML and decoding encoded characters
Declaration
EmailTextLinesResult GetEmailHTMLQuery(Guid emailId, string htmlSelector, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | emailId | ID of email to perform HTML query on |
| string | htmlSelector | HTML selector to search for. Uses JQuery/JSoup/CSS style selector like '.my-div' to match content. See https://jsoup.org/apidocs/org/jsoup/select/Selector.html for more information. |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| EmailTextLinesResult | EmailTextLinesResult |
Remarks
Parse an email body and return the content as an array of text. HTML parsing uses JSoup which supports JQuery/CSS style selectors
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
GetEmailHTMLQueryWithHttpInfo(Guid, string, int)
Parse and return text from an email, stripping HTML and decoding encoded characters
Declaration
ApiResponse<EmailTextLinesResult> GetEmailHTMLQueryWithHttpInfo(Guid emailId, string htmlSelector, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | emailId | ID of email to perform HTML query on |
| string | htmlSelector | HTML selector to search for. Uses JQuery/JSoup/CSS style selector like '.my-div' to match content. See https://jsoup.org/apidocs/org/jsoup/select/Selector.html for more information. |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| ApiResponse<EmailTextLinesResult> | ApiResponse of EmailTextLinesResult |
Remarks
Parse an email body and return the content as an array of text. HTML parsing uses JSoup which supports JQuery/CSS style selectors
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
GetEmailHTMLWithHttpInfo(Guid, bool?, int)
Get email content as HTML. For displaying emails in browser context.
Declaration
ApiResponse<string> GetEmailHTMLWithHttpInfo(Guid emailId, bool? decode = null, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | emailId | |
| bool? | decode | (optional, default to false) |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| ApiResponse<string> | ApiResponse of string |
Remarks
Retrieve email content as HTML response for viewing in browsers. Decodes quoted-printable entities and converts charset to UTF-8. Pass your API KEY as a request parameter when viewing in a browser: ?apiKey=xxx
. Returns content-type text/html;charset=utf-8
so you must call expecting that content response not JSON. For JSON response see the getEmailHTMLJson
method.
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
GetEmailLinks(Guid, int)
Parse and return list of links found in an email (only works for HTML content)
Declaration
EmailLinksResult GetEmailLinks(Guid emailId, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | emailId | ID of email to fetch text for |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| EmailLinksResult | EmailLinksResult |
Remarks
HTML parsing uses JSoup and UNIX line separators. Searches content for href attributes
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
GetEmailLinksWithHttpInfo(Guid, int)
Parse and return list of links found in an email (only works for HTML content)
Declaration
ApiResponse<EmailLinksResult> GetEmailLinksWithHttpInfo(Guid emailId, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | emailId | ID of email to fetch text for |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| ApiResponse<EmailLinksResult> | ApiResponse of EmailLinksResult |
Remarks
HTML parsing uses JSoup and UNIX line separators. Searches content for href attributes
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
GetEmailPreviewURLs(Guid, int)
Get email URLs for viewing in browser or downloading
Declaration
EmailPreviewUrls GetEmailPreviewURLs(Guid emailId, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | emailId | |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| EmailPreviewUrls | EmailPreviewUrls |
Remarks
Get a list of URLs for email content as text/html or raw SMTP message for viewing the message in a browser.
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
GetEmailPreviewURLsWithHttpInfo(Guid, int)
Get email URLs for viewing in browser or downloading
Declaration
ApiResponse<EmailPreviewUrls> GetEmailPreviewURLsWithHttpInfo(Guid emailId, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | emailId | |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| ApiResponse<EmailPreviewUrls> | ApiResponse of EmailPreviewUrls |
Remarks
Get a list of URLs for email content as text/html or raw SMTP message for viewing the message in a browser.
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
GetEmailsPaginated(List<Guid>, int?, int?, string, bool?, string, DateTime?, DateTime?, int)
Get all emails in all inboxes in paginated form. Email API list all.
Declaration
PageEmailProjection GetEmailsPaginated(List<Guid> inboxId = null, int? page = null, int? size = null, string sort = null, bool? unreadOnly = null, string searchFilter = null, DateTime? since = null, DateTime? before = null, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| List<Guid> | inboxId | Optional inbox ids to filter by. Can be repeated. By default will use all inboxes belonging to your account. (optional) |
| int? | page | Optional page index in email list pagination (optional, default to 0) |
| int? | size | Optional page size in email list pagination. Maximum size is 100. Use page index and sort to page through larger results (optional, default to 20) |
| string | sort | Optional createdAt sort direction ASC or DESC (optional, default to ASC) |
| bool? | unreadOnly | Optional filter for unread emails only. All emails are considered unread until they are viewed in the dashboard or requested directly (optional, default to false) |
| string | searchFilter | Optional search filter. Searches email recipients, sender, subject, email address and ID. Does not search email body (optional) |
| DateTime? | since | Optional filter emails received after given date time (optional) |
| DateTime? | before | Optional filter emails received before given date time (optional) |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| PageEmailProjection | PageEmailProjection |
Remarks
By default returns all emails across all inboxes sorted by ascending created at date. Responses are paginated. You can restrict results to a list of inbox IDs. You can also filter out read messages
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
GetEmailsPaginatedWithHttpInfo(List<Guid>, int?, int?, string, bool?, string, DateTime?, DateTime?, int)
Get all emails in all inboxes in paginated form. Email API list all.
Declaration
ApiResponse<PageEmailProjection> GetEmailsPaginatedWithHttpInfo(List<Guid> inboxId = null, int? page = null, int? size = null, string sort = null, bool? unreadOnly = null, string searchFilter = null, DateTime? since = null, DateTime? before = null, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| List<Guid> | inboxId | Optional inbox ids to filter by. Can be repeated. By default will use all inboxes belonging to your account. (optional) |
| int? | page | Optional page index in email list pagination (optional, default to 0) |
| int? | size | Optional page size in email list pagination. Maximum size is 100. Use page index and sort to page through larger results (optional, default to 20) |
| string | sort | Optional createdAt sort direction ASC or DESC (optional, default to ASC) |
| bool? | unreadOnly | Optional filter for unread emails only. All emails are considered unread until they are viewed in the dashboard or requested directly (optional, default to false) |
| string | searchFilter | Optional search filter. Searches email recipients, sender, subject, email address and ID. Does not search email body (optional) |
| DateTime? | since | Optional filter emails received after given date time (optional) |
| DateTime? | before | Optional filter emails received before given date time (optional) |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| ApiResponse<PageEmailProjection> | ApiResponse of PageEmailProjection |
Remarks
By default returns all emails across all inboxes sorted by ascending created at date. Responses are paginated. You can restrict results to a list of inbox IDs. You can also filter out read messages
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
GetEmailTextLines(Guid, bool?, string, int)
Parse and return text from an email, stripping HTML and decoding encoded characters
Declaration
EmailTextLinesResult GetEmailTextLines(Guid emailId, bool? decodeHtmlEntities = null, string lineSeparator = null, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | emailId | ID of email to fetch text for |
| bool? | decodeHtmlEntities | Decode HTML entities (optional) |
| string | lineSeparator | Line separator character (optional) |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| EmailTextLinesResult | EmailTextLinesResult |
Remarks
Parse an email body and return the content as an array of strings. HTML parsing uses JSoup and UNIX line separators.
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
GetEmailTextLinesWithHttpInfo(Guid, bool?, string, int)
Parse and return text from an email, stripping HTML and decoding encoded characters
Declaration
ApiResponse<EmailTextLinesResult> GetEmailTextLinesWithHttpInfo(Guid emailId, bool? decodeHtmlEntities = null, string lineSeparator = null, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | emailId | ID of email to fetch text for |
| bool? | decodeHtmlEntities | Decode HTML entities (optional) |
| string | lineSeparator | Line separator character (optional) |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| ApiResponse<EmailTextLinesResult> | ApiResponse of EmailTextLinesResult |
Remarks
Parse an email body and return the content as an array of strings. HTML parsing uses JSoup and UNIX line separators.
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
GetEmailWithHttpInfo(Guid, bool?, int)
Get email content including headers and body. Expects email to exist by ID. For emails that may not have arrived yet use the WaitForController.
Declaration
ApiResponse<Email> GetEmailWithHttpInfo(Guid emailId, bool? decode = null, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | emailId | |
| bool? | decode | Decode email body quoted-printable encoding to plain text. SMTP servers often encode text using quoted-printable format (for instance |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| ApiResponse<Email> | ApiResponse of Email |
Remarks
Returns a email summary object with headers and content. To retrieve the raw unparsed email use the getRawEmail endpoints
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
GetGravatarUrlForEmailAddress(string, string, int)
Declaration
GravatarUrl GetGravatarUrlForEmailAddress(string emailAddress, string size = null, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| string | emailAddress | |
| string | size | (optional) |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| GravatarUrl | GravatarUrl |
Remarks
Get gravatar url for email address
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
GetGravatarUrlForEmailAddressWithHttpInfo(string, string, int)
Declaration
ApiResponse<GravatarUrl> GetGravatarUrlForEmailAddressWithHttpInfo(string emailAddress, string size = null, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| string | emailAddress | |
| string | size | (optional) |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| ApiResponse<GravatarUrl> | ApiResponse of GravatarUrl |
Remarks
Get gravatar url for email address
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
GetLatestEmail(List<Guid>, int)
Get latest email in all inboxes. Most recently received.
Declaration
Email GetLatestEmail(List<Guid> inboxIds = null, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| List<Guid> | inboxIds | Optional set of inboxes to filter by. Only get the latest email from these inbox IDs. If not provided will search across all inboxes (optional) |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
Remarks
Get the newest email in all inboxes or in a passed set of inbox IDs
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
GetLatestEmailInInbox1(Guid, int)
Get latest email in an inbox. Use WaitForController
to get emails that may not have arrived yet.
Declaration
Email GetLatestEmailInInbox1(Guid inboxId, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | inboxId | ID of the inbox you want to get the latest email from |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
Remarks
Get the newest email in all inboxes or in a passed set of inbox IDs
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
GetLatestEmailInInbox1WithHttpInfo(Guid, int)
Get latest email in an inbox. Use WaitForController
to get emails that may not have arrived yet.
Declaration
ApiResponse<Email> GetLatestEmailInInbox1WithHttpInfo(Guid inboxId, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | inboxId | ID of the inbox you want to get the latest email from |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| ApiResponse<Email> | ApiResponse of Email |
Remarks
Get the newest email in all inboxes or in a passed set of inbox IDs
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
GetLatestEmailWithHttpInfo(List<Guid>, int)
Get latest email in all inboxes. Most recently received.
Declaration
ApiResponse<Email> GetLatestEmailWithHttpInfo(List<Guid> inboxIds = null, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| List<Guid> | inboxIds | Optional set of inboxes to filter by. Only get the latest email from these inbox IDs. If not provided will search across all inboxes (optional) |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| ApiResponse<Email> | ApiResponse of Email |
Remarks
Get the newest email in all inboxes or in a passed set of inbox IDs
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
GetOrganizationEmailsPaginated(List<Guid>, int?, int?, string, bool?, string, DateTime?, DateTime?, int)
Get all organization emails. List team or shared test email accounts
Declaration
PageEmailProjection GetOrganizationEmailsPaginated(List<Guid> inboxId = null, int? page = null, int? size = null, string sort = null, bool? unreadOnly = null, string searchFilter = null, DateTime? since = null, DateTime? before = null, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| List<Guid> | inboxId | Optional inbox ids to filter by. Can be repeated. By default will use all inboxes belonging to your account. (optional) |
| int? | page | Optional page index in email list pagination (optional, default to 0) |
| int? | size | Optional page size in email list pagination. Maximum size is 100. Use page index and sort to page through larger results (optional, default to 20) |
| string | sort | Optional createdAt sort direction ASC or DESC (optional, default to ASC) |
| bool? | unreadOnly | Optional filter for unread emails only. All emails are considered unread until they are viewed in the dashboard or requested directly (optional, default to false) |
| string | searchFilter | Optional search filter search filter for emails. (optional) |
| DateTime? | since | Optional filter emails received after given date time (optional) |
| DateTime? | before | Optional filter emails received before given date time (optional) |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| PageEmailProjection | PageEmailProjection |
Remarks
By default returns all emails across all team inboxes sorted by ascending created at date. Responses are paginated. You can restrict results to a list of inbox IDs. You can also filter out read messages
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
GetOrganizationEmailsPaginatedWithHttpInfo(List<Guid>, int?, int?, string, bool?, string, DateTime?, DateTime?, int)
Get all organization emails. List team or shared test email accounts
Declaration
ApiResponse<PageEmailProjection> GetOrganizationEmailsPaginatedWithHttpInfo(List<Guid> inboxId = null, int? page = null, int? size = null, string sort = null, bool? unreadOnly = null, string searchFilter = null, DateTime? since = null, DateTime? before = null, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| List<Guid> | inboxId | Optional inbox ids to filter by. Can be repeated. By default will use all inboxes belonging to your account. (optional) |
| int? | page | Optional page index in email list pagination (optional, default to 0) |
| int? | size | Optional page size in email list pagination. Maximum size is 100. Use page index and sort to page through larger results (optional, default to 20) |
| string | sort | Optional createdAt sort direction ASC or DESC (optional, default to ASC) |
| bool? | unreadOnly | Optional filter for unread emails only. All emails are considered unread until they are viewed in the dashboard or requested directly (optional, default to false) |
| string | searchFilter | Optional search filter search filter for emails. (optional) |
| DateTime? | since | Optional filter emails received after given date time (optional) |
| DateTime? | before | Optional filter emails received before given date time (optional) |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| ApiResponse<PageEmailProjection> | ApiResponse of PageEmailProjection |
Remarks
By default returns all emails across all team inboxes sorted by ascending created at date. Responses are paginated. You can restrict results to a list of inbox IDs. You can also filter out read messages
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
GetRawEmailContents(Guid, int)
Get raw email string. Returns unparsed raw SMTP message with headers and body.
Declaration
string GetRawEmailContents(Guid emailId, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | emailId | ID of email |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| string | string |
Remarks
Returns a raw, unparsed, and unprocessed email. If your client has issues processing the response it is likely due to the response content-type which is text/plain. If you need a JSON response content-type use the getRawEmailJson endpoint
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
GetRawEmailContentsWithHttpInfo(Guid, int)
Get raw email string. Returns unparsed raw SMTP message with headers and body.
Declaration
ApiResponse<string> GetRawEmailContentsWithHttpInfo(Guid emailId, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | emailId | ID of email |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| ApiResponse<string> | ApiResponse of string |
Remarks
Returns a raw, unparsed, and unprocessed email. If your client has issues processing the response it is likely due to the response content-type which is text/plain. If you need a JSON response content-type use the getRawEmailJson endpoint
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
GetRawEmailJson(Guid, int)
Get raw email in JSON. Unparsed SMTP message in JSON wrapper format.
Declaration
RawEmailJson GetRawEmailJson(Guid emailId, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | emailId | ID of email |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| RawEmailJson | RawEmailJson |
Remarks
Returns a raw, unparsed, and unprocessed email wrapped in a JSON response object for easier handling when compared with the getRawEmail text/plain response
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
GetRawEmailJsonWithHttpInfo(Guid, int)
Get raw email in JSON. Unparsed SMTP message in JSON wrapper format.
Declaration
ApiResponse<RawEmailJson> GetRawEmailJsonWithHttpInfo(Guid emailId, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | emailId | ID of email |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| ApiResponse<RawEmailJson> | ApiResponse of RawEmailJson |
Remarks
Returns a raw, unparsed, and unprocessed email wrapped in a JSON response object for easier handling when compared with the getRawEmail text/plain response
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
GetUnreadEmailCount(int)
Get unread email count
Declaration
UnreadCount GetUnreadEmailCount(int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| UnreadCount | UnreadCount |
Remarks
Get number of emails unread. Unread means has not been viewed in dashboard or returned in an email API response
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
GetUnreadEmailCountWithHttpInfo(int)
Get unread email count
Declaration
ApiResponse<UnreadCount> GetUnreadEmailCountWithHttpInfo(int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| ApiResponse<UnreadCount> | ApiResponse of UnreadCount |
Remarks
Get number of emails unread. Unread means has not been viewed in dashboard or returned in an email API response
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
MarkAsRead(Guid, bool?, int)
Mark an email as read on unread
Declaration
EmailPreview MarkAsRead(Guid emailId, bool? read = null, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | emailId | |
| bool? | read | What value to assign to email read property. Default true. (optional, default to true) |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| EmailPreview | EmailPreview |
Remarks
Marks an email as read or unread. Pass boolean read flag to set value. This is useful if you want to read an email but keep it as unread
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
MarkAsReadWithHttpInfo(Guid, bool?, int)
Mark an email as read on unread
Declaration
ApiResponse<EmailPreview> MarkAsReadWithHttpInfo(Guid emailId, bool? read = null, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | emailId | |
| bool? | read | What value to assign to email read property. Default true. (optional, default to true) |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| ApiResponse<EmailPreview> | ApiResponse of EmailPreview |
Remarks
Marks an email as read or unread. Pass boolean read flag to set value. This is useful if you want to read an email but keep it as unread
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
ReplyToEmail(Guid, ReplyToEmailOptions, int)
Reply to an email
Declaration
SentEmailDto ReplyToEmail(Guid emailId, ReplyToEmailOptions replyToEmailOptions, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | emailId | ID of the email that should be replied to |
| ReplyToEmailOptions | replyToEmailOptions | |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| SentEmailDto | SentEmailDto |
Remarks
Send the reply to the email sender or reply-to and include same subject cc bcc etc. Reply to an email and the contents will be sent with the existing subject to the emails to
, cc
, and bcc
.
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
ReplyToEmailWithHttpInfo(Guid, ReplyToEmailOptions, int)
Reply to an email
Declaration
ApiResponse<SentEmailDto> ReplyToEmailWithHttpInfo(Guid emailId, ReplyToEmailOptions replyToEmailOptions, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | emailId | ID of the email that should be replied to |
| ReplyToEmailOptions | replyToEmailOptions | |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| ApiResponse<SentEmailDto> | ApiResponse of SentEmailDto |
Remarks
Send the reply to the email sender or reply-to and include same subject cc bcc etc. Reply to an email and the contents will be sent with the existing subject to the emails to
, cc
, and bcc
.
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
SendEmailSourceOptional(SendEmailOptions, Guid?, bool?, bool?, int)
Send email
Declaration
void SendEmailSourceOptional(SendEmailOptions sendEmailOptions, Guid? inboxId = null, bool? useDomainPool = null, bool? virtualSend = null, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| SendEmailOptions | sendEmailOptions | |
| Guid? | inboxId | ID of the inbox you want to send the email from (optional) |
| bool? | useDomainPool | Use domain pool. Optionally create inbox to send from using the mailslurp domain pool. (optional) |
| bool? | virtualSend | Optionally create inbox to send from that is a virtual inbox and won't send to external addresses (optional) |
| int | operationIndex | Index associated with the operation. |
Remarks
Alias for InboxController.sendEmail
method - see original method for full details. Sends an email from a given inbox that you have created. If no inbox is supplied a random inbox will be created for you and used to send the email.
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
SendEmailSourceOptionalWithHttpInfo(SendEmailOptions, Guid?, bool?, bool?, int)
Send email
Declaration
ApiResponse<object> SendEmailSourceOptionalWithHttpInfo(SendEmailOptions sendEmailOptions, Guid? inboxId = null, bool? useDomainPool = null, bool? virtualSend = null, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| SendEmailOptions | sendEmailOptions | |
| Guid? | inboxId | ID of the inbox you want to send the email from (optional) |
| bool? | useDomainPool | Use domain pool. Optionally create inbox to send from using the mailslurp domain pool. (optional) |
| bool? | virtualSend | Optionally create inbox to send from that is a virtual inbox and won't send to external addresses (optional) |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| ApiResponse<object> | ApiResponse of Object(void) |
Remarks
Alias for InboxController.sendEmail
method - see original method for full details. Sends an email from a given inbox that you have created. If no inbox is supplied a random inbox will be created for you and used to send the email.
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
ValidateEmail(Guid, int)
Validate email HTML contents
Declaration
ValidationDto ValidateEmail(Guid emailId, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | emailId | ID of email |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| ValidationDto | ValidationDto |
Remarks
Validate the HTML content of email if HTML is found. Considered valid if no HTML is present.
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |
ValidateEmailWithHttpInfo(Guid, int)
Validate email HTML contents
Declaration
ApiResponse<ValidationDto> ValidateEmailWithHttpInfo(Guid emailId, int operationIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | emailId | ID of email |
| int | operationIndex | Index associated with the operation. |
Returns
| Type | Description |
|---|---|
| ApiResponse<ValidationDto> | ApiResponse of ValidationDto |
Remarks
Validate the HTML content of email if HTML is found. Considered valid if no HTML is present.
Exceptions
| Type | Condition |
|---|---|
| ApiException | Thrown when fails to make API call |


Updated:
Wednesday, 13-September-2017 21:59:12 PST
Michael Lachman |
|
Demonstration Forest |
Webmaster: Leaves Updated: Wednesday, 13-September-2017 21:59:12 PST
Online materials should be viewable in
any browser.
This work is licensed under a
Creative Commons
License.


We use different Machine Learning models from scikit-learn module library. This library is a Python-based module that is simple and efficient to utilize for preditive data analysis. The different classification models that we used are:
from sklearn.linear_model import LogisticRegression
from sklearn.ensemble import RandomForestClassifier
from sklearn.svm import SVC


THE EVIL DEAD **** (out of five stars) A review by Jamey Hughton
Starring-Bruce Campbell, Ellen Sandweiss, Hal Delrich, Betsy Baker and Sarah York Director-Sam Raimi Not Rated Released 1982 Reviewed 1999
MOVIE VIEWS by Jamey Hughton http://Welcome.to/MovieViews
`The Evil Dead' has developed into a cult classic over the years. The idea was concocted by Sam Raimi and his college buddy, Bruce Campbell, obviously when their beer keg had run dry. They set out to make a little horror movie with a microscopic budget, out in a confined setting, with a mere 5-person cast. I'm sure neither Raimi nor Campbell had planned on the massive following that `The Evil Dead' has compiled since 1982.
The fact that `The Evil Dead' was produced with such a tiny budget only seems to add to the fright factor. The movie has a dark, dank and cheesy appearance that perfectly accentuates the plot of demonic possession. And please, don't get me wrong, the anemic story line of the film is flat-out idiotic. The material could have easily developed into another perpetually retarded horror picture from the early 80's. But - with Raimi's wonderful style and cunning approach - it somehow develops it into a frightening, atmospheric and innovative bloodbath. Those looking for a fun time of bloody cadavers, inventive shocks and corny special effects couldn't do much better.
There are only five performers in `The Evil Dead' - a quintet of college students who have slipped away for a quiet weekend at a rickety old cabin in the woods. Ash (Bruce Campbell), Cheryl (Ellen Sandweiss), Scotty (Hal Delrich), Linda (Betsy Baker) and Shelly (Sarah York) are mainly just the bunch of intellectually-impaired bimbos you would expect from a horror film. After seeing something outside her window, one even walks out into the middle of the woods to investigate. It could have been a squirrel, but for whatever reason, the individual wanders into the dark recesses of the forest calling `hello??' repeatedly. Movies like `Scream' are so successful because they mock the horror genre with such fun and accuracy. `The Evil Dead' does not revolve around characters and dialogue. It's mainly about dismembered bodies, and Raimi's ability to rattle our cages until we keel over like a petrified sack of potatoes.
So, the five are living the good life until demons come and disrupt their big party. Actually, the kids bring it on themselves, using a tape recorder to play strange incantations which are supposedly recited by a professor who previously stayed in the cabin. The magic spell awakes a terrifying life force in the woods, and one by one the characters become violently possessed by ferocious demons. Ash is left as the reluctant hero, who barricades up every door and makes a last stand against the demonic intruders.
Unlike it's two maniacal sequels, `Evil Dead 2' and `Army of Darkness', this entry relies mainly on pulse-pounding horror. In that field, `The Evil Dead' delivers in large, gory quantities. You may never want to go camping again after enduring this relentless bloodbath of claustrophobic chills. But, even though it's very subtle and hardly recognizable, Raimi also injects a wry sense of humor to liven things up even more. There are occasional moments that remind us, despite that `The Evil Dead' is all in good fun. For instance, soon after poor Shelly has been hacked to pieces (her severed parts still convulsing on the floor like gelatin), Ash assures Scotty `we're all going to make it out of here. You, me, Shelly.... well, not Shelly.'
While it may not be the bloodiest movie ever made, `The Evil Dead' could easily register as the most disgusting. Scenes in which characters erupt like pressurized tomatoes are repulsive and nauseating... not to mention barrels of fun. You may feel obliged to lose your lunch during some especially revolting bits. The one that caused my stomach to somersault backwards occurred when a character rises from a buried grave, and rakes poor Ash's leg with her fingernails (digging literally to the bone). Oh, there's also the segment in which a girl is strapped down and raped by a tree. That's in pretty bad taste, alright.
Campbell later evolved into a gung-ho heroic figure as the series progressed, which was a lot of fun to watch, but here he is perfect. You may recognizable Campbell from his prolonged stint on television's `Xena: Warrior Princess' and a scene-stealing cameo in `Escape from LA'. Sadly, little has come his way aside from the three `Evil Dead' films. Campbell has an endearing everyman quality, and his delivery is brisk and colorful, making him one of the more underrated actors of modern cinema. Campbell's game performance and Raimi's tremendous direction are the heart and soul behind the film.
It's not for all tastes, that's for sure, but `The Evil Dead' is a highly enjoyable shocker for all who dare to grab their snorkel and plunge in. Sam Raimi's delightful, dizzying camera work and imaginative style help it prevail far over genre expectations. Why not rent this diamond in the rough for Halloween? It's one rare instance where a tight budget actually paid off.
(C) 1999, Jamey Hughton
MOVIE VIEWS by Jamey Hughton http://Welcome.to/MovieViews
Comments Appreciated<EMAIL_ADDRESS>The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Belfast apartment complex may have to be demolished, court told
Owners of flats in the city centre development taking a class action over alleged flaws
A Belfast city centre apartment complex may have to be demolished due to structural defects, the High Court has heard.
More than 50 owners of flats in the Library Square development are taking a class action over the alleged flaws.
Located in Kent Street, the nine-storey building opened in 2006.
Writs were issued by the owners in 2016 seeking compensation against the builders and engineers.
The claims are for losses due to alleged structural and design defects.
In court on Wednesday it was indicated that the case was close to a resolution. But there is still dispute on whether the complex can be economically repaired.
Gerald Simpson QC, for the builders, said: “The only issue is whether or not the apartment block has to be taken down or can be remediated.”
Compensation
Some experts in the case believe the issues cannot be fixed, the judge was told.
A hearing on the level of compensation to be paid out to the apartment owners is due to get under way later this month. However, a last-minute wrangle among insurance companies involved in the case has led to a delay.
Mr Justice Horner gave the parties more time to resolve the issue.
Adjourning the case to the start of December, he told lawyers: “You can either settle it in the next two weeks or it’s going on for trial.”


您好！
openEuler {{sig_name}} SIG 邀请您参加 {{start_time}} 召开的ZOOM会议(自动录制)
会议主题：{{topic}}
会议内容：{{summary}}
会议链接：{{join_url}}
温馨提醒：建议接入会议后修改参会人的姓名，也可以使用您在gitee.com的ID
更多资讯尽在：https://openeuler.org/zh/
Hello!
openEuler {{sig_name}} SIG invites you to attend the ZOOM conference(auto recording) will be held at {{start_time}},
The subject of the conference is {{topic}},
Summary: {{summary}}
You can join the meeting at {{join_url}}.
Note: You are advised to change the participant name after joining the conference or use your ID at gitee.com.


class ExtensionGuesser implements ExtensionGuesserInterface
A singleton mime type to file extension guesser.
A default guesser is provided. You can register custom guessers by calling the register() method on the singleton instance:
$guesser = ExtensionGuesser::getInstance();
$guesser->register(new MyCustomExtensionGuesser());
The last registered guesser is preferred over previously registered ones.
protected array
|
$guessers |
All registered ExtensionGuesserInterface instances. |
public static
|
ExtensionGuesser |
getInstance()
|
Returns the singleton instance. | |
public
|
|
register(ExtensionGuesserInterface $guesser)
|
Registers a new extension guesser. | |
public
|
string |
guess(string $mimeType)
|
Tries to guess the extension. |
getInstance()
public static ExtensionGuesser getInstance()
register()
public register(ExtensionGuesserInterface $guesser)
Registers a new extension guesser.
When guessing, this guesser is preferred over previously registered ones.
ExtensionGuesserInterface |
$guesser |
guess()
public string guess(string $mimeType)
Tries to guess the extension.
The mime type is passed to each registered mime type guesser in reverse order of their registration (last registered is queried first). Once a guesser returns a value that is not NULL, this method terminates and returns the value.
string |
$mimeType |
The mime type |
string |
The guessed extension or NULL, if none could be guessed |
<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier<EMAIL_ADDRESS>*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Symfony\Component\HttpFoundation\File\MimeType;
/**
* A singleton mime type to file extension guesser.
*
* A default guesser is provided.
* You can register custom guessers by calling the register()
* method on the singleton instance:
*
* $guesser = ExtensionGuesser::getInstance();
* $guesser->register(new MyCustomExtensionGuesser());
*
* The last registered guesser is preferred over previously registered ones.
*/
class ExtensionGuesser implements ExtensionGuesserInterface
{
/**
* The singleton instance.
*
* @var ExtensionGuesser
*/
private static $instance = null;
/**
* All registered ExtensionGuesserInterface instances.
*
* @var array
*/
protected $guessers = array();
/**
* Returns the singleton instance.
*
* @return self
*/
public static function getInstance()
{
if (null === self::$instance) {
self::$instance = new self();
}
return self::$instance;
}
/**
* Registers all natively provided extension guessers.
*/
private function __construct()
{
$this->register(new MimeTypeExtensionGuesser());
}
/**
* Registers a new extension guesser.
*
* When guessing, this guesser is preferred over previously registered ones.
*/
public function register(ExtensionGuesserInterface $guesser)
{
array_unshift($this->guessers, $guesser);
}
/**
* Tries to guess the extension.
*
* The mime type is passed to each registered mime type guesser in reverse order
* of their registration (last registered is queried first). Once a guesser
* returns a value that is not NULL, this method terminates and returns the
* value.
*
* @param string $mimeType The mime type
*
* @return string The guessed extension or NULL, if none could be guessed
*/
public function guess($mimeType)
{
foreach ($this->guessers as $guesser) {
if (null !== $extension = $guesser->guess($mimeType)) {
return $extension;
}
}
}
}


DfE enquiries
Central newsdesk 020 7783 8300
General enquiries 0370 000 2288
Press release
Applications now open for character grants worth £6 million and aimed at schools promoting traits such as resilience and respect.
Schools that are using a wide range of activities to help broaden children’s learning experiences and boost character can now receive a share of £6 million to boost that work and share it with others, Children and Families Minister Edward Timpson announced today (26 May 2016).
This year’s character grants - a scheme that began in 2015 to fund schools and organisations promoting traits such as resilience and respect - are aimed at schools that use activities such as sports, debating or music to provide a rounded learning experience for children. From today, schools, colleges and organisations can apply for a share of the £6 million fund.
Children and Families Minister Edward Timpson said:
Instilling positive character traits and academic excellence are 2 sides of the same coin - children that develop resilience are far more likely to succeed, not only in school but in later life, too.
Whether it’s fencing classes, debating clubs or drama societies, I want schools across the country to seize the opportunity to help their pupils thrive by broadening the range of activity that they offer.
Last year’s character grant winners included Premiership Rugby, which received £500,000 to use the expertise of leading rugby coaches and players to instil character and resilience in disaffected children.
This year’s grants also include up to £2 million earmarked for projects with a military ethos, following the success of initiatives like Commando Joe’s and Challenger Troop, which use the expertise of former armed services personnel to instil resilience in children.
Applications are open to:
Proposals must be provided on a ‘not-for-profit’ basis and must be designed to work within or in partnership with school(s) and/or college(s) in England. By ‘partnership’ we mean that the provider must (at a minimum) engage with the relevant school or college where each young person attends to assess whether the proposed activity or provision will help to underpin success in school and work. We would expect schools and colleges to be named in any bid.
We want to fund a diversity of approaches that will achieve the following outcomes:
We expect all projects to be able to demonstrate that they:
Up to £6 million is available to grant-fund projects in the 2016 to 2017 financial year. As part of this, we have allocated up to £2 million to fund projects that have a military ethos approach to develop character. There is no pre-determined level of grant award, but, as a guide, grant awards are expected to be in the region of £50,000 to £750,000.
Organisations have until 23 June to submit a proposal for grant funding. Grants are expected to be awarded by the end of September.
For a full specification, application form and further guidance go to Contracts Finder: character education grants .
Central newsdesk 020 7783 8300
General enquiries 0370 000 2288
Published: 26 May 2016


Don Quixote (/ˌdɒn kiːˈhoʊtiː/; Spanish: [ˈdoŋ kiˈxote] ), fully titled The Ingenious Gentleman Don Quixote of La Mancha (Spanish: El ingenioso hidalgo don Quijote de la Mancha), is a Spanish novel by Miguel de Cervantes Saavedra. It follows the adventures of Alonso Quijano, an hidalgo who reads so many chivalric novels that he decides to set out to revive chivalry, under the name Don Quixote. He recruits a simple farmer, Sancho Panza, as his squire, who often employs a unique, earthly wit in dealing with Don Quixote's rhetorical orations on antiquated knighthood. Don Quixote is met by the world as it is, initiating such themes as intertextuality, realism, metatheatre, and literary representation.
Price = {{ price | currency : "Rs."}}