acl/lib_acl_cpp/samples/mime/mime_xxcode/main.cpp
2014-12-07 23:48:11 +08:00

63 lines
1.1 KiB
C++

#include "acl_cpp/mime/mime_xxcode.hpp"
#include <getopt.h>
#include <stdio.h>
static void encoding(const char* s)
{
acl::mime_xxcode coder(false, false);
acl::string out;
coder.encode_update(s, strlen(s), &out);
coder.encode_finish(&out);
printf(">>>%s\n", out.c_str());
}
static void decoding(const char* s)
{
acl::mime_xxcode coder(false, false);
acl::string out;
coder.decode_update(s, strlen(s), &out);
coder.decode_finish(&out);
printf(">>>%s\n", out.c_str());
}
static void usage(const char* procname)
{
printf("usage: %s -h[help] -e plain -d txt\n", procname);
}
int main(int argc, char* argv[])
{
int ch;
void (*action)(const char*) = NULL;
acl::string s;
while ((ch = getopt(argc, argv, "he:d:")) > 0)
{
switch (ch)
{
case 'h':
usage(argv[0]);
return (0);
case 'e':
action = encoding;
s = optarg;
break;
case 'd':
action = decoding;
s = optarg;
break;
default:
break;
}
}
if (action && !s.empty())
action(s);
else
usage(argv[0]);
return (0);
}