'Int', 'LastResponseTimestamp' => 'Decimal(14, 0)' ]; /** * Increments TestSessionState.PendingRequests number by 1 * to indicate we have one more request in progress */ public static function incrementState() { $schema = DataObject::getSchema(); $update = SQLUpdate::create(sprintf('"%s"', $schema->tableName(self::class))) ->addWhere(['ID' => 1]) ->assignSQL('"PendingRequests"', '"PendingRequests" + 1'); $update->execute(); } /** * Decrements TestSessionState.PendingRequests number by 1 * to indicate we have one more request in progress. * Also updates TestSessionState.LastResponseTimestamp * to the current timestamp. */ public static function decrementState() { $schema = DataObject::getSchema(); $update = SQLUpdate::create(sprintf('"%s"', $schema->tableName(self::class))) ->addWhere(['ID' => 1]) ->assignSQL('"PendingRequests"', '"PendingRequests" - 1') ->assign('"LastResponseTimestamp"', self::millitime()); $update->execute(); } /** * Returns unix timestamp in milliseconds * * @return float milliseconds since 1970 */ public static function millitime() { return round(microtime(true) * 1000); } }