FXCM Forex Trading

Help in Recalling api in same session

Moderator: Moderator

Help in Recalling api in same session

Postby Mohamed20884 » Tue Jan 10, 2017 12:23 pm

Hi I am new to using this api and i used the samples provided in this link http://fxcodebase.com/bin/forexconnect/ ... 64-COM.exe
however i couldn't figure out how i can recall the api without having to repeat the whole process again.

Code: Select all
O2GSession session = null;

                try
                {
                    session = O2GTransport.createSession();
                    SessionStatusListener statusListener = new SessionStatusListener(session);
                    session.subscribeSessionStatus(statusListener);
                    statusListener.Reset();
                    session.login("id", "password", "http://www.fxcorporate.com/Hosts.jsp", "Real");
                    if (statusListener.WaitEvents() && statusListener.Connected)
                    {
                        ResponseListener responseListener = new ResponseListener(session);
                        session.subscribeResponse(responseListener);

                        O2GLoginRules loginRules = session.getLoginRules();
                        if (loginRules == null)
                        {
                            throw new Exception("Cannot get login rules");
                        }

                        O2GResponse response;
                        if (loginRules.isTableLoadedByDefault(O2GTableType.Offers))
                        {
                            response = loginRules.getTableRefreshResponse(O2GTableType.Offers);
                            if (response != null)
                            {
                                responseListener.PrintOffers(session, response, null);
                            }
                        }
                        else
                        {
                            O2GRequestFactory requestFactory = session.getRequestFactory();
                            if (requestFactory != null)
                            {
                                O2GRequest offersRequest = requestFactory.createRefreshTableRequest(O2GTableType.Offers);
                                responseListener.SetRequestID(offersRequest.RequestID);
                                session.sendRequest(offersRequest);
                                if (!responseListener.WaitEvents())
                                {
                                    throw new Exception("Response waiting timeout expired");
                                }
                                response = responseListener.GetResponse();
                                if (response != null)
                                {
                                    responseListener.PrintOffers(session, response, null);
                                }
                            }
                        }

                        // Do nothing 10 seconds, let offers print
                        Thread.Sleep(1000);
                        Console.WriteLine("Done!");

                        session.unsubscribeResponse(responseListener);
                        statusListener.Reset();
                        session.logout();
                        statusListener.WaitEvents();
                    }
                    session.unsubscribeSessionStatus(statusListener);
                }
                catch (Exception e)
                {
                    Console.WriteLine("Exception: {0}", e.ToString());
                }
                finally
                {
                    if (session != null)
                    {
                        session.Dispose();
                    }
                }
Mohamed20884
 
Posts: 1
Joined: Mon Jan 09, 2017 9:54 pm

Return to ForexConnect API

Who is online

Users browsing this forum: No registered users and 1 guest