public void processSrcDirMessage(OMMMsg respMsg)
    {
        // *_log<<"Received source directory response"<<endl;
        myCallback.notifyStatus("Received source directory response");

        if (respMsg.getMsgType() == OMMMsg.MsgType.REFRESH_RESP
                || respMsg.getMsgType() == OMMMsg.MsgType.UPDATE_RESP)
        {
            OMMMap map;
            if (respMsg.getDataType() == OMMTypes.MAP)
            {
                try
                {
                    map = (OMMMap)respMsg.getPayload();
                }
                catch (Exception e) // Just in case
                {
                    System.out.println(e.getClass().getName() + ": " + e.getMessage());
                    throw new RuntimeException("Source Directory Response has no Services.");
                }
                for (Iterator iter = map.iterator(); iter.hasNext();)
                {
                    OMMMapEntry mapEntry = (OMMMapEntry)((OMMMapEntry)iter.next());
                    if (mapEntry.getDataType() != OMMTypes.FILTER_LIST)
                        System.out.println("ERROR--expected a FilterList");

                    // each mapEntry will be a separate service
                    String serviceName = mapEntry.getKey().toString();
                    String str = "Received service: ";
                    str += serviceName;
                    myCallback.notifyStatus(str);

                    /*
                     * if (serviceName.equals(myServiceName)) { if
                     * ((_dictLocation == 2) && !m_bSubscribedToAppendixA) {
                     * sendRequest(RDMMsgTypes.DICTIONARY, serviceName); } }
                     */
                }
            }
            else
                myCallback.notifyStatus("Source directory response has no services!");
        }
    }