pslampdev.cpp

来自「基于sipfoundy 公司开发的sipx协议API」· C++ 代码 · 共 110 行

CPP
110
字号
//// Copyright (C) 2004, 2005 Pingtel Corp.// //// $$//////////////////////////////////////////////////////////////////////////////// SYSTEM INCLUDES#include <assert.h>// APPLICATION INCLUDES#include "os/OsUtil.h"#include "ps/PsLampDev.h"#include "ps/PsLampTask.h"#ifdef _VXWORKS#include "ps/vxw/PsLampDevTcas.h"#elif defined(_WIN32)#include "ps/wnt/PsLampDevWnt.h"#elif defined(__pingtel_on_posix__)#include "ps/linux/PsLampDevLinux.h"#else#error Unsupported target platform.#endif// EXTERNAL FUNCTIONS// EXTERNAL VARIABLES// CONSTANTS// STATIC VARIABLE INITIALIZATIONSPsLampDev* PsLampDev::spInstance = 0;OsBSem     PsLampDev::sLock(OsBSem::Q_PRIORITY, OsBSem::FULL);/* //////////////////////////// PUBLIC //////////////////////////////////// *//* ============================ CREATORS ================================== */// Return a pointer to the lamp device, creating it if necessary.PsLampDev* PsLampDev::getLampDev(PsLampTask* pLampTask){   // If the object already exists, then just return it   if (spInstance != NULL)      return spInstance;   // If the object does not yet exist, then acquire the lock to ensure that   // only one instance of the object is created   sLock.acquire();   if (spInstance == NULL)   {      switch (OsUtil::getPlatformType())      {#ifdef _VXWORKS      case OsUtil::PLATFORM_TCAS1:             // fall through      case OsUtil::PLATFORM_TCAS2:      case OsUtil::PLATFORM_TCAS3:      case OsUtil::PLATFORM_TCAS4:      case OsUtil::PLATFORM_TCAS5:      case OsUtil::PLATFORM_TCAS6:      case OsUtil::PLATFORM_TCAS7:         spInstance = new PsLampDevTcas(pLampTask);         break;#elif defined(_WIN32)      case OsUtil::PLATFORM_WIN32:         spInstance = new PsLampDevWnt(pLampTask);         break;#elif defined(__pingtel_on_posix__)      case OsUtil::PLATFORM_LINUX:      case OsUtil::PLATFORM_SOLARIS:         spInstance = new PsLampDevLinux(pLampTask);         break;#else#error Unsupported target platform.#endif      default:         assert(FALSE);      }   }   sLock.release();   return spInstance;}// DestructorPsLampDev::~PsLampDev(){   spInstance = NULL;   mpLampTask = NULL;}/* ============================ MANIPULATORS ============================== *//* ============================ ACCESSORS ================================= *//* ============================ INQUIRY =================================== *//* //////////////////////////// PROTECTED ///////////////////////////////// */// Default constructor (called only indirectly via getLampDev())PsLampDev::PsLampDev(PsLampTask* pLampTask){   assert(pLampTask != NULL);   mpLampTask = pLampTask;}/* //////////////////////////// PRIVATE /////////////////////////////////// *//* ============================ FUNCTIONS ================================= */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?