Subversion Repositories SmartDukaan

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package in.shop2020.thrift.clients;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;

import org.apache.thrift.transport.TTransportException;

import in.shop2020.model.v1.user.PromotionService.Client;
import in.shop2020.utils.ConfigClientKeys;
import in.shop2020.utils.Logger;

public class PromotionServiceClient extends GenericServiceClient {

    private Client client = null;
    
    public PromotionServiceClient(String clientIdentifier, String hostConfigKey, String portConfigKey) throws Exception {
        super(clientIdentifier, hostConfigKey, portConfigKey);

        client = new Client(protocol);
    }
    
    public PromotionServiceClient() throws Exception{
        this(PromotionServiceClient.class.getSimpleName(), ConfigClientKeys.promotion_service_server_host.toString(), ConfigClientKeys.promotion_service_server_port.toString());
        if(transport.isOpen()){
            Logger.log("Transport was already open", this);
        }
        try {
            transport.open();
        } catch (TTransportException e) {
            Logger.log("Encountered exception while open transport " + e, this);
        }

    }
    @PostConstruct
    private void openTransport(){
        if(transport.isOpen()){
            Logger.log("Transport was already open", this);
        }
        try {
            transport.open();
        } catch (TTransportException e) {
            Logger.log("Encountered exception while open transport " + e, this);
        }
    }
    
    @PreDestroy
    private void closeTransport(){
        if(transport != null && transport.isOpen()){
            Logger.log("Closing transport :", this);
            transport.close();
        }
    }
    
    public Client getClient(){
        return client;
    }
    
    @Override
    public void closeSession() {
        try {
            client.closeSession();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}