public HoxisConnection() { _extractor = new HoxisBytesExtractor(readBufferSize); user = new HoxisUser(); user.onNetworkAnomaly += ProcessNetworkAnomaly; _extractor.onBytesExtracted += user.ProtocolEntry; user.onPost += Send; }
/// <summary> /// Init the configuration, such as the ip, port, socket /// </summary> /// <param name="ret"></param> public void InitializeConfig(string configPath = "") { Ret ret; // Read config file string path; if (configPath != "") { path = configPath; } else { path = basicPath + "/Configs/hoxis_client.toml"; } config = new TomlConfiguration(path, out ret); if (ret.code != 0) { HoxisDirector.Ins.AffairEntry(C.AFFAIR_INIT_ERROR, ret); return; } // Assign ip, port and init the sokcet serverIP = config.GetString("socket", "server_ip", out ret); if (ret.code != 0) { HoxisDirector.Ins.AffairEntry(C.AFFAIR_INIT_ERROR, ret); return; } port = config.GetInt("socket", "port", out ret); if (ret.code != 0) { HoxisDirector.Ins.AffairEntry(C.AFFAIR_INIT_ERROR, ret); return; } // Init extractor int size = config.GetInt("socket", "read_buffer_size", out ret); if (ret.code != 0) { HoxisDirector.Ins.AffairEntry(C.AFFAIR_INIT_ERROR, ret); return; } _extractor = new HoxisBytesExtractor(size); _extractor.onBytesExtracted += OnExtract; // Init HoxisDirector HoxisDirector.protocolQueueCapacity = config.GetInt("director", "protocol_queue_capacity", out ret); if (ret.code != 0) { HoxisDirector.Ins.AffairEntry(C.AFFAIR_INIT_ERROR, ret); return; } HoxisDirector.protocolQueueProcessQuantity = config.GetShort("director", "protocol_queue_process_quantity", out ret); if (ret.code != 0) { HoxisDirector.Ins.AffairEntry(C.AFFAIR_INIT_ERROR, ret); return; } HoxisDirector.affairQueueCapacity = config.GetInt("director", "affair_queue_capacity", out ret); if (ret.code != 0) { HoxisDirector.Ins.AffairEntry(C.AFFAIR_INIT_ERROR, ret); return; } HoxisDirector.affairQueueProcessQuantity = config.GetShort("director", "affair_queue_process_quantity", out ret); if (ret.code != 0) { HoxisDirector.Ins.AffairEntry(C.AFFAIR_INIT_ERROR, ret); return; } HoxisDirector.heartbeatInterval = config.GetFloat("director", "heartbeat_interval", out ret); if (ret.code != 0) { HoxisDirector.Ins.AffairEntry(C.AFFAIR_INIT_ERROR, ret); return; } }