home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 8 / IOPROG_8.ISO / soft / sdkplnet / mac / macnpsdk.sit / PluginSDK / Examples / PPViewText / Source / CPlainTextStream.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  1996-07-09  |  1.3 KB  |  55 lines

  1. #include "CPlainTextStream.h"
  2.  
  3. #include <string.h>
  4.  
  5. const char*    CPlainTextStream::kPlainTextType = "text/plain";
  6.  
  7. CPlainTextStream::CPlainTextStream( NPMIMEType type, NPStream* stream, NPBool seekable, uint16 stype, LTextEdit* inDestination)
  8. :    CNetscapeStream( type, stream, seekable, stype ),
  9.     mDestination( inDestination ),
  10.     mStream( new LHandleStream ),
  11.     mChunkCount( 0 )
  12. {
  13. }
  14.  
  15. CPlainTextStream::~CPlainTextStream()
  16. {
  17.     delete mStream;
  18. }
  19.  
  20. //======================================================================
  21. //        CPlainTextStream::Write()
  22. //======================================================================
  23. long        
  24. CPlainTextStream::Write( int32 offset, int32 len, void *buffer )
  25. {
  26.     Int32 retLength = mStream->WriteData( buffer, len );
  27.     mChunkCount++;
  28.     
  29.     if( mDestination && ( mChunkCount <= 1 ) )
  30.         mDestination->SetTextHandle( mStream->GetDataHandle() );
  31.         
  32.     return retLength;
  33. }
  34.  
  35. //======================================================================
  36. //        CPlainTextStream::Finish()
  37. //======================================================================
  38. NPError        
  39. CPlainTextStream::Finish( NPError reason )
  40. {
  41.     if( mDestination )
  42.         mDestination->SetTextHandle( mStream->GetDataHandle() );
  43.         
  44.     return NPERR_NO_ERROR;
  45. }
  46.  
  47.  
  48. NPBool
  49. CPlainTextStream::IsPlainTextStream( NPStream* stream )
  50. {
  51.     if( strcmp( stream->url, kPlainTextType ) == 0 )
  52.         return true;
  53.     return false;
  54. }
  55.