inline void order_processor::send_order(const ats::order& order)
	{
		std::type_index order_type(typeid(order));

/*		switch (order_type)
		{
		case typeid(ats::market_order):
			send_market_order(static_cast<const ats::market_order&>(order));
			break;
		default:
			break;
		}*/

		if (order_type == typeid(ats::market_order))
			send_market_order(static_cast<const ats::market_order&>(order));
		else if (order_type == typeid(ats::stop_order))
			send_stop_order(static_cast<const ats::stop_order&>(order));
	}
Exemple #2
0
			void merge(std::ostream & out, order_type & order = order_type())
			{
				flush();
				close();

				std::string const sorttemp = prefix + libmaus2::util::ArgInfo::getDefaultTmpFileName(std::string()) + ".sorttmp";
				libmaus2::util::TempFileRemovalContainer::addTempFile(sorttemp);

				typedef typename libmaus2::sorting::SerialisingSortingBufferedOutputFile<data_type,order_type> sorter_type;
				typename sorter_type::unique_ptr_type SSBOF(
					new sorter_type(sorttemp,order)
				);

				data_type D;

				for ( uint64_t i = 0; i < Vfn.size(); ++i )
				{
					libmaus2::aio::InputStreamInstance::unique_ptr_type PISI(new libmaus2::aio::InputStreamInstance(Vfn[i]));
					std::istream & ISI = *PISI;

					while ( ISI && ISI.peek() != std::istream::traits_type::eof() )
					{
						D.deserialise(ISI);
						SSBOF->put(D);
					}

					PISI.reset();
					libmaus2::aio::FileRemoval::removeFile(Vfn[i]);
				}

				typename sorter_type::merger_ptr_type Pmerger(SSBOF->getMerger());
				while ( Pmerger->getNext(D) )
					D.serialise(out);

				Pmerger.reset();
				SSBOF.reset();

				libmaus2::aio::FileRemoval::removeFile(sorttemp);

				out.flush();
			}
Exemple #3
0
			void merge(std::string const & fn, order_type & order = order_type())
			{
				libmaus2::aio::OutputStreamInstance OSI(fn);
				merge<data_type,order_type>(OSI,order);
			}