int main(int argc, char *argv[]) { std::string procName = "GetOffers"; if (argc == 1) { printHelp(procName); return -1; } bool bWasError = false; LoginParams *loginParams = new LoginParams(argc, argv); SampleParams *sampleParams = new SampleParams(argc, argv); printSampleParams(procName, loginParams, sampleParams); if (!checkObligatoryParams(loginParams, sampleParams)) { delete loginParams; delete sampleParams; return -1; } IO2GSession *session = CO2GTransport::createSession(); SessionStatusListener *sessionListener = new SessionStatusListener(session, true, loginParams->getSessionID(), loginParams->getPin()); session->subscribeSessionStatus(sessionListener); bool bConnected = login(session, sessionListener, loginParams); if (bConnected) { ResponseListener *responseListener = new ResponseListener(session); responseListener->setInstrument(sampleParams->getInstrument()); session->subscribeResponse(responseListener); O2G2Ptr<IO2GLoginRules> loginRules = session->getLoginRules(); if (loginRules) { O2G2Ptr<IO2GResponse> response = NULL; if (loginRules->isTableLoadedByDefault(Offers)) { response = loginRules->getTableRefreshResponse(Offers); if (response) responseListener->printOffers(session, response, ""); } else { O2G2Ptr<IO2GRequestFactory> requestFactory = session->getRequestFactory(); if (requestFactory) { O2G2Ptr<IO2GRequest> offersRequest = requestFactory->createRefreshTableRequest(Offers); responseListener->setRequestID(offersRequest->getRequestID()); session->sendRequest(offersRequest); if (responseListener->waitEvents()) { response = responseListener->getResponse(); if (response) responseListener->printOffers(session, response, ""); } else { std::cout << "Response waiting timeout expired" << std::endl; bWasError = true; } } } // Do nothing 10 seconds, let offers print Sleep(10000); std::cout << "Done!" << std::endl; } else { std::cout << "Cannot get login rules" << std::endl; bWasError = true; } session->unsubscribeResponse(responseListener); responseListener->release(); logout(session, sessionListener); } else { bWasError = true; } session->unsubscribeSessionStatus(sessionListener); sessionListener->release(); session->release(); delete loginParams; delete sampleParams; if (bWasError) return -1; return 0; }
int main(int argc, char *argv[]) { std::string procName = "RemoveFromGroup"; if (argc == 1) { printHelp(procName); return -1; } bool bWasError = false; LoginParams *loginParams = new LoginParams(argc, argv); SampleParams *sampleParams = new SampleParams(argc, argv); printSampleParams(procName, loginParams, sampleParams); if (!checkObligatoryParams(loginParams, sampleParams)) return -1; IO2GSession *session = CO2GTransport::createSession(); SessionStatusListener *sessionListener = new SessionStatusListener(session, true, loginParams->getSessionID(), loginParams->getPin()); session->subscribeSessionStatus(sessionListener); bool bConnected = login(session, sessionListener, loginParams); if (bConnected) { bool bIsAccountEmpty = !sampleParams->getAccount() || strlen(sampleParams->getAccount()) == 0; O2G2Ptr<IO2GAccountRow> account = getAccount(session, sampleParams->getAccount()); ResponseListener *responseListener = new ResponseListener(session); session->subscribeResponse(responseListener); if (account) { if (bIsAccountEmpty) { sampleParams->setAccount(account->getAccountID()); std::cout << "Account: " << sampleParams->getAccount() << std::endl; } std::vector<std::string> orderIDs(1); orderIDs[0] = sampleParams->getOrderID(); for (size_t i=0; i < orderIDs.size(); ++i) { if (!isOrderExists(session, sampleParams->getAccount(), orderIDs[i].c_str(), responseListener)) { std::cout << "Order '" << orderIDs[i] << "' does not exist" << std::endl; bWasError = true; } } if (!bWasError) { O2G2Ptr<IO2GRequest> request = removeOrdersFromGroupRequest(session, sampleParams->getAccount(), orderIDs); if (request) { responseListener->setRequestID(request->getRequestID()); responseListener->setOrderIDs(orderIDs); session->sendRequest(request); if (responseListener->waitEvents()) { std::cout << "Done!" << std::endl; } else { std::cout << "Response waiting timeout expired" << std::endl; bWasError = true; } } else { std::cout << "Cannot create request" << std::endl; bWasError = true; } } } else { std::cout << "No valid accounts" << std::endl; bWasError = true; } session->unsubscribeResponse(responseListener); responseListener->release(); logout(session, sessionListener); } else { bWasError = true; } session->unsubscribeSessionStatus(sessionListener); sessionListener->release(); session->release(); if (bWasError) return -1; return 0; }