예제 #1
0
파일: Server.py 프로젝트: mxy2008/cs207ddl
    def _getts_with_id(self, op):
        ts = self.rbdb.getts_with_id(op['id'], self.smdb)
        ts_list = [{"times": list(ts.times())}, {"values": list(ts.values())}]
        print(ts_list)
        print("my result before op")
        result = TSDBOp_GetTS_WithID('get_id')
        result['id'] = op['id']
        result['ts'] = ts_list
        print("type", type(ts_list))
        print("result", result)
        return result

    def _insert_ts(self, op):
        ts = SMTimeSeries(op['ts'].times(), op['ts'].values(), self.smdb)
        result = TSDBOp_InsertTS('insert_ts')
        result['ts'] = ts
        result['id'] = ts.f_id
        return result


if __name__ == '__main__':

    print("abs_path" + str(os.path.abspath('')))
    print("cwd" + str(os.getcwd()))
    s = searchEngine()
    abspath = os.path.abspath(os.path.dirname(__file__))
    f = FileStorageManager(abspath + "/../timeseriesDB")
    tsdb = TSDB_Server(s, f)
    tsdb.run()
예제 #2
0
        if not rec:
        	break

        recv_data = pickle.loads(rec)
        if recv_data['cmd'] == "SIM_TS":
        	ts = Timeseries(recv_data['value'], recv_data['time'])
        	res = search_engine.search(ts, recv_data['n'])
        	conn.send(pickle,dumps(res))
        else:
        	break

    conn.close()



if __name__ == "__main__":
	search_engine = searchEngine()
	s = socket(AF_INET, SOCK_STREAM)
	HOST = gethostname()
	PORT = 15001
	s.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
	s.bind((HOST, PORT))
    s.listen(5)
    try:
    	while True:
			conn, addr = s.accept()
			print('Connected by', addr)
			t = threading.Thread(target=clientThread,args=(conn, search_engine))
			t.start()
	finally:
		s.close()