本文整理汇总了C++中Worker::add方法的典型用法代码示例。如果您正苦于以下问题:C++ Worker::add方法的具体用法?C++ Worker::add怎么用?C++ Worker::add使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Worker
的用法示例。
在下文中一共展示了Worker::add方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: printf
static void
http_callback(evhttp_request *req,const char *uri,const char *path,Worker& worker) {
bool do_shutdown = false;
printf("Got uri='%s', path='%s', thread # %d\n",
uri,path,worker.get_threadx());
if ( !strcmp(path,"/cpuinfo") ) {
worker.add("<html>\r\n<head>\r\n<title>cpuinfo</title></head>\r\n");
worker.add("<body><pre>\r\n");
FILE *f = fopen("/proc/cpuinfo","r");
if ( f ) {
char inbuf[1024];
while ( fgets(inbuf,sizeof inbuf,f) != nullptr ) {
char *cp = strrchr(inbuf,'\n');
if ( cp != 0 && size_t(cp - inbuf) < sizeof inbuf - 3 )
strcpy(cp,"\r\n");
worker.add(inbuf,strlen(inbuf));
}
fclose(f);
}
worker.add("</pre></body>\r\n");
} else if ( !strcmp(path,"/gpio") ) {
worker.add("<html>\r\n<head>\r\n<title>cpuinfo</title></head>\r\n");
worker.add("<body><table>\r\n");
worker.add("<tr><td>GPIO</td><td>ALTFUN</td><td>LEV</td>"
"<td>SLEW</td><td>HYST</td><td>DRIVE</td>"
"<td>DESCRIPTION</td></tr>\r\n");
if ( gpio.get_error() != 0 ) {
worker.add_printf("%s: obtaining gpio info\r\n",
strerror(gpio.get_error()));
} else {
for (int gpno=0; gpno < 32; ++gpno ) {
GPIO::IO io;
bool slew_rate_limited, hysteresis;
int drive, mA;
gpio.alt_function(gpno,io);
gpio.get_drive_strength(
gpno,
slew_rate_limited,
hysteresis,
drive);
mA = 2 + drive * 2;
worker.add_printf(
"<tr>"
"<td>%2d</td>"
"<td>%s</td>"
"<td>%d</td>"
"<td>%c</td>"
"<td>%c</td>"
"<td>%2d mA</td>"
"<td>%s</td></tr>\r\n",
gpno,
GPIO::alt_name(io),
gpio.read(gpno),
slew_rate_limited ? 'Y' : 'N',
hysteresis ? 'Y' : 'N',
mA,
GPIO::gpio_alt_func(gpno,io));
}
worker.add("</table></body>\r\n");
}
} else if ( !strcmp(path,"/shutdown") ) {
do_shutdown = true;
worker.add_printf(
"<html>\n <head>\n"
" <title>%s</title>\n"
" <base href='.../%s'>\n"
" </head>\n"
" <body>\n"
" <h1>%s : thread %d, shutting down</h1>\n"
" <ul>\n",
path,
path,
path,
worker.get_threadx());
} else {
// This holds the content we're sending.
worker.add_printf(
"<html><head><title>%s</title></head>\r\n"
"<body><h1>Response</h1>\r\n"
"<ul><li>Path: %s</li>"
"<li>URI: %s</li>"
"<li>Thread: %d</li>"
"</ul></body>\r\n",
path, // title
path, // Path
uri, // URI
worker.get_threadx()); // Thread
evhttp_add_header(req->output_headers,"Connection","Close");
}
worker.send_reply(200,"OK");
//.........这里部分代码省略.........