Catalog alignment
[sdc.git] / catalog-ui / src / app / ng2 / utils / queue-service-utils.ts
1 /**
2  * Created by ob0695 on 6/3/2018.
3  */
4 /*-
5  * ============LICENSE_START=======================================================
6  * SDC
7  * ================================================================================
8  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
9  * ================================================================================
10  * Licensed under the Apache License, Version 2.0 (the "License");
11  * you may not use this file except in compliance with the License.
12  * You may obtain a copy of the License at
13  *
14  *      http://www.apache.org/licenses/LICENSE-2.0
15  *
16  * Unless required by applicable law or agreed to in writing, software
17  * distributed under the License is distributed on an "AS IS" BASIS,
18  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19  * See the License for the specific language governing permissions and
20  * limitations under the License.
21  * ============LICENSE_END=========================================================
22  */
23 import {Injectable} from "@angular/core";
24
25 @Injectable()
26 export class QueueServiceUtils {
27
28     private executionQueue:any;
29
30     constructor() {
31         if(!this.executionQueue) {
32             this.executionQueue = this.getQueue();
33         }
34     }
35
36     private getQueue = () => new Promise((resolve, reject) => {
37        resolve(true);
38     });
39
40     private addMethodToQueue = (runMe:Function):void => {
41         this.executionQueue = this.executionQueue.then(runMe, runMe);
42     };
43
44     addNonBlockingUIAction = (update:Function, releaseUIcallBack?:Function):void => {
45         // releaseUIcallBack();
46         this.addMethodToQueue(update);
47     };
48
49     // The Method call is responsible for releasing the UI
50     addBlockingUIAction = (blockingServerRequest:Function):void => {
51         this.addMethodToQueue(blockingServerRequest);
52     };
53
54     addBlockingUIActionWithReleaseCallback = (blockingServerRequest:Function, releaseUIcallBack:Function):void=> {
55         this.addMethodToQueue(blockingServerRequest);
56         // this.addMethodToQueue(releaseUIcallBack);
57     };
58 }