📄 reentrant.h
字号:
/*_############################################################################ _## _## reentrant.h _## _## SNMP++v3.2.21a _## ----------------------------------------------- _## Copyright (c) 2001-2006 Jochen Katz, Frank Fock _## _## This software is based on SNMP++2.6 from Hewlett Packard: _## _## Copyright (c) 1996 _## Hewlett-Packard Company _## _## ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS. _## Permission to use, copy, modify, distribute and/or sell this software _## and/or its documentation is hereby granted without fee. User agrees _## to display the above copyright notice and this license notice in all _## copies of the software and any documentation of the software. User _## agrees to assume all liability for the use of the software; _## Hewlett-Packard and Jochen Katz make no representations about the _## suitability of this software for any purpose. It is provided _## "AS-IS" without warranty of any kind, either express or implied. User _## hereby grants a royalty-free license to any and all derivatives based _## upon this software code base. _## _## Stuttgart, Germany, Tue Nov 21 22:12:16 CET 2006 _## _##########################################################################*/// $Id: reentrant.h,v 1.6 2005/09/19 19:59:36 fock Exp $#ifndef _reentrant_h_#define _reentrant_h_#include "snmp_pp/config_snmp_pp.h"#include "snmp_pp/smi.h"#ifdef _THREADS#ifdef WIN32#include <windows.h>#include <winsock.h>#include <process.h>#elif defined (CPU) && CPU == PPC603#include <semLib.h> #else#include <pthread.h>#endif#endif#ifdef SNMP_PP_NAMESPACEnamespace Snmp_pp {#endifclass DLLOPT SnmpSynchronized { public: SnmpSynchronized(); virtual ~SnmpSynchronized();#ifdef _THREADS#ifdef WIN32 CRITICAL_SECTION _mutex;#elif defined (CPU) && CPU == PPC603 SEM_ID _mutex;#else pthread_mutex_t _mutex;#endif#endif void lock(); void unlock();};class DLLOPT SnmpSynchronize { public: SnmpSynchronize(SnmpSynchronized& sync) : s(sync) { s.lock(); }; ~SnmpSynchronize() { s.unlock(); } protected: SnmpSynchronized& s;};#define REENTRANT(x) { SnmpSynchronize _synchronize(*this); x }#ifdef SNMP_PP_NAMESPACE}; // end of namespace Snmp_pp#endif #endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -