• 结构体

    结构体

    io 包中定义了下面几个结构体:

    • ByteReader
    • ByteWriter
    • RawReader
    • Reader
    • Writer
      它们之间的关系是:
    1. +---------------------------------------------------------+
    2. | _ _ _ _ |
    3. | | | | | (_) | |
    4. | | | | |_ __ _| |_ ___ _ __ |
    5. | | |/\| | '__| | __/ _ \ '__| |
    6. | \ /\ / | | | || __/ | |
    7. | \/ \/|_| |_|\__\___|_| |
    8. | |
    9. | +-----------------------------------------------------+ |
    10. | | ______ _ _ _ _ _ | |
    11. | | | ___ \ | | | | | | (_) | | |
    12. | | | |_/ /_ _| |_ ___ | | | |_ __ _| |_ ___ _ __ | |
    13. | | | ___ \ | | | __/ _ \| |/\| | '__| | __/ _ \ '__| | |
    14. | | | |_/ / |_| | || __/\ /\ / | | | || __/ | | |
    15. | | \____/ \__, |\__\___| \/ \/|_| |_|\__\___|_| | |
    16. | | __/ | | |
    17. | | |___/ | |
    18. | +-----------------------------------------------------+ |
    19. +---------------------------------------------------------+
    1. +-------------------------------------------------------------+
    2. | ______ _ |
    3. | | ___ \ | | |
    4. | | |_/ /___ __ _ __| | ___ _ __ |
    5. | | // _ \/ _` |/ _` |/ _ \ '__| |
    6. | | |\ \ __/ (_| | (_| | __/ | |
    7. | \_| \_\___|\__,_|\__,_|\___|_| |
    8. | |
    9. | +---------------------------------------------------------+ |
    10. | | ______ ______ _ | |
    11. | | | ___ \ | ___ \ | | | |
    12. | | | |_/ /__ ___ _| |_/ /___ __ _ __| | ___ _ __ | |
    13. | | | // _` \ \ /\ / / // _ \/ _` |/ _` |/ _ \ '__| | |
    14. | | | |\ \ (_| |\ V V /| |\ \ __/ (_| | (_| | __/ | | |
    15. | | \_| \_\__,_| \_/\_/ \_| \_\___|\__,_|\__,_|\___|_| | |
    16. | | +-----------------------------------------------------+ | |
    17. | | |______ _ ______ _ | | |
    18. | | || ___ \ | | | ___ \ | | | | |
    19. | | || |_/ /_ _| |_ ___| |_/ /___ __ _ __| | ___ _ __ | | |
    20. | | || ___ \ | | | __/ _ \ // _ \/ _` |/ _` |/ _ \ '__|| | |
    21. | | || |_/ / |_| | || __/ |\ \ __/ (_| | (_| | __/ | | | |
    22. | | |\____/ \__, |\__\___\_| \_\___|\__,_|\__,_|\___|_| | | |
    23. | | | __/ | | | |
    24. | | | |___/ | | |
    25. | | +-----------------------------------------------------+ | |
    26. | +---------------------------------------------------------+ |
    27. +-------------------------------------------------------------+

    其中 ByteReaderByteWriter 是用于对字节序列的读写,它本身跟 hprose 序列化无关,可以单独作为字节序列读写的工具来用,因为是读写分离的,所以性能上要比 bytes 包下面的那几个用于对字节序列化读写的结构体高效一点点,但是功能也少一些。

    RawReader 用于读取 hprose 的原始数据,用户通常不需要使用该结构体。

    WriterReader 用于对数据进行 hprose 的细粒度序列化和反序列化操作。

    • ByteWriter
    • Reader
    • ByteReader
    • Writer