| @@ 33-74 (lines=42) @@ | ||
| 30 | * | |
| 31 | * @return array|WP_Error | |
| 32 | */ | |
| 33 | 	public function queue_pull( $queue_name, $number_of_items, $args ) { | |
| 34 | $queue = new Queue( $queue_name ); | |
| 35 | ||
| 36 | 		if ( 0 === $queue->size() ) { | |
| 37 | return new WP_Error( 'queue_size', 'The queue is empty and there is nothing to send', 400 ); | |
| 38 | } | |
| 39 | ||
| 40 | $sender = Sender::get_instance(); | |
| 41 | ||
| 42 | // try to give ourselves as much time as possible. | |
| 43 | set_time_limit( 0 ); | |
| 44 | ||
| 45 | 		if ( $args['pop'] ) { | |
| 46 | $buffer = new Queue_Buffer( 'pop', $queue->pop( $number_of_items ) ); | |
| 47 | 		} else { | |
| 48 | // let's delete the checkin state. | |
| 49 | 			if ( $args['force'] ) { | |
| 50 | $queue->unlock(); | |
| 51 | } | |
| 52 | $buffer = $this->get_buffer( $queue, $number_of_items ); | |
| 53 | } | |
| 54 | // Check that the $buffer is not checkout out already. | |
| 55 | 		if ( is_wp_error( $buffer ) ) { | |
| 56 | return new WP_Error( 'buffer_open', "We couldn't get the buffer it is currently checked out", 400 ); | |
| 57 | } | |
| 58 | ||
| 59 | 		if ( ! is_object( $buffer ) ) { | |
| 60 | return new WP_Error( 'buffer_non-object', 'Buffer is not an object', 400 ); | |
| 61 | } | |
| 62 | ||
| 63 | Settings::set_is_syncing( true ); | |
| 64 | list( $items_to_send, $skipped_items_ids ) = $sender->get_items_to_send( $buffer, $args['encode'] ); | |
| 65 | Settings::set_is_syncing( false ); | |
| 66 | ||
| 67 | return array( | |
| 68 | 'buffer_id' => $buffer->id, | |
| 69 | 'items' => $items_to_send, | |
| 70 | 'skipped_items' => $skipped_items_ids, | |
| 71 | 'codec' => $args['encode'] ? $sender->get_codec()->name() : null, | |
| 72 | 'sent_timestamp' => time(), | |
| 73 | ); | |
| 74 | } | |
| 75 | ||
| 76 | /** | |
| 77 | * Adds Sync items to local property. | |
| @@ 261-302 (lines=42) @@ | ||
| 258 | return $this->queue_pull( $queue_name, $number_of_items, $args ); | |
| 259 | } | |
| 260 | ||
| 261 | 	function queue_pull( $queue_name, $number_of_items, $args ){ | |
| 262 | $queue = new Queue( $queue_name ); | |
| 263 | ||
| 264 | 		if ( 0 === $queue->size() ) { | |
| 265 | return new WP_Error( 'queue_size', 'The queue is empty and there is nothing to send', 400 ); | |
| 266 | } | |
| 267 | ||
| 268 | $sender = Sender::get_instance(); | |
| 269 | ||
| 270 | // try to give ourselves as much time as possible. | |
| 271 | set_time_limit( 0 ); | |
| 272 | ||
| 273 | 		if ( $args['pop'] ) { | |
| 274 | $buffer = new Queue_Buffer( 'pop', $queue->pop( $number_of_items ) ); | |
| 275 | 		} else { | |
| 276 | // let's delete the checkin state. | |
| 277 | 			if ( $args['force'] ) { | |
| 278 | $queue->unlock(); | |
| 279 | } | |
| 280 | $buffer = $this->get_buffer( $queue, $number_of_items ); | |
| 281 | } | |
| 282 | // Check that the $buffer is not checkout out already. | |
| 283 | 		if ( is_wp_error( $buffer ) ) { | |
| 284 | return new WP_Error( 'buffer_open', "We couldn't get the buffer it is currently checked out", 400 ); | |
| 285 | } | |
| 286 | ||
| 287 | 		if ( ! is_object( $buffer ) ) { | |
| 288 | return new WP_Error( 'buffer_non-object', 'Buffer is not an object', 400 ); | |
| 289 | } | |
| 290 | ||
| 291 | Settings::set_is_syncing( true ); | |
| 292 | list( $items_to_send, $skipped_items_ids ) = $sender->get_items_to_send( $buffer, $args['encode'] ); | |
| 293 | Settings::set_is_syncing( false ); | |
| 294 | ||
| 295 | return array( | |
| 296 | 'buffer_id' => $buffer->id, | |
| 297 | 'items' => $items_to_send, | |
| 298 | 'skipped_items' => $skipped_items_ids, | |
| 299 | 'codec' => $args['encode'] ? $sender->get_codec()->name() : null, | |
| 300 | 'sent_timestamp' => time(), | |
| 301 | ); | |
| 302 | } | |
| 303 | ||
| 304 | public $items = []; | |
| 305 | ||