#include <cmlogBrowser.h> static void qcallback (int status, void* arg, cmlogPacket* data) { cdevData* res = 0; int severity; char text[1024]; char host[80]; if (data) { cmlogMsg** msgs = data->messages (); for (int i = 0; i < data->numberOfData (); i++) { cmlog_cdevMessage& idata = (*msgs[i]); res = idata.getData (); if (res) { res->get ("host", host, sizeof (host)); res->get ("severity", &severity); res->get ("text", text, sizeof (text)); printf ("From Host %s with Severity %d: %s\n", host, severity, text); } } for (i = 0; i < data->numberOfData (); i++) delete msgs[i]; delete []msgs; } } char *selection = ``facility == 'EPICS' && severity == 10''; main (int argc, char **argv) { cmlogBrowser browser; char command[1024]; char attr[80]; int status; if (browser.connect () == CMLOG_SUCCESS) { printf ("Connect to the cmlogServer\n"); printf ("Enter cmlog test command\n"); scanf ("%s", command); if (strcasecmp (command, "query") == 0) { printf ("Enter start and end time in double value\n"); double start, end; scanf ("%lf %lf", &start, &end); cdevData data; data.insert ("start", start); data.insert ("end", end); data.insert (``queryMsg'', selection); status = browser.queryCallback (command, data, qcallback, 0); browser.pend (); } } }
The following is a sample Makefile for above C++ code (browserTest.cc) on a Unix machine (let us assume this machine is a Solaris)
CXX = CC CXXFLAGS = -I$(CMLOG)/include -D_CMLOG_BUILD_CLIENT OBJS = browserTest.o LIBS = -L$(CMLOG)/lib/solaris -lcmlogb -lsocket -lnsl all: browserTest borwserTest: $(OBJS) rm -f $@ $(CXX) -o $@ $(LIBS) .cc.o: rm -f $@ $(CXX) $(CXXFLAGS) -c $< -o $@ clean: rm -f *.o browserTest core *~