зеркало из https://github.com/mozilla/gecko-dev.git
57 строки
1.6 KiB
C++
57 строки
1.6 KiB
C++
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
|
*
|
|
* The contents of this file are subject to the Netscape Public License
|
|
* Version 1.0 (the "NPL"); you may not use this file except in
|
|
* compliance with the NPL. You may obtain a copy of the NPL at
|
|
* http://www.mozilla.org/NPL/
|
|
*
|
|
* Software distributed under the NPL is distributed on an "AS IS" basis,
|
|
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
|
|
* for the specific language governing rights and limitations under the
|
|
* NPL.
|
|
*
|
|
* The Initial Developer of this code under the NPL is Netscape
|
|
* Communications Corporation. Portions created by Netscape are
|
|
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
|
|
* Reserved.
|
|
*/
|
|
|
|
#ifndef __FESelect_H
|
|
#define __FESelect_H
|
|
|
|
// Different select types.
|
|
enum SelectType {
|
|
DNSSelect = 0,
|
|
SocketSelect,
|
|
ConnectSelect,
|
|
FileSelect,
|
|
NetlibSelect,
|
|
|
|
// Leave at the end, for array bound sizing.
|
|
MaxSelect
|
|
};
|
|
|
|
// Class to hold all select fds of the various types.
|
|
class CSelectTracker {
|
|
// The various select lists.
|
|
private:
|
|
CPtrList m_cplSelectLists[(SelectType)MaxSelect];
|
|
|
|
// Access to the above.
|
|
public:
|
|
void AddSelect(SelectType stType, PRFileDesc *fd);
|
|
void RemoveSelect(SelectType stType, PRFileDesc *fd);
|
|
|
|
// Informational.
|
|
public:
|
|
BOOL HasSelect(SelectType stType);
|
|
BOOL HasSelect(SelectType stType, PRFileDesc *fd);
|
|
int CountSelect(SelectType stType);
|
|
Bool PollNetlib(void);
|
|
};
|
|
|
|
// global var used in timer.cpp.
|
|
extern CSelectTracker selecttracker;
|
|
|
|
#endif // __FESelect_H
|