JNIEXPORT void JNICALL Java_com_luxoft_ivilink_sdk_CWrapper_initSSM
(JNIEnv * env, jobject, jobject launcher, jboolean isAuthOn)
{
    gWatchdogThread.start();
    env->GetJavaVM(&jm);
    gLauncher = env->NewGlobalRef(launcher);
    jclass launcherCls = env->GetObjectClass(gLauncher);
    gLaunchMethod = env->GetMethodID(launcherCls, "answerRequest", "(I)V");
    iviLink::Android::setup(jm, gLauncher, gLaunchMethod);
    CSystemStateMachine* ssm = new CSystemStateMachine();
    ssm->init((bool)isAuthOn);
}
Beispiel #2
0
int main(int argc, char* argv[])
{
   setpgid(0,0);

   Logger logger = Logger::getInstance(LOG4CPLUS_TEXT("systemController.main"));

   PropertyConfigurator::doConfigure(LOG4CPLUS_TEXT("log4cplus.properties"));

   WatchdogThread watchdogThread(SYSTEM_CONTROLLER);
   watchdogThread.start();

   setupReset(argv[0]);

   int next_option;
   bool authOn = true;

   const char* const short_options = "hrsn";
   const struct option long_options[] = {
         { "help",     0, NULL, 'h' },
         { "reset",    0, NULL, 'r' },
         { "stop",     0, NULL, 's' },
         { "noauth",   0, NULL, 'n' },
         { NULL,       0, NULL, 0   }
   };

   do
   {
      next_option = getopt_long(argc, argv, short_options,
                                long_options, NULL);

      switch(next_option)
      {

      case 'h':
         help(argv[0]);
         break;
      case 'r':
         LOG4CPLUS_INFO(logger, "Resetting, stopping existing daemon");
         hardReset(false);
         break;
      case 's':
         LOG4CPLUS_INFO(logger, "Stopping existing daemons");
         return hardStop(false);
      case 'n':
         authOn = false;
		 LOG4CPLUS_INFO(logger, "SplashScreen started");
         CComponentLauncher::getInstance()->launchSplashScreen();
         break;
      case '?':
         LOG4CPLUS_WARN(logger, "Wrong input");
         return 0;
      case -1:
         if ( argc == 1 )
         {
            if (getQuantityOfRunningIVILink() == 1)
            {
               CComponentLauncher::getInstance()->launchSplashScreen();
               LOG4CPLUS_INFO(logger, "SplashScreen started");
            }
            else
            {
               LOG4CPLUS_INFO(logger, "Resetting, stopping existing daemon");
               hardReset(false);
            }
         }               
         break;
      }
   }
   while (next_option != -1);

   LOG4CPLUS_INFO(logger, "SystemController started...");

   CSystemStateMachine* ssm = new CSystemStateMachine();

   ssm->init(authOn);

   while(true)
   {
      sleep(100);
   }

   return 0;
}
int main(int argc, char* argv[])
{
   Logger logger = Logger::getInstance(LOG4CPLUS_TEXT("systemController.main"));

   PropertyConfigurator::doConfigure(LOG4CPLUS_TEXT("log4cplus.properties"));

   setupReset(argv[0]);

   int next_option;
   bool authOn = true;

   const char* const short_options = "hrsn";
   const struct option long_options[] = {
         { "help",     0, NULL, 'h' },
         { "reset",    0, NULL, 'r' },
         { "stop",     0, NULL, 's' },
         { "noauth",   0, NULL, 'n' },
         { NULL,       0, NULL, 0   }
   };

   do
   {
      next_option = getopt_long(argc, argv, short_options,
                                long_options, NULL);

      switch(next_option)
      {

      case 'h':
         help(argv[0]);
         break;
      case 'r':
         LOG4CPLUS_INFO(logger, "Resetting, stopping existing daemon");
         hardReset(false);
         break;
      case 's':
         LOG4CPLUS_INFO(logger, "Stopping existing daemons");
         return hardStop(false);
      case 'n':
         authOn = false;
         break;
      case '?':
         LOG4CPLUS_WARN(logger, "Wrong input");
         return 0;
      case -1:
         break;
      }
   }
   while (next_option != -1);

   LOG4CPLUS_INFO(logger, "SystemController started...");

   CSystemStateMachine* ssm = new CSystemStateMachine();

   ssm->init(authOn);

   while(true)
   {
      sleep(100);
   }

   return 0;
}