+++ /dev/null
-"""Buffers allocated on the stack."""\r
-\r
-\r
-from bgenBuffer import FixedInputBufferType, FixedOutputBufferType\r
-\r
-\r
-class StackOutputBufferType(FixedOutputBufferType):\r
-\r
- """Fixed output buffer allocated on the stack -- passed as (buffer, size).\r
-\r
- Instantiate with the buffer size as parameter.\r
- """\r
-\r
- def passOutput(self, name):\r
- return "%s__out__, %s" % (name, self.size)\r
-\r
-\r
-class VarStackOutputBufferType(StackOutputBufferType):\r
-\r
- """Output buffer allocated on the stack -- passed as (buffer, &size).\r
-\r
- Instantiate with the buffer size as parameter.\r
- """\r
-\r
- def getSizeDeclarations(self, name):\r
- return []\r
-\r
- def getAuxDeclarations(self, name):\r
- return ["int %s__len__ = %s" % (name, self.size)]\r
-\r
- def passOutput(self, name):\r
- return "%s__out__, &%s__len__" % (name, name)\r
-\r
- def mkvalueArgs(self, name):\r
- return "%s__out__, (int)%s__len__" % (name, name)\r
-\r
-\r
-class VarVarStackOutputBufferType(VarStackOutputBufferType):\r
-\r
- """Output buffer allocated on the stack -- passed as (buffer, size, &size).\r
-\r
- Instantiate with the buffer size as parameter.\r
- """\r
-\r
- def passOutput(self, name):\r
- return "%s__out__, %s__len__, &%s__len__" % (name, name, name)\r
-\r
-\r
-class ReturnVarStackOutputBufferType(VarStackOutputBufferType):\r
-\r
- """Output buffer allocated on the stack -- passed as (buffer, size) -> size.\r
-\r
- Instantiate with the buffer size as parameter.\r
- The function's return value is the size.\r
- (XXX Should have a way to suppress returning it separately, too.)\r
- """\r
-\r
- def passOutput(self, name):\r
- return "%s__out__, %s__len__" % (name, name)\r
-\r
- def mkvalueArgs(self, name):\r
- return "%s__out__, (int)_rv" % name\r