# Path: log.py
# class __NullLogger:
#     def debug(self, msg=""):    pass
#     def warning(self, msg=""):  pass
#     def info(self, msg=""):     pass
#     def error(self, msg=""):    pass
#     def fatal(self, msg=""):    pass
# 
# Path: SigObject.py
# class SigObject(QObject):
#     def __init__(self):
# 
# Path: net/socktypes.py
# TCP_SERVER_BASE_TYPE = 0x00
# TCP_CLIENT_BASE_TYPE = 0x10
# UDP_SERVER_BASE_TYPE = 0x20
# UDP_CLIENT_BASE_TYPE = 0x30
# TCP_SERVER        = TCP_SERVER_BASE_TYPE | 0x01
# TCP_CLIENT_REMOTE = TCP_SERVER_BASE_TYPE | 0x02
# TCP_CLIENT_LOCAL  = TCP_CLIENT_BASE_TYPE | 0x10
# UDP_SERVER        = UDP_SERVER_BASE_TYPE | 0x00 # it's just like a sever
# UDP_CLIENT_REMOTE = UDP_SERVER_BASE_TYPE | 0x01
# UDP_CLIENT_LOCAL  = UDP_CLIENT_BASE_TYPE | 0x01


from log import logger
from SigObject import sigObject
from net import socktypes
import signals
import socket
import select
import socktypes
import threading
            self.sock.settimeout(0.5)
            self.sock.connect((self.ip, self.port))
            self.sock.setblocking(0)
            self.conFlag = True
            return True
            
        except Exception as e:
            logger.error("connect exp: %s" % e.message)
            return
        
    def sendall(self, data):
        if not isinstance(data, basestring):
            return False
        
        return self.sock.sendall(data) is None
    
    def getId(self):
        return self._id
        
    def close(self, stopflag):
        logger.debug("------ CLOSE ------")
        if self.sock is None:
            return
        
        self.sock.close()
        self.sock = None
        self.conFlag = False

        if not stopflag:
            logger.debug("emit SIG_REMOTE_CLOSED")

# Path: log.py
# class __NullLogger:
#     def debug(self, msg=""):    pass
#     def warning(self, msg=""):  pass
#     def info(self, msg=""):     pass
#     def error(self, msg=""):    pass
#     def fatal(self, msg=""):    pass
# 
# Path: SigObject.py
# class SigObject(QObject):
#     def __init__(self):
# 
# Path: net/socktypes.py
# TCP_SERVER_BASE_TYPE = 0x00
# TCP_CLIENT_BASE_TYPE = 0x10
# UDP_SERVER_BASE_TYPE = 0x20
# UDP_CLIENT_BASE_TYPE = 0x30
# TCP_SERVER        = TCP_SERVER_BASE_TYPE | 0x01
# TCP_CLIENT_REMOTE = TCP_SERVER_BASE_TYPE | 0x02
# TCP_CLIENT_LOCAL  = TCP_CLIENT_BASE_TYPE | 0x10
# UDP_SERVER        = UDP_SERVER_BASE_TYPE | 0x00 # it's just like a sever
# UDP_CLIENT_REMOTE = UDP_SERVER_BASE_TYPE | 0x01
# UDP_CLIENT_LOCAL  = UDP_CLIENT_BASE_TYPE | 0x01


# Path: net/SockClient.py
from log import logger
from SigObject import sigObject
from net import socktypes
import signals
import socket
import select
import socktypes
import threading

            self.sock.settimeout(0.5)
            self.sock.connect((self.ip, self.port))
            self.sock.setblocking(0)
            self.conFlag = True
            return True
            
        except Exception as e:
            logger.error("connect exp: %s" % e.message)
            return
        
    def sendall(self, data):
        if not isinstance(data, basestring):
            return False
        
        return self.sock.sendall(data) is None
    
    def getId(self):
        return self._id
        
    def close(self, stopflag):
        logger.debug("------ CLOSE ------")
        if self.sock is None:
            return
        
        self.sock.close()
        self.sock = None
        self.conFlag = False

        if not stopflag:
            logger.debug("emit SIG_REMOTE_CLOSED")

            sigObject.emit(signals.SIG_REMOTE_CLOSED, self._id, self.parentId)