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 in.shop2020.utils.ConfigClientKeys;
import in.shop2020.utils.Logger;
import in.shop2020.warehouse.WarehouseService.Client;

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

import org.apache.thrift.TException;
import org.apache.thrift.transport.TTransportException;

public class WarehouseServiceClient extends GenericServiceClient {

    private Client client = null;
    
    public WarehouseServiceClient(String clientIdentifier,
            String hostConfigKey, String portConfigKey) throws Exception {
        super(clientIdentifier, hostConfigKey, portConfigKey);
        client = new Client(protocol);
        
    }
    
    public WarehouseServiceClient() throws Exception{
        this(WarehouseServiceClient.class.getSimpleName(),
                ConfigClientKeys.warehouse_service_server_host.toString(),
                ConfigClientKeys.warehouse_service_server_port.toString());
        if(transport.isOpen()){
            Logger.log("Transport was already open", this);
        }
        try {
            transport.open();
            Logger.log("Transport opened", this);
        } catch (TTransportException e) {
            Logger.log("Encountered exception while opening transport: ", e);
        }
    }
    
    @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() {
        return;
    }
}