# BufferedIOBase has not public constructor
    #   so, BufferedIOBase is not a base of IUserBufferedIOBase
    def detach(self):
        return self.get_underlying_io().detach()
    def read(self, size=-1):
        return self.get_underlying_io().read(size)
    def read1(self, size=-1):
        return self.get_underlying_io().read1(size)
    def write(self, bs):
        return self.get_underlying_io().write(bs)

    def readinto(self, bs):
        return self.get_underlying_io().readinto(bs)
    def readinto1(self, bs):
        return self.get_underlying_io().readinto1(bs)
BufferedIOBase.register(IUserBufferedIOBase)


class UserBufferedIOBase(UserIOBase, IUserBufferedIOBase):
    pass


class IUserBufferedIOBase__aspect(IUserBufferedIOBase, IUserIOBase__aspect):
    def read(self, size=-1):
        self.before_io()
        try:
            return self.get_underlying_io().read(size)
        finally:
            self.after_io()
    def read1(self, size=-1):
        self.before_io()