using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Post
{
    public class ConstValues
    {
        public string CONST_DBTYPE_SQLSERVER = "sqlserver";
        public string CONST_DBTYPE_MYSQL = "mysql";
        public string CONST_DBTYPE_ORACLE = "oracle";
        public string CONST_DBTYPE_ORACLE2 = "Oracle";
        // # 추가 
        public string CONST_DBTYPE_MSSQL = "mssql";

        public string CONST_PRODUCT_VERSION = "1.4.0.0-build-20210415";
        //public string CONST_PRODUCT_VERSION = "1.3.1.0-release-build-20200429";
        public ushort CONST_PRODUCT_VERSION2 = 1400;
        public string CONST_DBTYPE_USING = "SQLServer";     // 현재 사용 DB
                                                            //public string CONST_DBTYPE_USING = "Oracle";     // 현재 사용 DB

        #region API URL

        // auth
        public string AFC_AUTH_INIT = "/afc/auth/init";     // post   
        public string V2_AUTH_OPEN = "/v2/auth/open";   // get
        public string V2_AUTH_INIT = "/v2/auth/init";   //get

        // module
        public string AFC_MODULE_START = "/afc/module/start";     // post
        public string AFC_MODULE_STATE = "/afc/module/state";     // post
        public string AFC_MODULE_STOP = "/afc/module/stop";     // get
        // info
        public string AFC_INFO_PEER = "/afc/info/peer";     // get
        public string AFC_INFO_MODULES = "/afc/info/modules";     // get
        public string AFC_INFO_DF = "/afc/info/df";     // get
        public string AFC_INFO_STATISTICS = "/afc/info/statistics";     // get
        public string AFC_INFO_TRACINGFILE_LIST = "/afc/info/tracingfile/list";     // get
        public string AFC_INFO_SCHEMAS = "/afc/info/schemas";     // get
        public string AFC_INFO_TABLES = "/afc/info/tables";     // get        
        public string AFC_INFO_DB = "/afc/info/db";     // get
        public string AFC_INFO_DB_SCHEMAS = "/afc/info/db/schemas";     // get
        public string AFC_INFO_DB_TABLES = "/afc/info/db/tables";     // get
        public string AFC_INFO_DB_SEQUENCES = "/afc/info/db/sequences";     // get
        public string AFC_INFO_PRECHECK = "/afc/info/precheck";     // get
        public string AFC_INFO_DB_TABLE = "/afc/info/db/table";     // get
        // command
        public string AFC_COMMAND_COMPARE_TABLEHASH = "/afc/command/compare/tablehash";     // get
        public string AFC_COMMAND_COMPARE_TOTAL = "/afc/command/compare/total";     // post
        public string AFC_COMMAND_COMPARE_ROWHASH = "/afc/command/compare/rowhash";     // post
        public string AFC_COMMAND_COMPARE_ROWCOMPAREANALYSIS = "/afc/command/compare/rowcompareanalysis";     // post
        public string AFC_COMMAND_TABLESCAN = "/afc/command/tablescan";     // post
        public string AFC_COMMAND_SENDTABLESCAN = "/afc/command/sendtablescan";     // post
        public string AFC_COMMAND_GETROWDATA = "/afc/command/getrowdata"; // post
        public string AFC_COMMAND_GETFILE = "/afc/command/getfile";     // get
        public string AFC_COMMAND_RECVFILE = "/afc/command/recvfile";     // post
        // config
        public string AFC_CONFIG = "/afc/config";     // get, post, delete
        public string AFC_CONFIG_LIST = "/afc/config/list";     // get
        // job
        public string AFC_JOB_STATUS = "/afc/job/status";     // get
        public string AFC_JOB_STOP = "/afc/job/stop";     // post
        // map
        public string AFC_MAP = "/afc/map";     // get, post, delete
        public string AFC_MAP_LIST = "/afc/map/list";     // get
        // conn
        public string AFC_CONN = "/afc/conn";     // get
        public string AFC_CONN_LIST = "/afc/conn/list";     // get
        // log
        public string AFC_LOG_LOGSTRING = "/afc/log/logstring";     // get
        // supplog
        public string AFC_SUPPLOG_INFO = "/afc/supplog/info";     // get
        public string AFC_SUPPLOG_ADD = "/afc/supplog/add";     // post
        public string AFC_SUPPLOG_DROP = "/afc/supplog/drop";     // psot
        public string AFC_SUPPLOG_SET = "/afc/supplog/set";     // psot
        // transfer
        public string AFC_TRANSFER_TRACINGRECORD = "/afc/transfer/tracingrecord";     // post
        // pmonlist : 내부 API
        public string AFC_PMONLIST = "/afc/pmonlist";     // get
        #endregion

        public string CONST_NONE = "none";
        public string CONST_UNVALID = "unvalid";
        public string CONST_DEFAULT_AGENT_PASSWORD = "dbsark";
        public string CONST_EXTRACT = "extract";
        public string CONST_EXTRACT2 = "Extract";
        public string CONST_SEND = "send";
        public string CONST_SEND2 = "Send";
        public string CONST_POST = "post";
        public string CONST_POST2 = "Post";
        public string CONST_RECEIVE = "receive";
        public string CONST_RECEIVE2 = "Recv";
        public string CONST_RECEIVE3 = "recv";
        public string CONST_AGENT = "agent";
        public string CONST_PMON = "pmon";
        public string CONST_COMPARE = "compare";
        public string CONST_CONTROL = "control";
        public string CONST_TRACE = "trace";
        public string CONST_LOGS = "logs";
        public string CONST_PROC = "proc";
        public string CONST_CHECKPOINT = "checkpoint";
        public string CONST_DATA = "data";
        public string CONST_LOCALE = "locale";
        public string CONST_HTTP = "http";
        public string CONST_HTTPS = "https";
        public string CONST_APC = "apc";
        public string CONST_MPC = "mpc";
        public string CONST_MAP = "map";
        public string CONST_CONN = "conn";
        public string CONST_CONF = "config";
        public string CONST_SCRIPT = "script";
        public string CONST_LICENSE = "license";
        public string CONST_SSL = "ssl";
        public string CONST_PLAIN = "plain";
        public string CONST_REPAIR = "repair";
        public string CONST_MGR = "mgr";
        public string CONST_CTL = "ctl";
        public string CONST_SYNC = "sync";
        public string CONST_LIB = "lib";
        public string CONST_INCLUDE = "include";
        public string CONST_EXCLUDE = "exclude";
        public string CONST_DEFAULT = "default";
        public string CONST_MMF = "mmf";   // 통계 - memory mapped file
        public string CONST_MUTEX = "mutex";    // 통계 - mutex
        public string CONST_STATS = "stats";
        public string CONST_AGENTWD = "agentwd";
        public string CONST_CACHE = "cache";
        public string CONST_ALERT = "alert";
        public string CONST_UNKNOWN = "UNKNOWN";
        public string CONST_SMTP = "SMTP";
        public string CONST_SMTPS = "SMTPS";
        public uint CONST_HEX_FFFFFF = 0xFFFFFFFF;
        public int CONST_MB_BYTE_SIZE = 1048576;
        public int CONST_POST_RECORD_READ_COUNT = 20000;
        public int CONST_TICK_PER_SECOND = 10000000;
        public int CONST_RETURN_ERROR_VALUE = -99;

        public int CONST_LOG_LINE_SIZE = 100;
        public string CONST_ENVIROMENT_VARIABLE_ARKCDCHOME = "ARKCDC_HOME";
        public string CONST_ENVIROMENT_VARIABLE_ARKCDCNAME = "ARKCDC_NAME";

        public string CONST_QUERY_TYPE_UPDATE = "update";
        public string CONST_QUERY_TYPE_DELETE = "delete";

        public string CONST_CONFIG_AGENT = "agent";
        public string CONST_CONFIG_CONTROL = "control";
        public string CONST_CONFIG_MGR = "mgr";
        public string CONST_CONFIG_EXTRACT = "extract";
        public string CONST_CONFIG_SEND = "send";
        public string CONST_CONFIG_POST = "post";
        public string CONST_CONFIG_AGENTPWD = "agentpwd";
        public string CONST_CONFIG_CONN = "conn";
        public string CONST_CONFIG_MAPPER = "mapper";
        public string CONST_CONFIG_GLOBAL = "global";

        public string CONST_EXE_EXTRACT = "ArkCDCExtract";
        public string CONST_EXE_SEND = "ArkCDCSend";
        public string CONST_EXE_POST = "ArkCDCPost";
        public string CONST_EXE_AGENT = "ArkCDCWin";
        public string CONST_EXE_RECEIVE = "ArkCDCReceive";
        public string CONST_EXE_REPAIR = "ArkCDCRepair";
        public string CONST_SERVICE_ARKCDC = "ArkCDC_Service";
        public string CONST_SERVICE_ARKCDC2 = "ArkCDCService";

        public int CONST_CONNECTION_WAIT_TIMEOUT = 30000;
        public int CONST_CONNECTION_TIMEOUT_LONG = 600;
        public int CONST_CONNECTION_TIMEOUT = 10;

        public int CONST_HTTP_SUCCESS_CODE = 200;
        public string CONST_HTTP_SUCCESS_MSG = "Success";
        public int CONST_HTTP_FAIL_FORMAT_CODE = 400;
        public string CONST_HTTP_FAIL_FORMAT_MSG = "Bad request";
        public int CONST_HTTP_FAIL_UNAUTHORIZED_CODE = 401;
        public string CONST_HTTP_FAIL_UNAUTHORIZED_MSG = "Unauthorized";
        public int CONST_HTTP_FAIL_ACCEPT_CODE = 406;
        public string CONST_HTTP_FAIL_ACCEPT_MSG = "Not acceptable";
        public int CONST_HTTP_FAIL_ERROR_CODE = 500;
        public string CONST_HTTP_FAIL_ERROR_MSG = "Internal error";
        public int CONST_HTTP_FAIL_NOT_IMPLEMENTED_CODE = 501;
        public string CONST_HTTP_FAIL_NOT_IMPLEMENTED_MSG = "not implemented.";

        public string CONST_LOGGER_AGENT = "agent_logger";
        public string CONST_LOGGER_EXTRACT = "extract_logger";
        public string CONST_LOGGER_SEND = "send_logger";
        public string CONST_LOGGER_POST = "post_logger";
        public string CONST_LOGGER_RECEIVE = "receive_logger";
        public string CONST_LOGGER_PMON = "pmon_logger";
        public string CONST_LOGGER_COMPARE = "compare_logger";
        public string CONST_LOGGER_MGR = "mgr_logger";
        public string CONST_LOGGER_CTL = "ctl_logger";
        public string CONST_LOGGER_REPAIR = "repair_logger";
        public string CONST_LOGGER_UTIL = "util_logger";
        public string CONST_LOGGER_AGENTWD = "agentwd_logger";
        public string CONST_LOGGER_ALERT = "alert_logger";
        public string CONST_LOGGER_TRCDUMP = "trcdump_logger";

        public string CONST_LOGGER_TYPE_TRACE = "trace";
        public string CONST_LOGGER_TYPE_DEBUG = "debug";
        public string CONST_LOGGER_TYPE_INFO = "info";
        public string CONST_LOGGER_TYPE_WARN = "warn";
        public string CONST_LOGGER_TYPE_WARNNING = "warning";
        public string CONST_LOGGER_TYPE_ERROR = "error";
        public string CONST_LOGGER_TYPE_FATAL = "fatal";
        public string CONST_LOGGER_TYPE_ABSOLUTE = "absolute";

        // adctl, admgr command
        public string CONST_CLI_COMMAND_ADCTL = "adctl";
        public string CONST_CLI_COMMAND_ADMGR = "admgr";
        public string CONST_CLI_COMMAND_START = "start";
        public string CONST_CLI_COMMAND_STOP = "stop";
        public string CONST_CLI_COMMAND_STATUS = "status";
        public string CONST_CLI_COMMAND_SHOW = "show";
        public string CONST_CLI_COMMAND_GETLAG = "getlag";
        public string CONST_CLI_COMMAND_PRECHECK = "precheck";
        public string CONST_CLI_COMMAND_HELP = "help";
        public string CONST_CLI_COMMAND_HELP2 = "--help";
        public string CONST_CLI_COMMAND_H = "-h";
        public string CONST_CLI_COMMAND_VERSION = "version";
        public string CONST_CLI_COMMAND_VERSION2 = "--version";
        public string CONST_CLI_COMMAND_V = "-v";
        public string CONST_CLI_COMMAND_GETPWD = "getpwd";
        public string CONST_CLI_COMMAND_MAKE = "make";
        public string CONST_CLI_COMMAND_PWD = "--pwd";
        public string CONST_CLI_COMMAND_ALL = "all";
        public string CONST_CLI_COMMAND_POST = "post";
        public string CONST_CLI_COMMAND_SEND = "send";
        public string CONST_CLI_COMMAND_EXTRACT = "extract";
        public string CONST_CLI_COMMAND_RECV = "recv";
        public string CONST_CLI_COMMAND_FILE = "--file";

        // trcdump
        public string CONST_TRCDUMP_COMMAND_LOAD = "load";
        public string CONST_TRCDUMP_COMMAND_NEXT = "next";
        public string CONST_TRCDUMP_COMMAND_NEXT2 = "n";
        public string CONST_TRCDUMP_COMMAND_PREV = "prev";
        public string CONST_TRCDUMP_COMMAND_PREV2 = "p";
        public string CONST_TRCDUMP_COMMAND_DETAIL = "detail";
        public string CONST_TRCDUMP_COMMAND_SKIP = "skip";
        public string CONST_TRCDUMP_COMMAND_SKIP2 = "s";
        public string CONST_TRCDUMP_COMMAND_GOTO = "goto";
        public string CONST_TRCDUMP_COMMAND_GOTO2 = "g";
        public string CONST_TRCDUMP_COMMAND_CD = "cd";
        public string CONST_TRCDUMP_COMMAND_POSITION = "position";
        public string CONST_TRCDUMP_COMMAND_POSITION2 = "pos";
        public string CONST_TRCDUMP_COMMAND_FIND = "find";
        public string CONST_TRCDUMP_COMMAND_SCAN = "scan";
        public string CONST_TRCDUMP_COMMAND_SHOW = "show";
        public string CONST_TRCDUMP_COMMAND_STATS = "stats";
        public string CONST_TRCDUMP_COMMAND_HELP = "help";
        public string CONST_TRCDUMP_COMMAND_EXIT = "exit";
        public string CONST_TRCDUMP_COMMAND_QUIT = "quit";
        public string CONST_TRCDUMP_COMMAND_MODULE = "module";
        public string CONST_TRCDUMP_COMMAND_FILE = "file";
        public string CONST_TRCDUMP_COMMAND_ON = "on";
        public string CONST_TRCDUMP_COMMAND_OFF = "off";
        public string CONST_TRCDUMP_COMMAND_HEADER = "header";
        public string CONST_TRCDUMP_COMMAND_TRANSACTION = "transaction";
        public string CONST_TRCDUMP_COMMAND_TRANS = "trans";
        public string CONST_TRCDUMP_COMMAND_TX = "tx";
        public string CONST_TRCDUMP_COMMAND_DATA = "data";
        public string CONST_TRCDUMP_COMMAND_LARGE = "large";
        public string CONST_TRCDUMP_COMMAND_RECORD = "record";
        public string CONST_TRCDUMP_COMMAND_SCN = "scn";
        public string CONST_TRCDUMP_COMMAND_TRN = "trn";
        public string CONST_TRCDUMP_COMMAND_ROW = "row";
        public string CONST_TRCDUMP_COMMAND_DEF = "def";
        public string CONST_TRCDUMP_COMMAND_INTERVAL = "interval";
        public string CONST_TRCDUMP_COMMAND_FILES = "files";
        public string CONST_TRCDUMP_COMMAND_INFO = "info";
        public string CONST_TRCDUMP_COMMAND_FILEHEADER = "fileheader";
        public string CONST_TRCDUMP_COMMAND_TABLE = "table";
        public string CONST_TRCDUMP_COMMAND_SEQUENCE = "sequence";

        // option command        
        public string CONST_CLI_OPTION_START_SCN = "--start-scn";   // post, send, extract 사용
        public string CONST_CLI_OPTION_START_TIME = "--start-time";   // post, extract 사용
        public string CONST_CLI_OPTION_SKIP = "--skip";   // post 사용
        public string CONST_CLI_OPTION_SKIP_TX = "--skip-tx";   // post 사용        
        public string CONST_CLI_OPTION_DRY_RUN = "--dry-run";   // post, extract 사용
        public string CONST_CLI_OPTION_DEST = "--dest";   // receive 사용
        public string CONST_CLI_OPTION_SSL = "--ssl";   // receive 사용
        public string CONST_CLI_OPTION_PORT = "--port"; // send 사용
        public string CONST_CLI_OPTION_COPY = "--copy";   // 초기복제
        public string CONST_CLI_OPTION_COPY_DATA = "--copy-data";   // 초기복제
        public string CONST_CLI_OPTION_E = "-e";   // module 사용
        public string CONST_CLI_OPTION_R = "-r";   // adcompare
        public string CONST_CLI_OPTION_D = "-d";   // adcompare
        public string CONST_CLI_OPTION_T = "-t";   // adcompare        

        public string CONST_ARGS_NULL = "@null";
        public string CONST_ARGS_PMON = "@pmon";

        public string CONST_CLI_TYPE_AGENT = "Agent";
        public string CONST_CLI_TYPE_RECEIVE = "Receive";
        public string CONST_CLI_TYPE_EXTRACT = "Extract";
        public string CONST_CLI_TYPE_SEND = "Send";
        public string CONST_CLI_TYPE_POST = "Post";
        public string CONST_CLI_STATUS_RUNNNIG = "Running";
        public string CONST_CLI_STATUS_STOPPED = "Stopped";

        public string CONST_TABLE_METAINFO_TABLE_SCHEMA = "TABLE_SCHEMA";
        public string CONST_TABLE_METAINFO_TABLE_NAME = "TABLE_NAME";
        public string CONST_TABLE_METAINFO_COLUMN_NAME = "COLUMN_NAME";
        public string CONST_TABLE_METAINFO_COLUMN_ID = "COLUMN_ID";
        public string CONST_TABLE_METAINFO_DATA_TYPE = "DATA_TYPE";
        public string CONST_TABLE_METAINFO_DATA_LENGTH = "DATA_LENGTH";
        public string CONST_TABLE_METAINFO_IS_KEY = "IS_KEY";
        public string CONST_TABLE_METAINFO_IS_IDENTITY = "IS_IDENTITY";
        public string CONST_TABLE_METAINFO_NATIVE_DATA_TYPE = "NATIVE_DATA_TYPE";
        public string CONST_TABLE_METAINFO_IS_VIRTUAL = "IS_VIRTUAL";
        public string CONST_TABLE_METAINFO_PRECISION = "PRECISION";
        public string CONST_TABLE_METAINFO_SCALE = "SCALE";
        public string CONST_TABLE_METAINFO_IS_NULLABLE = "IS_NULLABLE";
        public string CONST_TABLE_METAINFO_IS_HIDDEN = "IS_HIDDEN";
        public string CONST_TABLE_METAINFO_CHARACTER_SET = "CHARACTER_SET";
        public string CONST_TABLE_METAINFO_CHARACTER_SET_NAME = "CHARACTER_SET_NAME";
        public string CONST_TABLE_METAINFO_PROPERTY = "PROPERTY";

        public string CONST_TABLE_DBINFO_VERSION_CODE = "VERSION_CODE";
        public string CONST_TABLE_DBINFO_DBNAME = "DBNAME";
        public string CONST_TABLE_DBINFO_PRODUCT = "PRODUCT";
        public string CONST_TABLE_DBINFO_VERSION = "VERSION";
        public string CONST_TABLE_DBINFO_STATUS = "STATUS";
        public string CONST_TABLE_DBINFO_LANG = "LANG";
        public string CONST_TABLE_DBINFO_CHARACTERSET = "CHARACTERSET";
        public string CONST_TABLE_DBINFO_TIMEZONE = "TIMEZONE";
        public string CONST_TABLE_CDCCAPTURE_INIT_CODE = "CODE";
        public string CONST_TABLE_CDCCAPTURE_INIT_MSG = "MSG";
        public string CONST_TABLE_CDCCAPTURE_INIT_FAILTABLE = "FAILTABLE";
        public string CONST_TABLE_CDCCAPTURE_INIT_SUCCESSTABLE = "SUCCESSTABLE";
        public string CONST_TABLE_CDCCAPTURE_DATA_START_LSN = "__$start_lsn";
        public string CONST_TABLE_CDCCAPTURE_DATA_SEQVAL = "__$seqval";
        public string CONST_TABLE_CDCCAPTURE_DATA_OPERATION = "__$operation";
        public string CONST_TABLE_CDCCAPTURE_DATA_UPDATE_MASK = "__$update_mask";
        public string CONST_TABLE_CDCCAPTURE_DATA_COMMAND_ID = "__$command_id";
        public string CONST_TABLE_CDCCAPTURE_DATA_TX_COUNT = "TX_COUNT";
        public string CONST_TABLE_CDCCAPTURE_DATA_TX_TOTAL_COUNT = "TX_TOTAL_COUNT";
        public string CONST_TABLE_CDCCAPTURE_DATA_TRAN_BEGIN_TIME = "TRAN_BEGIN_TIME";
        public string CONST_TABLE_CDCCAPTURE_DATA_TRAN_ID = "TRAN_ID";
        public string CONST_TABLE_TXCOUNT_TX_TOTAL_COUNT = "TX_TOTAL_COUNT";
        public string CONST_TABLE_SEQUENCE_INCREMENT_BY = "INCREMENT_BY";
        public string CONST_TABLE_SEQUENCE_LAST_NUMBER = "LAST_NUMBER";
        public string CONST_TABLE_SEQUENCE_NEXTVAL = "NEXTVAL";
        public string CONST_TABLE_SEQUENCE_CURRVAL = "CURRVAL";
        public string CONST_TABLE_DB_SCHEMAS = "SCHEMAS";
        public string CONST_TABLE_DB_TABLES = "TABLES";
        public string CONST_TABLE_DB_SEQUENCE = "SEQUENCES";
        public string CONST_TABLE_EXTRACT_SCHEMAS = "SCHEMAS";
        public string CONST_TABLE_EXTRACT_TABLES = "TABLES";
        public string CONST_TABLE_EXTRACT_ALLTABLES_SCHEMAS = "SCHEMAS";
        public string CONST_TABLE_EXTRACT_ALLTABLES_TABLES = "TABLES";
        public string CONST_TABLE_EXTRACT_ALLTABLES_CNT = "CNT";
        public string CONST_TABLE_DBINFOTABLE_COLUMN_NAME = "COLUMN_NAME";
        public string CONST_TABLE_DBINFOTABLE_DATA_TYPE = "DATA_TYPE";
        public string CONST_TABLE_DBINFOTABLE_DATA_LENGTH = "DATA_LENGTH";
        public string CONST_TABLE_DBINFOTABLE_CONSTRAINT_TYPE = "CONSTRAINT_TYPE";
        public string CONST_TABLE_DBINFOTABLE_VIRTURE_YN = "VIRTUAL_YN";
        public string CONST_TABLE_DBINFOTABLE_NULLABLE_YN = "NULLABLE_YN";
        public string CONST_TABLE_DBINFOTABLE_HIDDEN_YN = "HIDDEN_YN";
        public string CONST_TABLE_DBINFOTABLE_INDEX_YN = "INDEX_YN";

        public byte CONST_DBTYPE_VAL_ORACLE = 0x08;
        public byte CONST_DBTYPE_VAL_MSSQL = 0x35;
        public byte CONST_DBTYPE_VAL_MYSQL = 0x37;
        public byte CONST_DBTYPE_VAL_CUBRID = 0x46;
        public byte CONST_DBTYPE_VAL_TIBERO = 0x71;
        public byte CONST_DBTYPE_VAL_ALTIBASE = 0x41;
        public byte CONST_DBTYPE_VAL_POSTGRESQL = 0x90;

        public int CONST_ROWCOMPARE_CODE_NOMATCH_HASH = 1;
        public int CONST_ROWCOMPARE_CODE_NOEXIST_SOURCE = 2;
        public int CONST_ROWCOMPARE_CODE_NOEXIST_TARGET = 3;

        public string CONST_AGENT_START_OPTION_ALL = "all";
        public string CONST_AGENT_START_OPTION_NOTALL = "notall";

        public int CONST_ORACLE_SEQUENCE_NOT_FOUND = -1;
        public int CONST_ORACLE_SEQUENCE_SYNC = 0;
        public int CONST_ORACLE_SEQUENCE_TARGET_IS_BIGGER = 1;
        public int CONST_ORACLE_SEQUENCE_TARGET_IS_SMALLER = 2;
        public int CONST_ORACLE_SEQUENCE_SYNC_FAILED = 3;

        public string CONST_LOG_BACKUP_NONE = "none";
        public string CONST_LOG_BACKUP_ONE = "one";
        public string CONST_LOG_BACKUP_ALL = "all";
        public string CONST_LOG_LEVEL_TRACE = "trace";
        public string CONST_LOG_LEVEL_DEBUG = "debug";
        public string CONST_LOG_LEVEL_INFO = "info";
        public string CONST_LOG_LEVEL_WARN = "warn";
        public string CONST_LOG_LEVEL_ERROR = "error";
        public string CONST_LOG_LEVEL_FATAL = "fatal";

        public string CONST_CONTROL_VALIDATION_SUCCESS = "success";
        public string CONST_CONTROL_VALIDATION_WARNING = "warning";
        public string CONST_CONTROL_VALIDATION_ITEM_UNVALID = "unvalid";
        public string CONST_CONTROL_VALIDATION_ITEM_MISSING = "missing";
        public string CONST_CONTROL_VALIDATION_ITEM_WRONG_RANGE = "wrongrange";
        public string CONST_CONTROL_VALIDATION_NOT_LOAD = "notload";

        public int CONST_LICENSE_VERIFID = 0;
        public int CONST_LICENSE_EXPIRED = -1;
        public int CONST_LICENSE_ID_WRONG = -2;

        public int CONST_JOB_TYPE_COMPARE_TABLEHASH = 11;
        public int CONST_JOB_TYPE_COMPARE_ROWHASH = 12;
        public int CONST_JOB_TYPE_COMPARE_ROWHASH_ANALYSIS = 13;
        public int CONST_JOB_TYPE_COMPARE_TABLEHASH_TOTAL = 14;
        public int CONST_JOB_TYPE_FILE_TRANSFER = 15;
        public int CONST_JOB_TYPE_TABLE_SCAN = 21;

        public int CONST_JOB_STATUS_STARTED = 10001;
        public int CONST_JOB_STATUS_ENDED = 10002;
        public int CONST_JOB_STATUS_STOPPED_BY_USER = 10003;
        public int CONST_JOB_STATUS_COMPARE_QUERY_DATA = 11001;
        public int CONST_JOB_STATUS_COMPARE_WRITE_FILE = 11002;
        public int CONST_JOB_STATUS_COMPARE_ANALYSIS = 11003;
        public int CONST_JOB_STATUS_COMPARE_CHECK_OK = 11004;

        public int CONST_JOB_STATUS_ERROR_CONFIG_LOAD = -10001;
        public int CONST_JOB_STATUS_ERROR_FILE = -10002;
        public int CONST_JOB_STATUS_ERROR_HTTP_AUTH = -10003;
        public int CONST_JOB_STATUS_ERROR_INVALID_REQUEST = -10004;
        public int CONST_JOB_STATUS_ERROR_DB_CONNECT_FAIL = -10005;
        public int CONST_JOB_STATUS_ERROR_UNKNOWN = -10999;
        public int CONST_JOB_STATUS_ERROR_COMPARE_DB_QUERY = -11001;
        public int CONST_JOB_STATUS_ERROR_COMPARE_TABLE_NOT_EXIST = -11002;
        public int CONST_JOB_STATUS_ERROR_COMPARE_NOT_AVAILABLE = -11003;
        public int CONST_JOB_STATUS_ERROR_COMPARE_NOT_SUPPORTED_COLUMN = -11004;
        public int CONST_JOB_STATUS_ERROR_COMPARE_PK_NOT_EXIST = -11005;

        public int CONST_JOB_STATUS_TABLESCAN_VERIFICATION = 12001;
        public int CONST_JOB_STATUS_TABLESCAN_QUERY = 12002;
        public int CONST_JOB_STATUS_TABLESCAN_FILE = 12003;

        public int CONST_JOB_STATUS_ERROR_TABLESCAN_NOT_EXIST = -12001;
        public int CONST_JOB_STATUS_ERROR_TABLESCAN_INVALID_REQUEST = -12002;

        public int CONST_JOB_STATUS_SENDTABLESCAN_WAITING_CONNECT = 13001;
        public int CONST_JOB_STATUS_SENDTABLESCAN_PROCEEDING_CONNECT = 13002;
        public int CONST_JOB_STATUS_SENDTABLESCAN_SENDING_DATA = 13003;
        public int CONST_JOB_STATUS_SENDTABLESCAN_WAITING_DATA = 13003;

        public int CONST_JOB_STATUS_ERROR_SENDTABLESCAN_FAIL_CONNECT = -13001;
        public int CONST_JOB_STATUS_ERROR_SENDTABLESCAN_NOT_FOUND_START_POSITION = -13001;
        public int CONST_JOB_STATUS_ERROR_SENDTABLESCAN_DISCONNECT = -13001;

        public int CONST_TOTAL_COMPARE_STATE_SYNC = 1;
        public int CONST_TOTAL_COMPARE_STATE_ROWCOUNT_NOT_MATCH = 2;
        public int CONST_TOTAL_COMPARE_STATE_UNSYNC = 3;

        public string CONST_BRACKET_TYPE_OPENER = "opener";
        public string CONST_BRACKET_TYPE_CLOSER = "closer";
        public byte CONST_BRACKET_TYPE_OPENER_VAL = 40;
        public byte CONST_BRACKET_TYPE_CLOSER_VAL = 41;

        public string CONST_TRCCOMPLETE_STATUS_SUCCESS = "success";
        public string CONST_TRCCOMPLETE_STATUS_WRONG_ALIAS = "wrong alias";
        public string CONST_TRCCOMPLETE_STATUS_ALREADY_COMPLETE = "already complete";
        public string CONST_TRCCOMPLETE_STATUS_IN_USE = "in use";
        public string CONST_TRCCOMPLETE_STATUS_ERROR = "error";

        public string CONST_POST_SQL_LOGGING_TYPE_NO = "no";
        public string CONST_POST_SQL_LOGGING_TYPE_ERROR = "error";
        public string CONST_POST_SQL_LOGGING_TYPE_ALL = "all";

        public int CONST_CHECK_VALID_FLAG_IP = 1;
        public int CONST_CHECK_VALID_FLAG_PORT = 2;
        public int CONST_CHECK_VALID_FLAG_PROTOCOL = 3;
        public int CONST_CHECK_VALID_FLAG_PORTRANGE = 4;
        public int CONST_CHECK_VALID_FLAG_LOGLEVEL = 5;
        public int CONST_CHECK_VALID_FLAG_LOGBACKUP = 6;
        public int CONST_CHECK_VALID_FLAG_ALIAS_TYPE1 = 7;
        public int CONST_CHECK_VALID_FLAG_ALIAS_TYPE2 = 8;
        public int CONST_CHECK_VALID_FLAG_ALIAS_TYPE3 = 9;
        public int CONST_CHECK_VALID_FLAG_ALIAS_TYPE4 = 10;
        public int CONST_CHECK_VALID_FLAG_ALIAS_TYPE5 = 11;
        public int CONST_CHECK_VALID_FLAG_ALIAS_TYPE6 = 12;
        public int CONST_CHECK_VALID_FLAG_DEST = 13;
        public int CONST_CHECK_VALID_FLAG_LARGE_TX_SIZE = 14;
        public int CONST_CHECK_VALID_FLAG_LARGE_TX_CACHE_MAX_SIZE = 15;
        public int CONST_CHECK_VALID_FLAG_TRACINGFILE_SIZE = 16;
        public int CONST_CHECK_VALID_FLAG_QOS = 17;
        public int CONST_CHECK_VALID_FLAG_YES_NO = 18;
        public int CONST_CHECK_VALID_FLAG_SECURITY = 19;
        public int CONST_CHECK_VALID_FLAG_LOGGINGTYPE = 20;
        public int CONST_CHECK_VALID_FLAG_CONN_IP = 21;
        public int CONST_CHECK_VALID_FLAG_DELAY = 22;
        public int CONST_CHECK_VALID_FLAG_TRANSMISSION_UNIT = 23;

        // args option valid
        public int CONST_OPTION_VALID_FLAG_UNIQUE = -1;    // 같은 option 여러개 존재
        public int CONST_OPTION_VALID_FLAG_DDL_DML = -2;    // --ddl, --dml 동시 사용 불가
        public int CONST_OPTION_VALID_FLAG_START = -3;    // --start-scn, --start-time 동시 사용 불가
        public int CONST_OPTION_VALID_FLAG_SKIP = -4;    // --skip, --skip-tran 동시 사용 불가
        public int CONST_OPTION_VALID_FLAG_UNTIL = -5;    // --until-scn, --until-time 동시 사용 불가
        public int CONST_OPTION_VALID_FLAG_SCN_INT = -6;    // scn value 값 정수형 아님
        public int CONST_OPTION_VALID_FLAG_SCN_RANGE = -7;    // scn value 값 범위 벗어남
        public int CONST_OPTION_VALID_FLAG_COUNT_INT = -8;    // count value 값 정수형 아님
        public int CONST_OPTION_VALID_FLAG_DATETIME = -9;    // value 값 시간 형식 아님

        // COMPARE GETROWDATA ERRORCODE
        public int CONST_GETROWDATA_ERROR_CODE_UNKNOWN = 40000;
        public int CONST_GETROWDATA_ERROR_CODE_NOT_JSON_FORMAT = 40001;
        public int CONST_GETROWDATA_ERROR_CODE_EMPTY_DATABASE = 40002;
        public int CONST_GETROWDATA_ERROR_CODE_EMPTY_SCHEMA_NAME = 40003;
        public int CONST_GETROWDATA_ERROR_CODE_EMPTY_TABLE_NAME = 40004;
        public int CONST_GETROWDATA_ERROR_CODE_EMPTY_VALUES = 40005;
        public int CONST_GETROWDATA_ERROR_CODE_FAIL_DBCONNECTION = 50001;
        public int CONST_GETROWDATA_ERROR_CODE_NOT_EXIST_TABLE = 50002;
        public int CONST_GETROWDATA_ERROR_CODE_FAIL_GET_COLUMN = 50003;

        // 전역 메시지
        public string MSG_FAIL_ARKCDC_HOME = "Failed to start ArkCDC Agent Process. Please check the 'ARKCDC_HOME'.";
        public string MSG_FAIL_ARKCDC_NAME = "Failed to start ArkCDC Agent Process. Please check the 'ARKCDC_NAME'.";
        public string MSG_FAIL_AGENT_PWD_FILE = "agent.pwd text is not valid.";

        // QOS
        public int CONST_QOS_TOKEN_POST = 9;
        public int CONST_QOS_TOKEN_EXTRACT = 9;

        // timer
        public int CONST_LOG_TIMER_SET = 1;
        public int CONST_LOG_TIMER_RECORD = 2;

        // trace
        public int CONST_LOG_TRACE_IN = 1;
        public int CONST_LOG_TRACE_OUT = 2;

        // checkpoint
        public byte CONST_CHECKPOINT_HEADER_DATASOURCE_TRACING = 1;     // tracing read
        public byte CONST_CHECKPOINT_HEADER_DATASOURCE_ORACLE = 11;     // oracle
        public byte CONST_CHECKPOINT_HEADER_DATASOURCE_SQLSERVER = 12;     // sqlserver
        public byte CONST_CHECKPOINT_STATUS_STOP = 1;
        public byte CONST_CHECKPOINT_STATUS_RUNNING = 2;
        public byte CONST_CHECKPOINT_STATUS_RESULT_END = 128;     // 데이터의 끝
        public byte CONST_CHECKPOINT_STATUS_RESULT_WORKING = 1;     // 작업중간
        public byte CONST_CHECKPOINT_STATUS_RESULT_SWITCH = 2;     // 파일 스위치 처리중
        public byte CONST_CHECKPOINT_STATUS_RESULT_NOREAD = 8;     // 읽은 블럭이 없음
    }
}
