Divide the MSB source codes into two repos
[msb/apigateway.git] / apiroute / apiroute-service / src / main / java / org / onap / msb / apiroute / wrapper / consulextend / expose / WriteBufferHandler.java
diff --git a/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/consulextend/expose/WriteBufferHandler.java b/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/consulextend/expose/WriteBufferHandler.java
new file mode 100644 (file)
index 0000000..6df10e3
--- /dev/null
@@ -0,0 +1,36 @@
+package org.onap.msb.apiroute.wrapper.consulextend.expose;
+
+import org.onap.msb.apiroute.wrapper.queue.QueueManager;
+import org.onap.msb.apiroute.wrapper.queue.ServiceData;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.orbitz.consul.model.ConsulResponse;
+
+public class WriteBufferHandler<T> implements WatchTask.Handler<T> {
+
+       private static final Logger LOGGER = LoggerFactory
+                       .getLogger(WriteBufferHandler.class);
+       private final ServiceData.DataType dataType;
+
+
+       public WriteBufferHandler(final ServiceData.DataType dataType) {
+      this.dataType =dataType;
+  }
+
+       @Override
+       public void handle(ConsulResponse<T> object) {
+               // TODO Auto-generated method stub
+               ServiceData<T> data = new ServiceData<T>();
+               data.setDataType(dataType);
+               data.setData(object.getResponse());
+               
+               try {
+                       QueueManager.getInstance().putIn(data);
+               } catch (InterruptedException e) {
+                       // TODO Auto-generated catch block
+                       LOGGER.warn("put data to buffer interrupted:", e);
+               }
+       }
+
+}