Kaydet (Commit) 662c532f authored tarafından Jens-Heiner Rechtien's avatar Jens-Heiner Rechtien

initial import

üst
<html><head><TITLE></TITLE></head>
<body>
<H2><A HREF ="#DOC.DOCU" > <IMG BORDER=0 SRC=down.gif></A> </H2>
<TABLE>
<TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=IAcceptHandler.html><B>IAcceptHandler</B></A> <br>
<I>Interface IAcceptHandler
Overload onConnection() to handle a connected socket</I>
</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=IAcceptHandlerFactory.html><B>IAcceptHandlerFactory</B></A> <br>
<I>Interface IAcceptHandlerFactory
Creates objects with IAcceptHandler interface</I>
</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OAcceptor.html><B>OAcceptor</B></A> <br>
<I>Starts a thread where incoming connections are accepted</I>
</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OByteArray.html><B>OByteArray</B></A> <br>
<I>Array of bytes</I>
</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OByteStream.html><B>OByteStream</B></A> <br>
<I>Wraps a byte-stream around a byte array</I>
</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=ICondition.html><B>ICondition</B></A> <br>
<I>ICondition
Interface for a thread-spanning condition</I>
</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OCondition.html><B>OCondition</B></A> <br>
<I>OCondition
Implements the ICondition interface</I>
</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=IConnectHandler.html><B>IConnectHandler</B></A> <br>
<I>Interface IConnectHandler</I>
</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OConnector.html><B>OConnector</B></A> <br>
<I>Delegates a connected socket to an IConnectHandler object</I>
</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OException.html><B>OException</B></A> <br>
<I>Base class for exceptions</I>
</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OSimpleException.html><B>OSimpleException</B></A> <br>
<I></I>
</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=IExecutable.html><B>IExecutable</B></A> <br>
<I>IExecutable
The IExecutable-interface is to be understood as wrapper around
your application-code, which allows it to be executed asynchronously</I>
</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OExecutable.html><B>OExecutable</B></A> <br>
<I>OExecutable
added default impl</I>
</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OFiberingServer.html><B>OFiberingServer</B></A> <br>
<I>OFiberingServer
Depends on cooperative executing IExecutable-Objects</I>
</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OFuture.html><B>OFuture</B></A> <br>
<I>OFuture, OFutureRef
A future represents the result of an asynchronous operation</I>
</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OFutureRef.html><B>OFutureRef</B></A> <br>
<I>OFutureRef
</I>
</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=IStream.html><B>IStream</B></A> <br>
<I>Interface for a stream of data, on that you can read and write blocks of bytes</I>
</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=IMutex.html><B>IMutex</B></A> <br>
<I>IMutex interface
</I>
</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OThreadMutex.html><B>OThreadMutex</B></A> <br>
<I>OThreadMutex
</I>
</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OGuard.html><B>OGuard</B></A> <br>
<I>OGuard
</I>
</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OObject.html><B>OObject</B></A> <br>
<I>OObject
common base class for all framework classes</I>
</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OCreateParam.html><B>OCreateParam</B></A> <br>
<I>
Basic class information</I>
</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OClassInfo.html><B>OClassInfo</B></A> <br>
<I></I>
</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=IObserver.html><B>IObserver</B></A> <br>
<I>IObserver
</I>
</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=IObserved.html><B>IObserved</B></A> <br>
<I>IObserved
Just an idea</I>
</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OObserver.html><B>OObserver</B></A> <br>
<I>OObserver
add default-implementation of refence-counting behaviour to IObserver-Interface
</I>
</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=ORef.html><B>ORef</B></A> <br>
<I>
ORef<T>
template type to implement handle/body behaviour
with reference-counting</I>
</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=IReferenceCounter.html><B>IReferenceCounter</B></A> <br>
<I>Interface for refernce-counting</I>
</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=IRunnable.html><B>IRunnable</B></A> <br>
<I>IRunnable
The IRunnable-interface is to be understood as wrapper around
your application-code, which allows it to be executed asynchronously</I>
</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OExecutableThread.html><B>OExecutableThread</B></A> <br>
<I>OExecutableThread
A thread used to execute an IExecutable-Object</I>
</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OSemaphore.html><B>OSemaphore</B></A> <br>
<I>Counting semaphore (unnamed, because thread-local)</I>
</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=ISocketTypes.html><B>ISocketTypes</B></A> <br>
<I>Base data types</I>
</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=ISocketAddr.html><B>ISocketAddr</B></A> <br>
<I>Base class for socket addresses</I>
</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OInetSocketAddr.html><B>OInetSocketAddr</B></A> <br>
<I>Represents an internet-address</I>
</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OIpxSocketAddr.html><B>OIpxSocketAddr</B></A> <br>
<I>Represents an IPX/SPX address</I>
</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OSocket.html><B>OSocket</B></A> <br>
<I>Represents a socket</I>
</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OStreamSocket.html><B>OStreamSocket</B></A> <br>
<I>A socket to send or receive a stream of data</I>
</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OAcceptorSocket.html><B>OAcceptorSocket</B></A> <br>
<I>A socket to accept incoming connections</I>
</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OConnectorSocket.html><B>OConnectorSocket</B></A> <br>
<I>A socket to initiate a conenction</I>
</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=ODatagramSocket.html><B>ODatagramSocket</B></A> <br>
<I>A connectionless socket to send and receive datagrams</I>
</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=IPositionableStream.html><B>IPositionableStream</B></A> <br>
<I>Adds seeking capabilities to IStream</I>
</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OStream.html><B>OStream</B></A> <br>
<I>Implements IPositionableStream</I>
</TD></TR><TR><TD VALIGN=top><IMG BORDER=0 SRC=icon1.gif> </TD><TD><A HREF=OString.html><B>OString</B></A> <br>
<I>A string class</I>
</TD></TR>
</TABLE>
<A NAME="DOC.DOCU">
<DL></DL><P><I><A HREF="aindex.html"> alphabetic index</A></I> <I><A HREF="HIER.html"> hierarchy of classes</A></I><P></BODY><hr>
<A HREF="http://www.zib.de/Visual/software/doc++/index.html"><IMG BORDER=0 ALIGN=RIGHT SRC=logo.gif></A>
<P Align=Center><I>this page has been generated automatically by doc++
<P Align=Center>(c)opyright by <A HREF="http://www.zib.de/zoeckler/"> Malte Z&oumlckler</A>, <A HREF="mailto:wunderling@zib.de"> Roland Wunderling </A><br>contact: <A HREF="mailto:doc++@zib.de"> doc++@zib.de </a>
\ No newline at end of file
/*************************************************************************
*
* $RCSfile: conditn.hxx,v $
*
* $Revision: 1.1.1.1 $
*
* last change: $Author: hr $ $Date: 2000-09-18 15:18:11 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
*
* - GNU Lesser General Public License Version 2.1
* - Sun Industry Standards Source License Version 1.1
*
* Sun Microsystems Inc., October, 2000
*
* GNU Lesser General Public License Version 2.1
* =============================================
* Copyright 2000 by Sun Microsystems, Inc.
* 901 San Antonio Road, Palo Alto, CA 94303, USA
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License version 2.1, as published by the Free Software Foundation.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*
*
* Sun Industry Standards Source License Version 1.1
* =================================================
* The contents of this file are subject to the Sun Industry Standards
* Source 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.openoffice.org/license.html.
*
* Software provided under this License is provided on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
* WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
* MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
* See the License for the specific provisions governing your rights and
* obligations concerning the Software.
*
* The Initial Developer of the Original Code is: Sun Microsystems, Inc.
*
* Copyright: 2000 by Sun Microsystems, Inc.
*
* All Rights Reserved.
*
* Contributor(s): _______________________________________
*
*
************************************************************************/
#ifndef _VOS_CONDITN_HXX_
#define _VOS_CONDITN_HXX_
#ifndef _OSL_CONDITN_H_
# include <osl/conditn.h>
#endif
#ifndef _VOS_OBJECT_HXX_
# include <vos/object.hxx>
#endif
#ifdef _USE_NAMESPACE
namespace vos
{
#endif
/** ICondition
Interface for a thread-spanning condition. If a condition-object
is created, its initial condition is False. You can check the
condition nonblocking with "check()" or wait for it to become set
with "wait()". The methods "set()" and "reset()" are used to change
the conditions state.
@author Bernd Hofner
@version 1.0
*/
class ICondition
{
public:
ICondition() { }
virtual ~ICondition() { }
enum TResult
{
result_ok = osl_cond_result_ok,
result_error = osl_cond_result_error,
result_timeout = osl_cond_result_timeout
};
/** set condition to True =>
wait() will not block, check() returns True
*/
virtual void SAL_CALL set()= 0;
/** set condition to False =>
wait() will block, check() returns False
*/
virtual void SAL_CALL reset()= 0;
/** Blocks if condition is not set<BR>
If condition has been destroyed prematurely, wait() will
return with False.
*/
virtual TResult SAL_CALL wait(const TimeValue* pTimeout = 0)= 0;
/** True: condition is set <BR>
False: condition is not set <BR>
does not block
*/
virtual sal_Bool SAL_CALL check()= 0;
};
/** OCondition
Implements the ICondition interface.
@author Bernd Hofner
@version 1.0
*/
class OCondition : public OObject, public ICondition
{
VOS_DECLARE_CLASSINFO(VOS_NAMESPACE(OCondition, vos));
public:
/// initial state of condition is not set
OCondition();
virtual ~OCondition();
/// set condition to True => wait() will not block, check() returns True
virtual void SAL_CALL set();
/// set condition to False => wait() will block, check() returns False
virtual void SAL_CALL reset();
/** Blocks if condition is not set<BR>
If condition has been destroyed prematurely, wait() will
return with False.
*/
TResult SAL_CALL wait(const TimeValue* pTimeout = 0);
/** True: condition is set <BR>
False: condition is not set <BR>
does not block
*/
virtual sal_Bool SAL_CALL check();
protected:
oslCondition m_Condition;
};
#ifdef _USE_NAMESPACE
}
#endif
#endif // _VOS_CONDITN_HXX_
/*************************************************************************
*
* $RCSfile: diagnose.hxx,v $
*
* $Revision: 1.1.1.1 $
*
* last change: $Author: hr $ $Date: 2000-09-18 15:18:12 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
*
* - GNU Lesser General Public License Version 2.1
* - Sun Industry Standards Source License Version 1.1
*
* Sun Microsystems Inc., October, 2000
*
* GNU Lesser General Public License Version 2.1
* =============================================
* Copyright 2000 by Sun Microsystems, Inc.
* 901 San Antonio Road, Palo Alto, CA 94303, USA
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License version 2.1, as published by the Free Software Foundation.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*
*
* Sun Industry Standards Source License Version 1.1
* =================================================
* The contents of this file are subject to the Sun Industry Standards
* Source 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.openoffice.org/license.html.
*
* Software provided under this License is provided on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
* WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
* MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
* See the License for the specific provisions governing your rights and
* obligations concerning the Software.
*
* The Initial Developer of the Original Code is: Sun Microsystems, Inc.
*
* Copyright: 2000 by Sun Microsystems, Inc.
*
* All Rights Reserved.
*
* Contributor(s): _______________________________________
*
*
************************************************************************/
#ifndef _VOS_DIAGNOSE_H_
#define _VOS_DIAGNOSE_H_
#ifndef _OSL_DIAGNOSE_H_
#include <osl/diagnose.h>
#endif
/*
Diagnostic support
*/
#define VOS_THIS_FILE __FILE__
#define VOS_DEBUG_ONLY(s) _OSL_DEBUG_ONLY(s)
#define VOS_TRACE _OSL_TRACE
#define VOS_ASSERT(c) _OSL_ASSERT(c, VOS_THIS_FILE, __LINE__)
#define VOS_VERIFY(c) _OSL_VERIFY(c, VOS_THIS_FILE, __LINE__)
#define VOS_ENSHURE(c, m) _OSL_ENSHURE(c, VOS_THIS_FILE, __LINE__, m)
#define VOS_ENSURE(c, m) _OSL_ENSURE(c, VOS_THIS_FILE, __LINE__, m)
#define VOS_PRECOND(c, m) VOS_ENSHURE(c, m)
#define VOS_POSTCOND(c, m) VOS_ENSHURE(c, m)
#endif /* _VOS_DIAGNOSE_H_ */
/*************************************************************************
*
* $RCSfile: execabl.hxx,v $
*
* $Revision: 1.1.1.1 $
*
* last change: $Author: hr $ $Date: 2000-09-18 15:18:12 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
*
* - GNU Lesser General Public License Version 2.1
* - Sun Industry Standards Source License Version 1.1
*
* Sun Microsystems Inc., October, 2000
*
* GNU Lesser General Public License Version 2.1
* =============================================
* Copyright 2000 by Sun Microsystems, Inc.
* 901 San Antonio Road, Palo Alto, CA 94303, USA
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License version 2.1, as published by the Free Software Foundation.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*
*
* Sun Industry Standards Source License Version 1.1
* =================================================
* The contents of this file are subject to the Sun Industry Standards
* Source 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.openoffice.org/license.html.
*
* Software provided under this License is provided on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
* WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
* MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
* See the License for the specific provisions governing your rights and
* obligations concerning the Software.
*
* The Initial Developer of the Original Code is: Sun Microsystems, Inc.
*
* Copyright: 2000 by Sun Microsystems, Inc.
*
* All Rights Reserved.
*
* Contributor(s): _______________________________________
*
*
************************************************************************/
#ifndef _VOS_EXECABL_HXX_
#define _VOS_EXECABL_HXX_
#ifndef _VOS_TYPES_HXX_
# include <vos/types.hxx>
#endif
#ifndef _VOS_REFERNCE_HXX_
# include <vos/refernce.hxx>
#endif
#ifdef _USE_NAMESPACE
namespace vos
{
#endif
/** IExecutable
The IExecutable-interface is to be understood as wrapper around
your application-code, which allows it to be executed asynchronously.
Wether you want real asynchronous behaviour or just pseudo-multitasking
depends on which kind of execution-service you use to execute your executable.
(E.g. Threadpool/Fiberpool)
@author Bernd Hofner
@version 0.1
*/
class IExecutable : public NAMESPACE_VOS(IReference)
{
public:
/** Overload to implement your functionality.
Return True, if you want "execute()" to be called again.
*/
virtual sal_Bool SAL_CALL execute()= 0;
/** If you use blocking calls within your execute-function,
you should provide here a means to unblock cleanly.
@Return False if you are not able to unblock the
thread.
*/
virtual sal_Bool SAL_CALL unblock()= 0;
/**
STL demands this operators if you want to place
IExecutables per value in collections.
*/
virtual sal_Bool SAL_CALL operator<(const IExecutable&) const= 0;
virtual sal_Bool SAL_CALL operator>(const IExecutable&) const= 0;
virtual sal_Bool SAL_CALL operator==(const IExecutable&) const= 0;
virtual sal_Bool SAL_CALL operator!=(const IExecutable&) const= 0;
};
/** OExecutable
added default impl. of IReferenceCounter
*/
class OExecutable : public NAMESPACE_VOS(IExecutable),
public NAMESPACE_VOS(OReference)
{
public:
virtual ~OExecutable()
{
}
/*
Since the dominance of the OReferenceCounter impl.
of the IReferenceCounter is not granted, delegate
the methods to this branch of the diamond-shaped
inheritance tree.
*/
virtual RefCount SAL_CALL acquire()
{
return OReference::acquire();
}
virtual RefCount SAL_CALL release()
{
return OReference::release();
}
virtual RefCount SAL_CALL referenced() const
{
return OReference::referenced();
}
/** Default implementation of unblock does nothing.
*/
virtual sal_Bool SAL_CALL unblock() { return sal_True; }
/**
STL demands this operators if you want to place
IExecutables per value in collections.
Use a default implementation of the comparison-operators
here without a correct semantic.
*/
virtual sal_Bool SAL_CALL operator<(const IExecutable&) const
{
return sal_False;
}
virtual sal_Bool SAL_CALL operator>(const IExecutable&) const
{
return sal_False;
}
virtual sal_Bool SAL_CALL operator==(const IExecutable&) const
{
return sal_True;
}
virtual sal_Bool SAL_CALL operator!=(const IExecutable&) const
{
return sal_False;
}
};
#ifdef _USE_NAMESPACE
}
#endif
#endif // _VOS_EXECABL_HXX_
/*************************************************************************
*
* $RCSfile: istream.hxx,v $
*
* $Revision: 1.1.1.1 $
*
* last change: $Author: hr $ $Date: 2000-09-18 15:18:12 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
*
* - GNU Lesser General Public License Version 2.1
* - Sun Industry Standards Source License Version 1.1
*
* Sun Microsystems Inc., October, 2000
*
* GNU Lesser General Public License Version 2.1
* =============================================
* Copyright 2000 by Sun Microsystems, Inc.
* 901 San Antonio Road, Palo Alto, CA 94303, USA
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License version 2.1, as published by the Free Software Foundation.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*
*
* Sun Industry Standards Source License Version 1.1
* =================================================
* The contents of this file are subject to the Sun Industry Standards
* Source 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.openoffice.org/license.html.
*
* Software provided under this License is provided on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
* WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
* MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
* See the License for the specific provisions governing your rights and
* obligations concerning the Software.
*
* The Initial Developer of the Original Code is: Sun Microsystems, Inc.
*
* Copyright: 2000 by Sun Microsystems, Inc.
*
* All Rights Reserved.
*
* Contributor(s): _______________________________________
*
*
************************************************************************/
#ifndef _VOS_ISTREAM_HXX_
#define _VOS_ISTREAM_HXX_
#ifndef _VOS_TYPES_HXX_
# include <vos/types.hxx>
#endif
#ifdef _USE_NAMESPACE
namespace vos
{
#endif
/** Interface for a stream of data, on that you can read and write blocks of bytes.
*/
class IStream
{
public:
IStream() { }
virtual ~IStream() { }
/** Retrieve n bytes from the stream and copy them into pBuffer.
@param pBuffer receives the read data.
@param n the number of bytes to read. pBuffer must be large enough
to hold the n bytes!
@return the number of read bytes
*/
virtual sal_Int32 SAL_CALL read(void* pBuffer,
sal_uInt32 n) const= 0;
/** Write n bytes from pBuffer to the stream.
@param pBuffer contains the data to be written.
@param n the number of bytes to write.
@return the number of written bytes
*/
virtual sal_Int32 SAL_CALL write(const void* pBuffer,
sal_uInt32 n)= 0;
/** Checks if stream is closed for further reading.
@return True is stream has ended (e.g. was closed).
*/
virtual sal_Bool SAL_CALL isEof() const = 0;
};
#ifdef _USE_NAMESPACE
}
#endif
#endif // _VOS_ISTREAM_HXX_
/*************************************************************************
*
* $RCSfile: macros.hxx,v $
*
* $Revision: 1.1.1.1 $
*
* last change: $Author: hr $ $Date: 2000-09-18 15:18:12 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
*
* - GNU Lesser General Public License Version 2.1
* - Sun Industry Standards Source License Version 1.1
*
* Sun Microsystems Inc., October, 2000
*