亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? streams.h

?? c-smile 一個語法類似與JS 又有點像C++的 編譯器
?? H
字號:
/*
*
* streams.h
*
* Copyright (c) 2001, 2002
* Andrew Fedoniouk - andrew@terra-informatica.org
* Portions: Serge Kuznetsov -  kuznetsov@deeptown.org
*
* See the file "COPYING" for information on usage 
* and redistribution of this file
*
*/
#ifndef __cs_streams_h
#define __cs_streams_h

#include "c-smile.h"
#include "file.h"
#include "sockio.h"

namespace c_smile
{
  const size_t eof = ( size_t ) -1;

  // i/o stream dispatch structure
  class io_stream
  {
  protected:
    string    _name;
  public:

    enum io_status
    {
      read_only   = 2,  // file is read-only
      write_only  = 1,  // file is write-only
      ok          = 0,
      not_opened  = -1, // file was not previously opened
      end_of_file = -2, // read beyond end of file or no space to extend file
      lock_error  = -3, // file is used by another program
      other_error = -4  // other errors
    };

    enum anchor_t
    {
      at_absolute = 0, at_current = 1, at_end = 2
    };

    int             err; // io_status
    string          err_message;

    io_stream  ()
    {
    };

    virtual
      ~io_stream ()
    {
    };

    virtual bool
      at_eof ()
    {
      return err != 0;
    }

    virtual const char *
      name ()
    {
      return _name;
    }

    virtual void
      name ( const char *new_name )
    {
      close ();  _name = new_name;
#ifdef _WIN32
      _name.replace ( "/", "\\" );
#endif
    }

    virtual bool
      open ( const char *mode = 0 )
    {
      return false;
    }

    virtual bool
      is_random  ()
    {
      return false;
    }

    virtual bool
      is_binary ()
    {
      return false;
    }

    virtual bool
      can_read ()
    {
      return false;
    }

    virtual bool
      can_write ()
    {
      return false;
    }

    virtual bool check_read ();
    virtual bool check_write ();

    virtual bool
      close ()
    {
      return false;
    }

    virtual bool
      remove ()
    {
      return false;
    }

    virtual int
      length ()
    {
      return 0;
    }

    virtual void
      length ( int sz )
    {
    }

    virtual bool
      get ( char &c )
    {
      return false;
    }

    virtual bool
      get ( string& s )
    {
      return false;
    }

    virtual bool
      put ( char c )
    {
      return false;
    }

    virtual bool
      put ( char const *d )
    {
      return false;
    }

    virtual bool
      position ( int pos, anchor_t anchor = at_absolute )
    {
      return false;
    }

    virtual size_t
      position ()
    {
      return eof;
    }

    virtual size_t
      size ()
    {
      return 0;
    }

    virtual bool
      size ( size_t i )
    {
      return false;
    }

    virtual bool
      read ( char *d, int size, int* size_read = 0 )
    {
      return false;
    }

    virtual bool
      write ( char const *d, int size, int* size_written = 0 )
    {
      return false;
    }

    bool
      read ( char &c )
    {
      return get ( c );
    }

    bool
      write ( char c )
    {
      return put ( c );
    }

    bool read  ( int &d );
    bool write ( int d );

    bool read  ( double &d );
    bool write ( double d );

    bool read  ( string &d );
    bool write ( const char * );

    bool read  ( bool &d );
    bool write ( bool d );

  };

  class console_stream: public io_stream
  {
  public:
    enum type
    {
      STDIN = 0,
      STDOUT = 1,
      STDERR = 2
    };
    console_stream ( type t );

    virtual
      ~console_stream  ()
    {
      close  ();
    }

    const char * name ();

    virtual bool
      is_random ()
    {
      return false;
    }

    virtual bool
      is_binary ()
    {
      return false;
    }

    virtual bool
      can_read ()
    {
      return _type == STDIN;
    }

    virtual bool
      can_write ()
    {
      return _type != STDIN;
    }

    virtual bool get ( char& c );
    virtual bool get ( string& s );
    virtual bool put ( char c );
    virtual bool put ( char const *d );
  protected:
    FILE *_stream;
    type  _type;
    console_stream  () : _stream ( 0   )
    {
    }

  };

  class file_stream: public io_stream
  {

  public:
    file_stream ();

    virtual ~file_stream ();

    virtual bool
      is_random  ()
    {
      return true;
    }

    virtual bool
      is_binary  ()
    {
      return true;
    }

    virtual bool
      can_read  ()
    {
      return true;
    }

    virtual bool
      can_write  ()
    {
      return true;
    }

    virtual bool close ();
    virtual bool get ( char& c );
    virtual bool put ( char  c );
    virtual bool put ( char const *d );

    virtual bool    position ( int pos, anchor_t anchor = at_absolute );
    virtual size_t  position ();

    virtual size_t  size ();
    virtual bool    size ( size_t sz );

    virtual bool read ( char *d, int size, int* size_read = 0 );
    virtual bool write ( char const *d, int size, int* size_written = 0 );

    virtual bool open ( const char *mode = 0 );

  protected:
    bool io_result ();

    sal::file *_file;
  };

  class in_memory_stream: public io_stream
  {
#define BLOCK_SIZE 0x0FFF

  public:
    in_memory_stream ();

    virtual ~in_memory_stream ();

    virtual bool
      is_random  ()
    {
      return true;
    }

    virtual bool
      is_binary  ()
    {
      return true;
    }

    virtual bool
      can_read  ()
    {
      return true;
    }

    virtual bool
      can_write  ()
    {
      return true;
    }

    virtual bool close ();
    virtual bool open ( const char *mode = 0 );

    virtual bool    position ( int pos, anchor_t anchor = at_absolute );
    virtual size_t  position ();

    virtual size_t
      size  ()
    {
      return _buffer.size  ();
    }

    virtual bool read ( char *d, int size, int* size_read = 0 );
    virtual bool write ( char const *d, int size, int* size_written = 0 );

    virtual const char *  name ();
    virtual void          name ( const char *name );

  protected:
    bool
      size ( size_t size )
    {
      _buffer.size ( size );
      return true;
    }

    size_t                  _pos;
    array<unsigned char>    _buffer;

  };


  class socket_stream: public io_stream
  {

  public:
    socket_stream ( sal::socket_t *socket, bool binary = true );
    virtual ~socket_stream ();

    virtual bool
      is_random  ()
    {
      return false;
    }

    virtual bool
      is_binary  ()
    {
      return _is_binary;
    }

    virtual bool
      can_read  ()
    {
      return true;
    }

    virtual bool
      can_write  ()
    {
      return true;
    }

    virtual bool close ();
    virtual bool open ( const char *mode = 0 );

    virtual bool
      position ( int pos, anchor_t anchor = at_absolute   )
    {
      return false;
    }

    virtual size_t
      position  ()
    {
      return _pos;
    }

    virtual size_t
      size ()
    {
      return ( size_t ) -1;
    }

    virtual bool get ( char &c );
    virtual bool put ( char c );
    virtual bool put ( char const *d );

    virtual bool    read ( char *d, int size, int* size_read = 0 );
    virtual bool    write ( char const *d, int size, int* size_written = 0 );

    virtual const char *  name ();
    virtual void          name ( const char *name );

    virtual bool check_read ();
    virtual bool check_write ();

  protected:

    size_t                    _pos;
    sal::socket_t *           _socket;
    bool                      _is_binary;

  };


  class archive
  {
    io_stream *             _body;
    array<symbol_t>         _symbols;

  public:

    archive () : _body ( 0 )
    {
    }

    ~archive  ()
    {
    }

    void read ( char *buf, size_t size );
    void write ( const char *buf, size_t size );

    symbol_t  map ( symbol_t extern_sym );

    void    write_class_ref ( const CLASS *cls );
    void    read_class_ref ( CLASS * &cls );

    void    read_class ( CLASS *cls );
    void    write_class ( const CLASS *cls );

    void    write_literal ( const VALUE &val );
    void    read_literal ( VALUE &val );

    void    read ( bool& v );
    void    write ( bool v );

    void    read ( int& v );
    void    write ( int v );

    void    read ( symbol_t& v );
    void    write ( symbol_t v );

    void    read ( double & v );
    void    write ( double v );

    void    read ( string & v );
    void    write ( const char *v );

    void    read ( VALUE& val );
    void    write ( const VALUE& val );

    void    read ( DICTIONARY* &dict );
    void    write ( const DICTIONARY * dict );

    void    read ( CLASS* &cls );
    void    write ( const CLASS * cls );

    void    read ( CODE* &c );
    void    write ( const CODE* c );

    void    read_code_ref ( CODE* &c );
    void    write_code_ref ( const CODE* c );

    void    read ( OBJECT* &obj );
    void    write ( const OBJECT * obj );

    void    read ( STRING* &str );
    void    write ( const STRING * str );

    void    read ( ARRAY* &vec );
    void    write ( const ARRAY * obj );

    void    read ( ENTRY& vec );
    void    write ( const ENTRY& vec );

    void    read ( PACKAGE* &pkg );
    void    write ( const PACKAGE * pkg );

    void  save ( io_stream* ios, VALUE& val );    // save val to the ios;
    void  save ( io_stream* ios, PACKAGE *pkg );  // save package to the ios;

    void  save ( io_stream* ios, symbol_t mainpackage );  // all classes in current VM::session

    VALUE load ( io_stream* ios );               // load val from ios;


  };

};

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆精品一区二区| 久久99精品久久只有精品| 久久这里只有精品视频网| 3751色影院一区二区三区| 欧美日韩一区成人| 日韩亚洲国产中文字幕欧美| 日韩欧美国产一区二区三区| 久久伊人中文字幕| 国产日韩欧美不卡| 一区二区三区精品久久久| 亚洲综合清纯丝袜自拍| 午夜伦欧美伦电影理论片| 日韩av中文字幕一区二区三区| 美女一区二区在线观看| 国产精品一级黄| 91高清在线观看| 欧美精品欧美精品系列| 国产亚洲人成网站| 亚洲视频每日更新| 奇米亚洲午夜久久精品| 国产精品一区免费在线观看| 99re这里只有精品视频首页| 在线播放中文字幕一区| 国产日韩欧美在线一区| 一区二区三区在线观看欧美| 欧美bbbbb| 91在线播放网址| 日韩视频国产视频| 国产精品每日更新| 青青草伊人久久| 9久草视频在线视频精品| 69久久99精品久久久久婷婷| 国产精品私人影院| 天天综合网天天综合色| 成人综合在线观看| 欧美精品粉嫩高潮一区二区| 国产精品毛片无遮挡高清| 五月婷婷另类国产| 91搞黄在线观看| 欧美精品一区男女天堂| 亚洲精品成人在线| 国产sm精品调教视频网站| 欧美日韩aaaaaa| 国产精品国产三级国产aⅴ无密码| 亚洲动漫第一页| www.欧美亚洲| 久久久久久日产精品| 国内外成人在线视频| 欧美视频一二三区| 日本一区二区成人| 久久成人羞羞网站| 欧美日韩视频第一区| 亚洲欧美日本韩国| 成人精品一区二区三区四区 | 一区二区三区视频在线看| 激情六月婷婷综合| 日韩欧美一区二区三区在线| 亚洲激情图片一区| 色婷婷综合久久久久中文一区二区| 久久尤物电影视频在线观看| 久久精品国产99久久6| 欧美区在线观看| 天堂精品中文字幕在线| 色婷婷久久99综合精品jk白丝| 国产精品污www在线观看| 国产伦精品一区二区三区视频青涩| 欧美久久久久久久久| 香港成人在线视频| 欧美日韩精品电影| 日韩电影一二三区| 欧美成人艳星乳罩| 精品一区二区三区在线视频| 日韩一区二区三区四区| 麻豆91在线播放| 精品国产91亚洲一区二区三区婷婷| 日本人妖一区二区| 日韩美女视频在线| 国产一区二三区| 国产日韩三级在线| 97久久精品人人做人人爽| 一区二区在线免费观看| 欧美综合在线视频| 日韩高清欧美激情| 欧美大片顶级少妇| 国产不卡在线一区| 亚洲视频一二三| 欧美另类久久久品| 狠狠色狠狠色合久久伊人| 国产蜜臀av在线一区二区三区| 国产成a人亚洲| 亚洲一区在线观看免费观看电影高清| 欧美色图天堂网| 美腿丝袜亚洲色图| 国产精品久久久久三级| 欧美在线观看视频在线| 久久草av在线| 国产精品成人免费| 欧美顶级少妇做爰| 国产黑丝在线一区二区三区| 亚洲欧美另类图片小说| 日韩写真欧美这视频| 成人福利在线看| 日日骚欧美日韩| 国产日本欧美一区二区| 一本色道久久综合亚洲aⅴ蜜桃| 亚洲丶国产丶欧美一区二区三区| 精品国产乱子伦一区| 99久久伊人精品| 久久精品国产澳门| 一区二区三区四区在线| 精品免费国产一区二区三区四区| 成人午夜大片免费观看| 日精品一区二区三区| 日本一区二区三区久久久久久久久不 | **网站欧美大片在线观看| 欧美体内she精高潮| 国产精品一二一区| 三级久久三级久久久| 成人欧美一区二区三区1314| 欧美一级片在线看| 色成年激情久久综合| 国产99一区视频免费| 麻豆精品在线看| 亚洲综合色丁香婷婷六月图片| 国产精品无遮挡| 精品国产91乱码一区二区三区 | 久久福利视频一区二区| 亚洲欧美在线观看| 久久久综合精品| 欧美电影免费观看完整版| 欧美伊人久久大香线蕉综合69 | 国产精品九色蝌蚪自拍| 日韩无一区二区| 欧美日韩精品高清| 在线观看av一区二区| 97se狠狠狠综合亚洲狠狠| 国产成人免费在线视频| 麻豆91免费看| 老司机一区二区| 久久精品国产精品亚洲综合| 丝袜美腿一区二区三区| 丝袜诱惑制服诱惑色一区在线观看| 亚洲欧美国产三级| 最新不卡av在线| 亚洲日穴在线视频| 亚洲色图欧洲色图| 亚洲免费观看高清完整版在线| 18涩涩午夜精品.www| 欧美国产日韩a欧美在线观看| 久久九九影视网| 国产精品视频麻豆| 亚洲视频一区在线| 一区二区高清免费观看影视大全 | 99久久久久久99| 99久久综合精品| av亚洲精华国产精华精华| 不卡一区在线观看| 91农村精品一区二区在线| 91免费看视频| 欧美日韩aaaaa| 日韩精品一区二区在线| 久久久青草青青国产亚洲免观| 国产三区在线成人av| 国产精品美女久久久久久久| 亚洲美女淫视频| 日韩二区在线观看| 韩国女主播成人在线观看| 国产传媒久久文化传媒| a级精品国产片在线观看| 不卡欧美aaaaa| 欧美性一级生活| 欧美一区二区三区在线观看| 久久精品一区二区三区四区| 国产精品久久久久久久久动漫| 亚洲在线视频网站| 激情五月激情综合网| 99久久久精品| 日韩欧美一区二区视频| 国产精品久久国产精麻豆99网站| 亚洲丝袜制服诱惑| 久久精品噜噜噜成人88aⅴ| 成人av综合一区| 91精品国产一区二区三区| 欧美国产1区2区| 青青草97国产精品免费观看无弹窗版| 国产精品一区一区| 欧美巨大另类极品videosbest | 成人爽a毛片一区二区免费| 在线视频你懂得一区二区三区| 日韩女优毛片在线| 亚洲色图一区二区三区| 韩国三级电影一区二区| 一道本成人在线| 国产亚洲婷婷免费| 日本aⅴ亚洲精品中文乱码| 成年人网站91| 精品av综合导航| 五月天丁香久久| 色久优优欧美色久优优| 国产亚洲精品免费|