# -*- coding: euc-kr -*-

#-------------------------------------------------------------------------------
# Name:		 mmiDebug.py
# Purpose:	 MMI»óÀÇ debug message¸¦ Ãâ·ÂÇÏ´Â Å¬·¡½º 
#
# Author:	  ·ùÈ£Ã¢
#
# Created:	 22-12-2007
# Copyright:   (c) LG-Nortel 2007
# Licence:	 <Ryoo Ho Chang GGU!>
#-------------------------------------------------------------------------------
# ex)
# roxia_debug = True,  in config.py
# from roxiadebug import *
# roxia_trace(....)

import config
import sys

class MmiDebug:
	def __init__(self):
		self.STD_OUT = 1
		self.TEMP_LOG_FILE = 2

		self.traceHeader = '[_TRACE_]'
		self.exceptionHeader = '[_EXCEPTION_]'
		self.eventHeader = '[_EVENT_]'
		self.todoHeader = '[_TODO_]'
		self.traceNum = 0
		self.timestamp = True
		self.logFileHandler = None
		self.logTarget = sys.stdout # default for print chevron

		if config.log_target == self.TEMP_LOG_FILE:
			self.mmiLogFile = '/tmp/mmiLog'
			self.logFileHandle = open(self.mmiLogFile)
			self.logTarget = self.logFileHandle

	def __del__(self):
		if self.logFileHandle:
			self.logFileHandler.close()
		
	def mmiGetTime(self):
		import time, ntptime
		lt = time.localtime(ntptime.ntime())
		return '%02d:%02d:%02d' % (lt[3], lt[4], lt[5])

	def mmiTrace(self, a1, *args):
		if config.mmi_debug:
			delimiter = '[HCRYOO] ====>   '
			if self.timestamp:
				header = delimiter + self.traceHeader + '(%s)' % self.mmiGetTime()
			else:
				header = delimiter + self.traceHeader
			print >> self.logTarget, header, a1,
			for a in args:
				print >> self.logTarget, a,
			print >> self.logTarget

	def mmiException(self, a1, *args):
		if config.mmi_debug:
			if self.timestamp:
				header = self.exceptionHeader + '(%s)' % self.mmiGetTime()
			else:
				header = self.exceptionHeader
			print >> self.logTarget, header, a1,
			for a in args:
				print >> self.logTarget, a,
			print >> self.logTarget

	def mmiFormatedTrace(self, format, *args):
		if config.mmi_debug:
			if self.timestamp:
				header = self.traceHeader + '(%s)' % self.mmiGetTime()
			else:
				header
			print >> self.logTarget, header + ' ' + format % args

	def mmiEvent(self, a1, *args):
		if config.mmi_debug:
			if self.timestamp:
				header = self.eventHeader + '(%s)' % self.mmiGetTime()
			else:
				header

			self.traceNum += 1
			traceno = '%d,' % (self.traceNum)
			print >> self.logTarget, header, traceno, a1,
			for a in args:
				print >> self.logTarget, a,
			print >> self.logTarget

	def mmiTodo(self, a1, *args):
		if config.mmi_debug:
			if self.timestamp:
				header = self.todoHeader + '(%s)' % self.mmiGetTime()
			else:
				header = self.todoHeader
			print >> self.logTarget, header, a1,
			for a in args:
				print >> self.logTarget, a,
			print >> self.logTarget
			
