Exemplo n.º 1
0
mama_status createTransport (mamaCaptureConfig subCapture,
                             mamaTransport* transport,
                             char* tportName)
{
    mama_status   status =  MAMA_STATUS_OK;
    mamaCapture*  capture = (mamaCapture*)subCapture;

    if (capture == NULL) return MAMA_STATUS_NULL_ARG;


    status = mamaTransport_allocate (transport);
    if (status != MAMA_STATUS_OK)
    {
        mama_log (MAMA_LOG_LEVEL_NORMAL,
                  "Failed to allocate transport STATUS: %d %s\n", status,
                  mamaStatus_stringForStatus (status));
        exit(1);
    }

    status = mamaTransport_setTransportCallback(*transport, transportCb, NULL);

    status = mamaTransport_create (*transport, tportName, capture->myBridge);

    if (status != MAMA_STATUS_OK)
    {
        mama_log (MAMA_LOG_LEVEL_NORMAL,
                  "Failed to create transport STATUS: %d %s\n", status,
                  mamaStatus_stringForStatus (status));
        exit(1);
    }

    /*if we still haven't create a transport for
      dictionary then do so */
    if (capture->myDictTransport == NULL)
    {
        capture->myDictTransport = *transport;

        mamaSource_create             (&capture->myDictSource);
        mamaSource_setTransport       (capture->myDictSource,
                                      capture->myDictTransport);
        mamaSource_setSymbolNamespace (capture->myDictSource,
                                       capture->myDictSourceName);
        if (status != MAMA_STATUS_OK)
        {
            mama_log (MAMA_LOG_LEVEL_NORMAL,
                      "Failed to create data dictionary transport STATUS: %d %s\n",
                      status, mamaStatus_stringForStatus (status));
            exit(1);
        }
    }
    return status;
}
Exemplo n.º 2
0
static void initializeMama ()
{
    mama_status status;

    status = mama_loadBridge (&gPubBridge, gPubMiddleware);
    status = mama_loadBridge (&gSubBridge, gSubMiddleware);

    mama_open();

    mama_getDefaultEventQueue (gPubBridge, &gPubDefaultQueue);
    mama_getDefaultEventQueue (gSubBridge, &gSubDefaultQueue);

    mamaTransport_allocate (&gSubTransport);
    mamaTransport_create (gSubTransport,
                          gSubTransportName,
                          gSubBridge);

    mamaTransport_allocate (&gPubTransport);
    mamaTransport_create (gPubTransport,
                          gPubTransportName,
                          gPubBridge);

    /*The mamaSource used for all subscription creation*/
    if (MAMA_STATUS_OK!=(status=mamaSource_create (&gSubscriptionSource)))
    {
        fprintf (stderr,
                 "Failed to create subscription mamaSource STATUS: %d %s\n",
                 status, mamaStatus_stringForStatus (status));
        exit(1);
    }

    mamaSource_setId (gSubscriptionSource, "Subscription_Source");
    mamaSource_setTransport (gSubscriptionSource, gSubTransport);
    mamaSource_setSymbolNamespace (gSubscriptionSource, gSubSource);


}
Exemplo n.º 3
0
 void MamaSource::setTransport (MamaTransport*  transport)
 {
     mamaTry (mamaSource_setTransport (mySource, transport->getCValue()));
     myTransport = transport;
 }
Exemplo n.º 4
0
static mama_status initializeMama (mamaCaptureConfig subCapture)
{
    mamaCapture * capture = (mamaCapture*)subCapture;
    mama_status status = MAMA_STATUS_OK;

    status = mama_loadBridge (&capture->myBridge, capture->myMiddleware);

    if (MAMA_STATUS_OK!=status)
    {
        mama_log (MAMA_LOG_LEVEL_NORMAL,"Could not open MAMA %s bridge.",
                                         capture->myMiddleware);
        exit (1);
    }

    status = mama_open ();
    if (status != MAMA_STATUS_OK)
    {
        mama_log (MAMA_LOG_LEVEL_NORMAL,
                  "Failed to initialize MAMA STATUS: %d (%s)\n", status,
                  mamaStatus_stringForStatus (status));
        exit(1);
    }

    mama_getDefaultEventQueue (capture->myBridge, &capture->myDefaultQueue);

    status = mamaCapture_allocate(&capture->myCapture);
    if (status != MAMA_STATUS_OK)
    {
        mama_log (MAMA_LOG_LEVEL_NORMAL,
                  "Failed to create capture STATUS: %d %s\n", status,
                  mamaStatus_stringForStatus (status));
        exit(1);

    }
    if (capture->myDictTport != NULL)
    {
        mama_log (MAMA_LOG_LEVEL_FINE,
                  "Creating data dictionary transport using name: %s\n",
                  capture->myDictTport);
        if (strlen(capture->myDictTport)==0) capture->myDictTport = NULL;

        status = mamaTransport_allocate (&capture->myDictTransport);
        status = mamaTransport_create (capture->myDictTransport,
                                       capture->myDictTport,
                                       capture->myBridge);
        mamaSource_create             (&capture->myDictSource);
        mamaSource_setTransport       (capture->myDictSource,
                                      capture->myDictTransport);
        mamaSource_setSymbolNamespace (capture->myDictSource,
                                       capture->myDictSourceName);
        if (status != MAMA_STATUS_OK)
        {
            mama_log (MAMA_LOG_LEVEL_NORMAL,
                      "Failed to create data dictionary transport STATUS: %d %s\n",
                      status, mamaStatus_stringForStatus (status));
            exit(1);
        }
    }

    return MAMA_STATUS_OK;
}
Exemplo n.º 5
0
mama_status
mamaCaptureList_parseCommandInput (mamaCaptureConfig subCapture,
                                   mamaCaptureList captureList,
                                   char* commandArg)
{
    mamaCaptureSourceList* sourceList =
        (mamaCaptureSourceList*)captureList;
    mamaCapture * capture = (mamaCapture*)subCapture;

    char* source        = NULL;
    char* transportName = NULL;
    char* symbolFile    = NULL;
    int   transportCreated  = 0;

    FILE* fp = NULL;
    char charbuf[1024];

    if (capture == NULL) return MAMA_STATUS_NULL_ARG;

    if (sourceList == NULL)
    {
        mama_log (MAMA_LOG_LEVEL_NORMAL,
                  "parseCommandInput : NullPointer " \
                  "Exception ");
        return MAMA_STATUS_NULL_ARG;
    }

    source        = strtok (commandArg, ":");
    transportName = strtok (NULL, ":");
    symbolFile    = strtok (NULL, " ");

    if (symbolFile != NULL)
    {
        if ((fp = fopen (symbolFile, "r")) == (FILE *)NULL)
        {
            perror (symbolFile);
            exit (1);
        }
    }

    while (fgets (charbuf, 1023, fp))
    {
        char *c = charbuf;
        while ((*c != '\0') && (*c != '\n'))
            c++;
        *c = '\0';
        sourceList[gCounter].mySymbolNamespace = strdup (source);
        sourceList[gCounter].myTransportName   = strdup (transportName);
        sourceList[gCounter].mySymbol          = strdup (charbuf);

        mamaSource_create (&sourceList[gCounter].mySource);
        mamaSource_setId (sourceList[gCounter].mySource,
                          sourceList[gCounter].mySymbolNamespace);
        mamaSource_setSymbolNamespace (sourceList[gCounter].mySource,
                                       sourceList[gCounter].mySymbolNamespace);
        if (transportCreated == 0)
        {
            createTransport(capture,&sourceList[gCounter].myTransport,
                            sourceList[gCounter].myTransportName);
            transportCreated = 1;
        }
        else
        {
            sourceList[gCounter].myTransport=
                sourceList[gCounter-1].myTransport;
        }
        mamaSource_setTransport (sourceList[gCounter].mySource,
                                 sourceList[gCounter].myTransport);
        gCounter++;
    }
    fclose (fp);
    fp = NULL;

    return MAMA_STATUS_OK;
}