mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-08-13 01:26:58 +00:00
add js to tree
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3693 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
1
libs/js/nsprpub/lib/prstreams/.cvsignore
Normal file
1
libs/js/nsprpub/lib/prstreams/.cvsignore
Normal file
@@ -0,0 +1 @@
|
||||
Makefile
|
7
libs/js/nsprpub/lib/prstreams/CVS/Entries
Normal file
7
libs/js/nsprpub/lib/prstreams/CVS/Entries
Normal file
@@ -0,0 +1,7 @@
|
||||
/.cvsignore/1.2/Sat May 12 06:36:32 2001//
|
||||
/Makefile.in/1.21/Wed Jun 1 14:28:27 2005//
|
||||
/plvrsion.c/3.10/Sun Apr 25 15:00:45 2004//
|
||||
/prstrms.cpp/3.10/Sun Apr 25 15:00:45 2004//
|
||||
/prstrms.h/3.6/Sun Apr 25 15:00:45 2004//
|
||||
/prstrms.rc/3.6/Sun Apr 25 15:00:45 2004//
|
||||
D
|
1
libs/js/nsprpub/lib/prstreams/CVS/Entries.Log
Normal file
1
libs/js/nsprpub/lib/prstreams/CVS/Entries.Log
Normal file
@@ -0,0 +1 @@
|
||||
A D/tests////
|
1
libs/js/nsprpub/lib/prstreams/CVS/Repository
Normal file
1
libs/js/nsprpub/lib/prstreams/CVS/Repository
Normal file
@@ -0,0 +1 @@
|
||||
mozilla/nsprpub/lib/prstreams
|
1
libs/js/nsprpub/lib/prstreams/CVS/Root
Normal file
1
libs/js/nsprpub/lib/prstreams/CVS/Root
Normal file
@@ -0,0 +1 @@
|
||||
:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
|
207
libs/js/nsprpub/lib/prstreams/Makefile.in
Normal file
207
libs/js/nsprpub/lib/prstreams/Makefile.in
Normal file
@@ -0,0 +1,207 @@
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is the Netscape Portable Runtime (NSPR).
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998-2000
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#! gmake
|
||||
|
||||
MOD_DEPTH = ../..
|
||||
topsrcdir = @top_srcdir@
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
||||
include $(MOD_DEPTH)/config/autoconf.mk
|
||||
|
||||
include $(topsrcdir)/config/config.mk
|
||||
|
||||
# Disable optimization of the nspr on SunOS4.1.3
|
||||
ifeq ($(OS_ARCH),SunOS)
|
||||
ifeq ($(OS_RELEASE),4.1.3_U1)
|
||||
OPTIMIZER =
|
||||
else
|
||||
# The C++ compiler in Workshop 5.0 uses standard
|
||||
# iostreams as default. -library=iostream will
|
||||
# allow Workshop 5.0 to work with classic iostreams.
|
||||
ifndef NS_USE_GCC
|
||||
CCC_VERSION := $(shell $(CCC) -V 2>&1)
|
||||
ifneq (,$(findstring 5.0,$(CCC_VERSION)))
|
||||
CCC_ONLY_FLAGS += -library=iostream
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(OS_ARCH), IRIX)
|
||||
ifneq ($(OS_RELEASE),5.3)
|
||||
CCC_ONLY_FLAGS += -exceptions
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(OS_ARCH), BeOS)
|
||||
CFLAGS += -frtti -fexceptions
|
||||
endif
|
||||
|
||||
INCLUDES = -I$(dist_includedir)
|
||||
|
||||
HEADERS = $(wildcard $(srcdir)/*.h)
|
||||
|
||||
CSRCS = \
|
||||
plvrsion.c \
|
||||
$(NULL)
|
||||
|
||||
CXXSRCS = \
|
||||
prstrms.cpp \
|
||||
$(NULL)
|
||||
|
||||
OBJS = $(addprefix $(OBJDIR)/,$(CSRCS:.c=.$(OBJ_SUFFIX)) $(CXXSRCS:.cpp=.$(OBJ_SUFFIX)))
|
||||
|
||||
ifeq ($(OS_ARCH), WINNT)
|
||||
DLLBASE=-BASE:0x30000000
|
||||
RES=$(OBJDIR)/prstrms.res
|
||||
RESNAME=prstrms.rc
|
||||
OS_LIBS = user32.lib
|
||||
else
|
||||
ifeq ($(OS_ARCH),OS2)
|
||||
ifneq ($(MOZ_OS2_TOOLS),VACPP)
|
||||
OS_LIBS = -lstdcpp
|
||||
endif
|
||||
else
|
||||
ifeq ($(OS_ARCH), AIX)
|
||||
ifeq ($(OS_RELEASE), 4.1)
|
||||
ifeq ($(CLASSIC_NSPR),1)
|
||||
OS_LIBS += -lC -lc
|
||||
else
|
||||
OS_LIBS += -lC_r -lc_r
|
||||
endif
|
||||
else
|
||||
# makeC++SharedLib(_r) is in either /usr/lpp/xlC/bin
|
||||
# or /usr/ibmcxx/bin.
|
||||
ifeq ($(CLASSIC_NSPR),1)
|
||||
MKSHLIB = makeC++SharedLib -p 0
|
||||
else
|
||||
MKSHLIB = makeC++SharedLib_r -p 0
|
||||
endif
|
||||
OS_LIBS += -ldl
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(OS_ARCH),BeOS)
|
||||
OS_LIBS = -lstdc++.r4
|
||||
endif
|
||||
|
||||
ifeq ($(OS_ARCH), UNIXWARE)
|
||||
OS_LIBS += -lC
|
||||
endif
|
||||
|
||||
EXTRA_LIBS = $(LIBNSPR)
|
||||
|
||||
# On NCR and SCOOS, we can't link with extra libraries when
|
||||
# we build a shared library. If we do so, the linker doesn't
|
||||
# complain, but we would run into weird problems at run-time.
|
||||
# Therefore on these platforms, we link just the object files.
|
||||
ifeq ($(OS_ARCH),NCR)
|
||||
EXTRA_LIBS =
|
||||
endif
|
||||
ifeq ($(OS_ARCH),SCOOS)
|
||||
EXTRA_LIBS =
|
||||
endif
|
||||
|
||||
ifdef RESOLVE_LINK_SYMBOLS
|
||||
EXTRA_LIBS += $(OS_LIBS)
|
||||
endif
|
||||
|
||||
LIBRARY_NAME = prstrms
|
||||
LIBRARY_VERSION = $(MOD_MAJOR_VERSION)
|
||||
|
||||
RELEASE_HEADERS = $(HEADERS)
|
||||
RELEASE_HEADERS_DEST = $(RELEASE_INCLUDE_DIR)
|
||||
RELEASE_LIBS = $(TARGETS)
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
||||
#
|
||||
# Version information generation (begin)
|
||||
#
|
||||
ECHO = echo
|
||||
TINC = $(OBJDIR)/_pl_bld.h
|
||||
PROD = $(notdir $(SHARED_LIBRARY))
|
||||
NOW = $(MOD_DEPTH)/config/$(OBJDIR)/now
|
||||
SH_DATE = $(shell date "+%Y-%m-%d %T")
|
||||
SH_NOW = $(shell $(NOW))
|
||||
|
||||
ifeq ($(OS_ARCH), WINNT)
|
||||
SUF = i64
|
||||
else
|
||||
SUF = LL
|
||||
endif
|
||||
|
||||
$(TINC):
|
||||
@$(MAKE_OBJDIR)
|
||||
@$(ECHO) '#define _BUILD_STRING "$(SH_DATE)"' > $(TINC)
|
||||
@if test ! -z "$(SH_NOW)"; then \
|
||||
$(ECHO) '#define _BUILD_TIME $(SH_NOW)$(SUF)' >> $(TINC); \
|
||||
else \
|
||||
true; \
|
||||
fi
|
||||
@$(ECHO) '#define _PRODUCTION "$(PROD)"' >> $(TINC)
|
||||
|
||||
|
||||
$(OBJDIR)/plvrsion.$(OBJ_SUFFIX): plvrsion.c $(TINC)
|
||||
ifeq ($(OS_ARCH), WINNT)
|
||||
$(CC) -o $@ -c $(CFLAGS) -I$(OBJDIR) $<
|
||||
else
|
||||
ifeq ($(MOZ_OS2_TOOLS), VACPP)
|
||||
$(CC) -Fo$@ -c $(CFLAGS) -I$(OBJDIR) $<
|
||||
else
|
||||
$(CC) -o $@ -c $(CFLAGS) -I$(OBJDIR) $<
|
||||
endif
|
||||
endif
|
||||
#
|
||||
# Version information generation (end)
|
||||
#
|
||||
|
||||
export:: $(TARGETS) $(HEADERS)
|
||||
$(INSTALL) -m 444 $(HEADERS) $(dist_includedir)
|
||||
$(INSTALL) -m 444 $(TARGETS) $(dist_libdir)
|
||||
ifeq ($(OS_ARCH),OS2)
|
||||
$(INSTALL) -m 444 $(TARGETS) $(dist_bindir)
|
||||
endif
|
||||
ifeq ($(OS_ARCH),HP-UX)
|
||||
ifdef SHARED_LIBRARY
|
||||
$(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_libdir)
|
||||
endif
|
||||
endif
|
125
libs/js/nsprpub/lib/prstreams/plvrsion.c
Normal file
125
libs/js/nsprpub/lib/prstreams/plvrsion.c
Normal file
@@ -0,0 +1,125 @@
|
||||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is the Netscape Portable Runtime (NSPR).
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1998-2000
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#include "prinit.h"
|
||||
#include "prvrsion.h"
|
||||
|
||||
/************************************************************************/
|
||||
/**************************IDENTITY AND VERSIONING***********************/
|
||||
/************************************************************************/
|
||||
#include "_pl_bld.h"
|
||||
#if !defined(_BUILD_TIME)
|
||||
#ifdef HAVE_LONG_LONG
|
||||
#define _BUILD_TIME 0
|
||||
#else
|
||||
#define _BUILD_TIME {0, 0}
|
||||
#endif
|
||||
#endif
|
||||
#if !defined(_BUILD_STRING)
|
||||
#define _BUILD_STRING ""
|
||||
#endif
|
||||
#if !defined(_PRODUCTION)
|
||||
#define _PRODUCTION ""
|
||||
#endif
|
||||
#if defined(DEBUG)
|
||||
#define _DEBUG_STRING " (debug)"
|
||||
#else
|
||||
#define _DEBUG_STRING ""
|
||||
#endif
|
||||
|
||||
/*
|
||||
* A trick to expand the PR_VMAJOR macro before concatenation.
|
||||
*/
|
||||
#define CONCAT(x, y) x ## y
|
||||
#define CONCAT2(x, y) CONCAT(x, y)
|
||||
#define VERSION_DESC_NAME CONCAT2(prVersionDescription_libprstrms, PR_VMAJOR)
|
||||
|
||||
PRVersionDescription VERSION_DESC_NAME =
|
||||
{
|
||||
/* version */ 2, /* this is the only one supported */
|
||||
/* buildTime */ _BUILD_TIME, /* usecs since midnight 1/1/1970 GMT */
|
||||
/* buildTimeString */ _BUILD_STRING, /* ditto, but human readable */
|
||||
/* vMajor */ PR_VMAJOR, /* NSPR's version number */
|
||||
/* vMinor */ PR_VMINOR, /* and minor version */
|
||||
/* vPatch */ PR_VPATCH, /* and patch */
|
||||
/* beta */ PR_BETA, /* beta build boolean */
|
||||
#if defined(DEBUG)
|
||||
/* debug */ PR_TRUE, /* a debug build */
|
||||
#else
|
||||
/* debug */ PR_FALSE, /* an optomized build */
|
||||
#endif
|
||||
/* special */ PR_FALSE, /* they're all special, but ... */
|
||||
/* filename */ _PRODUCTION, /* the produced library name */
|
||||
/* description */ "Portable runtime", /* what we are */
|
||||
/* security */ "N/A", /* not applicable here */
|
||||
/* copywrite */ "Copyright (c) 1998 Netscape Communications Corporation. All Rights Reserved",
|
||||
/* comment */ "http://www.mozilla.org/MPL/",
|
||||
/* specialString */ ""
|
||||
};
|
||||
|
||||
#ifdef XP_UNIX
|
||||
|
||||
/*
|
||||
* Version information for the 'ident' and 'what commands
|
||||
*
|
||||
* NOTE: the first component of the concatenated rcsid string
|
||||
* must not end in a '$' to prevent rcs keyword substitution.
|
||||
*/
|
||||
static char rcsid[] = "$Header: NSPR " PR_VERSION _DEBUG_STRING
|
||||
" " _BUILD_STRING " $";
|
||||
static char sccsid[] = "@(#)NSPR " PR_VERSION _DEBUG_STRING
|
||||
" " _BUILD_STRING;
|
||||
|
||||
#endif /* XP_UNIX */
|
||||
|
||||
PR_IMPLEMENT(const PRVersionDescription*) libVersionPoint()
|
||||
{
|
||||
#ifdef XP_UNIX
|
||||
/*
|
||||
* Add dummy references to rcsid and sccsid to prevent them
|
||||
* from being optimized away as unused variables.
|
||||
*/
|
||||
const char *dummy;
|
||||
|
||||
dummy = rcsid;
|
||||
dummy = sccsid;
|
||||
#endif
|
||||
return &VERSION_DESC_NAME;
|
||||
} /* versionEntryPointType */
|
||||
|
||||
/* plvrsion.c */
|
||||
|
550
libs/js/nsprpub/lib/prstreams/prstrms.cpp
Normal file
550
libs/js/nsprpub/lib/prstreams/prstrms.cpp
Normal file
@@ -0,0 +1,550 @@
|
||||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is the Netscape Portable Runtime (NSPR).
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1998-2000
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
/*
|
||||
* Robin J. Maxwell 11-22-96
|
||||
*/
|
||||
|
||||
#include "prstrms.h"
|
||||
#include <string.h> // memmove
|
||||
|
||||
//
|
||||
// Definition of macros _PRSTR_BP, _PRSTR_DELBUF, and _PRSTR_DELBUF_C.
|
||||
//
|
||||
// _PRSTR_BP is the protected member of class ios that is returned
|
||||
// by the public method rdbuf().
|
||||
//
|
||||
// _PRSTR_DELBUF is the method or data member of class ios, if available,
|
||||
// with which we can ensure that the ios destructor does not delete
|
||||
// the associated streambuf. If such a method or data member does not
|
||||
// exist, define _PRSTR_DELBUF to be empty.
|
||||
//
|
||||
// _PRSTR_DELBUF_C is just _PRSTR_DELBUF qualified by a base class.
|
||||
//
|
||||
|
||||
#if defined(__GNUC__)
|
||||
#define _PRSTR_BP _strbuf
|
||||
#define _PRSTR_DELBUF(x) /* as nothing */
|
||||
#define _PRSTR_DELBUF_C(c, x) /* as nothing */
|
||||
#elif defined(WIN32)
|
||||
#define _PRSTR_BP bp
|
||||
#define _PRSTR_DELBUF(x) delbuf(x)
|
||||
#define _PRSTR_DELBUF_C(c, x) c::_PRSTR_DELBUF(x)
|
||||
#elif defined(VMS)
|
||||
#undef _PRSTR_BP
|
||||
#define _PRSTR_DELBUF(x) /* as nothing */
|
||||
#define _PRSTR_DELBUF_C(c, x) /* as nothing */
|
||||
#elif defined(OSF1)
|
||||
#define _PRSTR_BP m_psb
|
||||
#define _PRSTR_DELBUF(x) /* as nothing */
|
||||
#define _PRSTR_DELBUF_C(c, x) /* as nothing */
|
||||
#elif defined(QNX)
|
||||
#define PRFSTREAMS_BROKEN
|
||||
#else
|
||||
#define _PRSTR_BP bp
|
||||
// Unix compilers don't believe in encapsulation
|
||||
// At least on Solaris this is also ignored
|
||||
#define _PRSTR_DELBUF(x) delbuf = x
|
||||
#define _PRSTR_DELBUF_C(c, x) c::_PRSTR_DELBUF(x)
|
||||
#endif
|
||||
|
||||
const PRIntn STRM_BUFSIZ = 8192;
|
||||
|
||||
#if !defined (PRFSTREAMS_BROKEN)
|
||||
|
||||
PRfilebuf::PRfilebuf():
|
||||
_fd(0),
|
||||
_opened(PR_FALSE),
|
||||
_allocated(PR_FALSE)
|
||||
{
|
||||
}
|
||||
|
||||
PRfilebuf::PRfilebuf(PRFileDesc *fd):
|
||||
streambuf(),
|
||||
_fd(fd),
|
||||
_opened(PR_FALSE),
|
||||
_allocated(PR_FALSE)
|
||||
{
|
||||
}
|
||||
|
||||
PRfilebuf::PRfilebuf(PRFileDesc *fd, char * buffptr, int bufflen):
|
||||
_fd(fd),
|
||||
_opened(PR_FALSE),
|
||||
_allocated(PR_FALSE)
|
||||
{
|
||||
PRfilebuf::setbuf(buffptr, bufflen);
|
||||
}
|
||||
|
||||
PRfilebuf::~PRfilebuf()
|
||||
{
|
||||
if (_opened){
|
||||
close();
|
||||
}else
|
||||
sync();
|
||||
if (_allocated)
|
||||
delete base();
|
||||
}
|
||||
|
||||
PRfilebuf*
|
||||
PRfilebuf::open(const char *name, int mode, int flags)
|
||||
{
|
||||
if (_fd != 0)
|
||||
return 0; // error if already open
|
||||
PRIntn PRmode = 0;
|
||||
// translate mode argument
|
||||
if (!(mode & ios::nocreate))
|
||||
PRmode |= PR_CREATE_FILE;
|
||||
//if (mode & ios::noreplace)
|
||||
// PRmode |= O_EXCL;
|
||||
if (mode & ios::app){
|
||||
mode |= ios::out;
|
||||
PRmode |= PR_APPEND;
|
||||
}
|
||||
if (mode & ios::trunc){
|
||||
mode |= ios::out; // IMPLIED
|
||||
PRmode |= PR_TRUNCATE;
|
||||
}
|
||||
if (mode & ios::out){
|
||||
if (mode & ios::in)
|
||||
PRmode |= PR_RDWR;
|
||||
else
|
||||
PRmode |= PR_WRONLY;
|
||||
if (!(mode & (ios::in|ios::app|ios::ate|ios::noreplace))){
|
||||
mode |= ios::trunc; // IMPLIED
|
||||
PRmode |= PR_TRUNCATE;
|
||||
}
|
||||
}else if (mode & ios::in)
|
||||
PRmode |= PR_RDONLY;
|
||||
else
|
||||
return 0; // error if not ios:in or ios::out
|
||||
|
||||
|
||||
//
|
||||
// The usual portable across unix crap...
|
||||
// NT gets a hokey piece of junk layer that prevents
|
||||
// access to the API.
|
||||
#ifdef WIN32
|
||||
_fd = PR_Open(name, PRmode, PRmode);
|
||||
#else
|
||||
_fd = PR_Open(name, PRmode, flags);
|
||||
#endif
|
||||
if (_fd == 0)
|
||||
return 0;
|
||||
_opened = PR_TRUE;
|
||||
if ((!unbuffered()) && (!ebuf())){
|
||||
char * sbuf = new char[STRM_BUFSIZ];
|
||||
if (!sbuf)
|
||||
unbuffered(1);
|
||||
else{
|
||||
_allocated = PR_TRUE;
|
||||
streambuf::setb(sbuf,sbuf+STRM_BUFSIZ,0);
|
||||
}
|
||||
}
|
||||
if (mode & ios::ate){
|
||||
if (seekoff(0,ios::end,mode)==EOF){
|
||||
close();
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
PRfilebuf*
|
||||
PRfilebuf::attach(PRFileDesc *fd)
|
||||
{
|
||||
_opened = PR_FALSE;
|
||||
_fd = fd;
|
||||
return this;
|
||||
}
|
||||
|
||||
int
|
||||
PRfilebuf::overflow(int c)
|
||||
{
|
||||
if (allocate()==EOF) // make sure there is a reserve area
|
||||
return EOF;
|
||||
if (PRfilebuf::sync()==EOF) // sync before new buffer created below
|
||||
return EOF;
|
||||
|
||||
if (!unbuffered())
|
||||
setp(base(),ebuf());
|
||||
|
||||
if (c!=EOF){
|
||||
if ((!unbuffered()) && (pptr() < epptr())) // guard against recursion
|
||||
sputc(c);
|
||||
else{
|
||||
if (PR_Write(_fd, &c, 1)!=1)
|
||||
return(EOF);
|
||||
}
|
||||
}
|
||||
return(1); // return something other than EOF if successful
|
||||
}
|
||||
|
||||
int
|
||||
PRfilebuf::underflow()
|
||||
{
|
||||
int count;
|
||||
unsigned char tbuf;
|
||||
|
||||
if (in_avail())
|
||||
return (int)(unsigned char) *gptr();
|
||||
|
||||
if (allocate()==EOF) // make sure there is a reserve area
|
||||
return EOF;
|
||||
if (PRfilebuf::sync()==EOF)
|
||||
return EOF;
|
||||
|
||||
if (unbuffered())
|
||||
{
|
||||
if (PR_Read(_fd,(void *)&tbuf,1)<=0)
|
||||
return EOF;
|
||||
return (int)tbuf;
|
||||
}
|
||||
|
||||
if ((count=PR_Read(_fd,(void *)base(),blen())) <= 0)
|
||||
return EOF; // reached EOF
|
||||
setg(base(),base(),base()+count);
|
||||
return (int)(unsigned char) *gptr();
|
||||
}
|
||||
|
||||
streambuf*
|
||||
PRfilebuf::setbuf(char *buffptr, PRstreambuflen bufflen)
|
||||
{
|
||||
if (is_open() && (ebuf()))
|
||||
return 0;
|
||||
if ((!buffptr) || (bufflen <= 0))
|
||||
unbuffered(1);
|
||||
else
|
||||
setb(buffptr, buffptr+bufflen, 0);
|
||||
return this;
|
||||
}
|
||||
|
||||
streampos
|
||||
PRfilebuf::seekoff(streamoff offset, ios::seek_dir dir, int /* mode */)
|
||||
{
|
||||
if (PR_GetDescType(_fd) == PR_DESC_FILE){
|
||||
PRSeekWhence fdir;
|
||||
PRInt32 retpos;
|
||||
switch (dir) {
|
||||
case ios::beg :
|
||||
fdir = PR_SEEK_SET;
|
||||
break;
|
||||
case ios::cur :
|
||||
fdir = PR_SEEK_CUR;
|
||||
break;
|
||||
case ios::end :
|
||||
fdir = PR_SEEK_END;
|
||||
break;
|
||||
default:
|
||||
// error
|
||||
return(EOF);
|
||||
}
|
||||
|
||||
if (PRfilebuf::sync()==EOF)
|
||||
return EOF;
|
||||
if ((retpos=PR_Seek(_fd, offset, fdir))==-1L)
|
||||
return (EOF);
|
||||
return((streampos)retpos);
|
||||
}else
|
||||
return (EOF);
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
PRfilebuf::sync()
|
||||
{
|
||||
PRInt32 count;
|
||||
|
||||
if (_fd==0)
|
||||
return(EOF);
|
||||
|
||||
if (!unbuffered()){
|
||||
// Sync write area
|
||||
if ((count=out_waiting())!=0){
|
||||
PRInt32 nout;
|
||||
if ((nout =PR_Write(_fd,
|
||||
(void *) pbase(),
|
||||
(unsigned int)count)) != count){
|
||||
if (nout > 0) {
|
||||
// should set _pptr -= nout
|
||||
pbump(-(int)nout);
|
||||
memmove(pbase(), pbase()+nout, (int)(count-nout));
|
||||
}
|
||||
return(EOF);
|
||||
}
|
||||
}
|
||||
setp(0,0); // empty put area
|
||||
|
||||
if (PR_GetDescType(_fd) == PR_DESC_FILE){
|
||||
// Sockets can't seek; don't need this
|
||||
if ((count=in_avail()) > 0){
|
||||
if (PR_Seek(_fd, -count, PR_SEEK_CUR)!=-1L)
|
||||
{
|
||||
return (EOF);
|
||||
}
|
||||
}
|
||||
}
|
||||
setg(0,0,0); // empty get area
|
||||
}
|
||||
return(0);
|
||||
}
|
||||
|
||||
PRfilebuf *
|
||||
PRfilebuf::close()
|
||||
{
|
||||
int retval;
|
||||
if (_fd==0)
|
||||
return 0;
|
||||
|
||||
retval = sync();
|
||||
|
||||
if ((PR_Close(_fd)==0) || (retval==EOF))
|
||||
return 0;
|
||||
_fd = 0;
|
||||
return this;
|
||||
}
|
||||
|
||||
PRifstream::PRifstream():
|
||||
istream(new PRfilebuf)
|
||||
{
|
||||
_PRSTR_DELBUF(0);
|
||||
}
|
||||
|
||||
PRifstream::PRifstream(PRFileDesc *fd):
|
||||
istream(new PRfilebuf(fd))
|
||||
{
|
||||
_PRSTR_DELBUF(0);
|
||||
}
|
||||
|
||||
PRifstream::PRifstream(PRFileDesc *fd, char *buff, int bufflen):
|
||||
istream(new PRfilebuf(fd, buff, bufflen))
|
||||
{
|
||||
_PRSTR_DELBUF(0);
|
||||
}
|
||||
|
||||
PRifstream::PRifstream(const char * name, int mode, int flags):
|
||||
istream(new PRfilebuf)
|
||||
{
|
||||
_PRSTR_DELBUF(0);
|
||||
if (!rdbuf()->open(name, (mode|ios::in), flags))
|
||||
clear(rdstate() | ios::failbit);
|
||||
}
|
||||
|
||||
PRifstream::~PRifstream()
|
||||
{
|
||||
sync();
|
||||
|
||||
delete rdbuf();
|
||||
#ifdef _PRSTR_BP
|
||||
_PRSTR_BP = 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
streambuf *
|
||||
PRifstream::setbuf(char * ptr, int len)
|
||||
{
|
||||
if ((is_open()) || (!(rdbuf()->setbuf(ptr, len)))){
|
||||
clear(rdstate() | ios::failbit);
|
||||
return 0;
|
||||
}
|
||||
return rdbuf();
|
||||
}
|
||||
|
||||
void
|
||||
PRifstream::attach(PRFileDesc *fd)
|
||||
{
|
||||
if (!(rdbuf()->attach(fd)))
|
||||
clear(rdstate() | ios::failbit);
|
||||
}
|
||||
|
||||
void
|
||||
PRifstream::open(const char * name, int mode, int flags)
|
||||
{
|
||||
if (is_open() || !(rdbuf()->open(name, (mode|ios::in), flags)))
|
||||
clear(rdstate() | ios::failbit);
|
||||
}
|
||||
|
||||
void
|
||||
PRifstream::close()
|
||||
{
|
||||
clear((rdbuf()->close()) ? 0 : (rdstate() | ios::failbit));
|
||||
}
|
||||
|
||||
PRofstream::PRofstream():
|
||||
ostream(new PRfilebuf)
|
||||
{
|
||||
_PRSTR_DELBUF(0);
|
||||
}
|
||||
|
||||
PRofstream::PRofstream(PRFileDesc *fd):
|
||||
ostream(new PRfilebuf(fd))
|
||||
{
|
||||
_PRSTR_DELBUF(0);
|
||||
}
|
||||
|
||||
PRofstream::PRofstream(PRFileDesc *fd, char *buff, int bufflen):
|
||||
ostream(new PRfilebuf(fd, buff, bufflen))
|
||||
{
|
||||
_PRSTR_DELBUF(0);
|
||||
}
|
||||
|
||||
PRofstream::PRofstream(const char *name, int mode, int flags):
|
||||
ostream(new PRfilebuf)
|
||||
{
|
||||
_PRSTR_DELBUF(0);
|
||||
if (!rdbuf()->open(name, (mode|ios::out), flags))
|
||||
clear(rdstate() | ios::failbit);
|
||||
}
|
||||
|
||||
PRofstream::~PRofstream()
|
||||
{
|
||||
flush();
|
||||
|
||||
delete rdbuf();
|
||||
#ifdef _PRSTR_BP
|
||||
_PRSTR_BP = 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
streambuf *
|
||||
PRofstream::setbuf(char * ptr, int len)
|
||||
{
|
||||
if ((is_open()) || (!(rdbuf()->setbuf(ptr, len)))){
|
||||
clear(rdstate() | ios::failbit);
|
||||
return 0;
|
||||
}
|
||||
return rdbuf();
|
||||
}
|
||||
|
||||
void
|
||||
PRofstream::attach(PRFileDesc *fd)
|
||||
{
|
||||
if (!(rdbuf()->attach(fd)))
|
||||
clear(rdstate() | ios::failbit);
|
||||
}
|
||||
|
||||
void
|
||||
PRofstream::open(const char * name, int mode, int flags)
|
||||
{
|
||||
if (is_open() || !(rdbuf()->open(name, (mode|ios::out), flags)))
|
||||
clear(rdstate() | ios::failbit);
|
||||
}
|
||||
|
||||
void
|
||||
PRofstream::close()
|
||||
{
|
||||
clear((rdbuf()->close()) ? 0 : (rdstate() | ios::failbit));
|
||||
}
|
||||
|
||||
PRfstream::PRfstream():
|
||||
iostream(new PRfilebuf)
|
||||
{
|
||||
_PRSTR_DELBUF_C(istream, 0);
|
||||
_PRSTR_DELBUF_C(ostream, 0);
|
||||
}
|
||||
|
||||
PRfstream::PRfstream(PRFileDesc *fd):
|
||||
iostream(new PRfilebuf(fd))
|
||||
{
|
||||
_PRSTR_DELBUF_C(istream, 0);
|
||||
_PRSTR_DELBUF_C(ostream, 0);
|
||||
}
|
||||
|
||||
PRfstream::PRfstream(PRFileDesc *fd, char *buff, int bufflen):
|
||||
iostream(new PRfilebuf(fd, buff, bufflen))
|
||||
{
|
||||
_PRSTR_DELBUF_C(istream, 0);
|
||||
_PRSTR_DELBUF_C(ostream, 0);
|
||||
}
|
||||
|
||||
PRfstream::PRfstream(const char *name, int mode, int flags):
|
||||
iostream(new PRfilebuf)
|
||||
{
|
||||
_PRSTR_DELBUF_C(istream, 0);
|
||||
_PRSTR_DELBUF_C(ostream, 0);
|
||||
if (!rdbuf()->open(name, (mode|(ios::in|ios::out)), flags))
|
||||
clear(rdstate() | ios::failbit);
|
||||
}
|
||||
|
||||
PRfstream::~PRfstream()
|
||||
{
|
||||
sync();
|
||||
flush();
|
||||
|
||||
delete rdbuf();
|
||||
#ifdef _PRSTR_BP
|
||||
istream::_PRSTR_BP = 0;
|
||||
ostream::_PRSTR_BP = 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
streambuf *
|
||||
PRfstream::setbuf(char * ptr, int len)
|
||||
{
|
||||
if ((is_open()) || (!(rdbuf()->setbuf(ptr, len)))){
|
||||
clear(rdstate() | ios::failbit);
|
||||
return 0;
|
||||
}
|
||||
return rdbuf();
|
||||
}
|
||||
|
||||
void
|
||||
PRfstream::attach(PRFileDesc *fd)
|
||||
{
|
||||
if (!(rdbuf()->attach(fd)))
|
||||
clear(rdstate() | ios::failbit);
|
||||
}
|
||||
|
||||
void
|
||||
PRfstream::open(const char * name, int mode, int flags)
|
||||
{
|
||||
if (is_open() || !(rdbuf()->open(name, (mode|(ios::in|ios::out)), flags)))
|
||||
clear(rdstate() | ios::failbit);
|
||||
}
|
||||
|
||||
void
|
||||
PRfstream::close()
|
||||
{
|
||||
clear((rdbuf()->close()) ? 0 : (rdstate() | ios::failbit));
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
// fix it sometime
|
||||
|
||||
int fix_prfstreams () { return 0; }
|
||||
|
||||
#endif
|
153
libs/js/nsprpub/lib/prstreams/prstrms.h
Normal file
153
libs/js/nsprpub/lib/prstreams/prstrms.h
Normal file
@@ -0,0 +1,153 @@
|
||||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is the Netscape Portable Runtime (NSPR).
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1998-2000
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
/*
|
||||
* Robin J. Maxwell 11-22-96
|
||||
*/
|
||||
|
||||
#ifndef _PRSTRMS_H
|
||||
#define _PRSTRMS_H
|
||||
|
||||
#include "prtypes.h"
|
||||
#include "prio.h"
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#pragma warning( disable : 4275)
|
||||
#endif
|
||||
#include <iostream.h>
|
||||
|
||||
#if defined(AIX) && defined(__64BIT__)
|
||||
typedef long PRstreambuflen;
|
||||
#else
|
||||
typedef int PRstreambuflen;
|
||||
#endif
|
||||
|
||||
#if defined (PRFSTREAMS_BROKEN)
|
||||
|
||||
// fix it sometime
|
||||
|
||||
#define PRfilebuf streambuf
|
||||
#define PRifstream ifstream
|
||||
#define PRofstream ofstream
|
||||
#define PRfstream fstream
|
||||
|
||||
#else
|
||||
|
||||
class PR_IMPLEMENT(PRfilebuf): public streambuf
|
||||
{
|
||||
public:
|
||||
PRfilebuf();
|
||||
PRfilebuf(PRFileDesc *fd);
|
||||
PRfilebuf(PRFileDesc *fd, char * buffptr, int bufflen);
|
||||
~PRfilebuf();
|
||||
virtual int overflow(int=EOF);
|
||||
virtual int underflow();
|
||||
virtual streambuf *setbuf(char *buff, PRstreambuflen bufflen);
|
||||
virtual streampos seekoff(streamoff, ios::seek_dir, int);
|
||||
virtual int sync();
|
||||
PRfilebuf *open(const char *name, int mode, int flags);
|
||||
PRfilebuf *attach(PRFileDesc *fd);
|
||||
PRfilebuf *close();
|
||||
int is_open() const {return (_fd != 0);}
|
||||
PRFileDesc *fd(){return _fd;}
|
||||
|
||||
private:
|
||||
PRFileDesc * _fd;
|
||||
PRBool _opened;
|
||||
PRBool _allocated;
|
||||
};
|
||||
|
||||
class PR_IMPLEMENT(PRifstream): public istream {
|
||||
public:
|
||||
PRifstream();
|
||||
PRifstream(const char *, int mode=ios::in, int flags = 0);
|
||||
PRifstream(PRFileDesc *);
|
||||
PRifstream(PRFileDesc *, char *, int);
|
||||
~PRifstream();
|
||||
|
||||
streambuf * setbuf(char *, int);
|
||||
PRfilebuf* rdbuf(){return (PRfilebuf*) ios::rdbuf(); }
|
||||
|
||||
void attach(PRFileDesc *fd);
|
||||
PRFileDesc *fd() {return rdbuf()->fd();}
|
||||
|
||||
int is_open(){return rdbuf()->is_open();}
|
||||
void open(const char *, int mode=ios::in, int flags= 0);
|
||||
void close();
|
||||
};
|
||||
|
||||
class PR_IMPLEMENT(PRofstream) : public ostream {
|
||||
public:
|
||||
PRofstream();
|
||||
PRofstream(const char *, int mode=ios::out, int flags = 0);
|
||||
PRofstream(PRFileDesc *);
|
||||
PRofstream(PRFileDesc *, char *, int);
|
||||
~PRofstream();
|
||||
|
||||
streambuf * setbuf(char *, int);
|
||||
PRfilebuf* rdbuf() { return (PRfilebuf*) ios::rdbuf(); }
|
||||
|
||||
void attach(PRFileDesc *);
|
||||
PRFileDesc *fd() {return rdbuf()->fd();}
|
||||
|
||||
int is_open(){return rdbuf()->is_open();}
|
||||
void open(const char *, int =ios::out, int = 0);
|
||||
void close();
|
||||
};
|
||||
|
||||
class PR_IMPLEMENT(PRfstream) : public iostream {
|
||||
public:
|
||||
PRfstream();
|
||||
PRfstream(const char *name, int mode, int flags= 0);
|
||||
PRfstream(PRFileDesc *fd);
|
||||
PRfstream(PRFileDesc *fd, char *buff, int bufflen);
|
||||
~PRfstream();
|
||||
|
||||
streambuf * setbuf(char *, int);
|
||||
PRfilebuf* rdbuf(){ return (PRfilebuf*) ostream::rdbuf(); }
|
||||
|
||||
void attach(PRFileDesc *);
|
||||
PRFileDesc *fd() { return rdbuf()->fd(); }
|
||||
|
||||
int is_open() { return rdbuf()->is_open(); }
|
||||
void open(const char *, int, int = 0);
|
||||
void close();
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* _PRSTRMS_H */
|
102
libs/js/nsprpub/lib/prstreams/prstrms.rc
Normal file
102
libs/js/nsprpub/lib/prstreams/prstrms.rc
Normal file
@@ -0,0 +1,102 @@
|
||||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is the Netscape Portable Runtime (NSPR).
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1999-2000
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#include "prinit.h"
|
||||
#include <winver.h>
|
||||
|
||||
#define MY_LIBNAME "prstrms"
|
||||
#define MY_FILEDESCRIPTION "PRSTRMS Library"
|
||||
|
||||
#define STRINGIZE(x) #x
|
||||
#define STRINGIZE2(x) STRINGIZE(x)
|
||||
#define PR_VMAJOR_STR STRINGIZE2(PR_VMAJOR)
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define MY_DEBUG_STR " (debug)"
|
||||
#define MY_FILEFLAGS_1 VS_FF_DEBUG
|
||||
#else
|
||||
#define MY_DEBUG_STR ""
|
||||
#define MY_FILEFLAGS_1 0x0L
|
||||
#endif
|
||||
#if PR_BETA
|
||||
#define MY_FILEFLAGS_2 MY_FILEFLAGS_1|VS_FF_PRERELEASE
|
||||
#else
|
||||
#define MY_FILEFLAGS_2 MY_FILEFLAGS_1
|
||||
#endif
|
||||
|
||||
#ifdef WINNT
|
||||
#define MY_FILEOS VOS_NT_WINDOWS32
|
||||
#define MY_INTERNAL_NAME "lib" MY_LIBNAME PR_VMAJOR_STR
|
||||
#else
|
||||
#define MY_FILEOS VOS__WINDOWS32
|
||||
#define MY_INTERNAL_NAME MY_LIBNAME PR_VMAJOR_STR
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Version-information resource
|
||||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION PR_VMAJOR,PR_VMINOR,PR_VPATCH,0
|
||||
PRODUCTVERSION PR_VMAJOR,PR_VMINOR,PR_VPATCH,0
|
||||
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
|
||||
FILEFLAGS MY_FILEFLAGS_2
|
||||
FILEOS MY_FILEOS
|
||||
FILETYPE VFT_DLL
|
||||
FILESUBTYPE 0x0L // not used
|
||||
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "040904B0" // Lang=US English, CharSet=Unicode
|
||||
BEGIN
|
||||
VALUE "CompanyName", "Netscape Communications Corporation\0"
|
||||
VALUE "FileDescription", MY_FILEDESCRIPTION MY_DEBUG_STR "\0"
|
||||
VALUE "FileVersion", PR_VERSION "\0"
|
||||
VALUE "InternalName", MY_INTERNAL_NAME "\0"
|
||||
VALUE "LegalCopyright", "Copyright \251 1996-2000 Netscape Communications Corporation\0"
|
||||
VALUE "OriginalFilename", MY_INTERNAL_NAME ".dll\0"
|
||||
VALUE "ProductName", "Netscape Portable Runtime\0"
|
||||
VALUE "ProductVersion", PR_VERSION "\0"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
BEGIN
|
||||
VALUE "Translation", 0x409, 1200
|
||||
END
|
||||
END
|
1
libs/js/nsprpub/lib/prstreams/tests/CVS/Entries
Normal file
1
libs/js/nsprpub/lib/prstreams/tests/CVS/Entries
Normal file
@@ -0,0 +1 @@
|
||||
D
|
1
libs/js/nsprpub/lib/prstreams/tests/CVS/Entries.Log
Normal file
1
libs/js/nsprpub/lib/prstreams/tests/CVS/Entries.Log
Normal file
@@ -0,0 +1 @@
|
||||
A D/testprstrm////
|
1
libs/js/nsprpub/lib/prstreams/tests/CVS/Repository
Normal file
1
libs/js/nsprpub/lib/prstreams/tests/CVS/Repository
Normal file
@@ -0,0 +1 @@
|
||||
mozilla/nsprpub/lib/prstreams/tests
|
1
libs/js/nsprpub/lib/prstreams/tests/CVS/Root
Normal file
1
libs/js/nsprpub/lib/prstreams/tests/CVS/Root
Normal file
@@ -0,0 +1 @@
|
||||
:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
|
@@ -0,0 +1 @@
|
||||
Makefile
|
@@ -0,0 +1,4 @@
|
||||
/.cvsignore/1.2/Sat May 12 06:40:34 2001//
|
||||
/Makefile.in/1.10/Mon Nov 8 02:52:55 2004//
|
||||
/testprstrm.cpp/3.6/Sun Apr 25 15:00:45 2004//
|
||||
D
|
@@ -0,0 +1 @@
|
||||
mozilla/nsprpub/lib/prstreams/tests/testprstrm
|
1
libs/js/nsprpub/lib/prstreams/tests/testprstrm/CVS/Root
Normal file
1
libs/js/nsprpub/lib/prstreams/tests/testprstrm/CVS/Root
Normal file
@@ -0,0 +1 @@
|
||||
:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
|
254
libs/js/nsprpub/lib/prstreams/tests/testprstrm/Makefile.in
Normal file
254
libs/js/nsprpub/lib/prstreams/tests/testprstrm/Makefile.in
Normal file
@@ -0,0 +1,254 @@
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is the Netscape Portable Runtime (NSPR).
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998-2000
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#! gmake
|
||||
|
||||
MOD_DEPTH = ../../../..
|
||||
topsrcdir = @top_srcdir@
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
||||
include $(MOD_DEPTH)/config/autoconf.mk
|
||||
|
||||
include $(topsrcdir)/config/config.mk
|
||||
|
||||
ifeq ($(OS_TARGET), WIN16)
|
||||
OS_CFLAGS = $(OS_EXE_CFLAGS)
|
||||
endif
|
||||
|
||||
CXXSRCS = \
|
||||
testprstrm.cpp \
|
||||
$(NULL)
|
||||
|
||||
OBJS = $(addprefix $(OBJDIR)/,$(CXXSRCS:.cpp=.$(OBJ_SUFFIX)))
|
||||
|
||||
ifeq (,$(filter-out WINNT OS2,$(OS_ARCH)))
|
||||
PROG_SUFFIX = .exe
|
||||
else
|
||||
PROG_SUFFIX =
|
||||
endif
|
||||
|
||||
PROGS = $(addprefix $(OBJDIR)/, $(CXXSRCS:.cpp=$(PROG_SUFFIX)))
|
||||
|
||||
TARGETS = $(PROGS) $(OBJS)
|
||||
|
||||
INCLUDES = -I$(dist_includedir)
|
||||
|
||||
# Setting the variables LDOPTS and LIBPR. We first initialize
|
||||
# them to the default values, then adjust them for some platforms.
|
||||
LDOPTS = -L$(dist_libdir)
|
||||
LIBPR = -lnspr$(MOD_MAJOR_VERSION)
|
||||
LIBPRSTRMS = -lprstrms$(MOD_MAJOR_VERSION)
|
||||
|
||||
ifeq ($(OS_ARCH), WINNT)
|
||||
ifeq ($(OS_TARGET), WIN16)
|
||||
LIBPR = $(dist_libdir)/nspr$(MOD_MAJOR_VERSION).lib
|
||||
LIBPRSTRMS = $(dist_libdir)/prstrms$(MOD_MAJOR_VERSION).lib
|
||||
else
|
||||
LDOPTS = -NOLOGO -DEBUG -INCREMENTAL:NO
|
||||
ifeq ($(OS_TARGET), WIN95)
|
||||
LIBPR = $(dist_libdir)/nspr$(MOD_MAJOR_VERSION).$(LIB_SUFFIX)
|
||||
LIBPRSTRMS = $(dist_libdir)/prstrms$(MOD_MAJOR_VERSION).$(LIB_SUFFIX)
|
||||
else
|
||||
LIBPR = $(dist_libdir)/libnspr$(MOD_MAJOR_VERSION).$(LIB_SUFFIX)
|
||||
LIBPRSTRMS = $(dist_libdir)/libprstrms$(MOD_MAJOR_VERSION).$(LIB_SUFFIX)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(OS_ARCH),OS2)
|
||||
ifeq ($(MOZ_OS2_TOOLS),VACPP)
|
||||
LDOPTS = -NOE -DEBUG -nologo -PMTYPE:VIO /S:32768
|
||||
LIBPR = $(dist_libdir)/nspr$(MOD_MAJOR_VERSION).lib
|
||||
LIBPRSTRMS = $(dist_libdir)/prstrms$(MOD_MAJOR_VERSION).$(LIB_SUFFIX)
|
||||
else
|
||||
LDOPTS += -Zomf -Zlinker /PM:VIO -lstdcpp
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(OS_ARCH), WINNT)
|
||||
PWD = $(shell pwd)
|
||||
endif
|
||||
|
||||
ifeq ($(OS_ARCH), IRIX)
|
||||
LDOPTS += -rpath $(PWD)/$(dist_libdir)
|
||||
endif
|
||||
|
||||
ifeq ($(OS_ARCH), OSF1)
|
||||
LDOPTS += -rpath $(PWD)/$(dist_libdir)
|
||||
endif
|
||||
|
||||
ifeq ($(OS_ARCH), HP-UX)
|
||||
LDOPTS += -Wl,+s,+b,$(PWD)/$(dist_libdir)
|
||||
endif
|
||||
|
||||
# AIX
|
||||
ifeq ($(OS_ARCH),AIX)
|
||||
LDOPTS += -blibpath:$(PWD)/$(dist_libdir):/usr/lib:/lib
|
||||
ifeq ($(OS_ARCH)$(OS_RELEASE),AIX4.1)
|
||||
LIBPR = -lnspr$(MOD_MAJOR_VERSION)_shr
|
||||
LIBPRSTRMS = -lprstrms$(MOD_MAJOR_VERSION)_shr
|
||||
else
|
||||
LDOPTS += -brtl
|
||||
EXTRA_LIBS = -ldl
|
||||
endif
|
||||
endif
|
||||
|
||||
# Solaris
|
||||
ifeq ($(OS_ARCH), SunOS)
|
||||
ifneq ($(OS_RELEASE), 4.1.3_U1)
|
||||
ifdef NS_USE_GCC
|
||||
LDOPTS += -Xlinker -R -Xlinker $(PWD)/$(dist_libdir)
|
||||
else
|
||||
LDOPTS += -R $(PWD)/$(dist_libdir)
|
||||
# CC on SunOS 5.4 and 5.5.x need to link with -lthread or -lpthread
|
||||
# (or use the -mt switch) even though we already linked with these
|
||||
# system libraries when we built libnspr.so.
|
||||
ifdef USE_PTHREADS
|
||||
EXTRA_LIBS = -lpthread
|
||||
else
|
||||
EXTRA_LIBS = -lthread
|
||||
endif # USE_PTHREADS
|
||||
endif # NS_USE_GCC
|
||||
endif # 4.1.3_U1
|
||||
endif # SunOS
|
||||
|
||||
ifeq ($(OS_ARCH), NCR)
|
||||
# XXX: We see some strange problems when we link with libnspr.so.
|
||||
# So for now we use static libraries on NCR. The shared library
|
||||
# stuff below is commented out.
|
||||
LIBPR = $(dist_libdir)/libnspr$(MOD_MAJOR_VERSION).a
|
||||
LIBPRSTRMS = $(dist_libdir)/libprstrms$(MOD_MAJOR_VERSION).a
|
||||
EXTRA_LIBS = -lsocket -lnsl -ldl
|
||||
|
||||
# NCR needs to link against -lsocket -lnsl (and -lc, which is linked
|
||||
# implicitly by $(CC)) again even though we already linked with these
|
||||
# system libraries when we built libnspr.so.
|
||||
#EXTRA_LIBS = -lsocket -lnsl
|
||||
# This hardcodes in the executable programs the directory to find
|
||||
# libnspr.so etc. at program startup. Equivalent to the -R or -rpath
|
||||
# option for ld on other platforms.
|
||||
#export LD_RUN_PATH = $(PWD)/$(dist_libdir)
|
||||
endif
|
||||
|
||||
ifeq ($(OS_ARCH), SCOOS)
|
||||
# SCO Unix needs to link against -lsocket again even though we
|
||||
# already linked with these system libraries when we built libnspr.so.
|
||||
EXTRA_LIBS = -lsocket
|
||||
# This hardcodes in the executable programs the directory to find
|
||||
# libnspr.so etc. at program startup. Equivalent to the -R or -rpath
|
||||
# option for ld on other platforms.
|
||||
export LD_RUN_PATH = $(PWD)/$(dist_libdir)
|
||||
endif
|
||||
|
||||
ifeq ($(OS_ARCH), UNIXWARE)
|
||||
export LD_RUN_PATH = $(PWD)/$(dist_libdir)
|
||||
endif
|
||||
|
||||
#####################################################
|
||||
#
|
||||
# The rules
|
||||
#
|
||||
#####################################################
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
||||
AIX_PRE_4_2 = 0
|
||||
ifeq ($(OS_ARCH),AIX)
|
||||
ifneq ($(OS_RELEASE),4.2)
|
||||
ifneq ($(USE_PTHREADS), 1)
|
||||
#AIX_PRE_4_2 = 1
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(AIX_PRE_4_2),1)
|
||||
|
||||
# AIX releases prior to 4.2 need a special two-step linking hack
|
||||
# in order to both override the system select() and be able to
|
||||
# get at the original system select().
|
||||
#
|
||||
# We use a pattern rule in ns/nspr20/config/rules.mk to generate
|
||||
# the .$(OBJ_SUFFIX) file from the .c source file, then do the
|
||||
# two-step linking hack below.
|
||||
|
||||
$(OBJDIR)/%: $(OBJDIR)/%.$(OBJ_SUFFIX)
|
||||
@$(MAKE_OBJDIR)
|
||||
rm -f $@ $(AIX_TMP)
|
||||
$(CC) $(AIX_LINK_OPTS) -o $(AIX_TMP) $< $(dist_libdir)/libnspr$(MOD_MAJOR_VERSION).a
|
||||
$(CC) -o $@ $(AIX_TMP) $(AIX_WRAP)
|
||||
rm -f $(AIX_TMP)
|
||||
|
||||
else
|
||||
|
||||
# All platforms that are not AIX pre-4.2.
|
||||
|
||||
$(OBJDIR)/%$(PROG_SUFFIX): $(OBJDIR)/%.$(OBJ_SUFFIX)
|
||||
@$(MAKE_OBJDIR)
|
||||
ifeq ($(OS_ARCH), WINNT)
|
||||
ifeq ($(OS_TARGET),WIN16)
|
||||
echo system windows >w16link
|
||||
echo option map >>w16link
|
||||
echo option stack=10K >>w16link
|
||||
echo option heapsize=32K >>w16link
|
||||
echo debug $(DEBUGTYPE) all >>w16link
|
||||
echo name $@ >>w16link
|
||||
echo file >>w16link
|
||||
echo $< >>w16link
|
||||
echo library >>w16link
|
||||
echo $(LIBPR), >>w16link
|
||||
echo $(LIBPRSTRMS), >>w16link
|
||||
echo winsock.lib >>w16link
|
||||
wlink @w16link.
|
||||
else
|
||||
link $(LDOPTS) $< $(LIBPR) $(LIBPRSTRMS) wsock32.lib -out:$@
|
||||
endif
|
||||
else
|
||||
ifeq ($(OS_ARCH),OS2)
|
||||
$(LINK) $(EXEFLAGS) $(LDOPTS) $< $(LIBPR) $(LIBPRSTRMS) $(OS_LIBS) $(EXTRA_LIBS)
|
||||
else
|
||||
$(CCC) $(XCFLAGS) $< $(LDOPTS) $(LIBPR) $(LIBPRSTRMS) $(EXTRA_LIBS) -o $@
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
export:: $(TARGETS)
|
||||
clean::
|
||||
rm -f $(TARGETS)
|
||||
|
||||
testlinker:
|
||||
echo $(LINK)
|
204
libs/js/nsprpub/lib/prstreams/tests/testprstrm/testprstrm.cpp
Normal file
204
libs/js/nsprpub/lib/prstreams/tests/testprstrm/testprstrm.cpp
Normal file
@@ -0,0 +1,204 @@
|
||||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is the Netscape Portable Runtime (NSPR).
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1998-2000
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#include "prinit.h"
|
||||
#include "prstrms.h"
|
||||
#include "prio.h"
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#if defined(XP_UNIX) || defined(XP_OS2_EMX)
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#endif
|
||||
|
||||
const unsigned int MaxCnt = 1;
|
||||
|
||||
void threadwork(void *mytag);
|
||||
|
||||
|
||||
typedef struct threadarg {
|
||||
void *mytag;
|
||||
} threadarg;
|
||||
|
||||
void
|
||||
#ifdef XP_OS2_VACPP
|
||||
_Optlink
|
||||
#endif
|
||||
threadmain(void *mytag)
|
||||
{
|
||||
threadarg arg;
|
||||
|
||||
arg.mytag = mytag;
|
||||
|
||||
threadwork(&arg);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
threadwork(void *_arg)
|
||||
{
|
||||
threadarg *arg = (threadarg *)_arg;
|
||||
unsigned int i;
|
||||
|
||||
char fname1[256];
|
||||
char fname2[256];
|
||||
|
||||
strcpy(fname1, (char *)arg->mytag);
|
||||
strcpy(fname2, (char *)arg->mytag);
|
||||
strcat(fname2, "2");
|
||||
PR_Delete(fname1);
|
||||
PR_Delete(fname2);
|
||||
|
||||
PRfilebuf *fb[MaxCnt];
|
||||
PRifstream *ifs[MaxCnt];
|
||||
PRofstream *ofs[MaxCnt];
|
||||
int mode = 0;
|
||||
#ifdef XP_UNIX
|
||||
mode = S_IRUSR|S_IWUSR|S_IRGRP|S_IRGRP|S_IWOTH|S_IROTH;
|
||||
#endif
|
||||
|
||||
//
|
||||
// Allocate a bunch
|
||||
cout << "Testing unused filebufs ----------------" << endl;
|
||||
for (i=0; i < MaxCnt; i++){
|
||||
fb[i] = new PRfilebuf;
|
||||
}
|
||||
// Delete them
|
||||
for (i=0; i < MaxCnt; i++){
|
||||
delete fb[i];
|
||||
}
|
||||
cout << "Unused filebufs complete ---------------" << endl;
|
||||
|
||||
//
|
||||
// Allocate a bunch
|
||||
cout << "Testing unused ifstream -----------------" << endl;
|
||||
for (i=0; i < MaxCnt; i++){
|
||||
ifs[i] = new PRifstream;
|
||||
}
|
||||
//
|
||||
// Delete them
|
||||
for (i=0; i < MaxCnt; i++){
|
||||
delete ifs[i];
|
||||
}
|
||||
cout << "Unused ifstream complete ----------------" << endl;
|
||||
//
|
||||
// Allocate a bunch
|
||||
cout << "Testing unused ofstream -----------------" << endl;
|
||||
for (i=0; i < MaxCnt; i++){
|
||||
ofs[i] = new PRofstream;
|
||||
}
|
||||
for (i=0; i < MaxCnt; i++){
|
||||
*(ofs[i]) << "A"; // Write a bit
|
||||
delete ofs[i]; // Delete it.
|
||||
}
|
||||
cout << "Unused ofstream complete ----------------" << endl;
|
||||
|
||||
cout << "Testing use of ofstream 1 (extra filebuf allocated) ---------" << endl;
|
||||
PRofstream *aos = new PRofstream(fname1, ios::out|ios::ate, mode);
|
||||
for (i=0; i < MaxCnt; i++){
|
||||
for (int j=0; j < 8192; j++)
|
||||
*aos << "AaBbCcDdEeFfGg" << endl;
|
||||
fb[i] = new PRfilebuf; // Allocate as we go to hack at the heap
|
||||
}
|
||||
//
|
||||
// Delete the extra foo we allocated
|
||||
for (i=0; i < MaxCnt; i++){
|
||||
delete fb[i];
|
||||
}
|
||||
aos->flush(); // Explicit flush
|
||||
delete aos;
|
||||
cout << "Testing use of ofstream 1 complete (extra filebuf deleted) --" << endl;
|
||||
cout << "Testing use of ofstream 2 (extra filebuf allocated) ---------" << endl;
|
||||
PRofstream *aos2 = new PRofstream(fname2, ios::out, mode);
|
||||
|
||||
for (i=0; i < MaxCnt; i++){
|
||||
*aos2 << "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz";
|
||||
}
|
||||
// Force flushing in the dtor
|
||||
delete aos2;
|
||||
cout << "Testing use of ofstream 2 complete (extra filebuf deleted) --" << endl;
|
||||
char line[1024];
|
||||
cout << "Testing use of ifstream 1 (stack allocation) -------------" << endl;
|
||||
PRifstream ais(fname1);
|
||||
for (i=0; i < MaxCnt; i++){
|
||||
ais >> line;
|
||||
}
|
||||
cout << "Testing use of ifstream 1 complete -----------------------" << endl;
|
||||
cout << "Testing use of ifstream 2 ----------------------" << endl;
|
||||
PRifstream *ais2 = new PRifstream(fname2);
|
||||
char achar;
|
||||
for (i=0; i < MaxCnt*10; i++){
|
||||
*ais2 >> achar;
|
||||
}
|
||||
delete ais2;
|
||||
cout << "Testing use of ifstream 2 complete -------------" << endl;
|
||||
}
|
||||
|
||||
#define STACKSIZE 1024*1024
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
PR_Init(PR_SYSTEM_THREAD, PR_PRIORITY_NORMAL, 256);
|
||||
threadmain("TestFile");
|
||||
PRThread *thr1 = PR_CreateThread(PR_SYSTEM_THREAD,
|
||||
threadmain,
|
||||
(void *)"TestFile1",
|
||||
PR_PRIORITY_NORMAL,
|
||||
PR_GLOBAL_THREAD,
|
||||
PR_JOINABLE_THREAD,
|
||||
STACKSIZE);
|
||||
PRThread *thr2 = PR_CreateThread(PR_SYSTEM_THREAD,
|
||||
threadmain,
|
||||
(void *)"TestFile2",
|
||||
PR_PRIORITY_NORMAL,
|
||||
PR_GLOBAL_THREAD,
|
||||
PR_JOINABLE_THREAD,
|
||||
STACKSIZE);
|
||||
|
||||
PRThread *thr3 = PR_CreateThread(PR_SYSTEM_THREAD,
|
||||
threadmain,
|
||||
(void *)"TestFile3",
|
||||
PR_PRIORITY_NORMAL,
|
||||
PR_GLOBAL_THREAD,
|
||||
PR_JOINABLE_THREAD,
|
||||
STACKSIZE);
|
||||
PR_JoinThread(thr1);
|
||||
PR_JoinThread(thr2);
|
||||
PR_JoinThread(thr3);
|
||||
return 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user