1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- #include "TestPushServer.h"
- #include "TestPushServantImp.h"
- using namespace std;
- TestPushServer g_app;
- /////////////////////////////////////////////////////////////////
- static int parse(string &in, string &out)
- {
- if(in.length() < sizeof(unsigned int))
- {
- return TC_EpollServer::PACKET_LESS;
- }
- unsigned int iHeaderLen;
- memcpy(&iHeaderLen, in.c_str(), sizeof(unsigned int));
- iHeaderLen = ntohl(iHeaderLen);
- if(iHeaderLen < (unsigned int)(sizeof(unsigned int))|| iHeaderLen > 1000000)
- {
- return TC_EpollServer::PACKET_ERR;
- }
- if((unsigned int)in.length() < iHeaderLen)
- {
- return TC_EpollServer::PACKET_LESS;
- }
- out = in.substr(0, iHeaderLen);
- in = in.substr(iHeaderLen);
- return TC_EpollServer::PACKET_FULL;
- }
- void
- TestPushServer::initialize()
- {
- //initialize application here:
- //...
- addServant<TestPushServantImp>(ServerConfig::Application + "." + ServerConfig::ServerName + ".TestPushServantObj");
- addServantProtocol("Test.TestPushServer.TestPushServantObj", parse);
- pushThread.start();
- }
- /////////////////////////////////////////////////////////////////
- void
- TestPushServer::destroyApp()
- {
- //destroy application here:
- //...
- pushThread.terminate();
- pushThread.getThreadControl().join();
- }
- /////////////////////////////////////////////////////////////////
- int
- main(int argc, char* argv[])
- {
- try
- {
- g_app.main(argc, argv);
- g_app.waitForShutdown();
- }
- catch (std::exception& e)
- {
- cerr << "std::exception:" << e.what() << std::endl;
- }
- catch (...)
- {
- cerr << "unknown exception." << std::endl;
- }
- return -1;
- }
- /////////////////////////////////////////////////////////////////
|