class EmbeddedSensorReceiver implements IMessageReceiver {

    @Override
    public void receive(final IMessageProcessor processor)
            throws MessageReceiveException, AsynchronousOperationException {
        try {
            final long cTime = systemTime.currentTimeMillis();
            final IEmbeddedSensorObservationPeriod period = getCurrentPeriod(cTime);
            boolean commit = period.recordProcessor(processor, cTime);

            if (commit) {
                commitPeriod(period, period.nextPeriod(cTime));
            }
        } catch (TaskScheduleException | EmbeddedSensorStrategyException | InvalidArgumentException | ResolutionException e) {
            throw new MessageReceiveException(e);
        }
    }

    public  EmbeddedSensorReceiver(final IObject args);

}