Files
interactive/rcts/rc_syncd/src/Running.h
T
2026-08-07 17:38:18 +09:00

94 lines
1.8 KiB
C++

/***************************************************************************
Running
-----------------------------------------
begin : 2011/11/01
copyright : (C) 2011 SolutionBox Inc.
author : Service 1 Team
email : svc1@solbox.com
version : 3.0.1
CopyRight(C) 2011 SolutionBox Inc. All Rights reserved.
Redistribution and use in source and binary forms, with or with out
modification, are not permitted in outside of SolutionBox Inc.
***************************************************************************/
#ifndef __RUNNING_H__
#define __RUNNING_H__
#include <sys/time.h>
#include <errno.h>
#include <iostream>
#include <sstream>
#include <vector>
#include <map>
#include <list>
#include <algorithm>
using namespace std;
class CScheduler;
class CRunning;
class CRunlist
{
public:
enum RUNLIST_FIND
{
START_TIME = 1,
EDN_TIME = 2
};
public:
static CRunlist* getInstance();
static void release();
static void init();
bool addlist(CRunning *run);
void remove(CRunning *run);
private:
CRunlist();
~CRunlist();
time_t findnewtime(int findtype, time_t find);
bool findnewtime(time_t s, time_t e, time_t &ns, time_t &ne);
private:
static CRunlist * m_inst;
list<CRunning*> m_list;
pthread_mutex_t m_findmutex;
};
class CRunning
{
public:
CRunning(CScheduler* scheduler, int task, time_t r);
~CRunning();
bool run(time_t s, time_t e);
time_t includestart(time_t s);
time_t includeend(time_t e);
void setstart(time_t t) { m_starttime = t; }
void setend(time_t t) { m_endtime = t; }
time_t getstart() { return m_starttime; }
time_t getend() { return m_endtime; }
private:
static void* runfn( void* pdata );
private:
time_t m_starttime;
time_t m_endtime;
time_t m_runed;
int m_taskindex;
CScheduler* m_scheduler;
};
#endif // __RUNNING_H__