|  | -- | 
|  | -- Licensed to the Apache Software Foundation (ASF) under one | 
|  | -- or more contributor license agreements. See the NOTICE file | 
|  | -- distributed with this work for additional information | 
|  | -- regarding copyright ownership. The ASF licenses this file | 
|  | -- to you under the Apache License, Version 2.0 (the | 
|  | -- "License"); you may not use this file except in compliance | 
|  | -- with the License. You may obtain a copy of the License at | 
|  | -- | 
|  | --   http://www.apache.org/licenses/LICENSE-2.0 | 
|  | -- | 
|  | -- Unless required by applicable law or agreed to in writing, | 
|  | -- software distributed under the License is distributed on an | 
|  | -- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | 
|  | -- KIND, either express or implied. See the License for the | 
|  | -- specific language governing permissions and limitations | 
|  | -- under the License. | 
|  | -- | 
|  |  | 
|  | require 'Thrift' | 
|  |  | 
|  | TTransportException = TException:new { | 
|  | UNKNOWN             = 0, | 
|  | NOT_OPEN            = 1, | 
|  | ALREADY_OPEN        = 2, | 
|  | TIMED_OUT           = 3, | 
|  | END_OF_FILE         = 4, | 
|  | INVALID_FRAME_SIZE  = 5, | 
|  | INVALID_TRANSFORM   = 6, | 
|  | INVALID_CLIENT_TYPE = 7, | 
|  | errorCode        = 0, | 
|  | __type = 'TTransportException' | 
|  | } | 
|  |  | 
|  | function TTransportException:__errorCodeToString() | 
|  | if self.errorCode == self.NOT_OPEN then | 
|  | return 'Transport not open' | 
|  | elseif self.errorCode == self.ALREADY_OPEN then | 
|  | return 'Transport already open' | 
|  | elseif self.errorCode == self.TIMED_OUT then | 
|  | return 'Transport timed out' | 
|  | elseif self.errorCode == self.END_OF_FILE then | 
|  | return 'End of file' | 
|  | elseif self.errorCode == self.INVALID_FRAME_SIZE then | 
|  | return 'Invalid frame size' | 
|  | elseif self.errorCode == self.INVALID_TRANSFORM then | 
|  | return 'Invalid transform' | 
|  | elseif self.errorCode == self.INVALID_CLIENT_TYPE then | 
|  | return 'Invalid client type' | 
|  | else | 
|  | return 'Default (unknown)' | 
|  | end | 
|  | end | 
|  |  | 
|  | TTransportBase = __TObject:new{ | 
|  | __type = 'TTransportBase' | 
|  | } | 
|  |  | 
|  | function TTransportBase:isOpen() end | 
|  | function TTransportBase:open() end | 
|  | function TTransportBase:close() end | 
|  | function TTransportBase:read(len) end | 
|  | function TTransportBase:readAll(len) | 
|  | local buf, have, chunk = '', 0 | 
|  | while have < len do | 
|  | chunk = self:read(len - have) | 
|  | have = have + string.len(chunk) | 
|  | buf = buf .. chunk | 
|  |  | 
|  | if string.len(chunk) == 0 then | 
|  | terror(TTransportException:new{ | 
|  | errorCode = TTransportException.END_OF_FILE | 
|  | }) | 
|  | end | 
|  | end | 
|  | return buf | 
|  | end | 
|  | function TTransportBase:write(buf) end | 
|  | -- flushOneway is a NOOP for most transport types. | 
|  | function TTransportBase:flushOneway() end | 
|  | function TTransportBase:flush() end | 
|  |  | 
|  | TServerTransportBase = __TObject:new{ | 
|  | __type = 'TServerTransportBase' | 
|  | } | 
|  | function TServerTransportBase:listen() end | 
|  | function TServerTransportBase:accept() end | 
|  | function TServerTransportBase:close() end | 
|  |  | 
|  | TTransportFactoryBase = __TObject:new{ | 
|  | __type = 'TTransportFactoryBase' | 
|  | } | 
|  | function TTransportFactoryBase:getTransport(trans) | 
|  | return trans | 
|  | end |