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; }
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); }
void MamaSource::setTransport (MamaTransport* transport) { mamaTry (mamaSource_setTransport (mySource, transport->getCValue())); myTransport = transport; }
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; }
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; }