'Autogenerated by Thrift

DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
'!

Object subclass: #Hadoopfs
  instanceVariableNames: ''
  classVariableNames: ''
  poolDictionaries: ''
  category: 'Generated-Hadoopfs'!

Hadoopfs class
	instanceVariableNames: 'constants enums'!

!Hadoopfs class methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
enums: anObject
    enums := anObject! !

!Hadoopfs class methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
enums
    ^ enums! !

!Hadoopfs class methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
constants: anObject
    constants := anObject! !

!Hadoopfs class methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
constants
    ^ constants! !

Hadoopfs enums: Dictionary new!
Hadoopfs constants: Dictionary new!

Object subclass: #ThriftHandle
	instanceVariableNames: 'id'
	classVariableNames: ''
	poolDictionaries: ''
	category: 'Generated-Hadoopfs'!

!ThriftHandle methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
id: anI64
    id := anI64! !

!ThriftHandle methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
id
    ^ id! !


Object subclass: #Pathname
	instanceVariableNames: 'pathname'
	classVariableNames: ''
	poolDictionaries: ''
	category: 'Generated-Hadoopfs'!

!Pathname methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
pathname: aString
    pathname := aString! !

!Pathname methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
pathname
    ^ pathname! !


Object subclass: #FileStatus
	instanceVariableNames: 'path length isdir blockReplication blocksize modificationTime permission owner group'
	classVariableNames: ''
	poolDictionaries: ''
	category: 'Generated-Hadoopfs'!

!FileStatus methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
path: aString
    path := aString! !

!FileStatus methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
path
    ^ path! !

!FileStatus methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
length: anI64
    length := anI64! !

!FileStatus methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
length
    ^ length! !

!FileStatus methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
isdir: aBool
    isdir := aBool! !

!FileStatus methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
isdir
    ^ isdir! !

!FileStatus methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
blockReplication: anI16
    blockReplication := anI16! !

!FileStatus methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
blockReplication
    ^ blockReplication! !

!FileStatus methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
blocksize: anI64
    blocksize := anI64! !

!FileStatus methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
blocksize
    ^ blocksize! !

!FileStatus methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
modificationTime: anI64
    modificationTime := anI64! !

!FileStatus methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
modificationTime
    ^ modificationTime! !

!FileStatus methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
permission: aString
    permission := aString! !

!FileStatus methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
permission
    ^ permission! !

!FileStatus methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
owner: aString
    owner := aString! !

!FileStatus methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
owner
    ^ owner! !

!FileStatus methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
group: aString
    group := aString! !

!FileStatus methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
group
    ^ group! !


Object subclass: #BlockLocation
	instanceVariableNames: 'hosts names offset length'
	classVariableNames: ''
	poolDictionaries: ''
	category: 'Generated-Hadoopfs'!

!BlockLocation methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
hosts: a
    hosts := a! !

!BlockLocation methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
hosts
    ^ hosts! !

!BlockLocation methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
names: a
    names := a! !

!BlockLocation methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
names
    ^ names! !

!BlockLocation methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
offset: anI64
    offset := anI64! !

!BlockLocation methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
offset
    ^ offset! !

!BlockLocation methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
length: anI64
    length := anI64! !

!BlockLocation methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
length
    ^ length! !


Error subclass: #MalformedInputException
	instanceVariableNames: 'message'
	classVariableNames: ''
	poolDictionaries: ''
	category: 'Generated-Hadoopfs'!

!MalformedInputException methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
message: aString
    message := aString! !

!MalformedInputException methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
message
    ^ message! !


Error subclass: #ThriftIOException
	instanceVariableNames: 'message'
	classVariableNames: ''
	poolDictionaries: ''
	category: 'Generated-Hadoopfs'!

!ThriftIOException methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
message: aString
    message := aString! !

!ThriftIOException methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
message
    ^ message! !


TClient subclass: #ThriftHadoopFileSystemClient
	instanceVariableNames: ''
	classVariableNames: ''
	poolDictionaries: ''
	category: 'Generated-Hadoopfs'!

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
setInactivityTimeoutPeriodPeriodInSeconds: periodInSeconds
    "periodInSeconds: i64"
    self sendSetInactivityTimeoutPeriodPeriodInSeconds: periodInSeconds.
    ^ self recvSetInactivityTimeoutPeriod success 
! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
sendSetInactivityTimeoutPeriodPeriodInSeconds: periodInSeconds
    oprot writeMessageBegin:
      (TCallMessage new
        name: 'setInactivityTimeoutPeriod'; 
        seqid: self nextSeqid).
    oprot writeStructBegin: (TStruct new name: 'SetInactivityTimeoutPeriod_args').
    oprot writeFieldBegin: (TField new name: 'periodInSeconds'; type: TType i64; id: 1).
    iprot writeI64: periodInSeconds asInteger.
    oprot writeFieldEnd.
    oprot writeFieldStop; writeStructEnd; writeMessageEnd.
    oprot transport flush! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
recvSetInactivityTimeoutPeriod
    | f msg res | 
    msg := oprot readMessageBegin.
    self validateRemoteMessage: msg.
    res := [|temp1 temp0|
      temp0 := TResult new.
      iprot readStructBegin.
      [temp1 := iprot readFieldBegin.
      temp1 type = TType stop] whileFalse: [|temp2|
        temp1 id = 0 ifTrue: [
          temp2 := true.
          temp0 success: iprot readVoid].
        temp2 ifNil: [iprot skip: temp1 type]].
      oprot readStructEnd.
      temp0] value.
    oprot readMessageEnd.
    oprot transport flush.
    res exception ifNotNil: [res exception signal].
    ^ res! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
shutdownStatus: status
    "status: i32"
    self sendShutdownStatus: status.
    ^ self recvShutdown success 
! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
sendShutdownStatus: status
    oprot writeMessageBegin:
      (TCallMessage new
        name: 'shutdown'; 
        seqid: self nextSeqid).
    oprot writeStructBegin: (TStruct new name: 'Shutdown_args').
    oprot writeFieldBegin: (TField new name: 'status'; type: TType i32; id: 1).
    iprot writeI32: status asInteger.
    oprot writeFieldEnd.
    oprot writeFieldStop; writeStructEnd; writeMessageEnd.
    oprot transport flush! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
recvShutdown
    | f msg res | 
    msg := oprot readMessageBegin.
    self validateRemoteMessage: msg.
    res := [|temp4 temp3|
      temp3 := TResult new.
      iprot readStructBegin.
      [temp4 := iprot readFieldBegin.
      temp4 type = TType stop] whileFalse: [|temp5|
        temp4 id = 0 ifTrue: [
          temp5 := true.
          temp3 success: iprot readVoid].
        temp5 ifNil: [iprot skip: temp4 type]].
      oprot readStructEnd.
      temp3] value.
    oprot readMessageEnd.
    oprot transport flush.
    res exception ifNotNil: [res exception signal].
    ^ res! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
createPath: path
    "path: Pathname"
    self sendCreatePath: path.
    ^ self recvCreate success 
! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
sendCreatePath: path
    oprot writeMessageBegin:
      (TCallMessage new
        name: 'create'; 
        seqid: self nextSeqid).
    oprot writeStructBegin: (TStruct new name: 'Create_args').
    oprot writeFieldBegin: (TField new name: 'path'; type: TType struct; id: 1).
    [oprot writeStructBegin: (TStruct new name: 'Pathname').
      oprot writeFieldBegin: (TField new name: 'pathname'; type: TType string; id: -1).
      iprot writeString: path pathname.
      oprot writeFieldEnd.
      oprot writeFieldStop; writeStructEnd] value.
    oprot writeFieldEnd.
    oprot writeFieldStop; writeStructEnd; writeMessageEnd.
    oprot transport flush! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
recvCreate
    | f msg res | 
    msg := oprot readMessageBegin.
    self validateRemoteMessage: msg.
    res := [|temp7 temp6|
      temp6 := TResult new.
      iprot readStructBegin.
      [temp7 := iprot readFieldBegin.
      temp7 type = TType stop] whileFalse: [|temp8|
        temp7 id = 0 ifTrue: [
          temp8 := true.
          temp6 success: [|temp10 temp9|
            temp9 := ThriftHandle new.
            iprot readStructBegin.
            [temp10 := iprot readFieldBegin.
            temp10 type = TType stop] whileFalse: [|temp11|
              temp10 id = -1 ifTrue: [
                temp11 := true.
                temp9 id: iprot readI64].
              temp11 ifNil: [iprot skip: temp10 type]].
            oprot readStructEnd.
            temp9] value].
        temp7 id = 1 ifTrue: [
          temp8 := true.
          temp6 exception: [|temp13 temp12|
            temp12 := ThriftIOException new.
            iprot readStructBegin.
            [temp13 := iprot readFieldBegin.
            temp13 type = TType stop] whileFalse: [|temp14|
              temp13 id = -1 ifTrue: [
                temp14 := true.
                temp12 message: iprot readString].
              temp14 ifNil: [iprot skip: temp13 type]].
            oprot readStructEnd.
            temp12] value].
        temp8 ifNil: [iprot skip: temp7 type]].
      oprot readStructEnd.
      temp6] value.
    oprot readMessageEnd.
    oprot transport flush.
    res exception ifNotNil: [res exception signal].
    ^ res! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
createFilePath: path mode: mode overwrite: overwrite bufferSize: bufferSize block_replication: block_replication blocksize: blocksize
    "path: Pathname, mode: i16, overwrite: bool, bufferSize: i32, block_replication: i16, blocksize: i64"
    self sendCreateFilePath: path mode: mode overwrite: overwrite bufferSize: bufferSize block_replication: block_replication blocksize: blocksize.
    ^ self recvCreateFile success 
! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
sendCreateFilePath: path mode: mode overwrite: overwrite bufferSize: bufferSize block_replication: block_replication blocksize: blocksize
    oprot writeMessageBegin:
      (TCallMessage new
        name: 'createFile'; 
        seqid: self nextSeqid).
    oprot writeStructBegin: (TStruct new name: 'CreateFile_args').
    oprot writeFieldBegin: (TField new name: 'path'; type: TType struct; id: 1).
    [oprot writeStructBegin: (TStruct new name: 'Pathname').
      oprot writeFieldBegin: (TField new name: 'pathname'; type: TType string; id: -1).
      iprot writeString: path pathname.
      oprot writeFieldEnd.
      oprot writeFieldStop; writeStructEnd] value.
    oprot writeFieldEnd.
    oprot writeFieldBegin: (TField new name: 'mode'; type: TType i16; id: 2).
    iprot writeI16: mode asInteger.
    oprot writeFieldEnd.
    oprot writeFieldBegin: (TField new name: 'overwrite'; type: TType bool; id: 3).
    iprot writeBool: overwrite.
    oprot writeFieldEnd.
    oprot writeFieldBegin: (TField new name: 'bufferSize'; type: TType i32; id: 4).
    iprot writeI32: bufferSize asInteger.
    oprot writeFieldEnd.
    oprot writeFieldBegin: (TField new name: 'block_replication'; type: TType i16; id: 5).
    iprot writeI16: block_replication asInteger.
    oprot writeFieldEnd.
    oprot writeFieldBegin: (TField new name: 'blocksize'; type: TType i64; id: 6).
    iprot writeI64: blocksize asInteger.
    oprot writeFieldEnd.
    oprot writeFieldStop; writeStructEnd; writeMessageEnd.
    oprot transport flush! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
recvCreateFile
    | f msg res | 
    msg := oprot readMessageBegin.
    self validateRemoteMessage: msg.
    res := [|temp16 temp15|
      temp15 := TResult new.
      iprot readStructBegin.
      [temp16 := iprot readFieldBegin.
      temp16 type = TType stop] whileFalse: [|temp17|
        temp16 id = 0 ifTrue: [
          temp17 := true.
          temp15 success: [|temp19 temp18|
            temp18 := ThriftHandle new.
            iprot readStructBegin.
            [temp19 := iprot readFieldBegin.
            temp19 type = TType stop] whileFalse: [|temp20|
              temp19 id = -1 ifTrue: [
                temp20 := true.
                temp18 id: iprot readI64].
              temp20 ifNil: [iprot skip: temp19 type]].
            oprot readStructEnd.
            temp18] value].
        temp16 id = 1 ifTrue: [
          temp17 := true.
          temp15 exception: [|temp22 temp21|
            temp21 := ThriftIOException new.
            iprot readStructBegin.
            [temp22 := iprot readFieldBegin.
            temp22 type = TType stop] whileFalse: [|temp23|
              temp22 id = -1 ifTrue: [
                temp23 := true.
                temp21 message: iprot readString].
              temp23 ifNil: [iprot skip: temp22 type]].
            oprot readStructEnd.
            temp21] value].
        temp17 ifNil: [iprot skip: temp16 type]].
      oprot readStructEnd.
      temp15] value.
    oprot readMessageEnd.
    oprot transport flush.
    res exception ifNotNil: [res exception signal].
    ^ res! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
openPath: path
    "path: Pathname"
    self sendOpenPath: path.
    ^ self recvOpen success 
! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
sendOpenPath: path
    oprot writeMessageBegin:
      (TCallMessage new
        name: 'open'; 
        seqid: self nextSeqid).
    oprot writeStructBegin: (TStruct new name: 'Open_args').
    oprot writeFieldBegin: (TField new name: 'path'; type: TType struct; id: 1).
    [oprot writeStructBegin: (TStruct new name: 'Pathname').
      oprot writeFieldBegin: (TField new name: 'pathname'; type: TType string; id: -1).
      iprot writeString: path pathname.
      oprot writeFieldEnd.
      oprot writeFieldStop; writeStructEnd] value.
    oprot writeFieldEnd.
    oprot writeFieldStop; writeStructEnd; writeMessageEnd.
    oprot transport flush! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
recvOpen
    | f msg res | 
    msg := oprot readMessageBegin.
    self validateRemoteMessage: msg.
    res := [|temp25 temp24|
      temp24 := TResult new.
      iprot readStructBegin.
      [temp25 := iprot readFieldBegin.
      temp25 type = TType stop] whileFalse: [|temp26|
        temp25 id = 0 ifTrue: [
          temp26 := true.
          temp24 success: [|temp28 temp27|
            temp27 := ThriftHandle new.
            iprot readStructBegin.
            [temp28 := iprot readFieldBegin.
            temp28 type = TType stop] whileFalse: [|temp29|
              temp28 id = -1 ifTrue: [
                temp29 := true.
                temp27 id: iprot readI64].
              temp29 ifNil: [iprot skip: temp28 type]].
            oprot readStructEnd.
            temp27] value].
        temp25 id = 1 ifTrue: [
          temp26 := true.
          temp24 exception: [|temp31 temp30|
            temp30 := ThriftIOException new.
            iprot readStructBegin.
            [temp31 := iprot readFieldBegin.
            temp31 type = TType stop] whileFalse: [|temp32|
              temp31 id = -1 ifTrue: [
                temp32 := true.
                temp30 message: iprot readString].
              temp32 ifNil: [iprot skip: temp31 type]].
            oprot readStructEnd.
            temp30] value].
        temp26 ifNil: [iprot skip: temp25 type]].
      oprot readStructEnd.
      temp24] value.
    oprot readMessageEnd.
    oprot transport flush.
    res exception ifNotNil: [res exception signal].
    ^ res! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
appendPath: path
    "path: Pathname"
    self sendAppendPath: path.
    ^ self recvAppend success 
! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
sendAppendPath: path
    oprot writeMessageBegin:
      (TCallMessage new
        name: 'append'; 
        seqid: self nextSeqid).
    oprot writeStructBegin: (TStruct new name: 'Append_args').
    oprot writeFieldBegin: (TField new name: 'path'; type: TType struct; id: 1).
    [oprot writeStructBegin: (TStruct new name: 'Pathname').
      oprot writeFieldBegin: (TField new name: 'pathname'; type: TType string; id: -1).
      iprot writeString: path pathname.
      oprot writeFieldEnd.
      oprot writeFieldStop; writeStructEnd] value.
    oprot writeFieldEnd.
    oprot writeFieldStop; writeStructEnd; writeMessageEnd.
    oprot transport flush! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
recvAppend
    | f msg res | 
    msg := oprot readMessageBegin.
    self validateRemoteMessage: msg.
    res := [|temp34 temp33|
      temp33 := TResult new.
      iprot readStructBegin.
      [temp34 := iprot readFieldBegin.
      temp34 type = TType stop] whileFalse: [|temp35|
        temp34 id = 0 ifTrue: [
          temp35 := true.
          temp33 success: [|temp37 temp36|
            temp36 := ThriftHandle new.
            iprot readStructBegin.
            [temp37 := iprot readFieldBegin.
            temp37 type = TType stop] whileFalse: [|temp38|
              temp37 id = -1 ifTrue: [
                temp38 := true.
                temp36 id: iprot readI64].
              temp38 ifNil: [iprot skip: temp37 type]].
            oprot readStructEnd.
            temp36] value].
        temp34 id = 1 ifTrue: [
          temp35 := true.
          temp33 exception: [|temp40 temp39|
            temp39 := ThriftIOException new.
            iprot readStructBegin.
            [temp40 := iprot readFieldBegin.
            temp40 type = TType stop] whileFalse: [|temp41|
              temp40 id = -1 ifTrue: [
                temp41 := true.
                temp39 message: iprot readString].
              temp41 ifNil: [iprot skip: temp40 type]].
            oprot readStructEnd.
            temp39] value].
        temp35 ifNil: [iprot skip: temp34 type]].
      oprot readStructEnd.
      temp33] value.
    oprot readMessageEnd.
    oprot transport flush.
    res exception ifNotNil: [res exception signal].
    ^ res! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
writeHandle: handle data: data
    "handle: ThriftHandle, data: string"
    self sendWriteHandle: handle data: data.
    ^ self recvWrite success 
! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
sendWriteHandle: handle data: data
    oprot writeMessageBegin:
      (TCallMessage new
        name: 'write'; 
        seqid: self nextSeqid).
    oprot writeStructBegin: (TStruct new name: 'Write_args').
    oprot writeFieldBegin: (TField new name: 'handle'; type: TType struct; id: 1).
    [oprot writeStructBegin: (TStruct new name: 'ThriftHandle').
      oprot writeFieldBegin: (TField new name: 'id'; type: TType i64; id: -1).
      iprot writeI64: handle id asInteger.
      oprot writeFieldEnd.
      oprot writeFieldStop; writeStructEnd] value.
    oprot writeFieldEnd.
    oprot writeFieldBegin: (TField new name: 'data'; type: TType string; id: -1).
    iprot writeString: data.
    oprot writeFieldEnd.
    oprot writeFieldStop; writeStructEnd; writeMessageEnd.
    oprot transport flush! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
recvWrite
    | f msg res | 
    msg := oprot readMessageBegin.
    self validateRemoteMessage: msg.
    res := [|temp43 temp42|
      temp42 := TResult new.
      iprot readStructBegin.
      [temp43 := iprot readFieldBegin.
      temp43 type = TType stop] whileFalse: [|temp44|
        temp43 id = 0 ifTrue: [
          temp44 := true.
          temp42 success: iprot readBool].
        temp43 id = 1 ifTrue: [
          temp44 := true.
          temp42 exception: [|temp46 temp45|
            temp45 := ThriftIOException new.
            iprot readStructBegin.
            [temp46 := iprot readFieldBegin.
            temp46 type = TType stop] whileFalse: [|temp47|
              temp46 id = -1 ifTrue: [
                temp47 := true.
                temp45 message: iprot readString].
              temp47 ifNil: [iprot skip: temp46 type]].
            oprot readStructEnd.
            temp45] value].
        temp44 ifNil: [iprot skip: temp43 type]].
      oprot readStructEnd.
      temp42] value.
    oprot readMessageEnd.
    oprot transport flush.
    res exception ifNotNil: [res exception signal].
    ^ res! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
readHandle: handle offset: offset size: size
    "handle: ThriftHandle, offset: i64, size: i32"
    self sendReadHandle: handle offset: offset size: size.
    ^ self recvRead success 
! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
sendReadHandle: handle offset: offset size: size
    oprot writeMessageBegin:
      (TCallMessage new
        name: 'read'; 
        seqid: self nextSeqid).
    oprot writeStructBegin: (TStruct new name: 'Read_args').
    oprot writeFieldBegin: (TField new name: 'handle'; type: TType struct; id: 1).
    [oprot writeStructBegin: (TStruct new name: 'ThriftHandle').
      oprot writeFieldBegin: (TField new name: 'id'; type: TType i64; id: -1).
      iprot writeI64: handle id asInteger.
      oprot writeFieldEnd.
      oprot writeFieldStop; writeStructEnd] value.
    oprot writeFieldEnd.
    oprot writeFieldBegin: (TField new name: 'offset'; type: TType i64; id: -1).
    iprot writeI64: offset asInteger.
    oprot writeFieldEnd.
    oprot writeFieldBegin: (TField new name: 'size'; type: TType i32; id: -2).
    iprot writeI32: size asInteger.
    oprot writeFieldEnd.
    oprot writeFieldStop; writeStructEnd; writeMessageEnd.
    oprot transport flush! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
recvRead
    | f msg res | 
    msg := oprot readMessageBegin.
    self validateRemoteMessage: msg.
    res := [|temp49 temp48|
      temp48 := TResult new.
      iprot readStructBegin.
      [temp49 := iprot readFieldBegin.
      temp49 type = TType stop] whileFalse: [|temp50|
        temp49 id = 0 ifTrue: [
          temp50 := true.
          temp48 success: iprot readString].
        temp49 id = 1 ifTrue: [
          temp50 := true.
          temp48 exception: [|temp52 temp51|
            temp51 := ThriftIOException new.
            iprot readStructBegin.
            [temp52 := iprot readFieldBegin.
            temp52 type = TType stop] whileFalse: [|temp53|
              temp52 id = -1 ifTrue: [
                temp53 := true.
                temp51 message: iprot readString].
              temp53 ifNil: [iprot skip: temp52 type]].
            oprot readStructEnd.
            temp51] value].
        temp50 ifNil: [iprot skip: temp49 type]].
      oprot readStructEnd.
      temp48] value.
    oprot readMessageEnd.
    oprot transport flush.
    res exception ifNotNil: [res exception signal].
    ^ res! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
closeOut: out
    "out: ThriftHandle"
    self sendCloseOut: out.
    ^ self recvClose success 
! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
sendCloseOut: out
    oprot writeMessageBegin:
      (TCallMessage new
        name: 'close'; 
        seqid: self nextSeqid).
    oprot writeStructBegin: (TStruct new name: 'Close_args').
    oprot writeFieldBegin: (TField new name: 'out'; type: TType struct; id: 1).
    [oprot writeStructBegin: (TStruct new name: 'ThriftHandle').
      oprot writeFieldBegin: (TField new name: 'id'; type: TType i64; id: -1).
      iprot writeI64: out id asInteger.
      oprot writeFieldEnd.
      oprot writeFieldStop; writeStructEnd] value.
    oprot writeFieldEnd.
    oprot writeFieldStop; writeStructEnd; writeMessageEnd.
    oprot transport flush! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
recvClose
    | f msg res | 
    msg := oprot readMessageBegin.
    self validateRemoteMessage: msg.
    res := [|temp55 temp54|
      temp54 := TResult new.
      iprot readStructBegin.
      [temp55 := iprot readFieldBegin.
      temp55 type = TType stop] whileFalse: [|temp56|
        temp55 id = 0 ifTrue: [
          temp56 := true.
          temp54 success: iprot readBool].
        temp55 id = 1 ifTrue: [
          temp56 := true.
          temp54 exception: [|temp58 temp57|
            temp57 := ThriftIOException new.
            iprot readStructBegin.
            [temp58 := iprot readFieldBegin.
            temp58 type = TType stop] whileFalse: [|temp59|
              temp58 id = -1 ifTrue: [
                temp59 := true.
                temp57 message: iprot readString].
              temp59 ifNil: [iprot skip: temp58 type]].
            oprot readStructEnd.
            temp57] value].
        temp56 ifNil: [iprot skip: temp55 type]].
      oprot readStructEnd.
      temp54] value.
    oprot readMessageEnd.
    oprot transport flush.
    res exception ifNotNil: [res exception signal].
    ^ res! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
rmPath: path recursive: recursive
    "path: Pathname, recursive: bool"
    self sendRmPath: path recursive: recursive.
    ^ self recvRm success 
! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
sendRmPath: path recursive: recursive
    oprot writeMessageBegin:
      (TCallMessage new
        name: 'rm'; 
        seqid: self nextSeqid).
    oprot writeStructBegin: (TStruct new name: 'Rm_args').
    oprot writeFieldBegin: (TField new name: 'path'; type: TType struct; id: 1).
    [oprot writeStructBegin: (TStruct new name: 'Pathname').
      oprot writeFieldBegin: (TField new name: 'pathname'; type: TType string; id: -1).
      iprot writeString: path pathname.
      oprot writeFieldEnd.
      oprot writeFieldStop; writeStructEnd] value.
    oprot writeFieldEnd.
    oprot writeFieldBegin: (TField new name: 'recursive'; type: TType bool; id: 2).
    iprot writeBool: recursive.
    oprot writeFieldEnd.
    oprot writeFieldStop; writeStructEnd; writeMessageEnd.
    oprot transport flush! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
recvRm
    | f msg res | 
    msg := oprot readMessageBegin.
    self validateRemoteMessage: msg.
    res := [|temp61 temp60|
      temp60 := TResult new.
      iprot readStructBegin.
      [temp61 := iprot readFieldBegin.
      temp61 type = TType stop] whileFalse: [|temp62|
        temp61 id = 0 ifTrue: [
          temp62 := true.
          temp60 success: iprot readBool].
        temp61 id = 1 ifTrue: [
          temp62 := true.
          temp60 exception: [|temp64 temp63|
            temp63 := ThriftIOException new.
            iprot readStructBegin.
            [temp64 := iprot readFieldBegin.
            temp64 type = TType stop] whileFalse: [|temp65|
              temp64 id = -1 ifTrue: [
                temp65 := true.
                temp63 message: iprot readString].
              temp65 ifNil: [iprot skip: temp64 type]].
            oprot readStructEnd.
            temp63] value].
        temp62 ifNil: [iprot skip: temp61 type]].
      oprot readStructEnd.
      temp60] value.
    oprot readMessageEnd.
    oprot transport flush.
    res exception ifNotNil: [res exception signal].
    ^ res! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
renamePath: path dest: dest
    "path: Pathname, dest: Pathname"
    self sendRenamePath: path dest: dest.
    ^ self recvRename success 
! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
sendRenamePath: path dest: dest
    oprot writeMessageBegin:
      (TCallMessage new
        name: 'rename'; 
        seqid: self nextSeqid).
    oprot writeStructBegin: (TStruct new name: 'Rename_args').
    oprot writeFieldBegin: (TField new name: 'path'; type: TType struct; id: 1).
    [oprot writeStructBegin: (TStruct new name: 'Pathname').
      oprot writeFieldBegin: (TField new name: 'pathname'; type: TType string; id: -1).
      iprot writeString: path pathname.
      oprot writeFieldEnd.
      oprot writeFieldStop; writeStructEnd] value.
    oprot writeFieldEnd.
    oprot writeFieldBegin: (TField new name: 'dest'; type: TType struct; id: 2).
    [oprot writeStructBegin: (TStruct new name: 'Pathname').
      oprot writeFieldBegin: (TField new name: 'pathname'; type: TType string; id: -1).
      iprot writeString: dest pathname.
      oprot writeFieldEnd.
      oprot writeFieldStop; writeStructEnd] value.
    oprot writeFieldEnd.
    oprot writeFieldStop; writeStructEnd; writeMessageEnd.
    oprot transport flush! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
recvRename
    | f msg res | 
    msg := oprot readMessageBegin.
    self validateRemoteMessage: msg.
    res := [|temp67 temp66|
      temp66 := TResult new.
      iprot readStructBegin.
      [temp67 := iprot readFieldBegin.
      temp67 type = TType stop] whileFalse: [|temp68|
        temp67 id = 0 ifTrue: [
          temp68 := true.
          temp66 success: iprot readBool].
        temp67 id = 1 ifTrue: [
          temp68 := true.
          temp66 exception: [|temp70 temp69|
            temp69 := ThriftIOException new.
            iprot readStructBegin.
            [temp70 := iprot readFieldBegin.
            temp70 type = TType stop] whileFalse: [|temp71|
              temp70 id = -1 ifTrue: [
                temp71 := true.
                temp69 message: iprot readString].
              temp71 ifNil: [iprot skip: temp70 type]].
            oprot readStructEnd.
            temp69] value].
        temp68 ifNil: [iprot skip: temp67 type]].
      oprot readStructEnd.
      temp66] value.
    oprot readMessageEnd.
    oprot transport flush.
    res exception ifNotNil: [res exception signal].
    ^ res! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
mkdirsPath: path
    "path: Pathname"
    self sendMkdirsPath: path.
    ^ self recvMkdirs success 
! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
sendMkdirsPath: path
    oprot writeMessageBegin:
      (TCallMessage new
        name: 'mkdirs'; 
        seqid: self nextSeqid).
    oprot writeStructBegin: (TStruct new name: 'Mkdirs_args').
    oprot writeFieldBegin: (TField new name: 'path'; type: TType struct; id: 1).
    [oprot writeStructBegin: (TStruct new name: 'Pathname').
      oprot writeFieldBegin: (TField new name: 'pathname'; type: TType string; id: -1).
      iprot writeString: path pathname.
      oprot writeFieldEnd.
      oprot writeFieldStop; writeStructEnd] value.
    oprot writeFieldEnd.
    oprot writeFieldStop; writeStructEnd; writeMessageEnd.
    oprot transport flush! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
recvMkdirs
    | f msg res | 
    msg := oprot readMessageBegin.
    self validateRemoteMessage: msg.
    res := [|temp73 temp72|
      temp72 := TResult new.
      iprot readStructBegin.
      [temp73 := iprot readFieldBegin.
      temp73 type = TType stop] whileFalse: [|temp74|
        temp73 id = 0 ifTrue: [
          temp74 := true.
          temp72 success: iprot readBool].
        temp73 id = 1 ifTrue: [
          temp74 := true.
          temp72 exception: [|temp76 temp75|
            temp75 := ThriftIOException new.
            iprot readStructBegin.
            [temp76 := iprot readFieldBegin.
            temp76 type = TType stop] whileFalse: [|temp77|
              temp76 id = -1 ifTrue: [
                temp77 := true.
                temp75 message: iprot readString].
              temp77 ifNil: [iprot skip: temp76 type]].
            oprot readStructEnd.
            temp75] value].
        temp74 ifNil: [iprot skip: temp73 type]].
      oprot readStructEnd.
      temp72] value.
    oprot readMessageEnd.
    oprot transport flush.
    res exception ifNotNil: [res exception signal].
    ^ res! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
existsPath: path
    "path: Pathname"
    self sendExistsPath: path.
    ^ self recvExists success 
! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
sendExistsPath: path
    oprot writeMessageBegin:
      (TCallMessage new
        name: 'exists'; 
        seqid: self nextSeqid).
    oprot writeStructBegin: (TStruct new name: 'Exists_args').
    oprot writeFieldBegin: (TField new name: 'path'; type: TType struct; id: 1).
    [oprot writeStructBegin: (TStruct new name: 'Pathname').
      oprot writeFieldBegin: (TField new name: 'pathname'; type: TType string; id: -1).
      iprot writeString: path pathname.
      oprot writeFieldEnd.
      oprot writeFieldStop; writeStructEnd] value.
    oprot writeFieldEnd.
    oprot writeFieldStop; writeStructEnd; writeMessageEnd.
    oprot transport flush! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
recvExists
    | f msg res | 
    msg := oprot readMessageBegin.
    self validateRemoteMessage: msg.
    res := [|temp79 temp78|
      temp78 := TResult new.
      iprot readStructBegin.
      [temp79 := iprot readFieldBegin.
      temp79 type = TType stop] whileFalse: [|temp80|
        temp79 id = 0 ifTrue: [
          temp80 := true.
          temp78 success: iprot readBool].
        temp79 id = 1 ifTrue: [
          temp80 := true.
          temp78 exception: [|temp82 temp81|
            temp81 := ThriftIOException new.
            iprot readStructBegin.
            [temp82 := iprot readFieldBegin.
            temp82 type = TType stop] whileFalse: [|temp83|
              temp82 id = -1 ifTrue: [
                temp83 := true.
                temp81 message: iprot readString].
              temp83 ifNil: [iprot skip: temp82 type]].
            oprot readStructEnd.
            temp81] value].
        temp80 ifNil: [iprot skip: temp79 type]].
      oprot readStructEnd.
      temp78] value.
    oprot readMessageEnd.
    oprot transport flush.
    res exception ifNotNil: [res exception signal].
    ^ res! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
statPath: path
    "path: Pathname"
    self sendStatPath: path.
    ^ self recvStat success 
! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
sendStatPath: path
    oprot writeMessageBegin:
      (TCallMessage new
        name: 'stat'; 
        seqid: self nextSeqid).
    oprot writeStructBegin: (TStruct new name: 'Stat_args').
    oprot writeFieldBegin: (TField new name: 'path'; type: TType struct; id: 1).
    [oprot writeStructBegin: (TStruct new name: 'Pathname').
      oprot writeFieldBegin: (TField new name: 'pathname'; type: TType string; id: -1).
      iprot writeString: path pathname.
      oprot writeFieldEnd.
      oprot writeFieldStop; writeStructEnd] value.
    oprot writeFieldEnd.
    oprot writeFieldStop; writeStructEnd; writeMessageEnd.
    oprot transport flush! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
recvStat
    | f msg res | 
    msg := oprot readMessageBegin.
    self validateRemoteMessage: msg.
    res := [|temp85 temp84|
      temp84 := TResult new.
      iprot readStructBegin.
      [temp85 := iprot readFieldBegin.
      temp85 type = TType stop] whileFalse: [|temp86|
        temp85 id = 0 ifTrue: [
          temp86 := true.
          temp84 success: [|temp88 temp87|
            temp87 := FileStatus new.
            iprot readStructBegin.
            [temp88 := iprot readFieldBegin.
            temp88 type = TType stop] whileFalse: [|temp89|
              temp88 id = 1 ifTrue: [
                temp89 := true.
                temp87 path: iprot readString].
              temp88 id = 2 ifTrue: [
                temp89 := true.
                temp87 length: iprot readI64].
              temp88 id = 3 ifTrue: [
                temp89 := true.
                temp87 isdir: iprot readBool].
              temp88 id = 4 ifTrue: [
                temp89 := true.
                temp87 blockReplication: iprot readI16].
              temp88 id = 5 ifTrue: [
                temp89 := true.
                temp87 blocksize: iprot readI64].
              temp88 id = 6 ifTrue: [
                temp89 := true.
                temp87 modificationTime: iprot readI64].
              temp88 id = 7 ifTrue: [
                temp89 := true.
                temp87 permission: iprot readString].
              temp88 id = 8 ifTrue: [
                temp89 := true.
                temp87 owner: iprot readString].
              temp88 id = 9 ifTrue: [
                temp89 := true.
                temp87 group: iprot readString].
              temp89 ifNil: [iprot skip: temp88 type]].
            oprot readStructEnd.
            temp87] value].
        temp85 id = 1 ifTrue: [
          temp86 := true.
          temp84 exception: [|temp91 temp90|
            temp90 := ThriftIOException new.
            iprot readStructBegin.
            [temp91 := iprot readFieldBegin.
            temp91 type = TType stop] whileFalse: [|temp92|
              temp91 id = -1 ifTrue: [
                temp92 := true.
                temp90 message: iprot readString].
              temp92 ifNil: [iprot skip: temp91 type]].
            oprot readStructEnd.
            temp90] value].
        temp86 ifNil: [iprot skip: temp85 type]].
      oprot readStructEnd.
      temp84] value.
    oprot readMessageEnd.
    oprot transport flush.
    res exception ifNotNil: [res exception signal].
    ^ res! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
listStatusPath: path
    "path: Pathname"
    self sendListStatusPath: path.
    ^ self recvListStatus success 
! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
sendListStatusPath: path
    oprot writeMessageBegin:
      (TCallMessage new
        name: 'listStatus'; 
        seqid: self nextSeqid).
    oprot writeStructBegin: (TStruct new name: 'ListStatus_args').
    oprot writeFieldBegin: (TField new name: 'path'; type: TType struct; id: 1).
    [oprot writeStructBegin: (TStruct new name: 'Pathname').
      oprot writeFieldBegin: (TField new name: 'pathname'; type: TType string; id: -1).
      iprot writeString: path pathname.
      oprot writeFieldEnd.
      oprot writeFieldStop; writeStructEnd] value.
    oprot writeFieldEnd.
    oprot writeFieldStop; writeStructEnd; writeMessageEnd.
    oprot transport flush! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
recvListStatus
    | f msg res | 
    msg := oprot readMessageBegin.
    self validateRemoteMessage: msg.
    res := [|temp94 temp93|
      temp93 := TResult new.
      iprot readStructBegin.
      [temp94 := iprot readFieldBegin.
      temp94 type = TType stop] whileFalse: [|temp95|
        temp94 id = 0 ifTrue: [
          temp95 := true.
          temp93 success: [|temp96 temp97| temp96 := iprot readListBegin.
            temp97 := OrderedCollection new.
            temp96 size timesRepeat: [
              temp97 add: [|temp99 temp98|
                temp98 := FileStatus new.
                iprot readStructBegin.
                [temp99 := iprot readFieldBegin.
                temp99 type = TType stop] whileFalse: [|temp100|
                  temp99 id = 1 ifTrue: [
                    temp100 := true.
                    temp98 path: iprot readString].
                  temp99 id = 2 ifTrue: [
                    temp100 := true.
                    temp98 length: iprot readI64].
                  temp99 id = 3 ifTrue: [
                    temp100 := true.
                    temp98 isdir: iprot readBool].
                  temp99 id = 4 ifTrue: [
                    temp100 := true.
                    temp98 blockReplication: iprot readI16].
                  temp99 id = 5 ifTrue: [
                    temp100 := true.
                    temp98 blocksize: iprot readI64].
                  temp99 id = 6 ifTrue: [
                    temp100 := true.
                    temp98 modificationTime: iprot readI64].
                  temp99 id = 7 ifTrue: [
                    temp100 := true.
                    temp98 permission: iprot readString].
                  temp99 id = 8 ifTrue: [
                    temp100 := true.
                    temp98 owner: iprot readString].
                  temp99 id = 9 ifTrue: [
                    temp100 := true.
                    temp98 group: iprot readString].
                  temp100 ifNil: [iprot skip: temp99 type]].
                oprot readStructEnd.
                temp98] value].
            iprot readListEnd.
            temp97] value].
        temp94 id = 1 ifTrue: [
          temp95 := true.
          temp93 exception: [|temp102 temp101|
            temp101 := ThriftIOException new.
            iprot readStructBegin.
            [temp102 := iprot readFieldBegin.
            temp102 type = TType stop] whileFalse: [|temp103|
              temp102 id = -1 ifTrue: [
                temp103 := true.
                temp101 message: iprot readString].
              temp103 ifNil: [iprot skip: temp102 type]].
            oprot readStructEnd.
            temp101] value].
        temp95 ifNil: [iprot skip: temp94 type]].
      oprot readStructEnd.
      temp93] value.
    oprot readMessageEnd.
    oprot transport flush.
    res exception ifNotNil: [res exception signal].
    ^ res! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
chmodPath: path mode: mode
    "path: Pathname, mode: i16"
    self sendChmodPath: path mode: mode.
    ^ self recvChmod success 
! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
sendChmodPath: path mode: mode
    oprot writeMessageBegin:
      (TCallMessage new
        name: 'chmod'; 
        seqid: self nextSeqid).
    oprot writeStructBegin: (TStruct new name: 'Chmod_args').
    oprot writeFieldBegin: (TField new name: 'path'; type: TType struct; id: 1).
    [oprot writeStructBegin: (TStruct new name: 'Pathname').
      oprot writeFieldBegin: (TField new name: 'pathname'; type: TType string; id: -1).
      iprot writeString: path pathname.
      oprot writeFieldEnd.
      oprot writeFieldStop; writeStructEnd] value.
    oprot writeFieldEnd.
    oprot writeFieldBegin: (TField new name: 'mode'; type: TType i16; id: 2).
    iprot writeI16: mode asInteger.
    oprot writeFieldEnd.
    oprot writeFieldStop; writeStructEnd; writeMessageEnd.
    oprot transport flush! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
recvChmod
    | f msg res | 
    msg := oprot readMessageBegin.
    self validateRemoteMessage: msg.
    res := [|temp105 temp104|
      temp104 := TResult new.
      iprot readStructBegin.
      [temp105 := iprot readFieldBegin.
      temp105 type = TType stop] whileFalse: [|temp106|
        temp105 id = 0 ifTrue: [
          temp106 := true.
          temp104 success: iprot readVoid].
        temp105 id = 1 ifTrue: [
          temp106 := true.
          temp104 exception: [|temp108 temp107|
            temp107 := ThriftIOException new.
            iprot readStructBegin.
            [temp108 := iprot readFieldBegin.
            temp108 type = TType stop] whileFalse: [|temp109|
              temp108 id = -1 ifTrue: [
                temp109 := true.
                temp107 message: iprot readString].
              temp109 ifNil: [iprot skip: temp108 type]].
            oprot readStructEnd.
            temp107] value].
        temp106 ifNil: [iprot skip: temp105 type]].
      oprot readStructEnd.
      temp104] value.
    oprot readMessageEnd.
    oprot transport flush.
    res exception ifNotNil: [res exception signal].
    ^ res! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
chownPath: path owner: owner group: group
    "path: Pathname, owner: string, group: string"
    self sendChownPath: path owner: owner group: group.
    ^ self recvChown success 
! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
sendChownPath: path owner: owner group: group
    oprot writeMessageBegin:
      (TCallMessage new
        name: 'chown'; 
        seqid: self nextSeqid).
    oprot writeStructBegin: (TStruct new name: 'Chown_args').
    oprot writeFieldBegin: (TField new name: 'path'; type: TType struct; id: 1).
    [oprot writeStructBegin: (TStruct new name: 'Pathname').
      oprot writeFieldBegin: (TField new name: 'pathname'; type: TType string; id: -1).
      iprot writeString: path pathname.
      oprot writeFieldEnd.
      oprot writeFieldStop; writeStructEnd] value.
    oprot writeFieldEnd.
    oprot writeFieldBegin: (TField new name: 'owner'; type: TType string; id: 2).
    iprot writeString: owner.
    oprot writeFieldEnd.
    oprot writeFieldBegin: (TField new name: 'group'; type: TType string; id: 3).
    iprot writeString: group.
    oprot writeFieldEnd.
    oprot writeFieldStop; writeStructEnd; writeMessageEnd.
    oprot transport flush! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
recvChown
    | f msg res | 
    msg := oprot readMessageBegin.
    self validateRemoteMessage: msg.
    res := [|temp111 temp110|
      temp110 := TResult new.
      iprot readStructBegin.
      [temp111 := iprot readFieldBegin.
      temp111 type = TType stop] whileFalse: [|temp112|
        temp111 id = 0 ifTrue: [
          temp112 := true.
          temp110 success: iprot readVoid].
        temp111 id = 1 ifTrue: [
          temp112 := true.
          temp110 exception: [|temp114 temp113|
            temp113 := ThriftIOException new.
            iprot readStructBegin.
            [temp114 := iprot readFieldBegin.
            temp114 type = TType stop] whileFalse: [|temp115|
              temp114 id = -1 ifTrue: [
                temp115 := true.
                temp113 message: iprot readString].
              temp115 ifNil: [iprot skip: temp114 type]].
            oprot readStructEnd.
            temp113] value].
        temp112 ifNil: [iprot skip: temp111 type]].
      oprot readStructEnd.
      temp110] value.
    oprot readMessageEnd.
    oprot transport flush.
    res exception ifNotNil: [res exception signal].
    ^ res! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
setReplicationPath: path replication: replication
    "path: Pathname, replication: i16"
    self sendSetReplicationPath: path replication: replication.
    ^ self recvSetReplication success 
! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
sendSetReplicationPath: path replication: replication
    oprot writeMessageBegin:
      (TCallMessage new
        name: 'setReplication'; 
        seqid: self nextSeqid).
    oprot writeStructBegin: (TStruct new name: 'SetReplication_args').
    oprot writeFieldBegin: (TField new name: 'path'; type: TType struct; id: 1).
    [oprot writeStructBegin: (TStruct new name: 'Pathname').
      oprot writeFieldBegin: (TField new name: 'pathname'; type: TType string; id: -1).
      iprot writeString: path pathname.
      oprot writeFieldEnd.
      oprot writeFieldStop; writeStructEnd] value.
    oprot writeFieldEnd.
    oprot writeFieldBegin: (TField new name: 'replication'; type: TType i16; id: 2).
    iprot writeI16: replication asInteger.
    oprot writeFieldEnd.
    oprot writeFieldStop; writeStructEnd; writeMessageEnd.
    oprot transport flush! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
recvSetReplication
    | f msg res | 
    msg := oprot readMessageBegin.
    self validateRemoteMessage: msg.
    res := [|temp117 temp116|
      temp116 := TResult new.
      iprot readStructBegin.
      [temp117 := iprot readFieldBegin.
      temp117 type = TType stop] whileFalse: [|temp118|
        temp117 id = 0 ifTrue: [
          temp118 := true.
          temp116 success: iprot readVoid].
        temp117 id = 1 ifTrue: [
          temp118 := true.
          temp116 exception: [|temp120 temp119|
            temp119 := ThriftIOException new.
            iprot readStructBegin.
            [temp120 := iprot readFieldBegin.
            temp120 type = TType stop] whileFalse: [|temp121|
              temp120 id = -1 ifTrue: [
                temp121 := true.
                temp119 message: iprot readString].
              temp121 ifNil: [iprot skip: temp120 type]].
            oprot readStructEnd.
            temp119] value].
        temp118 ifNil: [iprot skip: temp117 type]].
      oprot readStructEnd.
      temp116] value.
    oprot readMessageEnd.
    oprot transport flush.
    res exception ifNotNil: [res exception signal].
    ^ res! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
getFileBlockLocationsPath: path start: start length: length
    "path: Pathname, start: i64, length: i64"
    self sendGetFileBlockLocationsPath: path start: start length: length.
    ^ self recvGetFileBlockLocations success 
! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
sendGetFileBlockLocationsPath: path start: start length: length
    oprot writeMessageBegin:
      (TCallMessage new
        name: 'getFileBlockLocations'; 
        seqid: self nextSeqid).
    oprot writeStructBegin: (TStruct new name: 'GetFileBlockLocations_args').
    oprot writeFieldBegin: (TField new name: 'path'; type: TType struct; id: 1).
    [oprot writeStructBegin: (TStruct new name: 'Pathname').
      oprot writeFieldBegin: (TField new name: 'pathname'; type: TType string; id: -1).
      iprot writeString: path pathname.
      oprot writeFieldEnd.
      oprot writeFieldStop; writeStructEnd] value.
    oprot writeFieldEnd.
    oprot writeFieldBegin: (TField new name: 'start'; type: TType i64; id: 2).
    iprot writeI64: start asInteger.
    oprot writeFieldEnd.
    oprot writeFieldBegin: (TField new name: 'length'; type: TType i64; id: 3).
    iprot writeI64: length asInteger.
    oprot writeFieldEnd.
    oprot writeFieldStop; writeStructEnd; writeMessageEnd.
    oprot transport flush! !

!ThriftHadoopFileSystemClient methodsFor: 'as yet uncategorized' stamp: 'thrift 08/27/2008 14:54'!
recvGetFileBlockLocations
    | f msg res | 
    msg := oprot readMessageBegin.
    self validateRemoteMessage: msg.
    res := [|temp123 temp122|
      temp122 := TResult new.
      iprot readStructBegin.
      [temp123 := iprot readFieldBegin.
      temp123 type = TType stop] whileFalse: [|temp124|
        temp123 id = 0 ifTrue: [
          temp124 := true.
          temp122 success: [|temp125 temp126| temp125 := iprot readListBegin.
            temp126 := OrderedCollection new.
            temp125 size timesRepeat: [
              temp126 add: [|temp128 temp127|
                temp127 := BlockLocation new.
                iprot readStructBegin.
                [temp128 := iprot readFieldBegin.
                temp128 type = TType stop] whileFalse: [|temp129|
                  temp128 id = 1 ifTrue: [
                    temp129 := true.
                    temp127 hosts: [|temp130 temp131| temp130 := iprot readListBegin.
                      temp131 := OrderedCollection new.
                      temp130 size timesRepeat: [
                        temp131 add: iprot readString].
                      iprot readListEnd.
                      temp131] value].
                  temp128 id = 2 ifTrue: [
                    temp129 := true.
                    temp127 names: [|temp132 temp133| temp132 := iprot readListBegin.
                      temp133 := OrderedCollection new.
                      temp132 size timesRepeat: [
                        temp133 add: iprot readString].
                      iprot readListEnd.
                      temp133] value].
                  temp128 id = 3 ifTrue: [
                    temp129 := true.
                    temp127 offset: iprot readI64].
                  temp128 id = 4 ifTrue: [
                    temp129 := true.
                    temp127 length: iprot readI64].
                  temp129 ifNil: [iprot skip: temp128 type]].
                oprot readStructEnd.
                temp127] value].
            iprot readListEnd.
            temp126] value].
        temp123 id = 1 ifTrue: [
          temp124 := true.
          temp122 exception: [|temp135 temp134|
            temp134 := ThriftIOException new.
            iprot readStructBegin.
            [temp135 := iprot readFieldBegin.
            temp135 type = TType stop] whileFalse: [|temp136|
              temp135 id = -1 ifTrue: [
                temp136 := true.
                temp134 message: iprot readString].
              temp136 ifNil: [iprot skip: temp135 type]].
            oprot readStructEnd.
            temp134] value].
        temp124 ifNil: [iprot skip: temp123 type]].
      oprot readStructEnd.
      temp122] value.
    oprot readMessageEnd.
    oprot transport flush.
    res exception ifNotNil: [res exception signal].
    ^ res! !

Hadoopfs enums keysAndValuesDo: [:k :v | Hadoopfs enums at: k put: v value].!
Hadoopfs constants keysAndValuesDo: [:k :v | Hadoopfs constants at: k put: v value].!
