{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"async def opt_comm_exec(reader, writer, query, db_name, flag):\n",
" \n",
" if reader is None or writer is None:\n",
" print(\"Connection Error!\")\n",
" return None\n",
" else:\n",
" \n",
" #execute query\n",
" if flag:\n",
" writer.write(b'\\n')\n",
" \n",
" #optimize query\n",
" else: \n",
" writer.write(b'\\n')\n",
" \n",
" writer.write(b'\\n')\n",
" db_name += \"\\n\"\n",
" writer.write(db_name.encode())\n",
" \n",
" writer.write(b'\\n')\n",
" \n",
" writer.write(b'\\n')\n",
" query += \"\\n\"\n",
" writer.write(query.encode())\n",
" \n",
" writer.write(b'\\n')\n",
" \n",
" if flag:\n",
" writer.write(b'\\n')\n",
" \n",
" else: \n",
" writer.write(b'\\n')\n",
" \n",
" await writer.drain()\n",
" \n",
" res = await reader.readline()\n",
" res = res.decode()\n",
" print(\"first response from OptServer: \")\n",
" print(res)\n",
" if not res:\n",
" print(\"Connection to Optimizer is broken!\")\n",
" return None\n",
" if res != \"\\n\":\n",
" print(\"Protocol Error!\")\n",
" return None\n",
" #res = await optrdr.readuntil(b'')\n",
" res = await reader.readline()\n",
" print(\"second response from OptServer: \")\n",
" print(res)\n",
" res = res.decode()\n",
" if not res:\n",
" print(\"Connection to Optimizer is broken!\")\n",
" return None\n",
" opt_res = \"\"\n",
" count = 3\n",
" while res != \"\\n\":\n",
" if flag:\n",
" opt_res += res\n",
" else:\n",
" opt_res += res.replace(\" \\n\", \"\")\n",
" res = await reader.readline()\n",
" print(str(count) + \"th response from OptServer: \")\n",
" print(res)\n",
" res = res.decode()\n",
" count += 1\n",
" if not res:\n",
" print(\"Connection to Optimizer is broken!\")\n",
" return None\n",
" \n",
" if opt_res == \"\":\n",
" print(\"Optimization failed!\")\n",
" return None\n",
" print(opt_res)\n",
" return opt_res"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}