当前位置: 首页>>代码示例>>C++>>正文


C++ Queue::Queue_INIT方法代码示例

本文整理汇总了C++中Queue::Queue_INIT方法的典型用法代码示例。如果您正苦于以下问题:C++ Queue::Queue_INIT方法的具体用法?C++ Queue::Queue_INIT怎么用?C++ Queue::Queue_INIT使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Queue的用法示例。


在下文中一共展示了Queue::Queue_INIT方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: main

int main(int argc,char *argv[])
{
    srand(time(NULL));
    signal(SIGTERM,SIGTERMHandler);

	GLOBAL_PROCESS_IDS *GPI = (GLOBAL_PROCESS_IDS*)
								GetSHM(sizeof(GLOBAL_PROCESS_IDS),GLOBAL_MEM);

    //Put values in global shared memory for other process to see
    GPI->CarUnload = getpid();
    
    Queue *Q = (Queue *) GetSHM(SHMSIZE,TOURISTS_Q);
    
    int size = GPI->CarCapacity*sizeof(TouristInfo);
    Queue *CarTable = (Queue *) GetSHM(size+sizeof(Queue),CAR_TABLE);

    Queue *TouristStatus = (Queue *) GetSHM(SHMSIZE,TOURISTS_STAT);
    TouristStatus->Queue_INIT(SHMSIZE-sizeof(Queue),TOURISTS_STAT);

    SignalHandler::WaitForSignal(SIGCONT);
    
    while(flag)
    {            
        CarTable->Lock();
        cout<<"Locked";
        while(CarTable->Size() > 0)
        {
            sleep(1);
            int elem = CarTable->Pop(true);
            kill(elem,SIGCONT);
            cout<<RED<<"\nRemoving User:"<<elem<<DEFAULT<<flush;
            
            //if(false)
            if( R(100) < GPI->Probabilty)
            {
                Q->Push(elem);
                kill(elem,SIGCONT);
                cout<<GREEN<<"\nInserting User:"<<elem<<" back to Queue."<<DEFAULT<<flush;
            }
            else kill(elem,SIGTERM);
            TouristStatus->Push(elem);    
        }    
        
        CarTable->Unlock();
        
        //sleep(2);//simulate working....
        GPI->CarMode = CARMODES::READY;
        cout<<GREEN<<"\nCarMode READY\n"<<DEFAULT<<flush;
        SignalHandler::WaitForSignal(SIGCONT);
    }
    cout<<RED<<endl<<argv[0]<<" Exiting..\n"<<DEFAULT<<flush;
    
    //shmdt(Q);
	//shmdt(GPI);
    //shmdt(CarTable);
    //shmdt(TouristStatus);
    
    return 0;
}
开发者ID:montyc008,项目名称:LabAssignments,代码行数:59,代码来源:CarUnload.cpp


注:本文中的Queue::Queue_INIT方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。