diff options
56 files changed, 28887 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2ef92e4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +build/* +3rdparty/speexbuild/build/* +3rdparty/speexdspbuild/build/* +3rdparty/protobufbuild/build/* +3rdparty/celtbuild/build/* +.DS_Store +*.pbxuser +*.mode1v3 diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..a2c6b1a --- /dev/null +++ b/.gitmodules @@ -0,0 +1,9 @@ +[submodule "3rdparty/speex"] + path = 3rdparty/speex + url = git://git.xiph.org/speex.git/ +[submodule "3rdparty/celt"] + path = 3rdparty/celt + url = git://git.xiph.org/celt.git/ +[submodule "3rdparty/protobuf"] + path = 3rdparty/protobuf + url = git://github.com/mkrautz/protobuf-objc-2.2.0-mirror.git diff --git a/3rdparty/celt b/3rdparty/celt new file mode 160000 +Subproject dc8a6eee433ef2cf8866d7bfe051c331d6607a8 diff --git a/3rdparty/celtbuild/CELT.xcodeproj/project.pbxproj b/3rdparty/celtbuild/CELT.xcodeproj/project.pbxproj new file mode 100644 index 0000000..68b45c0 --- /dev/null +++ b/3rdparty/celtbuild/CELT.xcodeproj/project.pbxproj @@ -0,0 +1,450 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 2872664710F0FFD300DD4D54 /* bands.c in Sources */ = {isa = PBXBuildFile; fileRef = 2872660A10F0FFD300DD4D54 /* bands.c */; }; + 2872664810F0FFD300DD4D54 /* bands.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872660B10F0FFD300DD4D54 /* bands.h */; }; + 2872664B10F0FFD300DD4D54 /* celt_header.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872660E10F0FFD300DD4D54 /* celt_header.h */; }; + 2872664C10F0FFD300DD4D54 /* celt_types.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872660F10F0FFD300DD4D54 /* celt_types.h */; }; + 2872664D10F0FFD300DD4D54 /* celt.c in Sources */ = {isa = PBXBuildFile; fileRef = 2872661010F0FFD300DD4D54 /* celt.c */; }; + 2872664E10F0FFD300DD4D54 /* celt.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872661110F0FFD300DD4D54 /* celt.h */; }; + 2872664F10F0FFD300DD4D54 /* cwrs.c in Sources */ = {isa = PBXBuildFile; fileRef = 2872661210F0FFD300DD4D54 /* cwrs.c */; }; + 2872665010F0FFD300DD4D54 /* cwrs.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872661310F0FFD300DD4D54 /* cwrs.h */; }; + 2872665210F0FFD300DD4D54 /* ecintrin.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872661510F0FFD300DD4D54 /* ecintrin.h */; }; + 2872665310F0FFD300DD4D54 /* entcode.c in Sources */ = {isa = PBXBuildFile; fileRef = 2872661610F0FFD300DD4D54 /* entcode.c */; }; + 2872665410F0FFD300DD4D54 /* entcode.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872661710F0FFD300DD4D54 /* entcode.h */; }; + 2872665510F0FFD300DD4D54 /* entdec.c in Sources */ = {isa = PBXBuildFile; fileRef = 2872661810F0FFD300DD4D54 /* entdec.c */; }; + 2872665610F0FFD300DD4D54 /* entdec.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872661910F0FFD300DD4D54 /* entdec.h */; }; + 2872665710F0FFD300DD4D54 /* entenc.c in Sources */ = {isa = PBXBuildFile; fileRef = 2872661A10F0FFD300DD4D54 /* entenc.c */; }; + 2872665810F0FFD300DD4D54 /* entenc.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872661B10F0FFD300DD4D54 /* entenc.h */; }; + 2872665B10F0FFD300DD4D54 /* fixed_debug.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872661E10F0FFD300DD4D54 /* fixed_debug.h */; }; + 2872665C10F0FFD300DD4D54 /* fixed_generic.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872661F10F0FFD300DD4D54 /* fixed_generic.h */; }; + 2872665D10F0FFD300DD4D54 /* float_cast.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872662010F0FFD300DD4D54 /* float_cast.h */; }; + 2872665E10F0FFD300DD4D54 /* header.c in Sources */ = {isa = PBXBuildFile; fileRef = 2872662110F0FFD300DD4D54 /* header.c */; }; + 2872665F10F0FFD300DD4D54 /* kfft_double.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872662210F0FFD300DD4D54 /* kfft_double.h */; }; + 2872666110F0FFD300DD4D54 /* kfft_single.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872662410F0FFD300DD4D54 /* kfft_single.h */; }; + 2872666210F0FFD300DD4D54 /* kiss_fft.c in Sources */ = {isa = PBXBuildFile; fileRef = 2872662510F0FFD300DD4D54 /* kiss_fft.c */; }; + 2872666310F0FFD300DD4D54 /* kiss_fft.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872662610F0FFD300DD4D54 /* kiss_fft.h */; }; + 2872666410F0FFD300DD4D54 /* kiss_fftr.c in Sources */ = {isa = PBXBuildFile; fileRef = 2872662710F0FFD300DD4D54 /* kiss_fftr.c */; }; + 2872666510F0FFD300DD4D54 /* kiss_fftr.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872662810F0FFD300DD4D54 /* kiss_fftr.h */; }; + 2872666610F0FFD300DD4D54 /* laplace.c in Sources */ = {isa = PBXBuildFile; fileRef = 2872662910F0FFD300DD4D54 /* laplace.c */; }; + 2872666710F0FFD300DD4D54 /* laplace.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872662A10F0FFD300DD4D54 /* laplace.h */; }; + 2872666810F0FFD300DD4D54 /* mathops.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872662D10F0FFD300DD4D54 /* mathops.h */; }; + 2872666910F0FFD300DD4D54 /* mdct.c in Sources */ = {isa = PBXBuildFile; fileRef = 2872662E10F0FFD300DD4D54 /* mdct.c */; }; + 2872666A10F0FFD300DD4D54 /* mdct.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872662F10F0FFD300DD4D54 /* mdct.h */; }; + 2872666B10F0FFD300DD4D54 /* mfrngcod.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872663010F0FFD300DD4D54 /* mfrngcod.h */; }; + 2872666E10F0FFD300DD4D54 /* modes.c in Sources */ = {isa = PBXBuildFile; fileRef = 2872663310F0FFD300DD4D54 /* modes.c */; }; + 2872666F10F0FFD300DD4D54 /* modes.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872663410F0FFD300DD4D54 /* modes.h */; }; + 2872667010F0FFD300DD4D54 /* os_support.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872663510F0FFD300DD4D54 /* os_support.h */; }; + 2872667110F0FFD300DD4D54 /* pitch.c in Sources */ = {isa = PBXBuildFile; fileRef = 2872663610F0FFD300DD4D54 /* pitch.c */; }; + 2872667210F0FFD300DD4D54 /* pitch.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872663710F0FFD300DD4D54 /* pitch.h */; }; + 2872667410F0FFD300DD4D54 /* psy.c in Sources */ = {isa = PBXBuildFile; fileRef = 2872663910F0FFD300DD4D54 /* psy.c */; }; + 2872667510F0FFD300DD4D54 /* psy.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872663A10F0FFD300DD4D54 /* psy.h */; }; + 2872667610F0FFD300DD4D54 /* quant_bands.c in Sources */ = {isa = PBXBuildFile; fileRef = 2872663B10F0FFD300DD4D54 /* quant_bands.c */; }; + 2872667710F0FFD300DD4D54 /* quant_bands.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872663C10F0FFD300DD4D54 /* quant_bands.h */; }; + 2872667810F0FFD300DD4D54 /* rangedec.c in Sources */ = {isa = PBXBuildFile; fileRef = 2872663D10F0FFD300DD4D54 /* rangedec.c */; }; + 2872667910F0FFD300DD4D54 /* rangeenc.c in Sources */ = {isa = PBXBuildFile; fileRef = 2872663E10F0FFD300DD4D54 /* rangeenc.c */; }; + 2872667A10F0FFD300DD4D54 /* rate.c in Sources */ = {isa = PBXBuildFile; fileRef = 2872663F10F0FFD300DD4D54 /* rate.c */; }; + 2872667B10F0FFD300DD4D54 /* rate.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872664010F0FFD300DD4D54 /* rate.h */; }; + 2872667C10F0FFD300DD4D54 /* stack_alloc.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872664110F0FFD300DD4D54 /* stack_alloc.h */; }; + 2872667E10F0FFD300DD4D54 /* vq.c in Sources */ = {isa = PBXBuildFile; fileRef = 2872664310F0FFD300DD4D54 /* vq.c */; }; + 2872667F10F0FFD300DD4D54 /* vq.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872664410F0FFD300DD4D54 /* vq.h */; }; + 2872668110F0FFF300DD4D54 /* arch.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872668010F0FFF300DD4D54 /* arch.h */; }; + 2872668310F1000900DD4D54 /* _kiss_fft_guts.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872668210F1000900DD4D54 /* _kiss_fft_guts.h */; }; + 287266FE10F1021E00DD4D54 /* c64_fft.h in Headers */ = {isa = PBXBuildFile; fileRef = 287266FA10F1021E00DD4D54 /* c64_fft.h */; }; + 287266FF10F1021E00DD4D54 /* fixed_c5x.h in Headers */ = {isa = PBXBuildFile; fileRef = 287266FB10F1021E00DD4D54 /* fixed_c5x.h */; }; + 2872670010F1021E00DD4D54 /* fixed_c6x.h in Headers */ = {isa = PBXBuildFile; fileRef = 287266FC10F1021E00DD4D54 /* fixed_c6x.h */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 2872660A10F0FFD300DD4D54 /* bands.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = bands.c; path = ../celt/libcelt/bands.c; sourceTree = SOURCE_ROOT; }; + 2872660B10F0FFD300DD4D54 /* bands.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = bands.h; path = ../celt/libcelt/bands.h; sourceTree = SOURCE_ROOT; }; + 2872660E10F0FFD300DD4D54 /* celt_header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = celt_header.h; path = ../celt/libcelt/celt_header.h; sourceTree = SOURCE_ROOT; }; + 2872660F10F0FFD300DD4D54 /* celt_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = celt_types.h; path = ../celt/libcelt/celt_types.h; sourceTree = SOURCE_ROOT; }; + 2872661010F0FFD300DD4D54 /* celt.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = celt.c; path = ../celt/libcelt/celt.c; sourceTree = SOURCE_ROOT; }; + 2872661110F0FFD300DD4D54 /* celt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = celt.h; path = ../celt/libcelt/celt.h; sourceTree = SOURCE_ROOT; }; + 2872661210F0FFD300DD4D54 /* cwrs.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = cwrs.c; path = ../celt/libcelt/cwrs.c; sourceTree = SOURCE_ROOT; }; + 2872661310F0FFD300DD4D54 /* cwrs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cwrs.h; path = ../celt/libcelt/cwrs.h; sourceTree = SOURCE_ROOT; }; + 2872661410F0FFD300DD4D54 /* dump_modes.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = dump_modes.c; path = ../celt/libcelt/dump_modes.c; sourceTree = SOURCE_ROOT; }; + 2872661510F0FFD300DD4D54 /* ecintrin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ecintrin.h; path = ../celt/libcelt/ecintrin.h; sourceTree = SOURCE_ROOT; }; + 2872661610F0FFD300DD4D54 /* entcode.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = entcode.c; path = ../celt/libcelt/entcode.c; sourceTree = SOURCE_ROOT; }; + 2872661710F0FFD300DD4D54 /* entcode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = entcode.h; path = ../celt/libcelt/entcode.h; sourceTree = SOURCE_ROOT; }; + 2872661810F0FFD300DD4D54 /* entdec.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = entdec.c; path = ../celt/libcelt/entdec.c; sourceTree = SOURCE_ROOT; }; + 2872661910F0FFD300DD4D54 /* entdec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = entdec.h; path = ../celt/libcelt/entdec.h; sourceTree = SOURCE_ROOT; }; + 2872661A10F0FFD300DD4D54 /* entenc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = entenc.c; path = ../celt/libcelt/entenc.c; sourceTree = SOURCE_ROOT; }; + 2872661B10F0FFD300DD4D54 /* entenc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = entenc.h; path = ../celt/libcelt/entenc.h; sourceTree = SOURCE_ROOT; }; + 2872661E10F0FFD300DD4D54 /* fixed_debug.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fixed_debug.h; path = ../celt/libcelt/fixed_debug.h; sourceTree = SOURCE_ROOT; }; + 2872661F10F0FFD300DD4D54 /* fixed_generic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fixed_generic.h; path = ../celt/libcelt/fixed_generic.h; sourceTree = SOURCE_ROOT; }; + 2872662010F0FFD300DD4D54 /* float_cast.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = float_cast.h; path = ../celt/libcelt/float_cast.h; sourceTree = SOURCE_ROOT; }; + 2872662110F0FFD300DD4D54 /* header.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = header.c; path = ../celt/libcelt/header.c; sourceTree = SOURCE_ROOT; }; + 2872662210F0FFD300DD4D54 /* kfft_double.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = kfft_double.h; path = ../celt/libcelt/kfft_double.h; sourceTree = SOURCE_ROOT; }; + 2872662310F0FFD300DD4D54 /* kfft_single.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = kfft_single.c; path = ../celt/libcelt/kfft_single.c; sourceTree = SOURCE_ROOT; }; + 2872662410F0FFD300DD4D54 /* kfft_single.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = kfft_single.h; path = ../celt/libcelt/kfft_single.h; sourceTree = SOURCE_ROOT; }; + 2872662510F0FFD300DD4D54 /* kiss_fft.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = kiss_fft.c; path = ../celt/libcelt/kiss_fft.c; sourceTree = SOURCE_ROOT; }; + 2872662610F0FFD300DD4D54 /* kiss_fft.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = kiss_fft.h; path = ../celt/libcelt/kiss_fft.h; sourceTree = SOURCE_ROOT; }; + 2872662710F0FFD300DD4D54 /* kiss_fftr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = kiss_fftr.c; path = ../celt/libcelt/kiss_fftr.c; sourceTree = SOURCE_ROOT; }; + 2872662810F0FFD300DD4D54 /* kiss_fftr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = kiss_fftr.h; path = ../celt/libcelt/kiss_fftr.h; sourceTree = SOURCE_ROOT; }; + 2872662910F0FFD300DD4D54 /* laplace.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = laplace.c; path = ../celt/libcelt/laplace.c; sourceTree = SOURCE_ROOT; }; + 2872662A10F0FFD300DD4D54 /* laplace.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = laplace.h; path = ../celt/libcelt/laplace.h; sourceTree = SOURCE_ROOT; }; + 2872662D10F0FFD300DD4D54 /* mathops.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mathops.h; path = ../celt/libcelt/mathops.h; sourceTree = SOURCE_ROOT; }; + 2872662E10F0FFD300DD4D54 /* mdct.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = mdct.c; path = ../celt/libcelt/mdct.c; sourceTree = SOURCE_ROOT; }; + 2872662F10F0FFD300DD4D54 /* mdct.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mdct.h; path = ../celt/libcelt/mdct.h; sourceTree = SOURCE_ROOT; }; + 2872663010F0FFD300DD4D54 /* mfrngcod.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mfrngcod.h; path = ../celt/libcelt/mfrngcod.h; sourceTree = SOURCE_ROOT; }; + 2872663110F0FFD300DD4D54 /* mfrngdec.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = mfrngdec.c; path = ../celt/libcelt/mfrngdec.c; sourceTree = SOURCE_ROOT; }; + 2872663210F0FFD300DD4D54 /* mfrngenc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = mfrngenc.c; path = ../celt/libcelt/mfrngenc.c; sourceTree = SOURCE_ROOT; }; + 2872663310F0FFD300DD4D54 /* modes.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = modes.c; path = ../celt/libcelt/modes.c; sourceTree = SOURCE_ROOT; }; + 2872663410F0FFD300DD4D54 /* modes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = modes.h; path = ../celt/libcelt/modes.h; sourceTree = SOURCE_ROOT; }; + 2872663510F0FFD300DD4D54 /* os_support.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = os_support.h; path = ../celt/libcelt/os_support.h; sourceTree = SOURCE_ROOT; }; + 2872663610F0FFD300DD4D54 /* pitch.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pitch.c; path = ../celt/libcelt/pitch.c; sourceTree = SOURCE_ROOT; }; + 2872663710F0FFD300DD4D54 /* pitch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = pitch.h; path = ../celt/libcelt/pitch.h; sourceTree = SOURCE_ROOT; }; + 2872663810F0FFD300DD4D54 /* plc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = plc.c; path = ../celt/libcelt/plc.c; sourceTree = SOURCE_ROOT; }; + 2872663910F0FFD300DD4D54 /* psy.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = psy.c; path = ../celt/libcelt/psy.c; sourceTree = SOURCE_ROOT; }; + 2872663A10F0FFD300DD4D54 /* psy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = psy.h; path = ../celt/libcelt/psy.h; sourceTree = SOURCE_ROOT; }; + 2872663B10F0FFD300DD4D54 /* quant_bands.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = quant_bands.c; path = ../celt/libcelt/quant_bands.c; sourceTree = SOURCE_ROOT; }; + 2872663C10F0FFD300DD4D54 /* quant_bands.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = quant_bands.h; path = ../celt/libcelt/quant_bands.h; sourceTree = SOURCE_ROOT; }; + 2872663D10F0FFD300DD4D54 /* rangedec.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = rangedec.c; path = ../celt/libcelt/rangedec.c; sourceTree = SOURCE_ROOT; }; + 2872663E10F0FFD300DD4D54 /* rangeenc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = rangeenc.c; path = ../celt/libcelt/rangeenc.c; sourceTree = SOURCE_ROOT; }; + 2872663F10F0FFD300DD4D54 /* rate.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = rate.c; path = ../celt/libcelt/rate.c; sourceTree = SOURCE_ROOT; }; + 2872664010F0FFD300DD4D54 /* rate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = rate.h; path = ../celt/libcelt/rate.h; sourceTree = SOURCE_ROOT; }; + 2872664110F0FFD300DD4D54 /* stack_alloc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = stack_alloc.h; path = ../celt/libcelt/stack_alloc.h; sourceTree = SOURCE_ROOT; }; + 2872664210F0FFD300DD4D54 /* testcelt.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testcelt.c; path = ../celt/libcelt/testcelt.c; sourceTree = SOURCE_ROOT; }; + 2872664310F0FFD300DD4D54 /* vq.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = vq.c; path = ../celt/libcelt/vq.c; sourceTree = SOURCE_ROOT; }; + 2872664410F0FFD300DD4D54 /* vq.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vq.h; path = ../celt/libcelt/vq.h; sourceTree = SOURCE_ROOT; }; + 2872668010F0FFF300DD4D54 /* arch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = arch.h; path = ../celt/libcelt/arch.h; sourceTree = SOURCE_ROOT; }; + 2872668210F1000900DD4D54 /* _kiss_fft_guts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = _kiss_fft_guts.h; path = ../celt/libcelt/_kiss_fft_guts.h; sourceTree = SOURCE_ROOT; }; + 287266F910F1021E00DD4D54 /* c64_fft.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = c64_fft.c; path = ../celt/libcelt/c64_fft.c; sourceTree = SOURCE_ROOT; }; + 287266FA10F1021E00DD4D54 /* c64_fft.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = c64_fft.h; path = ../celt/libcelt/c64_fft.h; sourceTree = SOURCE_ROOT; }; + 287266FB10F1021E00DD4D54 /* fixed_c5x.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fixed_c5x.h; path = ../celt/libcelt/fixed_c5x.h; sourceTree = SOURCE_ROOT; }; + 287266FC10F1021E00DD4D54 /* fixed_c6x.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fixed_c6x.h; path = ../celt/libcelt/fixed_c6x.h; sourceTree = SOURCE_ROOT; }; + D2AAC07E0554694100DB518D /* libCELT.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libCELT.a; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D2AAC07C0554694100DB518D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 034768DFFF38A50411DB9C8B /* Products */ = { + isa = PBXGroup; + children = ( + D2AAC07E0554694100DB518D /* libCELT.a */, + ); + name = Products; + sourceTree = "<group>"; + }; + 0867D691FE84028FC02AAC07 /* CELT */ = { + isa = PBXGroup; + children = ( + 287265EB10F0FFA200DD4D54 /* Source */, + 034768DFFF38A50411DB9C8B /* Products */, + ); + name = CELT; + sourceTree = "<group>"; + }; + 287265EB10F0FFA200DD4D54 /* Source */ = { + isa = PBXGroup; + children = ( + 287266F910F1021E00DD4D54 /* c64_fft.c */, + 287266FA10F1021E00DD4D54 /* c64_fft.h */, + 287266FB10F1021E00DD4D54 /* fixed_c5x.h */, + 287266FC10F1021E00DD4D54 /* fixed_c6x.h */, + 2872668210F1000900DD4D54 /* _kiss_fft_guts.h */, + 2872668010F0FFF300DD4D54 /* arch.h */, + 2872660A10F0FFD300DD4D54 /* bands.c */, + 2872660B10F0FFD300DD4D54 /* bands.h */, + 2872660E10F0FFD300DD4D54 /* celt_header.h */, + 2872660F10F0FFD300DD4D54 /* celt_types.h */, + 2872661010F0FFD300DD4D54 /* celt.c */, + 2872661110F0FFD300DD4D54 /* celt.h */, + 2872661210F0FFD300DD4D54 /* cwrs.c */, + 2872661310F0FFD300DD4D54 /* cwrs.h */, + 2872661410F0FFD300DD4D54 /* dump_modes.c */, + 2872661510F0FFD300DD4D54 /* ecintrin.h */, + 2872661610F0FFD300DD4D54 /* entcode.c */, + 2872661710F0FFD300DD4D54 /* entcode.h */, + 2872661810F0FFD300DD4D54 /* entdec.c */, + 2872661910F0FFD300DD4D54 /* entdec.h */, + 2872661A10F0FFD300DD4D54 /* entenc.c */, + 2872661B10F0FFD300DD4D54 /* entenc.h */, + 2872661E10F0FFD300DD4D54 /* fixed_debug.h */, + 2872661F10F0FFD300DD4D54 /* fixed_generic.h */, + 2872662010F0FFD300DD4D54 /* float_cast.h */, + 2872662110F0FFD300DD4D54 /* header.c */, + 2872662210F0FFD300DD4D54 /* kfft_double.h */, + 2872662310F0FFD300DD4D54 /* kfft_single.c */, + 2872662410F0FFD300DD4D54 /* kfft_single.h */, + 2872662510F0FFD300DD4D54 /* kiss_fft.c */, + 2872662610F0FFD300DD4D54 /* kiss_fft.h */, + 2872662710F0FFD300DD4D54 /* kiss_fftr.c */, + 2872662810F0FFD300DD4D54 /* kiss_fftr.h */, + 2872662910F0FFD300DD4D54 /* laplace.c */, + 2872662A10F0FFD300DD4D54 /* laplace.h */, + 2872662D10F0FFD300DD4D54 /* mathops.h */, + 2872662E10F0FFD300DD4D54 /* mdct.c */, + 2872662F10F0FFD300DD4D54 /* mdct.h */, + 2872663010F0FFD300DD4D54 /* mfrngcod.h */, + 2872663110F0FFD300DD4D54 /* mfrngdec.c */, + 2872663210F0FFD300DD4D54 /* mfrngenc.c */, + 2872663310F0FFD300DD4D54 /* modes.c */, + 2872663410F0FFD300DD4D54 /* modes.h */, + 2872663510F0FFD300DD4D54 /* os_support.h */, + 2872663610F0FFD300DD4D54 /* pitch.c */, + 2872663710F0FFD300DD4D54 /* pitch.h */, + 2872663810F0FFD300DD4D54 /* plc.c */, + 2872663910F0FFD300DD4D54 /* psy.c */, + 2872663A10F0FFD300DD4D54 /* psy.h */, + 2872663B10F0FFD300DD4D54 /* quant_bands.c */, + 2872663C10F0FFD300DD4D54 /* quant_bands.h */, + 2872663D10F0FFD300DD4D54 /* rangedec.c */, + 2872663E10F0FFD300DD4D54 /* rangeenc.c */, + 2872663F10F0FFD300DD4D54 /* rate.c */, + 2872664010F0FFD300DD4D54 /* rate.h */, + 2872664110F0FFD300DD4D54 /* stack_alloc.h */, + 2872664210F0FFD300DD4D54 /* testcelt.c */, + 2872664310F0FFD300DD4D54 /* vq.c */, + 2872664410F0FFD300DD4D54 /* vq.h */, + ); + name = Source; + sourceTree = "<group>"; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D2AAC07A0554694100DB518D /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 2872664810F0FFD300DD4D54 /* bands.h in Headers */, + 2872664B10F0FFD300DD4D54 /* celt_header.h in Headers */, + 2872664C10F0FFD300DD4D54 /* celt_types.h in Headers */, + 2872664E10F0FFD300DD4D54 /* celt.h in Headers */, + 2872665010F0FFD300DD4D54 /* cwrs.h in Headers */, + 2872665210F0FFD300DD4D54 /* ecintrin.h in Headers */, + 2872665410F0FFD300DD4D54 /* entcode.h in Headers */, + 2872665610F0FFD300DD4D54 /* entdec.h in Headers */, + 2872665810F0FFD300DD4D54 /* entenc.h in Headers */, + 2872665B10F0FFD300DD4D54 /* fixed_debug.h in Headers */, + 2872665C10F0FFD300DD4D54 /* fixed_generic.h in Headers */, + 2872665D10F0FFD300DD4D54 /* float_cast.h in Headers */, + 2872665F10F0FFD300DD4D54 /* kfft_double.h in Headers */, + 2872666110F0FFD300DD4D54 /* kfft_single.h in Headers */, + 2872666310F0FFD300DD4D54 /* kiss_fft.h in Headers */, + 2872666510F0FFD300DD4D54 /* kiss_fftr.h in Headers */, + 2872666710F0FFD300DD4D54 /* laplace.h in Headers */, + 2872666810F0FFD300DD4D54 /* mathops.h in Headers */, + 2872666A10F0FFD300DD4D54 /* mdct.h in Headers */, + 2872666B10F0FFD300DD4D54 /* mfrngcod.h in Headers */, + 2872666F10F0FFD300DD4D54 /* modes.h in Headers */, + 2872667010F0FFD300DD4D54 /* os_support.h in Headers */, + 2872667210F0FFD300DD4D54 /* pitch.h in Headers */, + 2872667510F0FFD300DD4D54 /* psy.h in Headers */, + 2872667710F0FFD300DD4D54 /* quant_bands.h in Headers */, + 2872667B10F0FFD300DD4D54 /* rate.h in Headers */, + 2872667C10F0FFD300DD4D54 /* stack_alloc.h in Headers */, + 2872667F10F0FFD300DD4D54 /* vq.h in Headers */, + 2872668110F0FFF300DD4D54 /* arch.h in Headers */, + 2872668310F1000900DD4D54 /* _kiss_fft_guts.h in Headers */, + 287266FE10F1021E00DD4D54 /* c64_fft.h in Headers */, + 287266FF10F1021E00DD4D54 /* fixed_c5x.h in Headers */, + 2872670010F1021E00DD4D54 /* fixed_c6x.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D2AAC07D0554694100DB518D /* CELT */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1DEB921E08733DC00010E9CD /* Build configuration list for PBXNativeTarget "CELT" */; + buildPhases = ( + D2AAC07A0554694100DB518D /* Headers */, + D2AAC07B0554694100DB518D /* Sources */, + D2AAC07C0554694100DB518D /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = CELT; + productName = CELT; + productReference = D2AAC07E0554694100DB518D /* libCELT.a */; + productType = "com.apple.product-type.library.static"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 0867D690FE84028FC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB922208733DC00010E9CD /* Build configuration list for PBXProject "CELT" */; + compatibilityVersion = "Xcode 3.1"; + hasScannedForEncodings = 1; + mainGroup = 0867D691FE84028FC02AAC07 /* CELT */; + productRefGroup = 034768DFFF38A50411DB9C8B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D2AAC07D0554694100DB518D /* CELT */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXSourcesBuildPhase section */ + D2AAC07B0554694100DB518D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 2872664710F0FFD300DD4D54 /* bands.c in Sources */, + 2872664D10F0FFD300DD4D54 /* celt.c in Sources */, + 2872664F10F0FFD300DD4D54 /* cwrs.c in Sources */, + 2872665310F0FFD300DD4D54 /* entcode.c in Sources */, + 2872665510F0FFD300DD4D54 /* entdec.c in Sources */, + 2872665710F0FFD300DD4D54 /* entenc.c in Sources */, + 2872665E10F0FFD300DD4D54 /* header.c in Sources */, + 2872666210F0FFD300DD4D54 /* kiss_fft.c in Sources */, + 2872666410F0FFD300DD4D54 /* kiss_fftr.c in Sources */, + 2872666610F0FFD300DD4D54 /* laplace.c in Sources */, + 2872666910F0FFD300DD4D54 /* mdct.c in Sources */, + 2872666E10F0FFD300DD4D54 /* modes.c in Sources */, + 2872667110F0FFD300DD4D54 /* pitch.c in Sources */, + 2872667410F0FFD300DD4D54 /* psy.c in Sources */, + 2872667610F0FFD300DD4D54 /* quant_bands.c in Sources */, + 2872667810F0FFD300DD4D54 /* rangedec.c in Sources */, + 2872667910F0FFD300DD4D54 /* rangeenc.c in Sources */, + 2872667A10F0FFD300DD4D54 /* rate.c in Sources */, + 2872667E10F0FFD300DD4D54 /* vq.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 1DEB921F08733DC00010E9CD /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)"; + COPY_PHASE_STRIP = NO; + DSTROOT = /tmp/CELT.dst; + GCC_AUTO_VECTORIZATION = YES; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_FAST_MATH = YES; + GCC_INLINES_ARE_PRIVATE_EXTERN = YES; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PRECOMPILE_PREFIX_HEADER = NO; + GCC_PREFIX_HEADER = ""; + GCC_THUMB_SUPPORT = NO; + GCC_UNROLL_LOOPS = YES; + INSTALL_PATH = /usr/local/lib; + OTHER_CFLAGS = "-fsingle-precision-constant"; + "OTHER_CFLAGS[arch=armv7]" = ( + "-mfpu=neon", + "-mfloat-abi=softfp", + "-mcpu=cortex-a8", + ); + "OTHER_CPLUSPLUSFLAGS[arch=armv7]" = "$(OTHER_CFLAGS)"; + PRODUCT_NAME = CELT; + }; + name = Debug; + }; + 1DEB922008733DC00010E9CD /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)"; + DSTROOT = /tmp/CELT.dst; + GCC_AUTO_VECTORIZATION = YES; + GCC_FAST_MATH = YES; + GCC_INLINES_ARE_PRIVATE_EXTERN = YES; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PRECOMPILE_PREFIX_HEADER = NO; + GCC_PREFIX_HEADER = ""; + GCC_THUMB_SUPPORT = NO; + GCC_UNROLL_LOOPS = YES; + INSTALL_PATH = /usr/local/lib; + OTHER_CFLAGS = "-fsingle-precision-constant"; + "OTHER_CFLAGS[arch=armv7]" = ( + "-mfpu=neon", + "-mfloat-abi=softfp", + "-mcpu=cortex-a8", + ); + "OTHER_CPLUSPLUSFLAGS[arch=armv7]" = "$(OTHER_CFLAGS)"; + PRODUCT_NAME = CELT; + }; + name = Release; + }; + 1DEB922308733DC00010E9CD /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)"; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_ENABLE_SYMBOL_SEPARATION = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = HAVE_CONFIG_H; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ""; + OTHER_LDFLAGS = "-ObjC"; + PREBINDING = NO; + PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; + SDKROOT = iphoneos3.1.2; + USER_HEADER_SEARCH_PATHS = "${PROJECT_DIR}/** ${PROJECT_DIR}/../celt/libcelt//**"; + }; + name = Debug; + }; + 1DEB922408733DC00010E9CD /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)"; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_ENABLE_SYMBOL_SEPARATION = NO; + GCC_PREPROCESSOR_DEFINITIONS = HAVE_CONFIG_H; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ""; + OTHER_LDFLAGS = "-ObjC"; + PREBINDING = NO; + PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; + SDKROOT = iphoneos3.1.2; + USER_HEADER_SEARCH_PATHS = "${PROJECT_DIR}/** ${PROJECT_DIR}/../celt/libcelt//**"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 1DEB921E08733DC00010E9CD /* Build configuration list for PBXNativeTarget "CELT" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1DEB921F08733DC00010E9CD /* Debug */, + 1DEB922008733DC00010E9CD /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 1DEB922208733DC00010E9CD /* Build configuration list for PBXProject "CELT" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1DEB922308733DC00010E9CD /* Debug */, + 1DEB922408733DC00010E9CD /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 0867D690FE84028FC02AAC07 /* Project object */; +} diff --git a/3rdparty/celtbuild/config.h b/3rdparty/celtbuild/config.h new file mode 100644 index 0000000..dffdd24 --- /dev/null +++ b/3rdparty/celtbuild/config.h @@ -0,0 +1 @@ +#define FLOATING_POINT diff --git a/3rdparty/protobuf b/3rdparty/protobuf new file mode 160000 +Subproject f9a8bf63d403e8a6d2fc5629d3f27b05ffea93c diff --git a/3rdparty/protobufbuild/ProtocolBuffers.xcodeproj/project.pbxproj b/3rdparty/protobufbuild/ProtocolBuffers.xcodeproj/project.pbxproj new file mode 100755 index 0000000..aca9b96 --- /dev/null +++ b/3rdparty/protobufbuild/ProtocolBuffers.xcodeproj/project.pbxproj @@ -0,0 +1,844 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 1000000000000000000003C9 /* AbstractMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 1000000000000000000003C8 /* AbstractMessage.m */; }; + 1000000000000000000003CA /* AbstractMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 1000000000000000000003C8 /* AbstractMessage.m */; }; + 1000000000000000000003CD /* AbstractMessage_Builder.m in Sources */ = {isa = PBXBuildFile; fileRef = 1000000000000000000003CC /* AbstractMessage_Builder.m */; }; + 1000000000000000000003CE /* AbstractMessage_Builder.m in Sources */ = {isa = PBXBuildFile; fileRef = 1000000000000000000003CC /* AbstractMessage_Builder.m */; }; + 10000000000000000000069C /* CodedInputStream.m in Sources */ = {isa = PBXBuildFile; fileRef = 10000000000000000000069A /* CodedInputStream.m */; }; + 10000000000000000000069D /* CodedInputStream.m in Sources */ = {isa = PBXBuildFile; fileRef = 10000000000000000000069A /* CodedInputStream.m */; }; + 1000000000000000000006A0 /* CodedInputStreamTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 10000000000000000000069F /* CodedInputStreamTests.m */; }; + 1000000000000000000006A3 /* CodedOuputStreamTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 1000000000000000000006A2 /* CodedOuputStreamTests.m */; }; + 1000000000000000000006A6 /* CodedOutputStream.m in Sources */ = {isa = PBXBuildFile; fileRef = 1000000000000000000006A5 /* CodedOutputStream.m */; }; + 1000000000000000000006A7 /* CodedOutputStream.m in Sources */ = {isa = PBXBuildFile; fileRef = 1000000000000000000006A5 /* CodedOutputStream.m */; }; + 1000000000000000000007AD /* ConcreteExtensionField.h in Headers */ = {isa = PBXBuildFile; fileRef = 1000000000000000000007AC /* ConcreteExtensionField.h */; }; + 1000000000000000000007B0 /* ConcreteExtensionField.m in Sources */ = {isa = PBXBuildFile; fileRef = 1000000000000000000007AE /* ConcreteExtensionField.m */; }; + 1000000000000000000007B1 /* ConcreteExtensionField.m in Sources */ = {isa = PBXBuildFile; fileRef = 1000000000000000000007AE /* ConcreteExtensionField.m */; }; + 10000000000000000000081B /* CoreTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 10000000000000000000081A /* CoreTests.m */; }; + 100000000000000000000A0C /* ExtendableMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000000A0B /* ExtendableMessage.m */; }; + 100000000000000000000A0D /* ExtendableMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000000A0B /* ExtendableMessage.m */; }; + 100000000000000000000A0F /* ExtendableMessage_Builder.h in Headers */ = {isa = PBXBuildFile; fileRef = 100000000000000000000A0E /* ExtendableMessage_Builder.h */; }; + 100000000000000000000A11 /* ExtendableMessage_Builder.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000000A10 /* ExtendableMessage_Builder.m */; }; + 100000000000000000000A12 /* ExtendableMessage_Builder.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000000A10 /* ExtendableMessage_Builder.m */; }; + 100000000000000000000A14 /* ExtensionField.h in Headers */ = {isa = PBXBuildFile; fileRef = 100000000000000000000A13 /* ExtensionField.h */; }; + 100000000000000000000A18 /* ExtensionRegistry.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000000A16 /* ExtensionRegistry.m */; }; + 100000000000000000000A19 /* ExtensionRegistry.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000000A16 /* ExtensionRegistry.m */; }; + 100000000000000000000A78 /* Field.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000000A77 /* Field.m */; }; + 100000000000000000000A79 /* Field.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000000A77 /* Field.m */; }; + 100000000000000000000AC2 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 100000000000000000000AAF /* Foundation.framework */; }; + 100000000000000000000AC3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 100000000000000000000AAF /* Foundation.framework */; }; + 100000000000000000000BA6 /* GeneratedMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000000BA5 /* GeneratedMessage.m */; }; + 100000000000000000000BA7 /* GeneratedMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000000BA5 /* GeneratedMessage.m */; }; + 100000000000000000000BAA /* GeneratedMessageTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000000BA9 /* GeneratedMessageTests.m */; }; + 100000000000000000000BAD /* GeneratedMessage_Builder.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000000BAC /* GeneratedMessage_Builder.m */; }; + 100000000000000000000BAE /* GeneratedMessage_Builder.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000000BAC /* GeneratedMessage_Builder.m */; }; + 100000000000000000000E31 /* Main.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000000E30 /* Main.m */; }; + 100000000000000000000E9C /* MessageTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000000E9B /* MessageTests.m */; }; + 100000000000000000000E9D /* MessageTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000000E9B /* MessageTests.m */; }; + 100000000000000000000F08 /* MicroTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000000F07 /* MicroTest.m */; }; + 100000000000000000000F3F /* MutableExtensionRegistry.h in Headers */ = {isa = PBXBuildFile; fileRef = 100000000000000000000F3E /* MutableExtensionRegistry.h */; }; + 100000000000000000000F42 /* MutableExtensionRegistry.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000000F40 /* MutableExtensionRegistry.m */; }; + 100000000000000000000F43 /* MutableExtensionRegistry.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000000F40 /* MutableExtensionRegistry.m */; }; + 100000000000000000000F46 /* MutableField.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000000F45 /* MutableField.m */; }; + 100000000000000000000F47 /* MutableField.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000000F45 /* MutableField.m */; }; + 1000000000000000000016A9 /* SenTestingKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1000000000000000000016A8 /* SenTestingKit.framework */; }; + 1000000000000000000016AA /* SenTestingKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1000000000000000000016A8 /* SenTestingKit.framework */; }; + 10000000000000000000172C /* SmallBlockInputStream.m in Sources */ = {isa = PBXBuildFile; fileRef = 10000000000000000000172B /* SmallBlockInputStream.m */; }; + 100000000000000000001A83 /* TestUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001A82 /* TestUtilities.m */; }; + 100000000000000000001A84 /* TestUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001A82 /* TestUtilities.m */; }; + 100000000000000000001A8F /* TextFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001A8E /* TextFormat.m */; }; + 100000000000000000001A90 /* TextFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001A8E /* TextFormat.m */; }; + 100000000000000000001C1C /* Unittest.pb.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001C1A /* Unittest.pb.m */; }; + 100000000000000000001C1D /* Unittest.pb.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001C1A /* Unittest.pb.m */; }; + 100000000000000000001C20 /* UnittestEmbedOptimizeFor.pb.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001C1F /* UnittestEmbedOptimizeFor.pb.m */; }; + 100000000000000000001C24 /* UnittestImport.pb.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001C22 /* UnittestImport.pb.m */; }; + 100000000000000000001C25 /* UnittestImport.pb.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001C22 /* UnittestImport.pb.m */; }; + 100000000000000000001C28 /* UnittestMset.pb.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001C27 /* UnittestMset.pb.m */; }; + 100000000000000000001C2B /* UnittestOptimizeFor.pb.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001C2A /* UnittestOptimizeFor.pb.m */; }; + 100000000000000000001C2F /* UnknownFieldSet.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001C2D /* UnknownFieldSet.m */; }; + 100000000000000000001C30 /* UnknownFieldSet.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001C2D /* UnknownFieldSet.m */; }; + 100000000000000000001C34 /* UnknownFieldSetTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001C32 /* UnknownFieldSetTest.m */; }; + 100000000000000000001C35 /* UnknownFieldSetTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001C32 /* UnknownFieldSetTest.m */; }; + 100000000000000000001C38 /* UnknownFieldSet_Builder.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001C37 /* UnknownFieldSet_Builder.m */; }; + 100000000000000000001C39 /* UnknownFieldSet_Builder.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001C37 /* UnknownFieldSet_Builder.m */; }; + 100000000000000000001C62 /* Utilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001C5F /* Utilities.m */; }; + 100000000000000000001C63 /* Utilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001C5F /* Utilities.m */; }; + 100000000000000000001C66 /* UtilitiesTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001C65 /* UtilitiesTests.m */; }; + 100000000000000000001C96 /* WireFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001C95 /* WireFormat.m */; }; + 100000000000000000001C97 /* WireFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001C95 /* WireFormat.m */; }; + 100000000000000000001C9A /* WireFormatTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001C99 /* WireFormatTests.m */; }; + 100000000000000000001C9B /* WireFormatTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001C99 /* WireFormatTests.m */; }; + 100000000000000000001ED1 /* libProtocolBuffers.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 100000000000000000001ECF /* libProtocolBuffers.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 100000000000000000001221 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 100000000000000000001487 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 100000000000000000001489; + remoteInfo = ProtocolBuffers; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 1000000000000000000003C7 /* AbstractMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AbstractMessage.h; sourceTree = "<group>"; }; + 1000000000000000000003C8 /* AbstractMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AbstractMessage.m; sourceTree = "<group>"; }; + 1000000000000000000003CB /* AbstractMessage_Builder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AbstractMessage_Builder.h; sourceTree = "<group>"; }; + 1000000000000000000003CC /* AbstractMessage_Builder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AbstractMessage_Builder.m; sourceTree = "<group>"; }; + 100000000000000000000586 /* Bootstrap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Bootstrap.h; path = Classes/Bootstrap.h; sourceTree = "<group>"; }; + 100000000000000000000699 /* CodedInputStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CodedInputStream.h; sourceTree = "<group>"; }; + 10000000000000000000069A /* CodedInputStream.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CodedInputStream.m; sourceTree = "<group>"; }; + 10000000000000000000069E /* CodedInputStreamTests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CodedInputStreamTests.h; path = ../protobuf/objectivec/Tests/CodedInputStreamTests.h; sourceTree = "<group>"; }; + 10000000000000000000069F /* CodedInputStreamTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CodedInputStreamTests.m; path = ../protobuf/objectivec/Tests/CodedInputStreamTests.m; sourceTree = "<group>"; }; + 1000000000000000000006A1 /* CodedOuputStreamTests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CodedOuputStreamTests.h; path = ../protobuf/objectivec/Tests/CodedOuputStreamTests.h; sourceTree = "<group>"; }; + 1000000000000000000006A2 /* CodedOuputStreamTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CodedOuputStreamTests.m; path = ../protobuf/objectivec/Tests/CodedOuputStreamTests.m; sourceTree = "<group>"; }; + 1000000000000000000006A4 /* CodedOutputStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CodedOutputStream.h; sourceTree = "<group>"; }; + 1000000000000000000006A5 /* CodedOutputStream.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CodedOutputStream.m; sourceTree = "<group>"; }; + 1000000000000000000007A4 /* CommandLineTests.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = CommandLineTests.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 1000000000000000000007AC /* ConcreteExtensionField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConcreteExtensionField.h; sourceTree = "<group>"; }; + 1000000000000000000007AE /* ConcreteExtensionField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ConcreteExtensionField.m; sourceTree = "<group>"; }; + 100000000000000000000819 /* CoreTests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CoreTests.h; path = ../protobuf/objectivec/Tests/CoreTests.h; sourceTree = "<group>"; }; + 10000000000000000000081A /* CoreTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CoreTests.m; path = ../protobuf/objectivec/Tests/CoreTests.m; sourceTree = "<group>"; }; + 100000000000000000000A0A /* ExtendableMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ExtendableMessage.h; sourceTree = "<group>"; }; + 100000000000000000000A0B /* ExtendableMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ExtendableMessage.m; sourceTree = "<group>"; }; + 100000000000000000000A0E /* ExtendableMessage_Builder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ExtendableMessage_Builder.h; sourceTree = "<group>"; }; + 100000000000000000000A10 /* ExtendableMessage_Builder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ExtendableMessage_Builder.m; sourceTree = "<group>"; }; + 100000000000000000000A13 /* ExtensionField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ExtensionField.h; sourceTree = "<group>"; }; + 100000000000000000000A15 /* ExtensionRegistry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ExtensionRegistry.h; sourceTree = "<group>"; }; + 100000000000000000000A16 /* ExtensionRegistry.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ExtensionRegistry.m; sourceTree = "<group>"; }; + 100000000000000000000A76 /* Field.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Field.h; sourceTree = "<group>"; }; + 100000000000000000000A77 /* Field.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Field.m; sourceTree = "<group>"; }; + 100000000000000000000A9D /* ForwardDeclarations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ForwardDeclarations.h; path = Classes/ForwardDeclarations.h; sourceTree = "<group>"; }; + 100000000000000000000AAF /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + 100000000000000000000BA4 /* GeneratedMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GeneratedMessage.h; sourceTree = "<group>"; }; + 100000000000000000000BA5 /* GeneratedMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedMessage.m; sourceTree = "<group>"; }; + 100000000000000000000BA8 /* GeneratedMessageTests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GeneratedMessageTests.h; path = ../protobuf/objectivec/Tests/GeneratedMessageTests.h; sourceTree = "<group>"; }; + 100000000000000000000BA9 /* GeneratedMessageTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = GeneratedMessageTests.m; path = ../protobuf/objectivec/Tests/GeneratedMessageTests.m; sourceTree = "<group>"; }; + 100000000000000000000BAB /* GeneratedMessage_Builder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GeneratedMessage_Builder.h; sourceTree = "<group>"; }; + 100000000000000000000BAC /* GeneratedMessage_Builder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedMessage_Builder.m; sourceTree = "<group>"; }; + 100000000000000000000E30 /* Main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Main.m; sourceTree = "<group>"; }; + 100000000000000000000E96 /* Message.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Message.h; sourceTree = "<group>"; }; + 100000000000000000000E9A /* MessageTests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MessageTests.h; path = ../protobuf/objectivec/Tests/MessageTests.h; sourceTree = "<group>"; }; + 100000000000000000000E9B /* MessageTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MessageTests.m; path = ../protobuf/objectivec/Tests/MessageTests.m; sourceTree = "<group>"; }; + 100000000000000000000EBE /* Message_Builder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Message_Builder.h; sourceTree = "<group>"; }; + 100000000000000000000F06 /* MicroTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MicroTest.h; path = ../protobuf/objectivec/Tests/MicroTest.h; sourceTree = "<group>"; }; + 100000000000000000000F07 /* MicroTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MicroTest.m; path = ../protobuf/objectivec/Tests/MicroTest.m; sourceTree = "<group>"; }; + 100000000000000000000F3E /* MutableExtensionRegistry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MutableExtensionRegistry.h; sourceTree = "<group>"; }; + 100000000000000000000F40 /* MutableExtensionRegistry.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MutableExtensionRegistry.m; sourceTree = "<group>"; }; + 100000000000000000000F44 /* MutableField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MutableField.h; sourceTree = "<group>"; }; + 100000000000000000000F45 /* MutableField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MutableField.m; sourceTree = "<group>"; }; + 10000000000000000000148A /* ProtocolBuffers-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "ProtocolBuffers-Info.plist"; path = "../protobuf/objectivec/ProtocolBuffers-Info.plist"; plistStructureDefinitionIdentifier = "com.apple.xcode.plist.structure-definition.iphone.info-plist"; sourceTree = "<group>"; }; + 10000000000000000000148C /* ProtocolBuffers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ProtocolBuffers.h; path = Classes/ProtocolBuffers.h; sourceTree = "<group>"; }; + 10000000000000000000148F /* ProtocolBuffers_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProtocolBuffers_Prefix.pch; sourceTree = "<group>"; }; + 1000000000000000000016A8 /* SenTestingKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SenTestingKit.framework; path = Library/Frameworks/SenTestingKit.framework; sourceTree = DEVELOPER_DIR; }; + 10000000000000000000172A /* SmallBlockInputStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SmallBlockInputStream.h; path = ../protobuf/objectivec/Tests/SmallBlockInputStream.h; sourceTree = "<group>"; }; + 10000000000000000000172B /* SmallBlockInputStream.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SmallBlockInputStream.m; path = ../protobuf/objectivec/Tests/SmallBlockInputStream.m; sourceTree = "<group>"; }; + 100000000000000000001A81 /* TestUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TestUtilities.h; path = ../protobuf/objectivec/Tests/TestUtilities.h; sourceTree = "<group>"; }; + 100000000000000000001A82 /* TestUtilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TestUtilities.m; path = ../protobuf/objectivec/Tests/TestUtilities.m; sourceTree = "<group>"; }; + 100000000000000000001A8D /* TextFormat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextFormat.h; sourceTree = "<group>"; }; + 100000000000000000001A8E /* TextFormat.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TextFormat.m; sourceTree = "<group>"; }; + 100000000000000000001C13 /* UnitTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "UnitTests-Info.plist"; path = "../protobuf/objectivec/UnitTests-Info.plist"; sourceTree = "<group>"; }; + 100000000000000000001C15 /* UnitTests.octest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = UnitTests.octest; sourceTree = BUILT_PRODUCTS_DIR; }; + 100000000000000000001C19 /* Unittest.pb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Unittest.pb.h; path = ../protobuf/objectivec/Tests/Unittest.pb.h; sourceTree = "<group>"; }; + 100000000000000000001C1A /* Unittest.pb.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Unittest.pb.m; path = ../protobuf/objectivec/Tests/Unittest.pb.m; sourceTree = "<group>"; }; + 100000000000000000001C1E /* UnittestEmbedOptimizeFor.pb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UnittestEmbedOptimizeFor.pb.h; path = ../protobuf/objectivec/Tests/UnittestEmbedOptimizeFor.pb.h; sourceTree = "<group>"; }; + 100000000000000000001C1F /* UnittestEmbedOptimizeFor.pb.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = UnittestEmbedOptimizeFor.pb.m; path = ../protobuf/objectivec/Tests/UnittestEmbedOptimizeFor.pb.m; sourceTree = "<group>"; }; + 100000000000000000001C21 /* UnittestImport.pb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UnittestImport.pb.h; path = ../protobuf/objectivec/Tests/UnittestImport.pb.h; sourceTree = "<group>"; }; + 100000000000000000001C22 /* UnittestImport.pb.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = UnittestImport.pb.m; path = ../protobuf/objectivec/Tests/UnittestImport.pb.m; sourceTree = "<group>"; }; + 100000000000000000001C26 /* UnittestMset.pb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UnittestMset.pb.h; path = ../protobuf/objectivec/Tests/UnittestMset.pb.h; sourceTree = "<group>"; }; + 100000000000000000001C27 /* UnittestMset.pb.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = UnittestMset.pb.m; path = ../protobuf/objectivec/Tests/UnittestMset.pb.m; sourceTree = "<group>"; }; + 100000000000000000001C29 /* UnittestOptimizeFor.pb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UnittestOptimizeFor.pb.h; path = ../protobuf/objectivec/Tests/UnittestOptimizeFor.pb.h; sourceTree = "<group>"; }; + 100000000000000000001C2A /* UnittestOptimizeFor.pb.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = UnittestOptimizeFor.pb.m; path = ../protobuf/objectivec/Tests/UnittestOptimizeFor.pb.m; sourceTree = "<group>"; }; + 100000000000000000001C2C /* UnknownFieldSet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UnknownFieldSet.h; sourceTree = "<group>"; }; + 100000000000000000001C2D /* UnknownFieldSet.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UnknownFieldSet.m; sourceTree = "<group>"; }; + 100000000000000000001C31 /* UnknownFieldSetTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UnknownFieldSetTest.h; path = ../protobuf/objectivec/Tests/UnknownFieldSetTest.h; sourceTree = "<group>"; }; + 100000000000000000001C32 /* UnknownFieldSetTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = UnknownFieldSetTest.m; path = ../protobuf/objectivec/Tests/UnknownFieldSetTest.m; sourceTree = "<group>"; }; + 100000000000000000001C36 /* UnknownFieldSet_Builder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UnknownFieldSet_Builder.h; sourceTree = "<group>"; }; + 100000000000000000001C37 /* UnknownFieldSet_Builder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UnknownFieldSet_Builder.m; sourceTree = "<group>"; }; + 100000000000000000001C5C /* Utilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Utilities.h; sourceTree = "<group>"; }; + 100000000000000000001C5F /* Utilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Utilities.m; sourceTree = "<group>"; }; + 100000000000000000001C64 /* UtilitiesTests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UtilitiesTests.h; path = ../protobuf/objectivec/Tests/UtilitiesTests.h; sourceTree = "<group>"; }; + 100000000000000000001C65 /* UtilitiesTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = UtilitiesTests.m; path = ../protobuf/objectivec/Tests/UtilitiesTests.m; sourceTree = "<group>"; }; + 100000000000000000001C94 /* WireFormat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WireFormat.h; sourceTree = "<group>"; }; + 100000000000000000001C95 /* WireFormat.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WireFormat.m; sourceTree = "<group>"; }; + 100000000000000000001C98 /* WireFormatTests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WireFormatTests.h; path = ../protobuf/objectivec/Tests/WireFormatTests.h; sourceTree = "<group>"; }; + 100000000000000000001C99 /* WireFormatTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = WireFormatTests.m; path = ../protobuf/objectivec/Tests/WireFormatTests.m; sourceTree = "<group>"; }; + 100000000000000000001ECF /* libProtocolBuffers.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libProtocolBuffers.a; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 100000000000000000000B8A /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 100000000000000000001ED1 /* libProtocolBuffers.a in Frameworks */, + 1000000000000000000016A9 /* SenTestingKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 100000000000000000000B8C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 1000000000000000000016AA /* SenTestingKit.framework in Frameworks */, + 100000000000000000000AC3 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 100000000000000000000B8D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 100000000000000000000AC2 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 100000000000000000000694 /* Classes */ = { + isa = PBXGroup; + children = ( + 100000000000000000000A1A /* Extensions */, + 100000000000000000000A7A /* Fields */, + 100000000000000000000BA3 /* GeneratedMessage */, + 100000000000000000000BFD /* IO */, + 100000000000000000000EBF /* Messages */, + 100000000000000000001C5C /* Utilities.h */, + 100000000000000000001C5F /* Utilities.m */, + 100000000000000000000E30 /* Main.m */, + ); + name = Classes; + path = ../protobuf/objectivec/Classes; + sourceTree = "<group>"; + }; + 10000000000000000000087A /* CustomTemplate */ = { + isa = PBXGroup; + children = ( + 100000000000000000001A86 /* Tests */, + 100000000000000000000694 /* Classes */, + 10000000000000000000108F /* Other Sources */, + 1000000000000000000015EC /* Resources */, + 100000000000000000000B8B /* Frameworks */, + 100000000000000000001469 /* Products */, + ); + name = CustomTemplate; + sourceTree = "<group>"; + }; + 100000000000000000000A1A /* Extensions */ = { + isa = PBXGroup; + children = ( + 1000000000000000000007AC /* ConcreteExtensionField.h */, + 100000000000000000000A0A /* ExtendableMessage.h */, + 100000000000000000000A0E /* ExtendableMessage_Builder.h */, + 100000000000000000000A13 /* ExtensionField.h */, + 100000000000000000000A15 /* ExtensionRegistry.h */, + 100000000000000000000F3E /* MutableExtensionRegistry.h */, + 1000000000000000000007AE /* ConcreteExtensionField.m */, + 100000000000000000000A0B /* ExtendableMessage.m */, + 100000000000000000000A10 /* ExtendableMessage_Builder.m */, + 100000000000000000000A16 /* ExtensionRegistry.m */, + 100000000000000000000F40 /* MutableExtensionRegistry.m */, + ); + name = Extensions; + sourceTree = "<group>"; + }; + 100000000000000000000A7A /* Fields */ = { + isa = PBXGroup; + children = ( + 100000000000000000000A76 /* Field.h */, + 100000000000000000000F44 /* MutableField.h */, + 100000000000000000001C2C /* UnknownFieldSet.h */, + 100000000000000000001C36 /* UnknownFieldSet_Builder.h */, + 100000000000000000000A77 /* Field.m */, + 100000000000000000000F45 /* MutableField.m */, + 100000000000000000001C2D /* UnknownFieldSet.m */, + 100000000000000000001C37 /* UnknownFieldSet_Builder.m */, + ); + name = Fields; + sourceTree = "<group>"; + }; + 100000000000000000000B8B /* Frameworks */ = { + isa = PBXGroup; + children = ( + 1000000000000000000016A8 /* SenTestingKit.framework */, + 100000000000000000000AAF /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = "<group>"; + }; + 100000000000000000000BA3 /* GeneratedMessage */ = { + isa = PBXGroup; + children = ( + 100000000000000000000BA4 /* GeneratedMessage.h */, + 100000000000000000000BAB /* GeneratedMessage_Builder.h */, + 100000000000000000000BA5 /* GeneratedMessage.m */, + 100000000000000000000BAC /* GeneratedMessage_Builder.m */, + ); + name = GeneratedMessage; + sourceTree = "<group>"; + }; + 100000000000000000000BFD /* IO */ = { + isa = PBXGroup; + children = ( + 100000000000000000000699 /* CodedInputStream.h */, + 1000000000000000000006A4 /* CodedOutputStream.h */, + 100000000000000000001A8D /* TextFormat.h */, + 100000000000000000001C94 /* WireFormat.h */, + 10000000000000000000069A /* CodedInputStream.m */, + 1000000000000000000006A5 /* CodedOutputStream.m */, + 100000000000000000001A8E /* TextFormat.m */, + 100000000000000000001C95 /* WireFormat.m */, + ); + name = IO; + sourceTree = "<group>"; + }; + 100000000000000000000EBF /* Messages */ = { + isa = PBXGroup; + children = ( + 1000000000000000000003C7 /* AbstractMessage.h */, + 1000000000000000000003CB /* AbstractMessage_Builder.h */, + 100000000000000000000E96 /* Message.h */, + 100000000000000000000EBE /* Message_Builder.h */, + 1000000000000000000003C8 /* AbstractMessage.m */, + 1000000000000000000003CC /* AbstractMessage_Builder.m */, + ); + name = Messages; + sourceTree = "<group>"; + }; + 10000000000000000000108F /* Other Sources */ = { + isa = PBXGroup; + children = ( + 10000000000000000000148F /* ProtocolBuffers_Prefix.pch */, + 100000000000000000000586 /* Bootstrap.h */, + 100000000000000000000A9D /* ForwardDeclarations.h */, + 10000000000000000000148C /* ProtocolBuffers.h */, + ); + name = "Other Sources"; + path = ../protobuf/objectivec; + sourceTree = "<group>"; + }; + 100000000000000000001469 /* Products */ = { + isa = PBXGroup; + children = ( + 100000000000000000001ECF /* libProtocolBuffers.a */, + 100000000000000000001C15 /* UnitTests.octest */, + 1000000000000000000007A4 /* CommandLineTests.app */, + ); + name = Products; + sourceTree = "<group>"; + }; + 1000000000000000000015EC /* Resources */ = { + isa = PBXGroup; + children = ( + 10000000000000000000148A /* ProtocolBuffers-Info.plist */, + 100000000000000000001C13 /* UnitTests-Info.plist */, + ); + name = Resources; + sourceTree = "<group>"; + }; + 100000000000000000001A86 /* Tests */ = { + isa = PBXGroup; + children = ( + 10000000000000000000069E /* CodedInputStreamTests.h */, + 1000000000000000000006A1 /* CodedOuputStreamTests.h */, + 100000000000000000000819 /* CoreTests.h */, + 100000000000000000000BA8 /* GeneratedMessageTests.h */, + 100000000000000000000E9A /* MessageTests.h */, + 100000000000000000000F06 /* MicroTest.h */, + 10000000000000000000172A /* SmallBlockInputStream.h */, + 100000000000000000001A81 /* TestUtilities.h */, + 100000000000000000001C19 /* Unittest.pb.h */, + 100000000000000000001C1E /* UnittestEmbedOptimizeFor.pb.h */, + 100000000000000000001C21 /* UnittestImport.pb.h */, + 100000000000000000001C26 /* UnittestMset.pb.h */, + 100000000000000000001C29 /* UnittestOptimizeFor.pb.h */, + 100000000000000000001C31 /* UnknownFieldSetTest.h */, + 100000000000000000001C64 /* UtilitiesTests.h */, + 100000000000000000001C98 /* WireFormatTests.h */, + 10000000000000000000069F /* CodedInputStreamTests.m */, + 1000000000000000000006A2 /* CodedOuputStreamTests.m */, + 10000000000000000000081A /* CoreTests.m */, + 100000000000000000000BA9 /* GeneratedMessageTests.m */, + 100000000000000000000E9B /* MessageTests.m */, + 100000000000000000000F07 /* MicroTest.m */, + 10000000000000000000172B /* SmallBlockInputStream.m */, + 100000000000000000001A82 /* TestUtilities.m */, + 100000000000000000001C1A /* Unittest.pb.m */, + 100000000000000000001C1F /* UnittestEmbedOptimizeFor.pb.m */, + 100000000000000000001C22 /* UnittestImport.pb.m */, + 100000000000000000001C27 /* UnittestMset.pb.m */, + 100000000000000000001C2A /* UnittestOptimizeFor.pb.m */, + 100000000000000000001C32 /* UnknownFieldSetTest.m */, + 100000000000000000001C65 /* UtilitiesTests.m */, + 100000000000000000001C99 /* WireFormatTests.m */, + ); + name = Tests; + sourceTree = "<group>"; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 100000000000000000000BD4 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 100000000000000000000F3F /* MutableExtensionRegistry.h in Headers */, + 100000000000000000000A14 /* ExtensionField.h in Headers */, + 100000000000000000000A0F /* ExtendableMessage_Builder.h in Headers */, + 1000000000000000000007AD /* ConcreteExtensionField.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 1000000000000000000007A2 /* CommandLineTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1000000000000000000005F8 /* Build configuration list for PBXNativeTarget "CommandLineTests" */; + buildPhases = ( + 1000000000000000000015F6 /* Resources */, + 1000000000000000000017DA /* Sources */, + 100000000000000000000B8C /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = CommandLineTests; + productName = CommandLineTests; + productReference = 1000000000000000000007A4 /* CommandLineTests.app */; + productType = "com.apple.product-type.application"; + }; + 100000000000000000001489 /* ProtocolBuffers */ = { + isa = PBXNativeTarget; + buildConfigurationList = 100000000000000000000605 /* Build configuration list for PBXNativeTarget "ProtocolBuffers" */; + buildPhases = ( + 100000000000000000000BD4 /* Headers */, + 100000000000000000001791 /* Sources */, + 100000000000000000000B8D /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = ProtocolBuffers; + productName = "ProtocolBuffers-iPhoneDevice"; + productReference = 100000000000000000001ECF /* libProtocolBuffers.a */; + productType = "com.apple.product-type.library.static"; + }; + 100000000000000000001C12 /* UnitTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 100000000000000000000611 /* Build configuration list for PBXNativeTarget "UnitTests" */; + buildPhases = ( + 1000000000000000000015F7 /* Resources */, + 1000000000000000000017DB /* Sources */, + 100000000000000000000B8A /* Frameworks */, + 10000000000000000000170D /* ShellScript */, + ); + buildRules = ( + ); + dependencies = ( + 100000000000000000001388 /* PBXTargetDependency */, + ); + name = UnitTests; + productName = UnitTests; + productReference = 100000000000000000001C15 /* UnitTests.octest */; + productType = "com.apple.product-type.bundle"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 100000000000000000001487 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 10000000000000000000065D /* Build configuration list for PBXProject "ProtocolBuffers" */; + compatibilityVersion = "Xcode 3.1"; + hasScannedForEncodings = 1; + mainGroup = 10000000000000000000087A /* CustomTemplate */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 100000000000000000001489 /* ProtocolBuffers */, + 100000000000000000001C12 /* UnitTests */, + 1000000000000000000007A2 /* CommandLineTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 1000000000000000000015F6 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 1000000000000000000015F7 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 10000000000000000000170D /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "# Run the unit tests in this test bundle.\n\"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests\"\n"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 100000000000000000001791 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 1000000000000000000003C9 /* AbstractMessage.m in Sources */, + 1000000000000000000003CD /* AbstractMessage_Builder.m in Sources */, + 10000000000000000000069D /* CodedInputStream.m in Sources */, + 1000000000000000000006A6 /* CodedOutputStream.m in Sources */, + 100000000000000000000A0C /* ExtendableMessage.m in Sources */, + 100000000000000000000A19 /* ExtensionRegistry.m in Sources */, + 100000000000000000000A78 /* Field.m in Sources */, + 100000000000000000000BA6 /* GeneratedMessage.m in Sources */, + 100000000000000000000BAD /* GeneratedMessage_Builder.m in Sources */, + 100000000000000000000F46 /* MutableField.m in Sources */, + 100000000000000000001A8F /* TextFormat.m in Sources */, + 100000000000000000001C30 /* UnknownFieldSet.m in Sources */, + 100000000000000000001C38 /* UnknownFieldSet_Builder.m in Sources */, + 100000000000000000001C62 /* Utilities.m in Sources */, + 100000000000000000001C96 /* WireFormat.m in Sources */, + 100000000000000000000F43 /* MutableExtensionRegistry.m in Sources */, + 100000000000000000000A11 /* ExtendableMessage_Builder.m in Sources */, + 1000000000000000000007B1 /* ConcreteExtensionField.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 1000000000000000000017DA /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 100000000000000000001C9B /* WireFormatTests.m in Sources */, + 100000000000000000001A84 /* TestUtilities.m in Sources */, + 100000000000000000001C34 /* UnknownFieldSetTest.m in Sources */, + 100000000000000000001C24 /* UnittestImport.pb.m in Sources */, + 100000000000000000001C1C /* Unittest.pb.m in Sources */, + 100000000000000000000E9D /* MessageTests.m in Sources */, + 1000000000000000000003CA /* AbstractMessage.m in Sources */, + 1000000000000000000003CE /* AbstractMessage_Builder.m in Sources */, + 10000000000000000000069C /* CodedInputStream.m in Sources */, + 1000000000000000000006A7 /* CodedOutputStream.m in Sources */, + 100000000000000000000A0D /* ExtendableMessage.m in Sources */, + 100000000000000000000A18 /* ExtensionRegistry.m in Sources */, + 100000000000000000000A79 /* Field.m in Sources */, + 100000000000000000000BA7 /* GeneratedMessage.m in Sources */, + 100000000000000000000BAE /* GeneratedMessage_Builder.m in Sources */, + 100000000000000000000F47 /* MutableField.m in Sources */, + 100000000000000000001A90 /* TextFormat.m in Sources */, + 100000000000000000001C2F /* UnknownFieldSet.m in Sources */, + 100000000000000000001C39 /* UnknownFieldSet_Builder.m in Sources */, + 100000000000000000001C63 /* Utilities.m in Sources */, + 100000000000000000001C97 /* WireFormat.m in Sources */, + 100000000000000000000F42 /* MutableExtensionRegistry.m in Sources */, + 100000000000000000000A12 /* ExtendableMessage_Builder.m in Sources */, + 1000000000000000000007B0 /* ConcreteExtensionField.m in Sources */, + 100000000000000000000E31 /* Main.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 1000000000000000000017DB /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 1000000000000000000006A0 /* CodedInputStreamTests.m in Sources */, + 1000000000000000000006A3 /* CodedOuputStreamTests.m in Sources */, + 10000000000000000000081B /* CoreTests.m in Sources */, + 100000000000000000000BAA /* GeneratedMessageTests.m in Sources */, + 100000000000000000000E9C /* MessageTests.m in Sources */, + 100000000000000000000F08 /* MicroTest.m in Sources */, + 10000000000000000000172C /* SmallBlockInputStream.m in Sources */, + 100000000000000000001A83 /* TestUtilities.m in Sources */, + 100000000000000000001C1D /* Unittest.pb.m in Sources */, + 100000000000000000001C20 /* UnittestEmbedOptimizeFor.pb.m in Sources */, + 100000000000000000001C25 /* UnittestImport.pb.m in Sources */, + 100000000000000000001C28 /* UnittestMset.pb.m in Sources */, + 100000000000000000001C2B /* UnittestOptimizeFor.pb.m in Sources */, + 100000000000000000001C35 /* UnknownFieldSetTest.m in Sources */, + 100000000000000000001C66 /* UtilitiesTests.m in Sources */, + 100000000000000000001C9A /* WireFormatTests.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 100000000000000000001388 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 100000000000000000001489 /* ProtocolBuffers */; + targetProxy = 100000000000000000001221 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 100000000000000000000993 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = NO; + FRAMEWORK_SEARCH_PATHS = "$(DEVELOPER_LIBRARY_DIR)/Frameworks"; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Cocoa.framework/Headers/Cocoa.h"; + INFOPLIST_FILE = "UnitTests-Info.plist"; + INSTALL_PATH = "$(USER_LIBRARY_DIR)/Bundles"; + OTHER_LDFLAGS = ( + "-framework", + Cocoa, + "-framework", + SenTestingKit, + ); + PREBINDING = NO; + PRODUCT_NAME = UnitTests; + SDKROOT = ""; + WRAPPER_EXTENSION = octest; + }; + name = Debug; + }; + 100000000000000000000995 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)"; + GCC_AUTO_VECTORIZATION = YES; + GCC_FAST_MATH = YES; + GCC_INLINES_ARE_PRIVATE_EXTERN = YES; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREFIX_HEADER = "${PROJECT_DIR}/../protobuf/objectivec/ProtocolBuffers_Prefix.pch"; + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_UNROLL_LOOPS = YES; + ONLY_ACTIVE_ARCH = NO; + VALID_ARCHS = "i386 armv6 armv7"; + }; + name = Debug; + }; + 100000000000000000000997 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"$(DEVELOPER_FRAMEWORKS_DIR)\"", + ); + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ProtocolBuffers_Prefix.pch; + GCC_TREAT_WARNINGS_AS_ERRORS = NO; + INFOPLIST_FILE = "UnitTests-Info.plist"; + INSTALL_PATH = "$(HOME)/Applications"; + OTHER_LDFLAGS = ( + "-framework", + Foundation, + "-framework", + AppKit, + "-ObjC", + "-framework", + SenTestingKit, + ); + PREBINDING = NO; + PRODUCT_NAME = CommandLineTests; + SDKROOT = macosx10.5; + }; + name = Debug; + }; + 100000000000000000000998 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ProtocolBuffers_Prefix.pch; + GCC_TREAT_WARNINGS_AS_ERRORS = YES; + GCC_WARN_ABOUT_MISSING_NEWLINE = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_MISSING_PARENTHESES = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + ONLY_ACTIVE_ARCH = YES; + OTHER_LDFLAGS = ( + "-ObjC", + "-all_load", + ); + PREBINDING = NO; + PRODUCT_NAME = "$(PROJECT_NAME)"; + SDKROOT = iphonesimulator3.0; + }; + name = Debug; + }; + 1000000000000000000015CD /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"$(DEVELOPER_FRAMEWORKS_DIR)\"", + ); + GCC_ENABLE_FIX_AND_CONTINUE = NO; + GCC_MODEL_TUNING = G5; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ProtocolBuffers_Prefix.pch; + GCC_TREAT_WARNINGS_AS_ERRORS = NO; + INFOPLIST_FILE = "UnitTests-Info.plist"; + INSTALL_PATH = "$(HOME)/Applications"; + OTHER_LDFLAGS = ( + "-framework", + Foundation, + "-framework", + AppKit, + "-ObjC", + "-framework", + SenTestingKit, + ); + PREBINDING = NO; + PRODUCT_NAME = CommandLineTests; + SDKROOT = macosx10.5; + ZERO_LINK = NO; + }; + name = Release; + }; + 1000000000000000000015CF /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + FRAMEWORK_SEARCH_PATHS = "$(DEVELOPER_LIBRARY_DIR)/Frameworks"; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_MODEL_TUNING = G5; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Cocoa.framework/Headers/Cocoa.h"; + INFOPLIST_FILE = "UnitTests-Info.plist"; + INSTALL_PATH = "$(USER_LIBRARY_DIR)/Bundles"; + OTHER_LDFLAGS = ( + "-framework", + Cocoa, + "-framework", + SenTestingKit, + ); + PREBINDING = NO; + PRODUCT_NAME = UnitTests; + WRAPPER_EXTENSION = octest; + ZERO_LINK = NO; + }; + name = Release; + }; + 1000000000000000000015D0 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)"; + GCC_AUTO_VECTORIZATION = YES; + GCC_FAST_MATH = YES; + GCC_INLINES_ARE_PRIVATE_EXTERN = YES; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREFIX_HEADER = "${PROJECT_DIR}/../protobuf/objectivec/ProtocolBuffers_Prefix.pch"; + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_UNROLL_LOOPS = YES; + ONLY_ACTIVE_ARCH = NO; + VALID_ARCHS = "i386 armv6 armv7"; + }; + name = Release; + }; + 1000000000000000000015D1 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ProtocolBuffers_Prefix.pch; + GCC_TREAT_WARNINGS_AS_ERRORS = YES; + GCC_WARN_ABOUT_MISSING_NEWLINE = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_MISSING_PARENTHESES = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + OTHER_LDFLAGS = ( + "-ObjC", + "-all_load", + ); + PREBINDING = NO; + PRODUCT_NAME = "$(PROJECT_NAME)"; + SDKROOT = iphonesimulator3.0; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 1000000000000000000005F8 /* Build configuration list for PBXNativeTarget "CommandLineTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 100000000000000000000997 /* Debug */, + 1000000000000000000015CD /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 100000000000000000000605 /* Build configuration list for PBXNativeTarget "ProtocolBuffers" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 100000000000000000000995 /* Debug */, + 1000000000000000000015D0 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 100000000000000000000611 /* Build configuration list for PBXNativeTarget "UnitTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 100000000000000000000993 /* Debug */, + 1000000000000000000015CF /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 10000000000000000000065D /* Build configuration list for PBXProject "ProtocolBuffers" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 100000000000000000000998 /* Debug */, + 1000000000000000000015D1 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 100000000000000000001487 /* Project object */; +} diff --git a/3rdparty/speex b/3rdparty/speex new file mode 160000 +Subproject a6d05eb5ff9d5062852cdf7df574bec728921ef diff --git a/3rdparty/speexbuild/Speex.xcodeproj/project.pbxproj b/3rdparty/speexbuild/Speex.xcodeproj/project.pbxproj new file mode 100644 index 0000000..8f4e635 --- /dev/null +++ b/3rdparty/speexbuild/Speex.xcodeproj/project.pbxproj @@ -0,0 +1,575 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 2888698810F165260060BD16 /* _kiss_fft_guts.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888692710F165260060BD16 /* _kiss_fft_guts.h */; }; + 2888698910F165260060BD16 /* arch.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888692810F165260060BD16 /* arch.h */; }; + 2888698A10F165260060BD16 /* bfin.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888692910F165260060BD16 /* bfin.h */; }; + 2888698B10F165260060BD16 /* bits.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888692A10F165260060BD16 /* bits.c */; }; + 2888698D10F165260060BD16 /* cb_search_arm4.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888692C10F165260060BD16 /* cb_search_arm4.h */; }; + 2888698E10F165260060BD16 /* cb_search_bfin.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888692D10F165260060BD16 /* cb_search_bfin.h */; }; + 2888698F10F165260060BD16 /* cb_search_sse.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888692E10F165260060BD16 /* cb_search_sse.h */; }; + 2888699010F165260060BD16 /* cb_search.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888692F10F165260060BD16 /* cb_search.c */; }; + 2888699110F165260060BD16 /* cb_search.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888693010F165260060BD16 /* cb_search.h */; }; + 2888699310F165260060BD16 /* exc_5_64_table.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888693210F165260060BD16 /* exc_5_64_table.c */; }; + 2888699410F165260060BD16 /* exc_5_256_table.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888693310F165260060BD16 /* exc_5_256_table.c */; }; + 2888699510F165260060BD16 /* exc_8_128_table.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888693410F165260060BD16 /* exc_8_128_table.c */; }; + 2888699610F165260060BD16 /* exc_10_16_table.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888693510F165260060BD16 /* exc_10_16_table.c */; }; + 2888699710F165260060BD16 /* exc_10_32_table.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888693610F165260060BD16 /* exc_10_32_table.c */; }; + 2888699810F165260060BD16 /* exc_20_32_table.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888693710F165260060BD16 /* exc_20_32_table.c */; }; + 2888699A10F165260060BD16 /* fftwrap.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888693910F165260060BD16 /* fftwrap.h */; }; + 2888699C10F165260060BD16 /* filterbank.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888693B10F165260060BD16 /* filterbank.h */; }; + 2888699D10F165260060BD16 /* filters_arm4.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888693C10F165260060BD16 /* filters_arm4.h */; }; + 2888699E10F165260060BD16 /* filters_bfin.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888693D10F165260060BD16 /* filters_bfin.h */; }; + 2888699F10F165260060BD16 /* filters_sse.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888693E10F165260060BD16 /* filters_sse.h */; }; + 288869A010F165260060BD16 /* filters.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888693F10F165260060BD16 /* filters.c */; }; + 288869A110F165260060BD16 /* filters.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888694010F165260060BD16 /* filters.h */; }; + 288869A210F165260060BD16 /* fixed_arm4.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888694110F165260060BD16 /* fixed_arm4.h */; }; + 288869A310F165260060BD16 /* fixed_arm5e.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888694210F165260060BD16 /* fixed_arm5e.h */; }; + 288869A410F165260060BD16 /* fixed_bfin.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888694310F165260060BD16 /* fixed_bfin.h */; }; + 288869A510F165260060BD16 /* fixed_debug.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888694410F165260060BD16 /* fixed_debug.h */; }; + 288869A610F165260060BD16 /* fixed_generic.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888694510F165260060BD16 /* fixed_generic.h */; }; + 288869A710F165260060BD16 /* gain_table_lbr.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888694610F165260060BD16 /* gain_table_lbr.c */; }; + 288869A810F165260060BD16 /* gain_table.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888694710F165260060BD16 /* gain_table.c */; }; + 288869A910F165260060BD16 /* hexc_10_32_table.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888694810F165260060BD16 /* hexc_10_32_table.c */; }; + 288869AA10F165260060BD16 /* hexc_table.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888694910F165260060BD16 /* hexc_table.c */; }; + 288869AB10F165260060BD16 /* high_lsp_tables.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888694A10F165260060BD16 /* high_lsp_tables.c */; }; + 288869AD10F165260060BD16 /* kiss_fft.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888694C10F165260060BD16 /* kiss_fft.c */; }; + 288869AE10F165260060BD16 /* kiss_fft.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888694D10F165260060BD16 /* kiss_fft.h */; }; + 288869AF10F165260060BD16 /* kiss_fftr.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888694E10F165260060BD16 /* kiss_fftr.c */; }; + 288869B010F165260060BD16 /* kiss_fftr.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888694F10F165260060BD16 /* kiss_fftr.h */; }; + 288869B110F165260060BD16 /* lpc_bfin.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888695010F165260060BD16 /* lpc_bfin.h */; }; + 288869B210F165260060BD16 /* lpc.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888695110F165260060BD16 /* lpc.c */; }; + 288869B310F165260060BD16 /* lpc.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888695210F165260060BD16 /* lpc.h */; }; + 288869B410F165260060BD16 /* lsp_bfin.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888695310F165260060BD16 /* lsp_bfin.h */; }; + 288869B510F165260060BD16 /* lsp_tables_nb.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888695410F165260060BD16 /* lsp_tables_nb.c */; }; + 288869B610F165260060BD16 /* lsp.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888695510F165260060BD16 /* lsp.c */; }; + 288869B710F165260060BD16 /* lsp.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888695610F165260060BD16 /* lsp.h */; }; + 288869B810F165260060BD16 /* ltp_arm4.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888695710F165260060BD16 /* ltp_arm4.h */; }; + 288869B910F165260060BD16 /* ltp_bfin.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888695810F165260060BD16 /* ltp_bfin.h */; }; + 288869BA10F165260060BD16 /* ltp_sse.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888695910F165260060BD16 /* ltp_sse.h */; }; + 288869BB10F165260060BD16 /* ltp.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888695A10F165260060BD16 /* ltp.c */; }; + 288869BC10F165260060BD16 /* ltp.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888695B10F165260060BD16 /* ltp.h */; }; + 288869BD10F165260060BD16 /* math_approx.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888695D10F165260060BD16 /* math_approx.h */; }; + 288869BF10F165260060BD16 /* misc_bfin.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888695F10F165260060BD16 /* misc_bfin.h */; }; + 288869C010F165260060BD16 /* modes_wb.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888696010F165260060BD16 /* modes_wb.c */; }; + 288869C110F165260060BD16 /* modes.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888696110F165260060BD16 /* modes.c */; }; + 288869C210F165260060BD16 /* modes.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888696210F165260060BD16 /* modes.h */; }; + 288869C310F165260060BD16 /* nb_celp.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888696310F165260060BD16 /* nb_celp.c */; }; + 288869C410F165260060BD16 /* nb_celp.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888696410F165260060BD16 /* nb_celp.h */; }; + 288869C510F165260060BD16 /* os_support.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888696510F165260060BD16 /* os_support.h */; }; + 288869C710F165260060BD16 /* pseudofloat.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888696710F165260060BD16 /* pseudofloat.h */; }; + 288869C810F165260060BD16 /* quant_lsp_bfin.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888696810F165260060BD16 /* quant_lsp_bfin.h */; }; + 288869C910F165260060BD16 /* quant_lsp.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888696910F165260060BD16 /* quant_lsp.c */; }; + 288869CA10F165260060BD16 /* quant_lsp.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888696A10F165260060BD16 /* quant_lsp.h */; }; + 288869CB10F165260060BD16 /* resample_sse.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888696B10F165260060BD16 /* resample_sse.h */; }; + 288869CD10F165260060BD16 /* sb_celp.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888696D10F165260060BD16 /* sb_celp.c */; }; + 288869CE10F165260060BD16 /* sb_celp.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888696E10F165260060BD16 /* sb_celp.h */; }; + 288869CF10F165260060BD16 /* scal.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888696F10F165260060BD16 /* scal.c */; }; + 288869D110F165260060BD16 /* smallft.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888697110F165260060BD16 /* smallft.h */; }; + 288869D210F165260060BD16 /* speex_callbacks.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888697210F165260060BD16 /* speex_callbacks.c */; }; + 288869D310F165260060BD16 /* speex_header.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888697310F165260060BD16 /* speex_header.c */; }; + 288869D410F165260060BD16 /* speex.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888697410F165260060BD16 /* speex.c */; }; + 288869D510F165260060BD16 /* stack_alloc.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888697510F165260060BD16 /* stack_alloc.h */; }; + 288869D610F165260060BD16 /* stereo.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888697610F165260060BD16 /* stereo.c */; }; + 288869DE10F165260060BD16 /* vbr.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888697E10F165260060BD16 /* vbr.c */; }; + 288869DF10F165260060BD16 /* vbr.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888697F10F165260060BD16 /* vbr.h */; }; + 288869E010F165260060BD16 /* vorbis_psy.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888698010F165260060BD16 /* vorbis_psy.c */; }; + 288869E110F165260060BD16 /* vorbis_psy.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888698110F165260060BD16 /* vorbis_psy.h */; }; + 288869E210F165260060BD16 /* vq_arm4.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888698210F165260060BD16 /* vq_arm4.h */; }; + 288869E310F165260060BD16 /* vq_bfin.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888698310F165260060BD16 /* vq_bfin.h */; }; + 288869E410F165260060BD16 /* vq_sse.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888698410F165260060BD16 /* vq_sse.h */; }; + 288869E510F165260060BD16 /* vq.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888698510F165260060BD16 /* vq.c */; }; + 288869E610F165260060BD16 /* vq.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888698610F165260060BD16 /* vq.h */; }; + 288869E710F165260060BD16 /* window.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888698710F165260060BD16 /* window.c */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 2888692710F165260060BD16 /* _kiss_fft_guts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = _kiss_fft_guts.h; path = ../speex/libspeex/_kiss_fft_guts.h; sourceTree = SOURCE_ROOT; }; + 2888692810F165260060BD16 /* arch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = arch.h; path = ../speex/libspeex/arch.h; sourceTree = SOURCE_ROOT; }; + 2888692910F165260060BD16 /* bfin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = bfin.h; path = ../speex/libspeex/bfin.h; sourceTree = SOURCE_ROOT; }; + 2888692A10F165260060BD16 /* bits.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = bits.c; path = ../speex/libspeex/bits.c; sourceTree = SOURCE_ROOT; }; + 2888692B10F165260060BD16 /* buffer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = buffer.c; path = ../speex/libspeex/buffer.c; sourceTree = SOURCE_ROOT; }; + 2888692C10F165260060BD16 /* cb_search_arm4.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cb_search_arm4.h; path = ../speex/libspeex/cb_search_arm4.h; sourceTree = SOURCE_ROOT; }; + 2888692D10F165260060BD16 /* cb_search_bfin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cb_search_bfin.h; path = ../speex/libspeex/cb_search_bfin.h; sourceTree = SOURCE_ROOT; }; + 2888692E10F165260060BD16 /* cb_search_sse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cb_search_sse.h; path = ../speex/libspeex/cb_search_sse.h; sourceTree = SOURCE_ROOT; }; + 2888692F10F165260060BD16 /* cb_search.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = cb_search.c; path = ../speex/libspeex/cb_search.c; sourceTree = SOURCE_ROOT; }; + 2888693010F165260060BD16 /* cb_search.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cb_search.h; path = ../speex/libspeex/cb_search.h; sourceTree = SOURCE_ROOT; }; + 2888693110F165260060BD16 /* echo_diagnostic.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = echo_diagnostic.m; path = ../speex/libspeex/echo_diagnostic.m; sourceTree = SOURCE_ROOT; }; + 2888693210F165260060BD16 /* exc_5_64_table.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = exc_5_64_table.c; path = ../speex/libspeex/exc_5_64_table.c; sourceTree = SOURCE_ROOT; }; + 2888693310F165260060BD16 /* exc_5_256_table.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = exc_5_256_table.c; path = ../speex/libspeex/exc_5_256_table.c; sourceTree = SOURCE_ROOT; }; + 2888693410F165260060BD16 /* exc_8_128_table.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = exc_8_128_table.c; path = ../speex/libspeex/exc_8_128_table.c; sourceTree = SOURCE_ROOT; }; + 2888693510F165260060BD16 /* exc_10_16_table.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = exc_10_16_table.c; path = ../speex/libspeex/exc_10_16_table.c; sourceTree = SOURCE_ROOT; }; + 2888693610F165260060BD16 /* exc_10_32_table.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = exc_10_32_table.c; path = ../speex/libspeex/exc_10_32_table.c; sourceTree = SOURCE_ROOT; }; + 2888693710F165260060BD16 /* exc_20_32_table.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = exc_20_32_table.c; path = ../speex/libspeex/exc_20_32_table.c; sourceTree = SOURCE_ROOT; }; + 2888693810F165260060BD16 /* fftwrap.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = fftwrap.c; path = ../speex/libspeex/fftwrap.c; sourceTree = SOURCE_ROOT; }; + 2888693910F165260060BD16 /* fftwrap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fftwrap.h; path = ../speex/libspeex/fftwrap.h; sourceTree = SOURCE_ROOT; }; + 2888693A10F165260060BD16 /* filterbank.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = filterbank.c; path = ../speex/libspeex/filterbank.c; sourceTree = SOURCE_ROOT; }; + 2888693B10F165260060BD16 /* filterbank.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = filterbank.h; path = ../speex/libspeex/filterbank.h; sourceTree = SOURCE_ROOT; }; + 2888693C10F165260060BD16 /* filters_arm4.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = filters_arm4.h; path = ../speex/libspeex/filters_arm4.h; sourceTree = SOURCE_ROOT; }; + 2888693D10F165260060BD16 /* filters_bfin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = filters_bfin.h; path = ../speex/libspeex/filters_bfin.h; sourceTree = SOURCE_ROOT; }; + 2888693E10F165260060BD16 /* filters_sse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = filters_sse.h; path = ../speex/libspeex/filters_sse.h; sourceTree = SOURCE_ROOT; }; + 2888693F10F165260060BD16 /* filters.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = filters.c; path = ../speex/libspeex/filters.c; sourceTree = SOURCE_ROOT; }; + 2888694010F165260060BD16 /* filters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = filters.h; path = ../speex/libspeex/filters.h; sourceTree = SOURCE_ROOT; }; + 2888694110F165260060BD16 /* fixed_arm4.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fixed_arm4.h; path = ../speex/libspeex/fixed_arm4.h; sourceTree = SOURCE_ROOT; }; + 2888694210F165260060BD16 /* fixed_arm5e.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fixed_arm5e.h; path = ../speex/libspeex/fixed_arm5e.h; sourceTree = SOURCE_ROOT; }; + 2888694310F165260060BD16 /* fixed_bfin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fixed_bfin.h; path = ../speex/libspeex/fixed_bfin.h; sourceTree = SOURCE_ROOT; }; + 2888694410F165260060BD16 /* fixed_debug.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fixed_debug.h; path = ../speex/libspeex/fixed_debug.h; sourceTree = SOURCE_ROOT; }; + 2888694510F165260060BD16 /* fixed_generic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fixed_generic.h; path = ../speex/libspeex/fixed_generic.h; sourceTree = SOURCE_ROOT; }; + 2888694610F165260060BD16 /* gain_table_lbr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = gain_table_lbr.c; path = ../speex/libspeex/gain_table_lbr.c; sourceTree = SOURCE_ROOT; }; + 2888694710F165260060BD16 /* gain_table.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = gain_table.c; path = ../speex/libspeex/gain_table.c; sourceTree = SOURCE_ROOT; }; + 2888694810F165260060BD16 /* hexc_10_32_table.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = hexc_10_32_table.c; path = ../speex/libspeex/hexc_10_32_table.c; sourceTree = SOURCE_ROOT; }; + 2888694910F165260060BD16 /* hexc_table.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = hexc_table.c; path = ../speex/libspeex/hexc_table.c; sourceTree = SOURCE_ROOT; }; + 2888694A10F165260060BD16 /* high_lsp_tables.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = high_lsp_tables.c; path = ../speex/libspeex/high_lsp_tables.c; sourceTree = SOURCE_ROOT; }; + 2888694B10F165260060BD16 /* jitter.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jitter.c; path = ../speex/libspeex/jitter.c; sourceTree = SOURCE_ROOT; }; + 2888694C10F165260060BD16 /* kiss_fft.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = kiss_fft.c; path = ../speex/libspeex/kiss_fft.c; sourceTree = SOURCE_ROOT; }; + 2888694D10F165260060BD16 /* kiss_fft.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = kiss_fft.h; path = ../speex/libspeex/kiss_fft.h; sourceTree = SOURCE_ROOT; }; + 2888694E10F165260060BD16 /* kiss_fftr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = kiss_fftr.c; path = ../speex/libspeex/kiss_fftr.c; sourceTree = SOURCE_ROOT; }; + 2888694F10F165260060BD16 /* kiss_fftr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = kiss_fftr.h; path = ../speex/libspeex/kiss_fftr.h; sourceTree = SOURCE_ROOT; }; + 2888695010F165260060BD16 /* lpc_bfin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lpc_bfin.h; path = ../speex/libspeex/lpc_bfin.h; sourceTree = SOURCE_ROOT; }; + 2888695110F165260060BD16 /* lpc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lpc.c; path = ../speex/libspeex/lpc.c; sourceTree = SOURCE_ROOT; }; + 2888695210F165260060BD16 /* lpc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lpc.h; path = ../speex/libspeex/lpc.h; sourceTree = SOURCE_ROOT; }; + 2888695310F165260060BD16 /* lsp_bfin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lsp_bfin.h; path = ../speex/libspeex/lsp_bfin.h; sourceTree = SOURCE_ROOT; }; + 2888695410F165260060BD16 /* lsp_tables_nb.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lsp_tables_nb.c; path = ../speex/libspeex/lsp_tables_nb.c; sourceTree = SOURCE_ROOT; }; + 2888695510F165260060BD16 /* lsp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lsp.c; path = ../speex/libspeex/lsp.c; sourceTree = SOURCE_ROOT; }; + 2888695610F165260060BD16 /* lsp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lsp.h; path = ../speex/libspeex/lsp.h; sourceTree = SOURCE_ROOT; }; + 2888695710F165260060BD16 /* ltp_arm4.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ltp_arm4.h; path = ../speex/libspeex/ltp_arm4.h; sourceTree = SOURCE_ROOT; }; + 2888695810F165260060BD16 /* ltp_bfin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ltp_bfin.h; path = ../speex/libspeex/ltp_bfin.h; sourceTree = SOURCE_ROOT; }; + 2888695910F165260060BD16 /* ltp_sse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ltp_sse.h; path = ../speex/libspeex/ltp_sse.h; sourceTree = SOURCE_ROOT; }; + 2888695A10F165260060BD16 /* ltp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ltp.c; path = ../speex/libspeex/ltp.c; sourceTree = SOURCE_ROOT; }; + 2888695B10F165260060BD16 /* ltp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ltp.h; path = ../speex/libspeex/ltp.h; sourceTree = SOURCE_ROOT; }; + 2888695C10F165260060BD16 /* Makefile.am */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = Makefile.am; path = ../speex/libspeex/Makefile.am; sourceTree = SOURCE_ROOT; }; + 2888695D10F165260060BD16 /* math_approx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = math_approx.h; path = ../speex/libspeex/math_approx.h; sourceTree = SOURCE_ROOT; }; + 2888695E10F165260060BD16 /* mdf.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = mdf.c; path = ../speex/libspeex/mdf.c; sourceTree = SOURCE_ROOT; }; + 2888695F10F165260060BD16 /* misc_bfin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = misc_bfin.h; path = ../speex/libspeex/misc_bfin.h; sourceTree = SOURCE_ROOT; }; + 2888696010F165260060BD16 /* modes_wb.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = modes_wb.c; path = ../speex/libspeex/modes_wb.c; sourceTree = SOURCE_ROOT; }; + 2888696110F165260060BD16 /* modes.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = modes.c; path = ../speex/libspeex/modes.c; sourceTree = SOURCE_ROOT; }; + 2888696210F165260060BD16 /* modes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = modes.h; path = ../speex/libspeex/modes.h; sourceTree = SOURCE_ROOT; }; + 2888696310F165260060BD16 /* nb_celp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = nb_celp.c; path = ../speex/libspeex/nb_celp.c; sourceTree = SOURCE_ROOT; }; + 2888696410F165260060BD16 /* nb_celp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = nb_celp.h; path = ../speex/libspeex/nb_celp.h; sourceTree = SOURCE_ROOT; }; + 2888696510F165260060BD16 /* os_support.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = os_support.h; path = ../speex/libspeex/os_support.h; sourceTree = SOURCE_ROOT; }; + 2888696610F165260060BD16 /* preprocess.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = preprocess.c; path = ../speex/libspeex/preprocess.c; sourceTree = SOURCE_ROOT; }; + 2888696710F165260060BD16 /* pseudofloat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = pseudofloat.h; path = ../speex/libspeex/pseudofloat.h; sourceTree = SOURCE_ROOT; }; + 2888696810F165260060BD16 /* quant_lsp_bfin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = quant_lsp_bfin.h; path = ../speex/libspeex/quant_lsp_bfin.h; sourceTree = SOURCE_ROOT; }; + 2888696910F165260060BD16 /* quant_lsp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = quant_lsp.c; path = ../speex/libspeex/quant_lsp.c; sourceTree = SOURCE_ROOT; }; + 2888696A10F165260060BD16 /* quant_lsp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = quant_lsp.h; path = ../speex/libspeex/quant_lsp.h; sourceTree = SOURCE_ROOT; }; + 2888696B10F165260060BD16 /* resample_sse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = resample_sse.h; path = ../speex/libspeex/resample_sse.h; sourceTree = SOURCE_ROOT; }; + 2888696C10F165260060BD16 /* resample.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = resample.c; path = ../speex/libspeex/resample.c; sourceTree = SOURCE_ROOT; }; + 2888696D10F165260060BD16 /* sb_celp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sb_celp.c; path = ../speex/libspeex/sb_celp.c; sourceTree = SOURCE_ROOT; }; + 2888696E10F165260060BD16 /* sb_celp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = sb_celp.h; path = ../speex/libspeex/sb_celp.h; sourceTree = SOURCE_ROOT; }; + 2888696F10F165260060BD16 /* scal.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = scal.c; path = ../speex/libspeex/scal.c; sourceTree = SOURCE_ROOT; }; + 2888697010F165260060BD16 /* smallft.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = smallft.c; path = ../speex/libspeex/smallft.c; sourceTree = SOURCE_ROOT; }; + 2888697110F165260060BD16 /* smallft.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = smallft.h; path = ../speex/libspeex/smallft.h; sourceTree = SOURCE_ROOT; }; + 2888697210F165260060BD16 /* speex_callbacks.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = speex_callbacks.c; path = ../speex/libspeex/speex_callbacks.c; sourceTree = SOURCE_ROOT; }; + 2888697310F165260060BD16 /* speex_header.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = speex_header.c; path = ../speex/libspeex/speex_header.c; sourceTree = SOURCE_ROOT; }; + 2888697410F165260060BD16 /* speex.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = speex.c; path = ../speex/libspeex/speex.c; sourceTree = SOURCE_ROOT; }; + 2888697510F165260060BD16 /* stack_alloc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = stack_alloc.h; path = ../speex/libspeex/stack_alloc.h; sourceTree = SOURCE_ROOT; }; + 2888697610F165260060BD16 /* stereo.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = stereo.c; path = ../speex/libspeex/stereo.c; sourceTree = SOURCE_ROOT; }; + 2888697710F165260060BD16 /* testdenoise.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testdenoise.c; path = ../speex/libspeex/testdenoise.c; sourceTree = SOURCE_ROOT; }; + 2888697810F165260060BD16 /* testecho.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testecho.c; path = ../speex/libspeex/testecho.c; sourceTree = SOURCE_ROOT; }; + 2888697910F165260060BD16 /* testenc_uwb.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testenc_uwb.c; path = ../speex/libspeex/testenc_uwb.c; sourceTree = SOURCE_ROOT; }; + 2888697A10F165260060BD16 /* testenc_wb.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testenc_wb.c; path = ../speex/libspeex/testenc_wb.c; sourceTree = SOURCE_ROOT; }; + 2888697B10F165260060BD16 /* testenc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testenc.c; path = ../speex/libspeex/testenc.c; sourceTree = SOURCE_ROOT; }; + 2888697C10F165260060BD16 /* testjitter.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testjitter.c; path = ../speex/libspeex/testjitter.c; sourceTree = SOURCE_ROOT; }; + 2888697D10F165260060BD16 /* testresample.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testresample.c; path = ../speex/libspeex/testresample.c; sourceTree = SOURCE_ROOT; }; + 2888697E10F165260060BD16 /* vbr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = vbr.c; path = ../speex/libspeex/vbr.c; sourceTree = SOURCE_ROOT; }; + 2888697F10F165260060BD16 /* vbr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vbr.h; path = ../speex/libspeex/vbr.h; sourceTree = SOURCE_ROOT; }; + 2888698010F165260060BD16 /* vorbis_psy.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = vorbis_psy.c; path = ../speex/libspeex/vorbis_psy.c; sourceTree = SOURCE_ROOT; }; + 2888698110F165260060BD16 /* vorbis_psy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vorbis_psy.h; path = ../speex/libspeex/vorbis_psy.h; sourceTree = SOURCE_ROOT; }; + 2888698210F165260060BD16 /* vq_arm4.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vq_arm4.h; path = ../speex/libspeex/vq_arm4.h; sourceTree = SOURCE_ROOT; }; + 2888698310F165260060BD16 /* vq_bfin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vq_bfin.h; path = ../speex/libspeex/vq_bfin.h; sourceTree = SOURCE_ROOT; }; + 2888698410F165260060BD16 /* vq_sse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vq_sse.h; path = ../speex/libspeex/vq_sse.h; sourceTree = SOURCE_ROOT; }; + 2888698510F165260060BD16 /* vq.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = vq.c; path = ../speex/libspeex/vq.c; sourceTree = SOURCE_ROOT; }; + 2888698610F165260060BD16 /* vq.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vq.h; path = ../speex/libspeex/vq.h; sourceTree = SOURCE_ROOT; }; + 2888698710F165260060BD16 /* window.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = window.c; path = ../speex/libspeex/window.c; sourceTree = SOURCE_ROOT; }; + D2AAC07E0554694100DB518D /* libSpeex.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libSpeex.a; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D2AAC07C0554694100DB518D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 034768DFFF38A50411DB9C8B /* Products */ = { + isa = PBXGroup; + children = ( + D2AAC07E0554694100DB518D /* libSpeex.a */, + ); + name = Products; + sourceTree = "<group>"; + }; + 0867D691FE84028FC02AAC07 /* Speex */ = { + isa = PBXGroup; + children = ( + 32C88DFF0371C24200C91783 /* Source */, + 034768DFFF38A50411DB9C8B /* Products */, + ); + name = Speex; + sourceTree = "<group>"; + }; + 32C88DFF0371C24200C91783 /* Source */ = { + isa = PBXGroup; + children = ( + 2888692710F165260060BD16 /* _kiss_fft_guts.h */, + 2888692810F165260060BD16 /* arch.h */, + 2888692910F165260060BD16 /* bfin.h */, + 2888692A10F165260060BD16 /* bits.c */, + 2888692B10F165260060BD16 /* buffer.c */, + 2888692C10F165260060BD16 /* cb_search_arm4.h */, + 2888692D10F165260060BD16 /* cb_search_bfin.h */, + 2888692E10F165260060BD16 /* cb_search_sse.h */, + 2888692F10F165260060BD16 /* cb_search.c */, + 2888693010F165260060BD16 /* cb_search.h */, + 2888693110F165260060BD16 /* echo_diagnostic.m */, + 2888693210F165260060BD16 /* exc_5_64_table.c */, + 2888693310F165260060BD16 /* exc_5_256_table.c */, + 2888693410F165260060BD16 /* exc_8_128_table.c */, + 2888693510F165260060BD16 /* exc_10_16_table.c */, + 2888693610F165260060BD16 /* exc_10_32_table.c */, + 2888693710F165260060BD16 /* exc_20_32_table.c */, + 2888693810F165260060BD16 /* fftwrap.c */, + 2888693910F165260060BD16 /* fftwrap.h */, + 2888693A10F165260060BD16 /* filterbank.c */, + 2888693B10F165260060BD16 /* filterbank.h */, + 2888693C10F165260060BD16 /* filters_arm4.h */, + 2888693D10F165260060BD16 /* filters_bfin.h */, + 2888693E10F165260060BD16 /* filters_sse.h */, + 2888693F10F165260060BD16 /* filters.c */, + 2888694010F165260060BD16 /* filters.h */, + 2888694110F165260060BD16 /* fixed_arm4.h */, + 2888694210F165260060BD16 /* fixed_arm5e.h */, + 2888694310F165260060BD16 /* fixed_bfin.h */, + 2888694410F165260060BD16 /* fixed_debug.h */, + 2888694510F165260060BD16 /* fixed_generic.h */, + 2888694610F165260060BD16 /* gain_table_lbr.c */, + 2888694710F165260060BD16 /* gain_table.c */, + 2888694810F165260060BD16 /* hexc_10_32_table.c */, + 2888694910F165260060BD16 /* hexc_table.c */, + 2888694A10F165260060BD16 /* high_lsp_tables.c */, + 2888694B10F165260060BD16 /* jitter.c */, + 2888694C10F165260060BD16 /* kiss_fft.c */, + 2888694D10F165260060BD16 /* kiss_fft.h */, + 2888694E10F165260060BD16 /* kiss_fftr.c */, + 2888694F10F165260060BD16 /* kiss_fftr.h */, + 2888695010F165260060BD16 /* lpc_bfin.h */, + 2888695110F165260060BD16 /* lpc.c */, + 2888695210F165260060BD16 /* lpc.h */, + 2888695310F165260060BD16 /* lsp_bfin.h */, + 2888695410F165260060BD16 /* lsp_tables_nb.c */, + 2888695510F165260060BD16 /* lsp.c */, + 2888695610F165260060BD16 /* lsp.h */, + 2888695710F165260060BD16 /* ltp_arm4.h */, + 2888695810F165260060BD16 /* ltp_bfin.h */, + 2888695910F165260060BD16 /* ltp_sse.h */, + 2888695A10F165260060BD16 /* ltp.c */, + 2888695B10F165260060BD16 /* ltp.h */, + 2888695C10F165260060BD16 /* Makefile.am */, + 2888695D10F165260060BD16 /* math_approx.h */, + 2888695E10F165260060BD16 /* mdf.c */, + 2888695F10F165260060BD16 /* misc_bfin.h */, + 2888696010F165260060BD16 /* modes_wb.c */, + 2888696110F165260060BD16 /* modes.c */, + 2888696210F165260060BD16 /* modes.h */, + 2888696310F165260060BD16 /* nb_celp.c */, + 2888696410F165260060BD16 /* nb_celp.h */, + 2888696510F165260060BD16 /* os_support.h */, + 2888696610F165260060BD16 /* preprocess.c */, + 2888696710F165260060BD16 /* pseudofloat.h */, + 2888696810F165260060BD16 /* quant_lsp_bfin.h */, + 2888696910F165260060BD16 /* quant_lsp.c */, + 2888696A10F165260060BD16 /* quant_lsp.h */, + 2888696B10F165260060BD16 /* resample_sse.h */, + 2888696C10F165260060BD16 /* resample.c */, + 2888696D10F165260060BD16 /* sb_celp.c */, + 2888696E10F165260060BD16 /* sb_celp.h */, + 2888696F10F165260060BD16 /* scal.c */, + 2888697010F165260060BD16 /* smallft.c */, + 2888697110F165260060BD16 /* smallft.h */, + 2888697210F165260060BD16 /* speex_callbacks.c */, + 2888697310F165260060BD16 /* speex_header.c */, + 2888697410F165260060BD16 /* speex.c */, + 2888697510F165260060BD16 /* stack_alloc.h */, + 2888697610F165260060BD16 /* stereo.c */, + 2888697710F165260060BD16 /* testdenoise.c */, + 2888697810F165260060BD16 /* testecho.c */, + 2888697910F165260060BD16 /* testenc_uwb.c */, + 2888697A10F165260060BD16 /* testenc_wb.c */, + 2888697B10F165260060BD16 /* testenc.c */, + 2888697C10F165260060BD16 /* testjitter.c */, + 2888697D10F165260060BD16 /* testresample.c */, + 2888697E10F165260060BD16 /* vbr.c */, + 2888697F10F165260060BD16 /* vbr.h */, + 2888698010F165260060BD16 /* vorbis_psy.c */, + 2888698110F165260060BD16 /* vorbis_psy.h */, + 2888698210F165260060BD16 /* vq_arm4.h */, + 2888698310F165260060BD16 /* vq_bfin.h */, + 2888698410F165260060BD16 /* vq_sse.h */, + 2888698510F165260060BD16 /* vq.c */, + 2888698610F165260060BD16 /* vq.h */, + 2888698710F165260060BD16 /* window.c */, + ); + name = Source; + path = ../speex/libspeex; + sourceTree = "<group>"; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D2AAC07A0554694100DB518D /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 2888698810F165260060BD16 /* _kiss_fft_guts.h in Headers */, + 2888698910F165260060BD16 /* arch.h in Headers */, + 2888698A10F165260060BD16 /* bfin.h in Headers */, + 2888698D10F165260060BD16 /* cb_search_arm4.h in Headers */, + 2888698E10F165260060BD16 /* cb_search_bfin.h in Headers */, + 2888698F10F165260060BD16 /* cb_search_sse.h in Headers */, + 2888699110F165260060BD16 /* cb_search.h in Headers */, + 2888699A10F165260060BD16 /* fftwrap.h in Headers */, + 2888699C10F165260060BD16 /* filterbank.h in Headers */, + 2888699D10F165260060BD16 /* filters_arm4.h in Headers */, + 2888699E10F165260060BD16 /* filters_bfin.h in Headers */, + 2888699F10F165260060BD16 /* filters_sse.h in Headers */, + 288869A110F165260060BD16 /* filters.h in Headers */, + 288869A210F165260060BD16 /* fixed_arm4.h in Headers */, + 288869A310F165260060BD16 /* fixed_arm5e.h in Headers */, + 288869A410F165260060BD16 /* fixed_bfin.h in Headers */, + 288869A510F165260060BD16 /* fixed_debug.h in Headers */, + 288869A610F165260060BD16 /* fixed_generic.h in Headers */, + 288869AE10F165260060BD16 /* kiss_fft.h in Headers */, + 288869B010F165260060BD16 /* kiss_fftr.h in Headers */, + 288869B110F165260060BD16 /* lpc_bfin.h in Headers */, + 288869B310F165260060BD16 /* lpc.h in Headers */, + 288869B410F165260060BD16 /* lsp_bfin.h in Headers */, + 288869B710F165260060BD16 /* lsp.h in Headers */, + 288869B810F165260060BD16 /* ltp_arm4.h in Headers */, + 288869B910F165260060BD16 /* ltp_bfin.h in Headers */, + 288869BA10F165260060BD16 /* ltp_sse.h in Headers */, + 288869BC10F165260060BD16 /* ltp.h in Headers */, + 288869BD10F165260060BD16 /* math_approx.h in Headers */, + 288869BF10F165260060BD16 /* misc_bfin.h in Headers */, + 288869C210F165260060BD16 /* modes.h in Headers */, + 288869C410F165260060BD16 /* nb_celp.h in Headers */, + 288869C510F165260060BD16 /* os_support.h in Headers */, + 288869C710F165260060BD16 /* pseudofloat.h in Headers */, + 288869C810F165260060BD16 /* quant_lsp_bfin.h in Headers */, + 288869CA10F165260060BD16 /* quant_lsp.h in Headers */, + 288869CB10F165260060BD16 /* resample_sse.h in Headers */, + 288869CE10F165260060BD16 /* sb_celp.h in Headers */, + 288869D110F165260060BD16 /* smallft.h in Headers */, + 288869D510F165260060BD16 /* stack_alloc.h in Headers */, + 288869DF10F165260060BD16 /* vbr.h in Headers */, + 288869E110F165260060BD16 /* vorbis_psy.h in Headers */, + 288869E210F165260060BD16 /* vq_arm4.h in Headers */, + 288869E310F165260060BD16 /* vq_bfin.h in Headers */, + 288869E410F165260060BD16 /* vq_sse.h in Headers */, + 288869E610F165260060BD16 /* vq.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D2AAC07D0554694100DB518D /* Speex */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1DEB921E08733DC00010E9CD /* Build configuration list for PBXNativeTarget "Speex" */; + buildPhases = ( + D2AAC07A0554694100DB518D /* Headers */, + D2AAC07B0554694100DB518D /* Sources */, + D2AAC07C0554694100DB518D /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Speex; + productName = Speex; + productReference = D2AAC07E0554694100DB518D /* libSpeex.a */; + productType = "com.apple.product-type.library.static"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 0867D690FE84028FC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB922208733DC00010E9CD /* Build configuration list for PBXProject "Speex" */; + compatibilityVersion = "Xcode 3.1"; + hasScannedForEncodings = 1; + mainGroup = 0867D691FE84028FC02AAC07 /* Speex */; + productRefGroup = 034768DFFF38A50411DB9C8B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D2AAC07D0554694100DB518D /* Speex */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXSourcesBuildPhase section */ + D2AAC07B0554694100DB518D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 2888698B10F165260060BD16 /* bits.c in Sources */, + 2888699010F165260060BD16 /* cb_search.c in Sources */, + 2888699310F165260060BD16 /* exc_5_64_table.c in Sources */, + 2888699410F165260060BD16 /* exc_5_256_table.c in Sources */, + 2888699510F165260060BD16 /* exc_8_128_table.c in Sources */, + 2888699610F165260060BD16 /* exc_10_16_table.c in Sources */, + 2888699710F165260060BD16 /* exc_10_32_table.c in Sources */, + 2888699810F165260060BD16 /* exc_20_32_table.c in Sources */, + 288869A010F165260060BD16 /* filters.c in Sources */, + 288869A710F165260060BD16 /* gain_table_lbr.c in Sources */, + 288869A810F165260060BD16 /* gain_table.c in Sources */, + 288869A910F165260060BD16 /* hexc_10_32_table.c in Sources */, + 288869AA10F165260060BD16 /* hexc_table.c in Sources */, + 288869AB10F165260060BD16 /* high_lsp_tables.c in Sources */, + 288869AD10F165260060BD16 /* kiss_fft.c in Sources */, + 288869AF10F165260060BD16 /* kiss_fftr.c in Sources */, + 288869B210F165260060BD16 /* lpc.c in Sources */, + 288869B510F165260060BD16 /* lsp_tables_nb.c in Sources */, + 288869B610F165260060BD16 /* lsp.c in Sources */, + 288869BB10F165260060BD16 /* ltp.c in Sources */, + 288869C010F165260060BD16 /* modes_wb.c in Sources */, + 288869C110F165260060BD16 /* modes.c in Sources */, + 288869C310F165260060BD16 /* nb_celp.c in Sources */, + 288869C910F165260060BD16 /* quant_lsp.c in Sources */, + 288869CD10F165260060BD16 /* sb_celp.c in Sources */, + 288869CF10F165260060BD16 /* scal.c in Sources */, + 288869D210F165260060BD16 /* speex_callbacks.c in Sources */, + 288869D310F165260060BD16 /* speex_header.c in Sources */, + 288869D410F165260060BD16 /* speex.c in Sources */, + 288869D610F165260060BD16 /* stereo.c in Sources */, + 288869DE10F165260060BD16 /* vbr.c in Sources */, + 288869E010F165260060BD16 /* vorbis_psy.c in Sources */, + 288869E510F165260060BD16 /* vq.c in Sources */, + 288869E710F165260060BD16 /* window.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 1DEB921F08733DC00010E9CD /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)"; + COPY_PHASE_STRIP = NO; + DSTROOT = /tmp/Speex.dst; + GCC_AUTO_VECTORIZATION = YES; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_FAST_MATH = YES; + GCC_INLINES_ARE_PRIVATE_EXTERN = YES; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_THUMB_SUPPORT = NO; + GCC_UNROLL_LOOPS = YES; + INSTALL_PATH = /usr/local/lib; + OTHER_CFLAGS = "-fsingle-precision-constant"; + "OTHER_CFLAGS[arch=armv7]" = ( + "-mfpu=neon", + "-mfloat-abi=softfp", + "-mcpu=cortex-a8", + ); + "OTHER_CPLUSPLUSFLAGS[arch=armv7]" = "$(OTHER_CFLAGS)"; + PRODUCT_NAME = Speex; + }; + name = Debug; + }; + 1DEB922008733DC00010E9CD /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)"; + DSTROOT = /tmp/Speex.dst; + GCC_AUTO_VECTORIZATION = YES; + GCC_FAST_MATH = YES; + GCC_INLINES_ARE_PRIVATE_EXTERN = YES; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_THUMB_SUPPORT = NO; + GCC_UNROLL_LOOPS = YES; + INSTALL_PATH = /usr/local/lib; + OTHER_CFLAGS = "-fsingle-precision-constant"; + "OTHER_CFLAGS[arch=armv7]" = ( + "-mfpu=neon", + "-mfloat-abi=softfp", + "-mcpu=cortex-a8", + ); + "OTHER_CPLUSPLUSFLAGS[arch=armv7]" = "$(OTHER_CFLAGS)"; + PRODUCT_NAME = Speex; + }; + name = Release; + }; + 1DEB922308733DC00010E9CD /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = HAVE_CONFIG_H; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = "${PROJECT_DIR}/../speex/include//**"; + OTHER_LDFLAGS = "-ObjC"; + PREBINDING = NO; + SDKROOT = iphoneos3.1.2; + USER_HEADER_SEARCH_PATHS = "${PROJECT_DIR}/** ${PROJECT_DIR}/../speex/libspeex//**"; + }; + name = Debug; + }; + 1DEB922408733DC00010E9CD /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_PREPROCESSOR_DEFINITIONS = HAVE_CONFIG_H; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = "${PROJECT_DIR}/../speex/include//**"; + OTHER_LDFLAGS = "-ObjC"; + PREBINDING = NO; + SDKROOT = iphoneos3.1.2; + USER_HEADER_SEARCH_PATHS = "${PROJECT_DIR}/** ${PROJECT_DIR}/../speex/libspeex//**"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 1DEB921E08733DC00010E9CD /* Build configuration list for PBXNativeTarget "Speex" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1DEB921F08733DC00010E9CD /* Debug */, + 1DEB922008733DC00010E9CD /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 1DEB922208733DC00010E9CD /* Build configuration list for PBXProject "Speex" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1DEB922308733DC00010E9CD /* Debug */, + 1DEB922408733DC00010E9CD /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 0867D690FE84028FC02AAC07 /* Project object */; +} diff --git a/3rdparty/speexbuild/config.h b/3rdparty/speexbuild/config.h new file mode 100644 index 0000000..a213890 --- /dev/null +++ b/3rdparty/speexbuild/config.h @@ -0,0 +1,3 @@ +#define FLOATING_POINT +#define USE_SMALLFT +#define EXPORT diff --git a/3rdparty/speexdspbuild/SpeexDSP.xcodeproj/project.pbxproj b/3rdparty/speexdspbuild/SpeexDSP.xcodeproj/project.pbxproj new file mode 100644 index 0000000..c288b3a --- /dev/null +++ b/3rdparty/speexdspbuild/SpeexDSP.xcodeproj/project.pbxproj @@ -0,0 +1,293 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 2862FAA710F16ABD00EDDFA1 /* speex_jitter.h in Headers */ = {isa = PBXBuildFile; fileRef = 2862FA9710F16ABD00EDDFA1 /* speex_jitter.h */; }; + 2862FAA810F16ABD00EDDFA1 /* speex_preprocess.h in Headers */ = {isa = PBXBuildFile; fileRef = 2862FA9810F16ABD00EDDFA1 /* speex_preprocess.h */; }; + 2862FAA910F16ABD00EDDFA1 /* speex_resampler.h in Headers */ = {isa = PBXBuildFile; fileRef = 2862FA9910F16ABD00EDDFA1 /* speex_resampler.h */; }; + 2862FAAA10F16ABD00EDDFA1 /* speex_types.h in Headers */ = {isa = PBXBuildFile; fileRef = 2862FA9A10F16ABD00EDDFA1 /* speex_types.h */; }; + 2862FAAB10F16ABD00EDDFA1 /* speex.h in Headers */ = {isa = PBXBuildFile; fileRef = 2862FA9B10F16ABD00EDDFA1 /* speex.h */; }; + 28886AA010F167910060BD16 /* fftwrap.c in Sources */ = {isa = PBXBuildFile; fileRef = 28886A3F10F167910060BD16 /* fftwrap.c */; }; + 28886AA110F167910060BD16 /* fftwrap.h in Headers */ = {isa = PBXBuildFile; fileRef = 28886A4010F167910060BD16 /* fftwrap.h */; }; + 28886AA210F167910060BD16 /* filterbank.c in Sources */ = {isa = PBXBuildFile; fileRef = 28886A4110F167910060BD16 /* filterbank.c */; }; + 28886AA310F167910060BD16 /* filterbank.h in Headers */ = {isa = PBXBuildFile; fileRef = 28886A4210F167910060BD16 /* filterbank.h */; }; + 28886AB310F167910060BD16 /* jitter.c in Sources */ = {isa = PBXBuildFile; fileRef = 28886A5210F167910060BD16 /* jitter.c */; }; + 28886AC510F167910060BD16 /* mdf.c in Sources */ = {isa = PBXBuildFile; fileRef = 28886A6510F167910060BD16 /* mdf.c */; }; + 28886ACD10F167910060BD16 /* preprocess.c in Sources */ = {isa = PBXBuildFile; fileRef = 28886A6D10F167910060BD16 /* preprocess.c */; }; + 28886AD210F167910060BD16 /* resample_sse.h in Headers */ = {isa = PBXBuildFile; fileRef = 28886A7210F167910060BD16 /* resample_sse.h */; }; + 28886AD310F167910060BD16 /* resample.c in Sources */ = {isa = PBXBuildFile; fileRef = 28886A7310F167910060BD16 /* resample.c */; }; + 28886AD710F167910060BD16 /* smallft.c in Sources */ = {isa = PBXBuildFile; fileRef = 28886A7710F167910060BD16 /* smallft.c */; }; + 28886AD810F167910060BD16 /* smallft.h in Headers */ = {isa = PBXBuildFile; fileRef = 28886A7810F167910060BD16 /* smallft.h */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 2862FA9710F16ABD00EDDFA1 /* speex_jitter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = speex_jitter.h; path = ../speex/include/speex/speex_jitter.h; sourceTree = SOURCE_ROOT; }; + 2862FA9810F16ABD00EDDFA1 /* speex_preprocess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = speex_preprocess.h; path = ../speex/include/speex/speex_preprocess.h; sourceTree = SOURCE_ROOT; }; + 2862FA9910F16ABD00EDDFA1 /* speex_resampler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = speex_resampler.h; path = ../speex/include/speex/speex_resampler.h; sourceTree = SOURCE_ROOT; }; + 2862FA9A10F16ABD00EDDFA1 /* speex_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = speex_types.h; path = ../speex/include/speex/speex_types.h; sourceTree = SOURCE_ROOT; }; + 2862FA9B10F16ABD00EDDFA1 /* speex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = speex.h; path = ../speex/include/speex/speex.h; sourceTree = SOURCE_ROOT; }; + 28886A3F10F167910060BD16 /* fftwrap.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = fftwrap.c; sourceTree = "<group>"; }; + 28886A4010F167910060BD16 /* fftwrap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fftwrap.h; sourceTree = "<group>"; }; + 28886A4110F167910060BD16 /* filterbank.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = filterbank.c; sourceTree = "<group>"; }; + 28886A4210F167910060BD16 /* filterbank.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = filterbank.h; sourceTree = "<group>"; }; + 28886A5210F167910060BD16 /* jitter.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = jitter.c; sourceTree = "<group>"; }; + 28886A6510F167910060BD16 /* mdf.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mdf.c; sourceTree = "<group>"; }; + 28886A6D10F167910060BD16 /* preprocess.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = preprocess.c; sourceTree = "<group>"; }; + 28886A7210F167910060BD16 /* resample_sse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = resample_sse.h; sourceTree = "<group>"; }; + 28886A7310F167910060BD16 /* resample.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = resample.c; sourceTree = "<group>"; }; + 28886A7710F167910060BD16 /* smallft.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = smallft.c; sourceTree = "<group>"; }; + 28886A7810F167910060BD16 /* smallft.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = smallft.h; sourceTree = "<group>"; }; + D2AAC07E0554694100DB518D /* libSpeexDSP.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libSpeexDSP.a; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D2AAC07C0554694100DB518D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 034768DFFF38A50411DB9C8B /* Products */ = { + isa = PBXGroup; + children = ( + D2AAC07E0554694100DB518D /* libSpeexDSP.a */, + ); + name = Products; + sourceTree = "<group>"; + }; + 0867D691FE84028FC02AAC07 /* SpeexDSP */ = { + isa = PBXGroup; + children = ( + 2862FA8810F16A3500EDDFA1 /* Headers */, + 32C88DFF0371C24200C91783 /* Source */, + 034768DFFF38A50411DB9C8B /* Products */, + ); + name = SpeexDSP; + sourceTree = "<group>"; + }; + 2862FA8810F16A3500EDDFA1 /* Headers */ = { + isa = PBXGroup; + children = ( + 2862FA9710F16ABD00EDDFA1 /* speex_jitter.h */, + 2862FA9810F16ABD00EDDFA1 /* speex_preprocess.h */, + 2862FA9910F16ABD00EDDFA1 /* speex_resampler.h */, + 2862FA9A10F16ABD00EDDFA1 /* speex_types.h */, + 2862FA9B10F16ABD00EDDFA1 /* speex.h */, + ); + name = Headers; + sourceTree = "<group>"; + }; + 32C88DFF0371C24200C91783 /* Source */ = { + isa = PBXGroup; + children = ( + 28886A3F10F167910060BD16 /* fftwrap.c */, + 28886A4010F167910060BD16 /* fftwrap.h */, + 28886A4110F167910060BD16 /* filterbank.c */, + 28886A4210F167910060BD16 /* filterbank.h */, + 28886A5210F167910060BD16 /* jitter.c */, + 28886A6510F167910060BD16 /* mdf.c */, + 28886A6D10F167910060BD16 /* preprocess.c */, + 28886A7210F167910060BD16 /* resample_sse.h */, + 28886A7310F167910060BD16 /* resample.c */, + 28886A7710F167910060BD16 /* smallft.c */, + 28886A7810F167910060BD16 /* smallft.h */, + ); + name = Source; + path = ../speex/libspeex; + sourceTree = "<group>"; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D2AAC07A0554694100DB518D /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 28886AA110F167910060BD16 /* fftwrap.h in Headers */, + 28886AA310F167910060BD16 /* filterbank.h in Headers */, + 28886AD210F167910060BD16 /* resample_sse.h in Headers */, + 28886AD810F167910060BD16 /* smallft.h in Headers */, + 2862FAA710F16ABD00EDDFA1 /* speex_jitter.h in Headers */, + 2862FAA810F16ABD00EDDFA1 /* speex_preprocess.h in Headers */, + 2862FAA910F16ABD00EDDFA1 /* speex_resampler.h in Headers */, + 2862FAAA10F16ABD00EDDFA1 /* speex_types.h in Headers */, + 2862FAAB10F16ABD00EDDFA1 /* speex.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D2AAC07D0554694100DB518D /* SpeexDSP */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1DEB921E08733DC00010E9CD /* Build configuration list for PBXNativeTarget "SpeexDSP" */; + buildPhases = ( + D2AAC07A0554694100DB518D /* Headers */, + D2AAC07B0554694100DB518D /* Sources */, + D2AAC07C0554694100DB518D /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = SpeexDSP; + productName = SpeexDSP; + productReference = D2AAC07E0554694100DB518D /* libSpeexDSP.a */; + productType = "com.apple.product-type.library.static"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 0867D690FE84028FC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB922208733DC00010E9CD /* Build configuration list for PBXProject "SpeexDSP" */; + compatibilityVersion = "Xcode 3.1"; + hasScannedForEncodings = 1; + mainGroup = 0867D691FE84028FC02AAC07 /* SpeexDSP */; + productRefGroup = 034768DFFF38A50411DB9C8B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D2AAC07D0554694100DB518D /* SpeexDSP */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXSourcesBuildPhase section */ + D2AAC07B0554694100DB518D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 28886AA010F167910060BD16 /* fftwrap.c in Sources */, + 28886AA210F167910060BD16 /* filterbank.c in Sources */, + 28886AB310F167910060BD16 /* jitter.c in Sources */, + 28886AC510F167910060BD16 /* mdf.c in Sources */, + 28886ACD10F167910060BD16 /* preprocess.c in Sources */, + 28886AD310F167910060BD16 /* resample.c in Sources */, + 28886AD710F167910060BD16 /* smallft.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 1DEB921F08733DC00010E9CD /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)"; + COPY_PHASE_STRIP = NO; + DSTROOT = /tmp/SpeexDSP.dst; + GCC_AUTO_VECTORIZATION = YES; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_FAST_MATH = YES; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = HAVE_CONFIG_H; + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_THUMB_SUPPORT = NO; + GCC_UNROLL_LOOPS = YES; + HEADER_SEARCH_PATHS = "${PROJECT_DIR}/../speex/include//**"; + INSTALL_PATH = /usr/local/lib; + OTHER_CFLAGS = "-fsingle-precision-constant"; + "OTHER_CFLAGS[arch=armv7]" = ( + "-mfpu=neon", + "-mfloat-abi=softfp", + "-mcpu=cortex-a8", + ); + "OTHER_CPLUSPLUSFLAGS[arch=armv7]" = "$(OTHER_CFLAGS)"; + PRODUCT_NAME = SpeexDSP; + USER_HEADER_SEARCH_PATHS = "${PROJECT_DIR}/../speex/libspeex//** ${PROJECT_DIR}/**"; + }; + name = Debug; + }; + 1DEB922008733DC00010E9CD /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)"; + DSTROOT = /tmp/SpeexDSP.dst; + GCC_AUTO_VECTORIZATION = YES; + GCC_FAST_MATH = YES; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = HAVE_CONFIG_H; + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_THUMB_SUPPORT = NO; + GCC_UNROLL_LOOPS = YES; + HEADER_SEARCH_PATHS = "${PROJECT_DIR}/../speex/include//**"; + INSTALL_PATH = /usr/local/lib; + OTHER_CFLAGS = "-fsingle-precision-constant"; + "OTHER_CFLAGS[arch=armv7]" = ( + "-mfpu=neon", + "-mfloat-abi=softfp", + "-mcpu=cortex-a8", + ); + "OTHER_CPLUSPLUSFLAGS[arch=armv7]" = "$(OTHER_CFLAGS)"; + PRODUCT_NAME = SpeexDSP; + USER_HEADER_SEARCH_PATHS = "${PROJECT_DIR}/../speex/libspeex//** ${PROJECT_DIR}/**"; + }; + name = Release; + }; + 1DEB922308733DC00010E9CD /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + OTHER_LDFLAGS = "-ObjC"; + PREBINDING = NO; + SDKROOT = iphoneos3.1.2; + }; + name = Debug; + }; + 1DEB922408733DC00010E9CD /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + OTHER_LDFLAGS = "-ObjC"; + PREBINDING = NO; + SDKROOT = iphoneos3.1.2; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 1DEB921E08733DC00010E9CD /* Build configuration list for PBXNativeTarget "SpeexDSP" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1DEB921F08733DC00010E9CD /* Debug */, + 1DEB922008733DC00010E9CD /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 1DEB922208733DC00010E9CD /* Build configuration list for PBXProject "SpeexDSP" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1DEB922308733DC00010E9CD /* Debug */, + 1DEB922408733DC00010E9CD /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 0867D690FE84028FC02AAC07 /* Project object */; +} diff --git a/3rdparty/speexdspbuild/config.h b/3rdparty/speexdspbuild/config.h new file mode 100644 index 0000000..a213890 --- /dev/null +++ b/3rdparty/speexdspbuild/config.h @@ -0,0 +1,3 @@ +#define FLOATING_POINT +#define USE_SMALLFT +#define EXPORT @@ -0,0 +1,29 @@ + Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk> + Copyright (C) 2005-2010 Thorvald Natvig <thorvald@natvig.com> + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + - Neither the name of the Mumble Developers nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/MumbleKit.xcodeproj/project.pbxproj b/MumbleKit.xcodeproj/project.pbxproj new file mode 100644 index 0000000..c74b4b9 --- /dev/null +++ b/MumbleKit.xcodeproj/project.pbxproj @@ -0,0 +1,664 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 287509CF11431A68002885AF /* MKUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 287509CD11431A68002885AF /* MKUtils.h */; }; + 28750A1D11431BD4002885AF /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 28750A1C11431BD4002885AF /* AudioToolbox.framework */; }; + 28750A2111431BD7002885AF /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 28750A2011431BD7002885AF /* CFNetwork.framework */; }; + 28750A3911431C42002885AF /* MKReadWriteLock.h in Headers */ = {isa = PBXBuildFile; fileRef = 28750A3811431C42002885AF /* MKReadWriteLock.h */; }; + 28750A3B11431C50002885AF /* MKReadWriteLock.m in Sources */ = {isa = PBXBuildFile; fileRef = 28750A3A11431C50002885AF /* MKReadWriteLock.m */; }; + 28750A4B11431D2E002885AF /* MKChannel.m in Sources */ = {isa = PBXBuildFile; fileRef = 28750A4511431D2E002885AF /* MKChannel.m */; }; + 28750A4C11431D2E002885AF /* MKConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 28750A4611431D2E002885AF /* MKConnection.m */; }; + 28750A4D11431D2E002885AF /* MKCryptState.m in Sources */ = {isa = PBXBuildFile; fileRef = 28750A4711431D2E002885AF /* MKCryptState.m */; }; + 28750A4E11431D2E002885AF /* MKPacketDataStream.m in Sources */ = {isa = PBXBuildFile; fileRef = 28750A4811431D2E002885AF /* MKPacketDataStream.m */; }; + 28750A4F11431D2E002885AF /* MKServerModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 28750A4911431D2E002885AF /* MKServerModel.m */; }; + 28750A5011431D2E002885AF /* MKUser.m in Sources */ = {isa = PBXBuildFile; fileRef = 28750A4A11431D2E002885AF /* MKUser.m */; }; + 28750A5711431D39002885AF /* MKChannel.h in Headers */ = {isa = PBXBuildFile; fileRef = 28750A5111431D39002885AF /* MKChannel.h */; }; + 28750A5811431D39002885AF /* MKConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 28750A5211431D39002885AF /* MKConnection.h */; }; + 28750A5911431D39002885AF /* MKCryptState.h in Headers */ = {isa = PBXBuildFile; fileRef = 28750A5311431D39002885AF /* MKCryptState.h */; }; + 28750A5A11431D39002885AF /* MKPacketDataStream.h in Headers */ = {isa = PBXBuildFile; fileRef = 28750A5411431D39002885AF /* MKPacketDataStream.h */; }; + 28750A5B11431D39002885AF /* MKServerModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 28750A5511431D39002885AF /* MKServerModel.h */; }; + 28750A5C11431D39002885AF /* MKUser.h in Headers */ = {isa = PBXBuildFile; fileRef = 28750A5611431D39002885AF /* MKUser.h */; }; + 288A6BBD11500C82008FED5E /* Descriptor.pb.h in Headers */ = {isa = PBXBuildFile; fileRef = 288A6BB611500C82008FED5E /* Descriptor.pb.h */; }; + 288A6BBE11500C82008FED5E /* Descriptor.pb.m in Sources */ = {isa = PBXBuildFile; fileRef = 288A6BB711500C82008FED5E /* Descriptor.pb.m */; }; + 288A6BBF11500C82008FED5E /* Mumble.pb.h in Headers */ = {isa = PBXBuildFile; fileRef = 288A6BB811500C82008FED5E /* Mumble.pb.h */; }; + 288A6BC011500C82008FED5E /* Mumble.pb.m in Sources */ = {isa = PBXBuildFile; fileRef = 288A6BB911500C82008FED5E /* Mumble.pb.m */; }; + 288A6BC111500C82008FED5E /* ObjectivecDescriptor.pb.h in Headers */ = {isa = PBXBuildFile; fileRef = 288A6BBB11500C82008FED5E /* ObjectivecDescriptor.pb.h */; }; + 288A6BC211500C82008FED5E /* ObjectivecDescriptor.pb.m in Sources */ = {isa = PBXBuildFile; fileRef = 288A6BBC11500C82008FED5E /* ObjectivecDescriptor.pb.m */; }; + 288A6BE011500E06008FED5E /* libSpeexDSP.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 281F0B6511500BB400BAA221 /* libSpeexDSP.a */; }; + 288A6BE111500E0D008FED5E /* libSpeex.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 281F0B5C11500BAC00BAA221 /* libSpeex.a */; }; + 288A6BE211500E14008FED5E /* libProtocolBuffers.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 281F0B4F11500BA400BAA221 /* libProtocolBuffers.a */; }; + 288A6BE311500E25008FED5E /* libCELT.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 281F0B4311500B9C00BAA221 /* libCELT.a */; }; + 2897BABA11452E4D00F3D16D /* NSInvocation(MumbleKitAdditions).h in Headers */ = {isa = PBXBuildFile; fileRef = 2897BAB811452E4D00F3D16D /* NSInvocation(MumbleKitAdditions).h */; }; + 2897BABB11452E4D00F3D16D /* NSInvocation(MumbleKitAdditions).m in Sources */ = {isa = PBXBuildFile; fileRef = 2897BAB911452E4D00F3D16D /* NSInvocation(MumbleKitAdditions).m */; }; + 28A4934411431863000627EB /* MKAudio.h in Headers */ = {isa = PBXBuildFile; fileRef = 28A4933A11431863000627EB /* MKAudio.h */; }; + 28A4934511431863000627EB /* MKAudio.m in Sources */ = {isa = PBXBuildFile; fileRef = 28A4933B11431863000627EB /* MKAudio.m */; }; + 28A4934611431863000627EB /* MKAudioInput.h in Headers */ = {isa = PBXBuildFile; fileRef = 28A4933C11431863000627EB /* MKAudioInput.h */; }; + 28A4934711431863000627EB /* MKAudioInput.m in Sources */ = {isa = PBXBuildFile; fileRef = 28A4933D11431863000627EB /* MKAudioInput.m */; }; + 28A4934811431863000627EB /* MKAudioOutput.h in Headers */ = {isa = PBXBuildFile; fileRef = 28A4933E11431863000627EB /* MKAudioOutput.h */; }; + 28A4934911431863000627EB /* MKAudioOutput.m in Sources */ = {isa = PBXBuildFile; fileRef = 28A4933F11431863000627EB /* MKAudioOutput.m */; }; + 28A4934A11431863000627EB /* MKAudioOutputSpeech.h in Headers */ = {isa = PBXBuildFile; fileRef = 28A4934011431863000627EB /* MKAudioOutputSpeech.h */; }; + 28A4934B11431863000627EB /* MKAudioOutputSpeech.m in Sources */ = {isa = PBXBuildFile; fileRef = 28A4934111431863000627EB /* MKAudioOutputSpeech.m */; }; + 28A4934C11431863000627EB /* MKAudioOutputUser.h in Headers */ = {isa = PBXBuildFile; fileRef = 28A4934211431863000627EB /* MKAudioOutputUser.h */; }; + 28A4934D11431863000627EB /* MKAudioOutputUser.m in Sources */ = {isa = PBXBuildFile; fileRef = 28A4934311431863000627EB /* MKAudioOutputUser.m */; }; + 28AE414A11432A26004B3046 /* MKServices.h in Headers */ = {isa = PBXBuildFile; fileRef = 28AE414911432A26004B3046 /* MKServices.h */; }; + 28AE414C11432A2E004B3046 /* MKServices.m in Sources */ = {isa = PBXBuildFile; fileRef = 28AE414B11432A2E004B3046 /* MKServices.m */; }; + AA747D9F0F9514B9006C5449 /* MumbleKit.pch in Headers */ = {isa = PBXBuildFile; fileRef = AA747D9E0F9514B9006C5449 /* MumbleKit.pch */; }; + AACBBE4A0F95108600F1A2B1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AACBBE490F95108600F1A2B1 /* Foundation.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 281F0B4211500B9C00BAA221 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 281F0B3B11500B9C00BAA221 /* CELT.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = D2AAC07E0554694100DB518D; + remoteInfo = CELT; + }; + 281F0B4E11500BA400BAA221 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 281F0B4411500BA400BAA221 /* ProtocolBuffers.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 100000000000000000001ECF; + remoteInfo = ProtocolBuffers; + }; + 281F0B5011500BA400BAA221 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 281F0B4411500BA400BAA221 /* ProtocolBuffers.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 100000000000000000001C15; + remoteInfo = UnitTests; + }; + 281F0B5211500BA400BAA221 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 281F0B4411500BA400BAA221 /* ProtocolBuffers.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 1000000000000000000007A4; + remoteInfo = CommandLineTests; + }; + 281F0B5B11500BAC00BAA221 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 281F0B5411500BAC00BAA221 /* Speex.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = D2AAC07E0554694100DB518D; + remoteInfo = Speex; + }; + 281F0B6411500BB400BAA221 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 281F0B5D11500BB400BAA221 /* SpeexDSP.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = D2AAC07E0554694100DB518D; + remoteInfo = SpeexDSP; + }; + 281F0B6711500BBF00BAA221 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 281F0B3B11500B9C00BAA221 /* CELT.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = D2AAC07D0554694100DB518D; + remoteInfo = CELT; + }; + 281F0B6911500BC100BAA221 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 281F0B5411500BAC00BAA221 /* Speex.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = D2AAC07D0554694100DB518D; + remoteInfo = Speex; + }; + 281F0B6B11500BC400BAA221 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 281F0B4411500BA400BAA221 /* ProtocolBuffers.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 100000000000000000001489; + remoteInfo = ProtocolBuffers; + }; + 281F0B6D11500BC600BAA221 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 281F0B5D11500BB400BAA221 /* SpeexDSP.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = D2AAC07D0554694100DB518D; + remoteInfo = SpeexDSP; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 281F0B3B11500B9C00BAA221 /* CELT.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = CELT.xcodeproj; path = 3rdparty/celtbuild/CELT.xcodeproj; sourceTree = "<group>"; }; + 281F0B4411500BA400BAA221 /* ProtocolBuffers.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = ProtocolBuffers.xcodeproj; path = 3rdparty/protobufbuild/ProtocolBuffers.xcodeproj; sourceTree = "<group>"; }; + 281F0B5411500BAC00BAA221 /* Speex.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Speex.xcodeproj; path = 3rdparty/speexbuild/Speex.xcodeproj; sourceTree = "<group>"; }; + 281F0B5D11500BB400BAA221 /* SpeexDSP.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = SpeexDSP.xcodeproj; path = 3rdparty/speexdspbuild/SpeexDSP.xcodeproj; sourceTree = "<group>"; }; + 287509CD11431A68002885AF /* MKUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MKUtils.h; sourceTree = "<group>"; }; + 28750A1C11431BD4002885AF /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; + 28750A2011431BD7002885AF /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = System/Library/Frameworks/CFNetwork.framework; sourceTree = SDKROOT; }; + 28750A3811431C42002885AF /* MKReadWriteLock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MKReadWriteLock.h; sourceTree = "<group>"; }; + 28750A3A11431C50002885AF /* MKReadWriteLock.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MKReadWriteLock.m; path = src/MKReadWriteLock.m; sourceTree = "<group>"; }; + 28750A4511431D2E002885AF /* MKChannel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MKChannel.m; path = src/MKChannel.m; sourceTree = "<group>"; }; + 28750A4611431D2E002885AF /* MKConnection.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MKConnection.m; path = src/MKConnection.m; sourceTree = "<group>"; }; + 28750A4711431D2E002885AF /* MKCryptState.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MKCryptState.m; path = src/MKCryptState.m; sourceTree = "<group>"; }; + 28750A4811431D2E002885AF /* MKPacketDataStream.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MKPacketDataStream.m; path = src/MKPacketDataStream.m; sourceTree = "<group>"; }; + 28750A4911431D2E002885AF /* MKServerModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MKServerModel.m; path = src/MKServerModel.m; sourceTree = "<group>"; }; + 28750A4A11431D2E002885AF /* MKUser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MKUser.m; path = src/MKUser.m; sourceTree = "<group>"; }; + 28750A5111431D39002885AF /* MKChannel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MKChannel.h; sourceTree = "<group>"; }; + 28750A5211431D39002885AF /* MKConnection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MKConnection.h; sourceTree = "<group>"; }; + 28750A5311431D39002885AF /* MKCryptState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MKCryptState.h; sourceTree = "<group>"; }; + 28750A5411431D39002885AF /* MKPacketDataStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MKPacketDataStream.h; sourceTree = "<group>"; }; + 28750A5511431D39002885AF /* MKServerModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MKServerModel.h; sourceTree = "<group>"; }; + 28750A5611431D39002885AF /* MKUser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MKUser.h; sourceTree = "<group>"; }; + 288A6BB611500C82008FED5E /* Descriptor.pb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Descriptor.pb.h; sourceTree = "<group>"; }; + 288A6BB711500C82008FED5E /* Descriptor.pb.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Descriptor.pb.m; sourceTree = "<group>"; }; + 288A6BB811500C82008FED5E /* Mumble.pb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Mumble.pb.h; sourceTree = "<group>"; }; + 288A6BB911500C82008FED5E /* Mumble.pb.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Mumble.pb.m; sourceTree = "<group>"; }; + 288A6BBA11500C82008FED5E /* Mumble.proto */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Mumble.proto; sourceTree = "<group>"; }; + 288A6BBB11500C82008FED5E /* ObjectivecDescriptor.pb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ObjectivecDescriptor.pb.h; sourceTree = "<group>"; }; + 288A6BBC11500C82008FED5E /* ObjectivecDescriptor.pb.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjectivecDescriptor.pb.m; sourceTree = "<group>"; }; + 2897BAB811452E4D00F3D16D /* NSInvocation(MumbleKitAdditions).h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "NSInvocation(MumbleKitAdditions).h"; path = "../NSInvocation(MumbleKitAdditions).h"; sourceTree = "<group>"; }; + 2897BAB911452E4D00F3D16D /* NSInvocation(MumbleKitAdditions).m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "NSInvocation(MumbleKitAdditions).m"; path = "../NSInvocation(MumbleKitAdditions).m"; sourceTree = "<group>"; }; + 28A4933A11431863000627EB /* MKAudio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MKAudio.h; sourceTree = "<group>"; }; + 28A4933B11431863000627EB /* MKAudio.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MKAudio.m; path = src/MKAudio.m; sourceTree = "<group>"; }; + 28A4933C11431863000627EB /* MKAudioInput.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MKAudioInput.h; sourceTree = "<group>"; }; + 28A4933D11431863000627EB /* MKAudioInput.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MKAudioInput.m; path = src/MKAudioInput.m; sourceTree = "<group>"; }; + 28A4933E11431863000627EB /* MKAudioOutput.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MKAudioOutput.h; sourceTree = "<group>"; }; + 28A4933F11431863000627EB /* MKAudioOutput.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MKAudioOutput.m; path = src/MKAudioOutput.m; sourceTree = "<group>"; }; + 28A4934011431863000627EB /* MKAudioOutputSpeech.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MKAudioOutputSpeech.h; sourceTree = "<group>"; }; + 28A4934111431863000627EB /* MKAudioOutputSpeech.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MKAudioOutputSpeech.m; path = src/MKAudioOutputSpeech.m; sourceTree = "<group>"; }; + 28A4934211431863000627EB /* MKAudioOutputUser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MKAudioOutputUser.h; sourceTree = "<group>"; }; + 28A4934311431863000627EB /* MKAudioOutputUser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MKAudioOutputUser.m; path = src/MKAudioOutputUser.m; sourceTree = "<group>"; }; + 28AE414911432A26004B3046 /* MKServices.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MKServices.h; sourceTree = "<group>"; }; + 28AE414B11432A2E004B3046 /* MKServices.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MKServices.m; path = src/MKServices.m; sourceTree = "<group>"; }; + 28D1E663115018A800469C69 /* libMumbleKit.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libMumbleKit.a; sourceTree = BUILT_PRODUCTS_DIR; }; + AA747D9E0F9514B9006C5449 /* MumbleKit.pch */ = {isa = PBXFileReference; explicitFileType = sourcecode; fileEncoding = 4; name = MumbleKit.pch; path = src/MumbleKit.pch; sourceTree = "<group>"; }; + AACBBE490F95108600F1A2B1 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D2AAC07C0554694100DB518D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 288A6BE311500E25008FED5E /* libCELT.a in Frameworks */, + 288A6BE211500E14008FED5E /* libProtocolBuffers.a in Frameworks */, + 288A6BE111500E0D008FED5E /* libSpeex.a in Frameworks */, + 288A6BE011500E06008FED5E /* libSpeexDSP.a in Frameworks */, + AACBBE4A0F95108600F1A2B1 /* Foundation.framework in Frameworks */, + 28750A1D11431BD4002885AF /* AudioToolbox.framework in Frameworks */, + 28750A2111431BD7002885AF /* CFNetwork.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 034768DFFF38A50411DB9C8B /* Products */ = { + isa = PBXGroup; + children = ( + 28D1E663115018A800469C69 /* libMumbleKit.a */, + ); + name = Products; + sourceTree = "<group>"; + }; + 0867D691FE84028FC02AAC07 /* MumbleKit */ = { + isa = PBXGroup; + children = ( + 281F0B3611500AB900BAA221 /* Dependencies */, + 288A6BB111500C66008FED5E /* Protocol */, + 2897BAAC11452CE300F3D16D /* Categories */, + 287509B511431932002885AF /* Headers */, + 08FB77AEFE84172EC02AAC07 /* Source */, + 32C88DFF0371C24200C91783 /* Prefix Header */, + 0867D69AFE84028FC02AAC07 /* Frameworks */, + 034768DFFF38A50411DB9C8B /* Products */, + ); + name = MumbleKit; + sourceTree = "<group>"; + }; + 0867D69AFE84028FC02AAC07 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 28750A2011431BD7002885AF /* CFNetwork.framework */, + 28750A1C11431BD4002885AF /* AudioToolbox.framework */, + AACBBE490F95108600F1A2B1 /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = "<group>"; + }; + 08FB77AEFE84172EC02AAC07 /* Source */ = { + isa = PBXGroup; + children = ( + 28AE414B11432A2E004B3046 /* MKServices.m */, + 28750A4511431D2E002885AF /* MKChannel.m */, + 28750A4611431D2E002885AF /* MKConnection.m */, + 28750A4711431D2E002885AF /* MKCryptState.m */, + 28750A4811431D2E002885AF /* MKPacketDataStream.m */, + 28750A4911431D2E002885AF /* MKServerModel.m */, + 28750A4A11431D2E002885AF /* MKUser.m */, + 28750A3A11431C50002885AF /* MKReadWriteLock.m */, + 28A4933B11431863000627EB /* MKAudio.m */, + 28A4933D11431863000627EB /* MKAudioInput.m */, + 28A4933F11431863000627EB /* MKAudioOutput.m */, + 28A4934111431863000627EB /* MKAudioOutputSpeech.m */, + 28A4934311431863000627EB /* MKAudioOutputUser.m */, + ); + name = Source; + sourceTree = "<group>"; + }; + 281F0B3611500AB900BAA221 /* Dependencies */ = { + isa = PBXGroup; + children = ( + 281F0B5D11500BB400BAA221 /* SpeexDSP.xcodeproj */, + 281F0B5411500BAC00BAA221 /* Speex.xcodeproj */, + 281F0B4411500BA400BAA221 /* ProtocolBuffers.xcodeproj */, + 281F0B3B11500B9C00BAA221 /* CELT.xcodeproj */, + ); + name = Dependencies; + sourceTree = "<group>"; + }; + 281F0B3C11500B9C00BAA221 /* Products */ = { + isa = PBXGroup; + children = ( + 281F0B4311500B9C00BAA221 /* libCELT.a */, + ); + name = Products; + sourceTree = "<group>"; + }; + 281F0B4511500BA400BAA221 /* Products */ = { + isa = PBXGroup; + children = ( + 281F0B4F11500BA400BAA221 /* libProtocolBuffers.a */, + 281F0B5111500BA400BAA221 /* UnitTests.octest */, + 281F0B5311500BA400BAA221 /* CommandLineTests.app */, + ); + name = Products; + sourceTree = "<group>"; + }; + 281F0B5511500BAC00BAA221 /* Products */ = { + isa = PBXGroup; + children = ( + 281F0B5C11500BAC00BAA221 /* libSpeex.a */, + ); + name = Products; + sourceTree = "<group>"; + }; + 281F0B5E11500BB400BAA221 /* Products */ = { + isa = PBXGroup; + children = ( + 281F0B6511500BB400BAA221 /* libSpeexDSP.a */, + ); + name = Products; + sourceTree = "<group>"; + }; + 287509B511431932002885AF /* Headers */ = { + isa = PBXGroup; + children = ( + 28AE414911432A26004B3046 /* MKServices.h */, + 28750A5111431D39002885AF /* MKChannel.h */, + 28750A5211431D39002885AF /* MKConnection.h */, + 28750A5311431D39002885AF /* MKCryptState.h */, + 28750A5411431D39002885AF /* MKPacketDataStream.h */, + 28750A5511431D39002885AF /* MKServerModel.h */, + 28750A5611431D39002885AF /* MKUser.h */, + 28750A3811431C42002885AF /* MKReadWriteLock.h */, + 28A4933C11431863000627EB /* MKAudioInput.h */, + 28A4934011431863000627EB /* MKAudioOutputSpeech.h */, + 28A4933E11431863000627EB /* MKAudioOutput.h */, + 28A4934211431863000627EB /* MKAudioOutputUser.h */, + 28A4933A11431863000627EB /* MKAudio.h */, + 287509CD11431A68002885AF /* MKUtils.h */, + ); + name = Headers; + path = src/MumbleKit; + sourceTree = "<group>"; + }; + 288A6BB111500C66008FED5E /* Protocol */ = { + isa = PBXGroup; + children = ( + 288A6BB611500C82008FED5E /* Descriptor.pb.h */, + 288A6BB711500C82008FED5E /* Descriptor.pb.m */, + 288A6BB811500C82008FED5E /* Mumble.pb.h */, + 288A6BB911500C82008FED5E /* Mumble.pb.m */, + 288A6BBA11500C82008FED5E /* Mumble.proto */, + 288A6BBB11500C82008FED5E /* ObjectivecDescriptor.pb.h */, + 288A6BBC11500C82008FED5E /* ObjectivecDescriptor.pb.m */, + ); + name = Protocol; + path = proto; + sourceTree = "<group>"; + }; + 2897BAAC11452CE300F3D16D /* Categories */ = { + isa = PBXGroup; + children = ( + 2897BAB811452E4D00F3D16D /* NSInvocation(MumbleKitAdditions).h */, + 2897BAB911452E4D00F3D16D /* NSInvocation(MumbleKitAdditions).m */, + ); + name = Categories; + path = src/MumbleKit; + sourceTree = "<group>"; + }; + 32C88DFF0371C24200C91783 /* Prefix Header */ = { + isa = PBXGroup; + children = ( + AA747D9E0F9514B9006C5449 /* MumbleKit.pch */, + ); + name = "Prefix Header"; + sourceTree = "<group>"; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D2AAC07A0554694100DB518D /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + AA747D9F0F9514B9006C5449 /* MumbleKit.pch in Headers */, + 28A4934411431863000627EB /* MKAudio.h in Headers */, + 28A4934611431863000627EB /* MKAudioInput.h in Headers */, + 28A4934811431863000627EB /* MKAudioOutput.h in Headers */, + 28A4934A11431863000627EB /* MKAudioOutputSpeech.h in Headers */, + 28A4934C11431863000627EB /* MKAudioOutputUser.h in Headers */, + 287509CF11431A68002885AF /* MKUtils.h in Headers */, + 28750A3911431C42002885AF /* MKReadWriteLock.h in Headers */, + 28750A5711431D39002885AF /* MKChannel.h in Headers */, + 28750A5811431D39002885AF /* MKConnection.h in Headers */, + 28750A5911431D39002885AF /* MKCryptState.h in Headers */, + 28750A5A11431D39002885AF /* MKPacketDataStream.h in Headers */, + 28750A5C11431D39002885AF /* MKUser.h in Headers */, + 28750A5B11431D39002885AF /* MKServerModel.h in Headers */, + 28AE414A11432A26004B3046 /* MKServices.h in Headers */, + 2897BABA11452E4D00F3D16D /* NSInvocation(MumbleKitAdditions).h in Headers */, + 288A6BBD11500C82008FED5E /* Descriptor.pb.h in Headers */, + 288A6BBF11500C82008FED5E /* Mumble.pb.h in Headers */, + 288A6BC111500C82008FED5E /* ObjectivecDescriptor.pb.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D2AAC07D0554694100DB518D /* MumbleKit */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1DEB921E08733DC00010E9CD /* Build configuration list for PBXNativeTarget "MumbleKit" */; + buildPhases = ( + 288A6C4611501161008FED5E /* Create Framework and Copy Headers */, + D2AAC07A0554694100DB518D /* Headers */, + D2AAC07B0554694100DB518D /* Sources */, + D2AAC07C0554694100DB518D /* Frameworks */, + 28C22B3D1150218D002CEF70 /* Copy Static Library into Framework */, + ); + buildRules = ( + ); + dependencies = ( + 281F0B6811500BBF00BAA221 /* PBXTargetDependency */, + 281F0B6A11500BC100BAA221 /* PBXTargetDependency */, + 281F0B6C11500BC400BAA221 /* PBXTargetDependency */, + 281F0B6E11500BC600BAA221 /* PBXTargetDependency */, + ); + name = MumbleKit; + productName = MumbleKit; + productReference = 28D1E663115018A800469C69 /* libMumbleKit.a */; + productType = "com.apple.product-type.library.static"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 0867D690FE84028FC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB922208733DC00010E9CD /* Build configuration list for PBXProject "MumbleKit" */; + compatibilityVersion = "Xcode 3.1"; + hasScannedForEncodings = 1; + mainGroup = 0867D691FE84028FC02AAC07 /* MumbleKit */; + productRefGroup = 034768DFFF38A50411DB9C8B /* Products */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 281F0B3C11500B9C00BAA221 /* Products */; + ProjectRef = 281F0B3B11500B9C00BAA221 /* CELT.xcodeproj */; + }, + { + ProductGroup = 281F0B4511500BA400BAA221 /* Products */; + ProjectRef = 281F0B4411500BA400BAA221 /* ProtocolBuffers.xcodeproj */; + }, + { + ProductGroup = 281F0B5511500BAC00BAA221 /* Products */; + ProjectRef = 281F0B5411500BAC00BAA221 /* Speex.xcodeproj */; + }, + { + ProductGroup = 281F0B5E11500BB400BAA221 /* Products */; + ProjectRef = 281F0B5D11500BB400BAA221 /* SpeexDSP.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + D2AAC07D0554694100DB518D /* MumbleKit */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 281F0B4311500B9C00BAA221 /* libCELT.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libCELT.a; + remoteRef = 281F0B4211500B9C00BAA221 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 281F0B4F11500BA400BAA221 /* libProtocolBuffers.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libProtocolBuffers.a; + remoteRef = 281F0B4E11500BA400BAA221 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 281F0B5111500BA400BAA221 /* UnitTests.octest */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = UnitTests.octest; + remoteRef = 281F0B5011500BA400BAA221 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 281F0B5311500BA400BAA221 /* CommandLineTests.app */ = { + isa = PBXReferenceProxy; + fileType = wrapper.application; + path = CommandLineTests.app; + remoteRef = 281F0B5211500BA400BAA221 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 281F0B5C11500BAC00BAA221 /* libSpeex.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libSpeex.a; + remoteRef = 281F0B5B11500BAC00BAA221 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 281F0B6511500BB400BAA221 /* libSpeexDSP.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libSpeexDSP.a; + remoteRef = 281F0B6411500BB400BAA221 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXShellScriptBuildPhase section */ + 288A6C4611501161008FED5E /* Create Framework and Copy Headers */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Create Framework and Copy Headers"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "#!/bin/bash\n#\n# Create a MumbleKit framework for iPhoneOS\n#\n# This is the Phase 1 script: Create the framework and copy in the needed headers.\n#\n\nMKFW_PATH=${TARGET_BUILD_DIR}/${PROJECT_NAME}.framework/\n\nrm -rf ${MKFW_PATH}\nmkdir -p ${MKFW_PATH}\nmkdir -p ${MKFW_PATH}/Headers/\n\n# Copy MumbleKit headers\ncp -R ${PROJECT_DIR}/src/MumbleKit/ ${MKFW_PATH}/Headers/\n\n# Copy protobuf headers\nmkdir -p ${MKFW_PATH}/Headers/MumbleProtocol/\ncp -R ${PROJECT_DIR}/3rdparty/protobuf/objectivec/Classes/*.h ${MKFW_PATH}/Headers/MumbleProtocol/\ncp -R ${PROJECT_DIR}/proto/*.h ${MKFW_PATH}/Headers/MumbleProtocol/\n\n# Copy Speex headers\ncp -R ${PROJECT_DIR}/3rdparty/speex/include/speex/ ${MKFW_PATH}/Headers/speex/\n\n# Copy CELT headers\nmkdir -p ${MKFW_PATH}/Headers/celt/\ncp -R ${PROJECT_DIR}/3rdparty/celt/libcelt/*.h ${MKFW_PATH}/Headers/celt/\n\n# Create a new symlink inside Headers\ncd ${MKFW_PATH}/Headers/\nln -sf . MumbleKit"; + }; + 28C22B3D1150218D002CEF70 /* Copy Static Library into Framework */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Copy Static Library into Framework"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/bash; + shellScript = "#!/bin/bash\n#\n# Copy the libMumbleKit.a library into our framework bundle\n#\n\nMKFW_PATH=${TARGET_BUILD_DIR}/${PROJECT_NAME}.framework/\ncp -R ${TARGET_BUILD_DIR}/lib${PROJECT_NAME}.a ${MKFW_PATH}/${PROJECT_NAME}"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D2AAC07B0554694100DB518D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 28A4934511431863000627EB /* MKAudio.m in Sources */, + 28A4934711431863000627EB /* MKAudioInput.m in Sources */, + 28A4934911431863000627EB /* MKAudioOutput.m in Sources */, + 28A4934B11431863000627EB /* MKAudioOutputSpeech.m in Sources */, + 28A4934D11431863000627EB /* MKAudioOutputUser.m in Sources */, + 28750A3B11431C50002885AF /* MKReadWriteLock.m in Sources */, + 28750A4B11431D2E002885AF /* MKChannel.m in Sources */, + 28750A4C11431D2E002885AF /* MKConnection.m in Sources */, + 28750A4D11431D2E002885AF /* MKCryptState.m in Sources */, + 28750A4E11431D2E002885AF /* MKPacketDataStream.m in Sources */, + 28750A4F11431D2E002885AF /* MKServerModel.m in Sources */, + 28750A5011431D2E002885AF /* MKUser.m in Sources */, + 28AE414C11432A2E004B3046 /* MKServices.m in Sources */, + 2897BABB11452E4D00F3D16D /* NSInvocation(MumbleKitAdditions).m in Sources */, + 288A6BBE11500C82008FED5E /* Descriptor.pb.m in Sources */, + 288A6BC011500C82008FED5E /* Mumble.pb.m in Sources */, + 288A6BC211500C82008FED5E /* ObjectivecDescriptor.pb.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 281F0B6811500BBF00BAA221 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = CELT; + targetProxy = 281F0B6711500BBF00BAA221 /* PBXContainerItemProxy */; + }; + 281F0B6A11500BC100BAA221 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Speex; + targetProxy = 281F0B6911500BC100BAA221 /* PBXContainerItemProxy */; + }; + 281F0B6C11500BC400BAA221 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = ProtocolBuffers; + targetProxy = 281F0B6B11500BC400BAA221 /* PBXContainerItemProxy */; + }; + 281F0B6E11500BC600BAA221 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = SpeexDSP; + targetProxy = 281F0B6D11500BC600BAA221 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 1DEB921F08733DC00010E9CD /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)"; + COPY_PHASE_STRIP = NO; + DSTROOT = /tmp/MumbleKit.dst; + FRAMEWORK_SEARCH_PATHS = ""; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = src/MumbleKit.pch; + HEADER_SEARCH_PATHS = ( + "${TARGET_BUILD_DIR}/${PROJECT_NAME}.framework/Headers//**", + "${TARGET_BUILD_DIR}/${PROJECT_NAME}.framework/Headers/MumbleProtocol//**", + ); + INSTALL_PATH = /usr/local/lib; + PRODUCT_NAME = MumbleKit; + }; + name = Debug; + }; + 1DEB922008733DC00010E9CD /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)"; + DSTROOT = /tmp/MumbleKit.dst; + FRAMEWORK_SEARCH_PATHS = ""; + GCC_MODEL_TUNING = G5; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = src/MumbleKit.pch; + HEADER_SEARCH_PATHS = ( + "${TARGET_BUILD_DIR}/${PROJECT_NAME}.framework/Headers//**", + "${TARGET_BUILD_DIR}/${PROJECT_NAME}.framework/Headers/MumbleProtocol//**", + ); + INSTALL_PATH = /usr/local/lib; + PRODUCT_NAME = MumbleKit; + }; + name = Release; + }; + 1DEB922308733DC00010E9CD /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)"; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = "./**"; + MACH_O_TYPE = staticlib; + OTHER_LDFLAGS = "-ObjC"; + PREBINDING = NO; + SDKROOT = iphoneos3.1.3; + VALID_ARCHS = "i386 armv6 armv7"; + }; + name = Debug; + }; + 1DEB922408733DC00010E9CD /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)"; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = "./**"; + MACH_O_TYPE = staticlib; + OTHER_LDFLAGS = "-ObjC"; + PREBINDING = NO; + SDKROOT = iphoneos3.1.3; + VALID_ARCHS = "i386 armv6 armv7"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 1DEB921E08733DC00010E9CD /* Build configuration list for PBXNativeTarget "MumbleKit" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1DEB921F08733DC00010E9CD /* Debug */, + 1DEB922008733DC00010E9CD /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 1DEB922208733DC00010E9CD /* Build configuration list for PBXProject "MumbleKit" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1DEB922308733DC00010E9CD /* Debug */, + 1DEB922408733DC00010E9CD /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 0867D690FE84028FC02AAC07 /* Project object */; +} @@ -0,0 +1,42 @@ +Last-Updated: March 16 2010) + +MumbleKit - A Mumble client framework for iPhoneOS +================================================= + +This is the source code of MumbleKit - a Mumble client framework +for iPhoneOS-based devices. + +Mumble is gaming-focused social voice chat utility. The desktop +version runs of Windows, Mac OS X, Linux and various other Unix-like +systems. Visit its website at: + + <http://mumble.info/> + +Building it +=========== + +To build this you need the iPhoneOS 3.0 SDK from Apple and an +Intel Mac running Mac OS X 10.5 or later. + +Before starting your build, you will need to check out the re- +quired submodules. + + $ git submodule init + $ git submodule update + +This will fetch known "working" snapshot of CELT, Speex and +Protocol Buffers for Objective C. + +Building it (Xcode.app) +======================= + +To build using Xcode, simply open the MumbleKit Xcode project +(MumbleKit.xcodeproj in the root of the source tree) and press +Cmd-B to build. + +Building it (command line) +========================= + +To build from the command line, do something like this: + + $ xcodebuild -project MumbleKit.xcodeproj -sdk iphonesimulator3.1.3 -target MumbleKit -configuration Debug diff --git a/proto/Descriptor.pb.h b/proto/Descriptor.pb.h new file mode 100644 index 0000000..ea9df66 --- /dev/null +++ b/proto/Descriptor.pb.h @@ -0,0 +1,1404 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! + +@class PBDescriptorProto; +@class PBDescriptorProto_Builder; +@class PBDescriptorProto_ExtensionRange; +@class PBDescriptorProto_ExtensionRange_Builder; +@class PBEnumDescriptorProto; +@class PBEnumDescriptorProto_Builder; +@class PBEnumOptions; +@class PBEnumOptions_Builder; +@class PBEnumValueDescriptorProto; +@class PBEnumValueDescriptorProto_Builder; +@class PBEnumValueOptions; +@class PBEnumValueOptions_Builder; +@class PBFieldDescriptorProto; +@class PBFieldDescriptorProto_Builder; +@class PBFieldOptions; +@class PBFieldOptions_Builder; +@class PBFileDescriptorProto; +@class PBFileDescriptorProto_Builder; +@class PBFileDescriptorSet; +@class PBFileDescriptorSet_Builder; +@class PBFileOptions; +@class PBFileOptions_Builder; +@class PBMessageOptions; +@class PBMessageOptions_Builder; +@class PBMethodDescriptorProto; +@class PBMethodDescriptorProto_Builder; +@class PBMethodOptions; +@class PBMethodOptions_Builder; +@class PBServiceDescriptorProto; +@class PBServiceDescriptorProto_Builder; +@class PBServiceOptions; +@class PBServiceOptions_Builder; +@class PBUninterpretedOption; +@class PBUninterpretedOption_Builder; +@class PBUninterpretedOption_NamePart; +@class PBUninterpretedOption_NamePart_Builder; +typedef enum { + PBFieldDescriptorProto_TypeTypeDouble = 1, + PBFieldDescriptorProto_TypeTypeFloat = 2, + PBFieldDescriptorProto_TypeTypeInt64 = 3, + PBFieldDescriptorProto_TypeTypeUint64 = 4, + PBFieldDescriptorProto_TypeTypeInt32 = 5, + PBFieldDescriptorProto_TypeTypeFixed64 = 6, + PBFieldDescriptorProto_TypeTypeFixed32 = 7, + PBFieldDescriptorProto_TypeTypeBool = 8, + PBFieldDescriptorProto_TypeTypeString = 9, + PBFieldDescriptorProto_TypeTypeGroup = 10, + PBFieldDescriptorProto_TypeTypeMessage = 11, + PBFieldDescriptorProto_TypeTypeBytes = 12, + PBFieldDescriptorProto_TypeTypeUint32 = 13, + PBFieldDescriptorProto_TypeTypeEnum = 14, + PBFieldDescriptorProto_TypeTypeSfixed32 = 15, + PBFieldDescriptorProto_TypeTypeSfixed64 = 16, + PBFieldDescriptorProto_TypeTypeSint32 = 17, + PBFieldDescriptorProto_TypeTypeSint64 = 18, +} PBFieldDescriptorProto_Type; + +BOOL PBFieldDescriptorProto_TypeIsValidValue(PBFieldDescriptorProto_Type value); + +typedef enum { + PBFieldDescriptorProto_LabelLabelOptional = 1, + PBFieldDescriptorProto_LabelLabelRequired = 2, + PBFieldDescriptorProto_LabelLabelRepeated = 3, +} PBFieldDescriptorProto_Label; + +BOOL PBFieldDescriptorProto_LabelIsValidValue(PBFieldDescriptorProto_Label value); + +typedef enum { + PBFileOptions_OptimizeModeSpeed = 1, + PBFileOptions_OptimizeModeCodeSize = 2, + PBFileOptions_OptimizeModeLiteRuntime = 3, +} PBFileOptions_OptimizeMode; + +BOOL PBFileOptions_OptimizeModeIsValidValue(PBFileOptions_OptimizeMode value); + +typedef enum { + PBFieldOptions_CTypeCord = 1, + PBFieldOptions_CTypeStringPiece = 2, +} PBFieldOptions_CType; + +BOOL PBFieldOptions_CTypeIsValidValue(PBFieldOptions_CType value); + + +@interface PBDescriptorRoot : NSObject { +} ++ (PBExtensionRegistry*) extensionRegistry; ++ (void) registerAllExtensions:(PBMutableExtensionRegistry*) registry; +@end + +@interface PBFileDescriptorSet : PBGeneratedMessage { +@private + NSMutableArray* mutableFileList; +} +- (NSArray*) fileList; +- (PBFileDescriptorProto*) fileAtIndex:(int32_t) index; + ++ (PBFileDescriptorSet*) defaultInstance; +- (PBFileDescriptorSet*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (PBFileDescriptorSet_Builder*) builder; ++ (PBFileDescriptorSet_Builder*) builder; ++ (PBFileDescriptorSet_Builder*) builderWithPrototype:(PBFileDescriptorSet*) prototype; + ++ (PBFileDescriptorSet*) parseFromData:(NSData*) data; ++ (PBFileDescriptorSet*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (PBFileDescriptorSet*) parseFromInputStream:(NSInputStream*) input; ++ (PBFileDescriptorSet*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (PBFileDescriptorSet*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (PBFileDescriptorSet*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface PBFileDescriptorSet_Builder : PBGeneratedMessage_Builder { +@private + PBFileDescriptorSet* result; +} + +- (PBFileDescriptorSet*) defaultInstance; + +- (PBFileDescriptorSet_Builder*) clear; +- (PBFileDescriptorSet_Builder*) clone; + +- (PBFileDescriptorSet*) build; +- (PBFileDescriptorSet*) buildPartial; + +- (PBFileDescriptorSet_Builder*) mergeFrom:(PBFileDescriptorSet*) other; +- (PBFileDescriptorSet_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (PBFileDescriptorSet_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (NSArray*) fileList; +- (PBFileDescriptorProto*) fileAtIndex:(int32_t) index; +- (PBFileDescriptorSet_Builder*) replaceFileAtIndex:(int32_t) index with:(PBFileDescriptorProto*) value; +- (PBFileDescriptorSet_Builder*) addFile:(PBFileDescriptorProto*) value; +- (PBFileDescriptorSet_Builder*) addAllFile:(NSArray*) values; +- (PBFileDescriptorSet_Builder*) clearFileList; +@end + +@interface PBFileDescriptorProto : PBGeneratedMessage { +@private + BOOL hasName_:1; + BOOL hasPackage_:1; + BOOL hasOptions_:1; + NSString* name; + NSString* package; + PBFileOptions* options; + NSMutableArray* mutableDependencyList; + NSMutableArray* mutableMessageTypeList; + NSMutableArray* mutableEnumTypeList; + NSMutableArray* mutableServiceList; + NSMutableArray* mutableExtensionList; +} +- (BOOL) hasName; +- (BOOL) hasPackage; +- (BOOL) hasOptions; +@property (readonly, retain) NSString* name; +@property (readonly, retain) NSString* package; +@property (readonly, retain) PBFileOptions* options; +- (NSArray*) dependencyList; +- (NSString*) dependencyAtIndex:(int32_t) index; +- (NSArray*) messageTypeList; +- (PBDescriptorProto*) messageTypeAtIndex:(int32_t) index; +- (NSArray*) enumTypeList; +- (PBEnumDescriptorProto*) enumTypeAtIndex:(int32_t) index; +- (NSArray*) serviceList; +- (PBServiceDescriptorProto*) serviceAtIndex:(int32_t) index; +- (NSArray*) extensionList; +- (PBFieldDescriptorProto*) extensionAtIndex:(int32_t) index; + ++ (PBFileDescriptorProto*) defaultInstance; +- (PBFileDescriptorProto*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (PBFileDescriptorProto_Builder*) builder; ++ (PBFileDescriptorProto_Builder*) builder; ++ (PBFileDescriptorProto_Builder*) builderWithPrototype:(PBFileDescriptorProto*) prototype; + ++ (PBFileDescriptorProto*) parseFromData:(NSData*) data; ++ (PBFileDescriptorProto*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (PBFileDescriptorProto*) parseFromInputStream:(NSInputStream*) input; ++ (PBFileDescriptorProto*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (PBFileDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (PBFileDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface PBFileDescriptorProto_Builder : PBGeneratedMessage_Builder { +@private + PBFileDescriptorProto* result; +} + +- (PBFileDescriptorProto*) defaultInstance; + +- (PBFileDescriptorProto_Builder*) clear; +- (PBFileDescriptorProto_Builder*) clone; + +- (PBFileDescriptorProto*) build; +- (PBFileDescriptorProto*) buildPartial; + +- (PBFileDescriptorProto_Builder*) mergeFrom:(PBFileDescriptorProto*) other; +- (PBFileDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (PBFileDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (BOOL) hasName; +- (NSString*) name; +- (PBFileDescriptorProto_Builder*) setName:(NSString*) value; +- (PBFileDescriptorProto_Builder*) clearName; + +- (BOOL) hasPackage; +- (NSString*) package; +- (PBFileDescriptorProto_Builder*) setPackage:(NSString*) value; +- (PBFileDescriptorProto_Builder*) clearPackage; + +- (NSArray*) dependencyList; +- (NSString*) dependencyAtIndex:(int32_t) index; +- (PBFileDescriptorProto_Builder*) replaceDependencyAtIndex:(int32_t) index with:(NSString*) value; +- (PBFileDescriptorProto_Builder*) addDependency:(NSString*) value; +- (PBFileDescriptorProto_Builder*) addAllDependency:(NSArray*) values; +- (PBFileDescriptorProto_Builder*) clearDependencyList; + +- (NSArray*) messageTypeList; +- (PBDescriptorProto*) messageTypeAtIndex:(int32_t) index; +- (PBFileDescriptorProto_Builder*) replaceMessageTypeAtIndex:(int32_t) index with:(PBDescriptorProto*) value; +- (PBFileDescriptorProto_Builder*) addMessageType:(PBDescriptorProto*) value; +- (PBFileDescriptorProto_Builder*) addAllMessageType:(NSArray*) values; +- (PBFileDescriptorProto_Builder*) clearMessageTypeList; + +- (NSArray*) enumTypeList; +- (PBEnumDescriptorProto*) enumTypeAtIndex:(int32_t) index; +- (PBFileDescriptorProto_Builder*) replaceEnumTypeAtIndex:(int32_t) index with:(PBEnumDescriptorProto*) value; +- (PBFileDescriptorProto_Builder*) addEnumType:(PBEnumDescriptorProto*) value; +- (PBFileDescriptorProto_Builder*) addAllEnumType:(NSArray*) values; +- (PBFileDescriptorProto_Builder*) clearEnumTypeList; + +- (NSArray*) serviceList; +- (PBServiceDescriptorProto*) serviceAtIndex:(int32_t) index; +- (PBFileDescriptorProto_Builder*) replaceServiceAtIndex:(int32_t) index with:(PBServiceDescriptorProto*) value; +- (PBFileDescriptorProto_Builder*) addService:(PBServiceDescriptorProto*) value; +- (PBFileDescriptorProto_Builder*) addAllService:(NSArray*) values; +- (PBFileDescriptorProto_Builder*) clearServiceList; + +- (NSArray*) extensionList; +- (PBFieldDescriptorProto*) extensionAtIndex:(int32_t) index; +- (PBFileDescriptorProto_Builder*) replaceExtensionAtIndex:(int32_t) index with:(PBFieldDescriptorProto*) value; +- (PBFileDescriptorProto_Builder*) addExtension:(PBFieldDescriptorProto*) value; +- (PBFileDescriptorProto_Builder*) addAllExtension:(NSArray*) values; +- (PBFileDescriptorProto_Builder*) clearExtensionList; + +- (BOOL) hasOptions; +- (PBFileOptions*) options; +- (PBFileDescriptorProto_Builder*) setOptions:(PBFileOptions*) value; +- (PBFileDescriptorProto_Builder*) setOptionsBuilder:(PBFileOptions_Builder*) builderForValue; +- (PBFileDescriptorProto_Builder*) mergeOptions:(PBFileOptions*) value; +- (PBFileDescriptorProto_Builder*) clearOptions; +@end + +@interface PBDescriptorProto : PBGeneratedMessage { +@private + BOOL hasName_:1; + BOOL hasOptions_:1; + NSString* name; + PBMessageOptions* options; + NSMutableArray* mutableFieldList; + NSMutableArray* mutableExtensionList; + NSMutableArray* mutableNestedTypeList; + NSMutableArray* mutableEnumTypeList; + NSMutableArray* mutableExtensionRangeList; +} +- (BOOL) hasName; +- (BOOL) hasOptions; +@property (readonly, retain) NSString* name; +@property (readonly, retain) PBMessageOptions* options; +- (NSArray*) fieldList; +- (PBFieldDescriptorProto*) fieldAtIndex:(int32_t) index; +- (NSArray*) extensionList; +- (PBFieldDescriptorProto*) extensionAtIndex:(int32_t) index; +- (NSArray*) nestedTypeList; +- (PBDescriptorProto*) nestedTypeAtIndex:(int32_t) index; +- (NSArray*) enumTypeList; +- (PBEnumDescriptorProto*) enumTypeAtIndex:(int32_t) index; +- (NSArray*) extensionRangeList; +- (PBDescriptorProto_ExtensionRange*) extensionRangeAtIndex:(int32_t) index; + ++ (PBDescriptorProto*) defaultInstance; +- (PBDescriptorProto*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (PBDescriptorProto_Builder*) builder; ++ (PBDescriptorProto_Builder*) builder; ++ (PBDescriptorProto_Builder*) builderWithPrototype:(PBDescriptorProto*) prototype; + ++ (PBDescriptorProto*) parseFromData:(NSData*) data; ++ (PBDescriptorProto*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (PBDescriptorProto*) parseFromInputStream:(NSInputStream*) input; ++ (PBDescriptorProto*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (PBDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (PBDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface PBDescriptorProto_ExtensionRange : PBGeneratedMessage { +@private + BOOL hasStart_:1; + BOOL hasEnd_:1; + int32_t start; + int32_t end; +} +- (BOOL) hasStart; +- (BOOL) hasEnd; +@property (readonly) int32_t start; +@property (readonly) int32_t end; + ++ (PBDescriptorProto_ExtensionRange*) defaultInstance; +- (PBDescriptorProto_ExtensionRange*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (PBDescriptorProto_ExtensionRange_Builder*) builder; ++ (PBDescriptorProto_ExtensionRange_Builder*) builder; ++ (PBDescriptorProto_ExtensionRange_Builder*) builderWithPrototype:(PBDescriptorProto_ExtensionRange*) prototype; + ++ (PBDescriptorProto_ExtensionRange*) parseFromData:(NSData*) data; ++ (PBDescriptorProto_ExtensionRange*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (PBDescriptorProto_ExtensionRange*) parseFromInputStream:(NSInputStream*) input; ++ (PBDescriptorProto_ExtensionRange*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (PBDescriptorProto_ExtensionRange*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (PBDescriptorProto_ExtensionRange*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface PBDescriptorProto_ExtensionRange_Builder : PBGeneratedMessage_Builder { +@private + PBDescriptorProto_ExtensionRange* result; +} + +- (PBDescriptorProto_ExtensionRange*) defaultInstance; + +- (PBDescriptorProto_ExtensionRange_Builder*) clear; +- (PBDescriptorProto_ExtensionRange_Builder*) clone; + +- (PBDescriptorProto_ExtensionRange*) build; +- (PBDescriptorProto_ExtensionRange*) buildPartial; + +- (PBDescriptorProto_ExtensionRange_Builder*) mergeFrom:(PBDescriptorProto_ExtensionRange*) other; +- (PBDescriptorProto_ExtensionRange_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (PBDescriptorProto_ExtensionRange_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (BOOL) hasStart; +- (int32_t) start; +- (PBDescriptorProto_ExtensionRange_Builder*) setStart:(int32_t) value; +- (PBDescriptorProto_ExtensionRange_Builder*) clearStart; + +- (BOOL) hasEnd; +- (int32_t) end; +- (PBDescriptorProto_ExtensionRange_Builder*) setEnd:(int32_t) value; +- (PBDescriptorProto_ExtensionRange_Builder*) clearEnd; +@end + +@interface PBDescriptorProto_Builder : PBGeneratedMessage_Builder { +@private + PBDescriptorProto* result; +} + +- (PBDescriptorProto*) defaultInstance; + +- (PBDescriptorProto_Builder*) clear; +- (PBDescriptorProto_Builder*) clone; + +- (PBDescriptorProto*) build; +- (PBDescriptorProto*) buildPartial; + +- (PBDescriptorProto_Builder*) mergeFrom:(PBDescriptorProto*) other; +- (PBDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (PBDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (BOOL) hasName; +- (NSString*) name; +- (PBDescriptorProto_Builder*) setName:(NSString*) value; +- (PBDescriptorProto_Builder*) clearName; + +- (NSArray*) fieldList; +- (PBFieldDescriptorProto*) fieldAtIndex:(int32_t) index; +- (PBDescriptorProto_Builder*) replaceFieldAtIndex:(int32_t) index with:(PBFieldDescriptorProto*) value; +- (PBDescriptorProto_Builder*) addField:(PBFieldDescriptorProto*) value; +- (PBDescriptorProto_Builder*) addAllField:(NSArray*) values; +- (PBDescriptorProto_Builder*) clearFieldList; + +- (NSArray*) extensionList; +- (PBFieldDescriptorProto*) extensionAtIndex:(int32_t) index; +- (PBDescriptorProto_Builder*) replaceExtensionAtIndex:(int32_t) index with:(PBFieldDescriptorProto*) value; +- (PBDescriptorProto_Builder*) addExtension:(PBFieldDescriptorProto*) value; +- (PBDescriptorProto_Builder*) addAllExtension:(NSArray*) values; +- (PBDescriptorProto_Builder*) clearExtensionList; + +- (NSArray*) nestedTypeList; +- (PBDescriptorProto*) nestedTypeAtIndex:(int32_t) index; +- (PBDescriptorProto_Builder*) replaceNestedTypeAtIndex:(int32_t) index with:(PBDescriptorProto*) value; +- (PBDescriptorProto_Builder*) addNestedType:(PBDescriptorProto*) value; +- (PBDescriptorProto_Builder*) addAllNestedType:(NSArray*) values; +- (PBDescriptorProto_Builder*) clearNestedTypeList; + +- (NSArray*) enumTypeList; +- (PBEnumDescriptorProto*) enumTypeAtIndex:(int32_t) index; +- (PBDescriptorProto_Builder*) replaceEnumTypeAtIndex:(int32_t) index with:(PBEnumDescriptorProto*) value; +- (PBDescriptorProto_Builder*) addEnumType:(PBEnumDescriptorProto*) value; +- (PBDescriptorProto_Builder*) addAllEnumType:(NSArray*) values; +- (PBDescriptorProto_Builder*) clearEnumTypeList; + +- (NSArray*) extensionRangeList; +- (PBDescriptorProto_ExtensionRange*) extensionRangeAtIndex:(int32_t) index; +- (PBDescriptorProto_Builder*) replaceExtensionRangeAtIndex:(int32_t) index with:(PBDescriptorProto_ExtensionRange*) value; +- (PBDescriptorProto_Builder*) addExtensionRange:(PBDescriptorProto_ExtensionRange*) value; +- (PBDescriptorProto_Builder*) addAllExtensionRange:(NSArray*) values; +- (PBDescriptorProto_Builder*) clearExtensionRangeList; + +- (BOOL) hasOptions; +- (PBMessageOptions*) options; +- (PBDescriptorProto_Builder*) setOptions:(PBMessageOptions*) value; +- (PBDescriptorProto_Builder*) setOptionsBuilder:(PBMessageOptions_Builder*) builderForValue; +- (PBDescriptorProto_Builder*) mergeOptions:(PBMessageOptions*) value; +- (PBDescriptorProto_Builder*) clearOptions; +@end + +@interface PBFieldDescriptorProto : PBGeneratedMessage { +@private + BOOL hasNumber_:1; + BOOL hasName_:1; + BOOL hasTypeName_:1; + BOOL hasExtendee_:1; + BOOL hasDefaultValue_:1; + BOOL hasOptions_:1; + BOOL hasLabel_:1; + BOOL hasType_:1; + int32_t number; + NSString* name; + NSString* typeName; + NSString* extendee; + NSString* defaultValue; + PBFieldOptions* options; + PBFieldDescriptorProto_Label label; + PBFieldDescriptorProto_Type type; +} +- (BOOL) hasName; +- (BOOL) hasNumber; +- (BOOL) hasLabel; +- (BOOL) hasType; +- (BOOL) hasTypeName; +- (BOOL) hasExtendee; +- (BOOL) hasDefaultValue; +- (BOOL) hasOptions; +@property (readonly, retain) NSString* name; +@property (readonly) int32_t number; +@property (readonly) PBFieldDescriptorProto_Label label; +@property (readonly) PBFieldDescriptorProto_Type type; +@property (readonly, retain) NSString* typeName; +@property (readonly, retain) NSString* extendee; +@property (readonly, retain) NSString* defaultValue; +@property (readonly, retain) PBFieldOptions* options; + ++ (PBFieldDescriptorProto*) defaultInstance; +- (PBFieldDescriptorProto*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (PBFieldDescriptorProto_Builder*) builder; ++ (PBFieldDescriptorProto_Builder*) builder; ++ (PBFieldDescriptorProto_Builder*) builderWithPrototype:(PBFieldDescriptorProto*) prototype; + ++ (PBFieldDescriptorProto*) parseFromData:(NSData*) data; ++ (PBFieldDescriptorProto*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (PBFieldDescriptorProto*) parseFromInputStream:(NSInputStream*) input; ++ (PBFieldDescriptorProto*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (PBFieldDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (PBFieldDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface PBFieldDescriptorProto_Builder : PBGeneratedMessage_Builder { +@private + PBFieldDescriptorProto* result; +} + +- (PBFieldDescriptorProto*) defaultInstance; + +- (PBFieldDescriptorProto_Builder*) clear; +- (PBFieldDescriptorProto_Builder*) clone; + +- (PBFieldDescriptorProto*) build; +- (PBFieldDescriptorProto*) buildPartial; + +- (PBFieldDescriptorProto_Builder*) mergeFrom:(PBFieldDescriptorProto*) other; +- (PBFieldDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (PBFieldDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (BOOL) hasName; +- (NSString*) name; +- (PBFieldDescriptorProto_Builder*) setName:(NSString*) value; +- (PBFieldDescriptorProto_Builder*) clearName; + +- (BOOL) hasNumber; +- (int32_t) number; +- (PBFieldDescriptorProto_Builder*) setNumber:(int32_t) value; +- (PBFieldDescriptorProto_Builder*) clearNumber; + +- (BOOL) hasLabel; +- (PBFieldDescriptorProto_Label) label; +- (PBFieldDescriptorProto_Builder*) setLabel:(PBFieldDescriptorProto_Label) value; +- (PBFieldDescriptorProto_Builder*) clearLabel; + +- (BOOL) hasType; +- (PBFieldDescriptorProto_Type) type; +- (PBFieldDescriptorProto_Builder*) setType:(PBFieldDescriptorProto_Type) value; +- (PBFieldDescriptorProto_Builder*) clearType; + +- (BOOL) hasTypeName; +- (NSString*) typeName; +- (PBFieldDescriptorProto_Builder*) setTypeName:(NSString*) value; +- (PBFieldDescriptorProto_Builder*) clearTypeName; + +- (BOOL) hasExtendee; +- (NSString*) extendee; +- (PBFieldDescriptorProto_Builder*) setExtendee:(NSString*) value; +- (PBFieldDescriptorProto_Builder*) clearExtendee; + +- (BOOL) hasDefaultValue; +- (NSString*) defaultValue; +- (PBFieldDescriptorProto_Builder*) setDefaultValue:(NSString*) value; +- (PBFieldDescriptorProto_Builder*) clearDefaultValue; + +- (BOOL) hasOptions; +- (PBFieldOptions*) options; +- (PBFieldDescriptorProto_Builder*) setOptions:(PBFieldOptions*) value; +- (PBFieldDescriptorProto_Builder*) setOptionsBuilder:(PBFieldOptions_Builder*) builderForValue; +- (PBFieldDescriptorProto_Builder*) mergeOptions:(PBFieldOptions*) value; +- (PBFieldDescriptorProto_Builder*) clearOptions; +@end + +@interface PBEnumDescriptorProto : PBGeneratedMessage { +@private + BOOL hasName_:1; + BOOL hasOptions_:1; + NSString* name; + PBEnumOptions* options; + NSMutableArray* mutableValueList; +} +- (BOOL) hasName; +- (BOOL) hasOptions; +@property (readonly, retain) NSString* name; +@property (readonly, retain) PBEnumOptions* options; +- (NSArray*) valueList; +- (PBEnumValueDescriptorProto*) valueAtIndex:(int32_t) index; + ++ (PBEnumDescriptorProto*) defaultInstance; +- (PBEnumDescriptorProto*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (PBEnumDescriptorProto_Builder*) builder; ++ (PBEnumDescriptorProto_Builder*) builder; ++ (PBEnumDescriptorProto_Builder*) builderWithPrototype:(PBEnumDescriptorProto*) prototype; + ++ (PBEnumDescriptorProto*) parseFromData:(NSData*) data; ++ (PBEnumDescriptorProto*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (PBEnumDescriptorProto*) parseFromInputStream:(NSInputStream*) input; ++ (PBEnumDescriptorProto*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (PBEnumDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (PBEnumDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface PBEnumDescriptorProto_Builder : PBGeneratedMessage_Builder { +@private + PBEnumDescriptorProto* result; +} + +- (PBEnumDescriptorProto*) defaultInstance; + +- (PBEnumDescriptorProto_Builder*) clear; +- (PBEnumDescriptorProto_Builder*) clone; + +- (PBEnumDescriptorProto*) build; +- (PBEnumDescriptorProto*) buildPartial; + +- (PBEnumDescriptorProto_Builder*) mergeFrom:(PBEnumDescriptorProto*) other; +- (PBEnumDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (PBEnumDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (BOOL) hasName; +- (NSString*) name; +- (PBEnumDescriptorProto_Builder*) setName:(NSString*) value; +- (PBEnumDescriptorProto_Builder*) clearName; + +- (NSArray*) valueList; +- (PBEnumValueDescriptorProto*) valueAtIndex:(int32_t) index; +- (PBEnumDescriptorProto_Builder*) replaceValueAtIndex:(int32_t) index with:(PBEnumValueDescriptorProto*) value; +- (PBEnumDescriptorProto_Builder*) addValue:(PBEnumValueDescriptorProto*) value; +- (PBEnumDescriptorProto_Builder*) addAllValue:(NSArray*) values; +- (PBEnumDescriptorProto_Builder*) clearValueList; + +- (BOOL) hasOptions; +- (PBEnumOptions*) options; +- (PBEnumDescriptorProto_Builder*) setOptions:(PBEnumOptions*) value; +- (PBEnumDescriptorProto_Builder*) setOptionsBuilder:(PBEnumOptions_Builder*) builderForValue; +- (PBEnumDescriptorProto_Builder*) mergeOptions:(PBEnumOptions*) value; +- (PBEnumDescriptorProto_Builder*) clearOptions; +@end + +@interface PBEnumValueDescriptorProto : PBGeneratedMessage { +@private + BOOL hasNumber_:1; + BOOL hasName_:1; + BOOL hasOptions_:1; + int32_t number; + NSString* name; + PBEnumValueOptions* options; +} +- (BOOL) hasName; +- (BOOL) hasNumber; +- (BOOL) hasOptions; +@property (readonly, retain) NSString* name; +@property (readonly) int32_t number; +@property (readonly, retain) PBEnumValueOptions* options; + ++ (PBEnumValueDescriptorProto*) defaultInstance; +- (PBEnumValueDescriptorProto*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (PBEnumValueDescriptorProto_Builder*) builder; ++ (PBEnumValueDescriptorProto_Builder*) builder; ++ (PBEnumValueDescriptorProto_Builder*) builderWithPrototype:(PBEnumValueDescriptorProto*) prototype; + ++ (PBEnumValueDescriptorProto*) parseFromData:(NSData*) data; ++ (PBEnumValueDescriptorProto*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (PBEnumValueDescriptorProto*) parseFromInputStream:(NSInputStream*) input; ++ (PBEnumValueDescriptorProto*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (PBEnumValueDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (PBEnumValueDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface PBEnumValueDescriptorProto_Builder : PBGeneratedMessage_Builder { +@private + PBEnumValueDescriptorProto* result; +} + +- (PBEnumValueDescriptorProto*) defaultInstance; + +- (PBEnumValueDescriptorProto_Builder*) clear; +- (PBEnumValueDescriptorProto_Builder*) clone; + +- (PBEnumValueDescriptorProto*) build; +- (PBEnumValueDescriptorProto*) buildPartial; + +- (PBEnumValueDescriptorProto_Builder*) mergeFrom:(PBEnumValueDescriptorProto*) other; +- (PBEnumValueDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (PBEnumValueDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (BOOL) hasName; +- (NSString*) name; +- (PBEnumValueDescriptorProto_Builder*) setName:(NSString*) value; +- (PBEnumValueDescriptorProto_Builder*) clearName; + +- (BOOL) hasNumber; +- (int32_t) number; +- (PBEnumValueDescriptorProto_Builder*) setNumber:(int32_t) value; +- (PBEnumValueDescriptorProto_Builder*) clearNumber; + +- (BOOL) hasOptions; +- (PBEnumValueOptions*) options; +- (PBEnumValueDescriptorProto_Builder*) setOptions:(PBEnumValueOptions*) value; +- (PBEnumValueDescriptorProto_Builder*) setOptionsBuilder:(PBEnumValueOptions_Builder*) builderForValue; +- (PBEnumValueDescriptorProto_Builder*) mergeOptions:(PBEnumValueOptions*) value; +- (PBEnumValueDescriptorProto_Builder*) clearOptions; +@end + +@interface PBServiceDescriptorProto : PBGeneratedMessage { +@private + BOOL hasName_:1; + BOOL hasOptions_:1; + NSString* name; + PBServiceOptions* options; + NSMutableArray* mutableMethodList; +} +- (BOOL) hasName; +- (BOOL) hasOptions; +@property (readonly, retain) NSString* name; +@property (readonly, retain) PBServiceOptions* options; +- (NSArray*) methodList; +- (PBMethodDescriptorProto*) methodAtIndex:(int32_t) index; + ++ (PBServiceDescriptorProto*) defaultInstance; +- (PBServiceDescriptorProto*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (PBServiceDescriptorProto_Builder*) builder; ++ (PBServiceDescriptorProto_Builder*) builder; ++ (PBServiceDescriptorProto_Builder*) builderWithPrototype:(PBServiceDescriptorProto*) prototype; + ++ (PBServiceDescriptorProto*) parseFromData:(NSData*) data; ++ (PBServiceDescriptorProto*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (PBServiceDescriptorProto*) parseFromInputStream:(NSInputStream*) input; ++ (PBServiceDescriptorProto*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (PBServiceDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (PBServiceDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface PBServiceDescriptorProto_Builder : PBGeneratedMessage_Builder { +@private + PBServiceDescriptorProto* result; +} + +- (PBServiceDescriptorProto*) defaultInstance; + +- (PBServiceDescriptorProto_Builder*) clear; +- (PBServiceDescriptorProto_Builder*) clone; + +- (PBServiceDescriptorProto*) build; +- (PBServiceDescriptorProto*) buildPartial; + +- (PBServiceDescriptorProto_Builder*) mergeFrom:(PBServiceDescriptorProto*) other; +- (PBServiceDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (PBServiceDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (BOOL) hasName; +- (NSString*) name; +- (PBServiceDescriptorProto_Builder*) setName:(NSString*) value; +- (PBServiceDescriptorProto_Builder*) clearName; + +- (NSArray*) methodList; +- (PBMethodDescriptorProto*) methodAtIndex:(int32_t) index; +- (PBServiceDescriptorProto_Builder*) replaceMethodAtIndex:(int32_t) index with:(PBMethodDescriptorProto*) value; +- (PBServiceDescriptorProto_Builder*) addMethod:(PBMethodDescriptorProto*) value; +- (PBServiceDescriptorProto_Builder*) addAllMethod:(NSArray*) values; +- (PBServiceDescriptorProto_Builder*) clearMethodList; + +- (BOOL) hasOptions; +- (PBServiceOptions*) options; +- (PBServiceDescriptorProto_Builder*) setOptions:(PBServiceOptions*) value; +- (PBServiceDescriptorProto_Builder*) setOptionsBuilder:(PBServiceOptions_Builder*) builderForValue; +- (PBServiceDescriptorProto_Builder*) mergeOptions:(PBServiceOptions*) value; +- (PBServiceDescriptorProto_Builder*) clearOptions; +@end + +@interface PBMethodDescriptorProto : PBGeneratedMessage { +@private + BOOL hasName_:1; + BOOL hasInputType_:1; + BOOL hasOutputType_:1; + BOOL hasOptions_:1; + NSString* name; + NSString* inputType; + NSString* outputType; + PBMethodOptions* options; +} +- (BOOL) hasName; +- (BOOL) hasInputType; +- (BOOL) hasOutputType; +- (BOOL) hasOptions; +@property (readonly, retain) NSString* name; +@property (readonly, retain) NSString* inputType; +@property (readonly, retain) NSString* outputType; +@property (readonly, retain) PBMethodOptions* options; + ++ (PBMethodDescriptorProto*) defaultInstance; +- (PBMethodDescriptorProto*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (PBMethodDescriptorProto_Builder*) builder; ++ (PBMethodDescriptorProto_Builder*) builder; ++ (PBMethodDescriptorProto_Builder*) builderWithPrototype:(PBMethodDescriptorProto*) prototype; + ++ (PBMethodDescriptorProto*) parseFromData:(NSData*) data; ++ (PBMethodDescriptorProto*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (PBMethodDescriptorProto*) parseFromInputStream:(NSInputStream*) input; ++ (PBMethodDescriptorProto*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (PBMethodDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (PBMethodDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface PBMethodDescriptorProto_Builder : PBGeneratedMessage_Builder { +@private + PBMethodDescriptorProto* result; +} + +- (PBMethodDescriptorProto*) defaultInstance; + +- (PBMethodDescriptorProto_Builder*) clear; +- (PBMethodDescriptorProto_Builder*) clone; + +- (PBMethodDescriptorProto*) build; +- (PBMethodDescriptorProto*) buildPartial; + +- (PBMethodDescriptorProto_Builder*) mergeFrom:(PBMethodDescriptorProto*) other; +- (PBMethodDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (PBMethodDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (BOOL) hasName; +- (NSString*) name; +- (PBMethodDescriptorProto_Builder*) setName:(NSString*) value; +- (PBMethodDescriptorProto_Builder*) clearName; + +- (BOOL) hasInputType; +- (NSString*) inputType; +- (PBMethodDescriptorProto_Builder*) setInputType:(NSString*) value; +- (PBMethodDescriptorProto_Builder*) clearInputType; + +- (BOOL) hasOutputType; +- (NSString*) outputType; +- (PBMethodDescriptorProto_Builder*) setOutputType:(NSString*) value; +- (PBMethodDescriptorProto_Builder*) clearOutputType; + +- (BOOL) hasOptions; +- (PBMethodOptions*) options; +- (PBMethodDescriptorProto_Builder*) setOptions:(PBMethodOptions*) value; +- (PBMethodDescriptorProto_Builder*) setOptionsBuilder:(PBMethodOptions_Builder*) builderForValue; +- (PBMethodDescriptorProto_Builder*) mergeOptions:(PBMethodOptions*) value; +- (PBMethodDescriptorProto_Builder*) clearOptions; +@end + +@interface PBFileOptions : PBExtendableMessage { +@private + BOOL hasJavaMultipleFiles_:1; + BOOL hasJavaPackage_:1; + BOOL hasJavaOuterClassname_:1; + BOOL hasOptimizeFor_:1; + BOOL javaMultipleFiles_:1; + NSString* javaPackage; + NSString* javaOuterClassname; + PBFileOptions_OptimizeMode optimizeFor; + NSMutableArray* mutableUninterpretedOptionList; +} +- (BOOL) hasJavaPackage; +- (BOOL) hasJavaOuterClassname; +- (BOOL) hasJavaMultipleFiles; +- (BOOL) hasOptimizeFor; +@property (readonly, retain) NSString* javaPackage; +@property (readonly, retain) NSString* javaOuterClassname; +- (BOOL) javaMultipleFiles; +@property (readonly) PBFileOptions_OptimizeMode optimizeFor; +- (NSArray*) uninterpretedOptionList; +- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index; + ++ (PBFileOptions*) defaultInstance; +- (PBFileOptions*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (PBFileOptions_Builder*) builder; ++ (PBFileOptions_Builder*) builder; ++ (PBFileOptions_Builder*) builderWithPrototype:(PBFileOptions*) prototype; + ++ (PBFileOptions*) parseFromData:(NSData*) data; ++ (PBFileOptions*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (PBFileOptions*) parseFromInputStream:(NSInputStream*) input; ++ (PBFileOptions*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (PBFileOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (PBFileOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface PBFileOptions_Builder : PBExtendableMessage_Builder { +@private + PBFileOptions* result; +} + +- (PBFileOptions*) defaultInstance; + +- (PBFileOptions_Builder*) clear; +- (PBFileOptions_Builder*) clone; + +- (PBFileOptions*) build; +- (PBFileOptions*) buildPartial; + +- (PBFileOptions_Builder*) mergeFrom:(PBFileOptions*) other; +- (PBFileOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (PBFileOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (BOOL) hasJavaPackage; +- (NSString*) javaPackage; +- (PBFileOptions_Builder*) setJavaPackage:(NSString*) value; +- (PBFileOptions_Builder*) clearJavaPackage; + +- (BOOL) hasJavaOuterClassname; +- (NSString*) javaOuterClassname; +- (PBFileOptions_Builder*) setJavaOuterClassname:(NSString*) value; +- (PBFileOptions_Builder*) clearJavaOuterClassname; + +- (BOOL) hasJavaMultipleFiles; +- (BOOL) javaMultipleFiles; +- (PBFileOptions_Builder*) setJavaMultipleFiles:(BOOL) value; +- (PBFileOptions_Builder*) clearJavaMultipleFiles; + +- (BOOL) hasOptimizeFor; +- (PBFileOptions_OptimizeMode) optimizeFor; +- (PBFileOptions_Builder*) setOptimizeFor:(PBFileOptions_OptimizeMode) value; +- (PBFileOptions_Builder*) clearOptimizeFor; + +- (NSArray*) uninterpretedOptionList; +- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index; +- (PBFileOptions_Builder*) replaceUninterpretedOptionAtIndex:(int32_t) index with:(PBUninterpretedOption*) value; +- (PBFileOptions_Builder*) addUninterpretedOption:(PBUninterpretedOption*) value; +- (PBFileOptions_Builder*) addAllUninterpretedOption:(NSArray*) values; +- (PBFileOptions_Builder*) clearUninterpretedOptionList; +@end + +@interface PBMessageOptions : PBExtendableMessage { +@private + BOOL hasMessageSetWireFormat_:1; + BOOL hasNoStandardDescriptorAccessor_:1; + BOOL messageSetWireFormat_:1; + BOOL noStandardDescriptorAccessor_:1; + NSMutableArray* mutableUninterpretedOptionList; +} +- (BOOL) hasMessageSetWireFormat; +- (BOOL) hasNoStandardDescriptorAccessor; +- (BOOL) messageSetWireFormat; +- (BOOL) noStandardDescriptorAccessor; +- (NSArray*) uninterpretedOptionList; +- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index; + ++ (PBMessageOptions*) defaultInstance; +- (PBMessageOptions*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (PBMessageOptions_Builder*) builder; ++ (PBMessageOptions_Builder*) builder; ++ (PBMessageOptions_Builder*) builderWithPrototype:(PBMessageOptions*) prototype; + ++ (PBMessageOptions*) parseFromData:(NSData*) data; ++ (PBMessageOptions*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (PBMessageOptions*) parseFromInputStream:(NSInputStream*) input; ++ (PBMessageOptions*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (PBMessageOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (PBMessageOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface PBMessageOptions_Builder : PBExtendableMessage_Builder { +@private + PBMessageOptions* result; +} + +- (PBMessageOptions*) defaultInstance; + +- (PBMessageOptions_Builder*) clear; +- (PBMessageOptions_Builder*) clone; + +- (PBMessageOptions*) build; +- (PBMessageOptions*) buildPartial; + +- (PBMessageOptions_Builder*) mergeFrom:(PBMessageOptions*) other; +- (PBMessageOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (PBMessageOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (BOOL) hasMessageSetWireFormat; +- (BOOL) messageSetWireFormat; +- (PBMessageOptions_Builder*) setMessageSetWireFormat:(BOOL) value; +- (PBMessageOptions_Builder*) clearMessageSetWireFormat; + +- (BOOL) hasNoStandardDescriptorAccessor; +- (BOOL) noStandardDescriptorAccessor; +- (PBMessageOptions_Builder*) setNoStandardDescriptorAccessor:(BOOL) value; +- (PBMessageOptions_Builder*) clearNoStandardDescriptorAccessor; + +- (NSArray*) uninterpretedOptionList; +- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index; +- (PBMessageOptions_Builder*) replaceUninterpretedOptionAtIndex:(int32_t) index with:(PBUninterpretedOption*) value; +- (PBMessageOptions_Builder*) addUninterpretedOption:(PBUninterpretedOption*) value; +- (PBMessageOptions_Builder*) addAllUninterpretedOption:(NSArray*) values; +- (PBMessageOptions_Builder*) clearUninterpretedOptionList; +@end + +@interface PBFieldOptions : PBExtendableMessage { +@private + BOOL hasPacked_:1; + BOOL hasDeprecated_:1; + BOOL hasExperimentalMapKey_:1; + BOOL hasCtype_:1; + BOOL packed_:1; + BOOL deprecated_:1; + NSString* experimentalMapKey; + PBFieldOptions_CType ctype; + NSMutableArray* mutableUninterpretedOptionList; +} +- (BOOL) hasCtype; +- (BOOL) hasPacked; +- (BOOL) hasDeprecated; +- (BOOL) hasExperimentalMapKey; +@property (readonly) PBFieldOptions_CType ctype; +- (BOOL) packed; +- (BOOL) deprecated; +@property (readonly, retain) NSString* experimentalMapKey; +- (NSArray*) uninterpretedOptionList; +- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index; + ++ (PBFieldOptions*) defaultInstance; +- (PBFieldOptions*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (PBFieldOptions_Builder*) builder; ++ (PBFieldOptions_Builder*) builder; ++ (PBFieldOptions_Builder*) builderWithPrototype:(PBFieldOptions*) prototype; + ++ (PBFieldOptions*) parseFromData:(NSData*) data; ++ (PBFieldOptions*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (PBFieldOptions*) parseFromInputStream:(NSInputStream*) input; ++ (PBFieldOptions*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (PBFieldOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (PBFieldOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface PBFieldOptions_Builder : PBExtendableMessage_Builder { +@private + PBFieldOptions* result; +} + +- (PBFieldOptions*) defaultInstance; + +- (PBFieldOptions_Builder*) clear; +- (PBFieldOptions_Builder*) clone; + +- (PBFieldOptions*) build; +- (PBFieldOptions*) buildPartial; + +- (PBFieldOptions_Builder*) mergeFrom:(PBFieldOptions*) other; +- (PBFieldOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (PBFieldOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (BOOL) hasCtype; +- (PBFieldOptions_CType) ctype; +- (PBFieldOptions_Builder*) setCtype:(PBFieldOptions_CType) value; +- (PBFieldOptions_Builder*) clearCtype; + +- (BOOL) hasPacked; +- (BOOL) packed; +- (PBFieldOptions_Builder*) setPacked:(BOOL) value; +- (PBFieldOptions_Builder*) clearPacked; + +- (BOOL) hasDeprecated; +- (BOOL) deprecated; +- (PBFieldOptions_Builder*) setDeprecated:(BOOL) value; +- (PBFieldOptions_Builder*) clearDeprecated; + +- (BOOL) hasExperimentalMapKey; +- (NSString*) experimentalMapKey; +- (PBFieldOptions_Builder*) setExperimentalMapKey:(NSString*) value; +- (PBFieldOptions_Builder*) clearExperimentalMapKey; + +- (NSArray*) uninterpretedOptionList; +- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index; +- (PBFieldOptions_Builder*) replaceUninterpretedOptionAtIndex:(int32_t) index with:(PBUninterpretedOption*) value; +- (PBFieldOptions_Builder*) addUninterpretedOption:(PBUninterpretedOption*) value; +- (PBFieldOptions_Builder*) addAllUninterpretedOption:(NSArray*) values; +- (PBFieldOptions_Builder*) clearUninterpretedOptionList; +@end + +@interface PBEnumOptions : PBExtendableMessage { +@private + NSMutableArray* mutableUninterpretedOptionList; +} +- (NSArray*) uninterpretedOptionList; +- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index; + ++ (PBEnumOptions*) defaultInstance; +- (PBEnumOptions*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (PBEnumOptions_Builder*) builder; ++ (PBEnumOptions_Builder*) builder; ++ (PBEnumOptions_Builder*) builderWithPrototype:(PBEnumOptions*) prototype; + ++ (PBEnumOptions*) parseFromData:(NSData*) data; ++ (PBEnumOptions*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (PBEnumOptions*) parseFromInputStream:(NSInputStream*) input; ++ (PBEnumOptions*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (PBEnumOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (PBEnumOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface PBEnumOptions_Builder : PBExtendableMessage_Builder { +@private + PBEnumOptions* result; +} + +- (PBEnumOptions*) defaultInstance; + +- (PBEnumOptions_Builder*) clear; +- (PBEnumOptions_Builder*) clone; + +- (PBEnumOptions*) build; +- (PBEnumOptions*) buildPartial; + +- (PBEnumOptions_Builder*) mergeFrom:(PBEnumOptions*) other; +- (PBEnumOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (PBEnumOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (NSArray*) uninterpretedOptionList; +- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index; +- (PBEnumOptions_Builder*) replaceUninterpretedOptionAtIndex:(int32_t) index with:(PBUninterpretedOption*) value; +- (PBEnumOptions_Builder*) addUninterpretedOption:(PBUninterpretedOption*) value; +- (PBEnumOptions_Builder*) addAllUninterpretedOption:(NSArray*) values; +- (PBEnumOptions_Builder*) clearUninterpretedOptionList; +@end + +@interface PBEnumValueOptions : PBExtendableMessage { +@private + NSMutableArray* mutableUninterpretedOptionList; +} +- (NSArray*) uninterpretedOptionList; +- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index; + ++ (PBEnumValueOptions*) defaultInstance; +- (PBEnumValueOptions*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (PBEnumValueOptions_Builder*) builder; ++ (PBEnumValueOptions_Builder*) builder; ++ (PBEnumValueOptions_Builder*) builderWithPrototype:(PBEnumValueOptions*) prototype; + ++ (PBEnumValueOptions*) parseFromData:(NSData*) data; ++ (PBEnumValueOptions*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (PBEnumValueOptions*) parseFromInputStream:(NSInputStream*) input; ++ (PBEnumValueOptions*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (PBEnumValueOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (PBEnumValueOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface PBEnumValueOptions_Builder : PBExtendableMessage_Builder { +@private + PBEnumValueOptions* result; +} + +- (PBEnumValueOptions*) defaultInstance; + +- (PBEnumValueOptions_Builder*) clear; +- (PBEnumValueOptions_Builder*) clone; + +- (PBEnumValueOptions*) build; +- (PBEnumValueOptions*) buildPartial; + +- (PBEnumValueOptions_Builder*) mergeFrom:(PBEnumValueOptions*) other; +- (PBEnumValueOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (PBEnumValueOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (NSArray*) uninterpretedOptionList; +- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index; +- (PBEnumValueOptions_Builder*) replaceUninterpretedOptionAtIndex:(int32_t) index with:(PBUninterpretedOption*) value; +- (PBEnumValueOptions_Builder*) addUninterpretedOption:(PBUninterpretedOption*) value; +- (PBEnumValueOptions_Builder*) addAllUninterpretedOption:(NSArray*) values; +- (PBEnumValueOptions_Builder*) clearUninterpretedOptionList; +@end + +@interface PBServiceOptions : PBExtendableMessage { +@private + NSMutableArray* mutableUninterpretedOptionList; +} +- (NSArray*) uninterpretedOptionList; +- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index; + ++ (PBServiceOptions*) defaultInstance; +- (PBServiceOptions*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (PBServiceOptions_Builder*) builder; ++ (PBServiceOptions_Builder*) builder; ++ (PBServiceOptions_Builder*) builderWithPrototype:(PBServiceOptions*) prototype; + ++ (PBServiceOptions*) parseFromData:(NSData*) data; ++ (PBServiceOptions*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (PBServiceOptions*) parseFromInputStream:(NSInputStream*) input; ++ (PBServiceOptions*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (PBServiceOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (PBServiceOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface PBServiceOptions_Builder : PBExtendableMessage_Builder { +@private + PBServiceOptions* result; +} + +- (PBServiceOptions*) defaultInstance; + +- (PBServiceOptions_Builder*) clear; +- (PBServiceOptions_Builder*) clone; + +- (PBServiceOptions*) build; +- (PBServiceOptions*) buildPartial; + +- (PBServiceOptions_Builder*) mergeFrom:(PBServiceOptions*) other; +- (PBServiceOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (PBServiceOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (NSArray*) uninterpretedOptionList; +- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index; +- (PBServiceOptions_Builder*) replaceUninterpretedOptionAtIndex:(int32_t) index with:(PBUninterpretedOption*) value; +- (PBServiceOptions_Builder*) addUninterpretedOption:(PBUninterpretedOption*) value; +- (PBServiceOptions_Builder*) addAllUninterpretedOption:(NSArray*) values; +- (PBServiceOptions_Builder*) clearUninterpretedOptionList; +@end + +@interface PBMethodOptions : PBExtendableMessage { +@private + NSMutableArray* mutableUninterpretedOptionList; +} +- (NSArray*) uninterpretedOptionList; +- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index; + ++ (PBMethodOptions*) defaultInstance; +- (PBMethodOptions*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (PBMethodOptions_Builder*) builder; ++ (PBMethodOptions_Builder*) builder; ++ (PBMethodOptions_Builder*) builderWithPrototype:(PBMethodOptions*) prototype; + ++ (PBMethodOptions*) parseFromData:(NSData*) data; ++ (PBMethodOptions*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (PBMethodOptions*) parseFromInputStream:(NSInputStream*) input; ++ (PBMethodOptions*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (PBMethodOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (PBMethodOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface PBMethodOptions_Builder : PBExtendableMessage_Builder { +@private + PBMethodOptions* result; +} + +- (PBMethodOptions*) defaultInstance; + +- (PBMethodOptions_Builder*) clear; +- (PBMethodOptions_Builder*) clone; + +- (PBMethodOptions*) build; +- (PBMethodOptions*) buildPartial; + +- (PBMethodOptions_Builder*) mergeFrom:(PBMethodOptions*) other; +- (PBMethodOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (PBMethodOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (NSArray*) uninterpretedOptionList; +- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index; +- (PBMethodOptions_Builder*) replaceUninterpretedOptionAtIndex:(int32_t) index with:(PBUninterpretedOption*) value; +- (PBMethodOptions_Builder*) addUninterpretedOption:(PBUninterpretedOption*) value; +- (PBMethodOptions_Builder*) addAllUninterpretedOption:(NSArray*) values; +- (PBMethodOptions_Builder*) clearUninterpretedOptionList; +@end + +@interface PBUninterpretedOption : PBGeneratedMessage { +@private + BOOL hasDoubleValue_:1; + BOOL hasNegativeIntValue_:1; + BOOL hasPositiveIntValue_:1; + BOOL hasIdentifierValue_:1; + BOOL hasStringValue_:1; + Float64 doubleValue; + int64_t negativeIntValue; + int64_t positiveIntValue; + NSString* identifierValue; + NSData* stringValue; + NSMutableArray* mutableNameList; +} +- (BOOL) hasIdentifierValue; +- (BOOL) hasPositiveIntValue; +- (BOOL) hasNegativeIntValue; +- (BOOL) hasDoubleValue; +- (BOOL) hasStringValue; +@property (readonly, retain) NSString* identifierValue; +@property (readonly) int64_t positiveIntValue; +@property (readonly) int64_t negativeIntValue; +@property (readonly) Float64 doubleValue; +@property (readonly, retain) NSData* stringValue; +- (NSArray*) nameList; +- (PBUninterpretedOption_NamePart*) nameAtIndex:(int32_t) index; + ++ (PBUninterpretedOption*) defaultInstance; +- (PBUninterpretedOption*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (PBUninterpretedOption_Builder*) builder; ++ (PBUninterpretedOption_Builder*) builder; ++ (PBUninterpretedOption_Builder*) builderWithPrototype:(PBUninterpretedOption*) prototype; + ++ (PBUninterpretedOption*) parseFromData:(NSData*) data; ++ (PBUninterpretedOption*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (PBUninterpretedOption*) parseFromInputStream:(NSInputStream*) input; ++ (PBUninterpretedOption*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (PBUninterpretedOption*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (PBUninterpretedOption*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface PBUninterpretedOption_NamePart : PBGeneratedMessage { +@private + BOOL hasIsExtension_:1; + BOOL hasNamePart_:1; + BOOL isExtension_:1; + NSString* namePart; +} +- (BOOL) hasNamePart; +- (BOOL) hasIsExtension; +@property (readonly, retain) NSString* namePart; +- (BOOL) isExtension; + ++ (PBUninterpretedOption_NamePart*) defaultInstance; +- (PBUninterpretedOption_NamePart*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (PBUninterpretedOption_NamePart_Builder*) builder; ++ (PBUninterpretedOption_NamePart_Builder*) builder; ++ (PBUninterpretedOption_NamePart_Builder*) builderWithPrototype:(PBUninterpretedOption_NamePart*) prototype; + ++ (PBUninterpretedOption_NamePart*) parseFromData:(NSData*) data; ++ (PBUninterpretedOption_NamePart*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (PBUninterpretedOption_NamePart*) parseFromInputStream:(NSInputStream*) input; ++ (PBUninterpretedOption_NamePart*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (PBUninterpretedOption_NamePart*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (PBUninterpretedOption_NamePart*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface PBUninterpretedOption_NamePart_Builder : PBGeneratedMessage_Builder { +@private + PBUninterpretedOption_NamePart* result; +} + +- (PBUninterpretedOption_NamePart*) defaultInstance; + +- (PBUninterpretedOption_NamePart_Builder*) clear; +- (PBUninterpretedOption_NamePart_Builder*) clone; + +- (PBUninterpretedOption_NamePart*) build; +- (PBUninterpretedOption_NamePart*) buildPartial; + +- (PBUninterpretedOption_NamePart_Builder*) mergeFrom:(PBUninterpretedOption_NamePart*) other; +- (PBUninterpretedOption_NamePart_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (PBUninterpretedOption_NamePart_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (BOOL) hasNamePart; +- (NSString*) namePart; +- (PBUninterpretedOption_NamePart_Builder*) setNamePart:(NSString*) value; +- (PBUninterpretedOption_NamePart_Builder*) clearNamePart; + +- (BOOL) hasIsExtension; +- (BOOL) isExtension; +- (PBUninterpretedOption_NamePart_Builder*) setIsExtension:(BOOL) value; +- (PBUninterpretedOption_NamePart_Builder*) clearIsExtension; +@end + +@interface PBUninterpretedOption_Builder : PBGeneratedMessage_Builder { +@private + PBUninterpretedOption* result; +} + +- (PBUninterpretedOption*) defaultInstance; + +- (PBUninterpretedOption_Builder*) clear; +- (PBUninterpretedOption_Builder*) clone; + +- (PBUninterpretedOption*) build; +- (PBUninterpretedOption*) buildPartial; + +- (PBUninterpretedOption_Builder*) mergeFrom:(PBUninterpretedOption*) other; +- (PBUninterpretedOption_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (PBUninterpretedOption_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (NSArray*) nameList; +- (PBUninterpretedOption_NamePart*) nameAtIndex:(int32_t) index; +- (PBUninterpretedOption_Builder*) replaceNameAtIndex:(int32_t) index with:(PBUninterpretedOption_NamePart*) value; +- (PBUninterpretedOption_Builder*) addName:(PBUninterpretedOption_NamePart*) value; +- (PBUninterpretedOption_Builder*) addAllName:(NSArray*) values; +- (PBUninterpretedOption_Builder*) clearNameList; + +- (BOOL) hasIdentifierValue; +- (NSString*) identifierValue; +- (PBUninterpretedOption_Builder*) setIdentifierValue:(NSString*) value; +- (PBUninterpretedOption_Builder*) clearIdentifierValue; + +- (BOOL) hasPositiveIntValue; +- (int64_t) positiveIntValue; +- (PBUninterpretedOption_Builder*) setPositiveIntValue:(int64_t) value; +- (PBUninterpretedOption_Builder*) clearPositiveIntValue; + +- (BOOL) hasNegativeIntValue; +- (int64_t) negativeIntValue; +- (PBUninterpretedOption_Builder*) setNegativeIntValue:(int64_t) value; +- (PBUninterpretedOption_Builder*) clearNegativeIntValue; + +- (BOOL) hasDoubleValue; +- (Float64) doubleValue; +- (PBUninterpretedOption_Builder*) setDoubleValue:(Float64) value; +- (PBUninterpretedOption_Builder*) clearDoubleValue; + +- (BOOL) hasStringValue; +- (NSData*) stringValue; +- (PBUninterpretedOption_Builder*) setStringValue:(NSData*) value; +- (PBUninterpretedOption_Builder*) clearStringValue; +@end + diff --git a/proto/Descriptor.pb.m b/proto/Descriptor.pb.m new file mode 100644 index 0000000..6a6835e --- /dev/null +++ b/proto/Descriptor.pb.m @@ -0,0 +1,5815 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! + +#include "ProtocolBuffers.h" +#import "Descriptor.pb.h" + +@implementation PBDescriptorRoot +static PBExtensionRegistry* extensionRegistry = nil; ++ (PBExtensionRegistry*) extensionRegistry { + return extensionRegistry; +} + ++ (void) initialize { + if (self == [PBDescriptorRoot class]) { + PBMutableExtensionRegistry* registry = [PBMutableExtensionRegistry registry]; + [self registerAllExtensions:registry]; + extensionRegistry = [registry retain]; + } +} ++ (void) registerAllExtensions:(PBMutableExtensionRegistry*) registry { +} +@end + +@interface PBFileDescriptorSet () +@property (retain) NSMutableArray* mutableFileList; +@end + +@implementation PBFileDescriptorSet + +@synthesize mutableFileList; +- (void) dealloc { + self.mutableFileList = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + } + return self; +} +static PBFileDescriptorSet* defaultPBFileDescriptorSetInstance = nil; ++ (void) initialize { + if (self == [PBFileDescriptorSet class]) { + defaultPBFileDescriptorSetInstance = [[PBFileDescriptorSet alloc] init]; + } +} ++ (PBFileDescriptorSet*) defaultInstance { + return defaultPBFileDescriptorSetInstance; +} +- (PBFileDescriptorSet*) defaultInstance { + return defaultPBFileDescriptorSetInstance; +} +- (NSArray*) fileList { + return mutableFileList; +} +- (PBFileDescriptorProto*) fileAtIndex:(int32_t) index { + id value = [mutableFileList objectAtIndex:index]; + return value; +} +- (BOOL) isInitialized { + for (PBFileDescriptorProto* element in self.fileList) { + if (!element.isInitialized) { + return NO; + } + } + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + for (PBFileDescriptorProto* element in self.fileList) { + [output writeMessage:1 value:element]; + } + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + for (PBFileDescriptorProto* element in self.fileList) { + size += computeMessageSize(1, element); + } + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (PBFileDescriptorSet*) parseFromData:(NSData*) data { + return (PBFileDescriptorSet*)[[[PBFileDescriptorSet builder] mergeFromData:data] build]; +} ++ (PBFileDescriptorSet*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBFileDescriptorSet*)[[[PBFileDescriptorSet builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (PBFileDescriptorSet*) parseFromInputStream:(NSInputStream*) input { + return (PBFileDescriptorSet*)[[[PBFileDescriptorSet builder] mergeFromInputStream:input] build]; +} ++ (PBFileDescriptorSet*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBFileDescriptorSet*)[[[PBFileDescriptorSet builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (PBFileDescriptorSet*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (PBFileDescriptorSet*)[[[PBFileDescriptorSet builder] mergeFromCodedInputStream:input] build]; +} ++ (PBFileDescriptorSet*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBFileDescriptorSet*)[[[PBFileDescriptorSet builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (PBFileDescriptorSet_Builder*) builder { + return [[[PBFileDescriptorSet_Builder alloc] init] autorelease]; +} ++ (PBFileDescriptorSet_Builder*) builderWithPrototype:(PBFileDescriptorSet*) prototype { + return [[PBFileDescriptorSet builder] mergeFrom:prototype]; +} +- (PBFileDescriptorSet_Builder*) builder { + return [PBFileDescriptorSet builder]; +} +@end + +@interface PBFileDescriptorSet_Builder() +@property (retain) PBFileDescriptorSet* result; +@end + +@implementation PBFileDescriptorSet_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[PBFileDescriptorSet alloc] init] autorelease]; + } + return self; +} +- (PBGeneratedMessage*) internalGetResult { + return result; +} +- (PBFileDescriptorSet_Builder*) clear { + self.result = [[[PBFileDescriptorSet alloc] init] autorelease]; + return self; +} +- (PBFileDescriptorSet_Builder*) clone { + return [PBFileDescriptorSet builderWithPrototype:result]; +} +- (PBFileDescriptorSet*) defaultInstance { + return [PBFileDescriptorSet defaultInstance]; +} +- (PBFileDescriptorSet*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (PBFileDescriptorSet*) buildPartial { + PBFileDescriptorSet* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (PBFileDescriptorSet_Builder*) mergeFrom:(PBFileDescriptorSet*) other { + if (other == [PBFileDescriptorSet defaultInstance]) { + return self; + } + if (other.mutableFileList.count > 0) { + if (result.mutableFileList == nil) { + result.mutableFileList = [NSMutableArray array]; + } + [result.mutableFileList addObjectsFromArray:other.mutableFileList]; + } + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (PBFileDescriptorSet_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (PBFileDescriptorSet_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 10: { + PBFileDescriptorProto_Builder* subBuilder = [PBFileDescriptorProto builder]; + [input readMessage:subBuilder extensionRegistry:extensionRegistry]; + [self addFile:[subBuilder buildPartial]]; + break; + } + } + } +} +- (NSArray*) fileList { + if (result.mutableFileList == nil) { return [NSArray array]; } + return result.mutableFileList; +} +- (PBFileDescriptorProto*) fileAtIndex:(int32_t) index { + return [result fileAtIndex:index]; +} +- (PBFileDescriptorSet_Builder*) replaceFileAtIndex:(int32_t) index with:(PBFileDescriptorProto*) value { + [result.mutableFileList replaceObjectAtIndex:index withObject:value]; + return self; +} +- (PBFileDescriptorSet_Builder*) addAllFile:(NSArray*) values { + if (result.mutableFileList == nil) { + result.mutableFileList = [NSMutableArray array]; + } + [result.mutableFileList addObjectsFromArray:values]; + return self; +} +- (PBFileDescriptorSet_Builder*) clearFileList { + result.mutableFileList = nil; + return self; +} +- (PBFileDescriptorSet_Builder*) addFile:(PBFileDescriptorProto*) value { + if (result.mutableFileList == nil) { + result.mutableFileList = [NSMutableArray array]; + } + [result.mutableFileList addObject:value]; + return self; +} +@end + +@interface PBFileDescriptorProto () +@property (retain) NSString* name; +@property (retain) NSString* package; +@property (retain) NSMutableArray* mutableDependencyList; +@property (retain) NSMutableArray* mutableMessageTypeList; +@property (retain) NSMutableArray* mutableEnumTypeList; +@property (retain) NSMutableArray* mutableServiceList; +@property (retain) NSMutableArray* mutableExtensionList; +@property (retain) PBFileOptions* options; +@end + +@implementation PBFileDescriptorProto + +- (BOOL) hasName { + return !!hasName_; +} +- (void) setHasName:(BOOL) value { + hasName_ = !!value; +} +@synthesize name; +- (BOOL) hasPackage { + return !!hasPackage_; +} +- (void) setHasPackage:(BOOL) value { + hasPackage_ = !!value; +} +@synthesize package; +@synthesize mutableDependencyList; +@synthesize mutableMessageTypeList; +@synthesize mutableEnumTypeList; +@synthesize mutableServiceList; +@synthesize mutableExtensionList; +- (BOOL) hasOptions { + return !!hasOptions_; +} +- (void) setHasOptions:(BOOL) value { + hasOptions_ = !!value; +} +@synthesize options; +- (void) dealloc { + self.name = nil; + self.package = nil; + self.mutableDependencyList = nil; + self.mutableMessageTypeList = nil; + self.mutableEnumTypeList = nil; + self.mutableServiceList = nil; + self.mutableExtensionList = nil; + self.options = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.name = @""; + self.package = @""; + self.options = [PBFileOptions defaultInstance]; + } + return self; +} +static PBFileDescriptorProto* defaultPBFileDescriptorProtoInstance = nil; ++ (void) initialize { + if (self == [PBFileDescriptorProto class]) { + defaultPBFileDescriptorProtoInstance = [[PBFileDescriptorProto alloc] init]; + } +} ++ (PBFileDescriptorProto*) defaultInstance { + return defaultPBFileDescriptorProtoInstance; +} +- (PBFileDescriptorProto*) defaultInstance { + return defaultPBFileDescriptorProtoInstance; +} +- (NSArray*) dependencyList { + return mutableDependencyList; +} +- (NSString*) dependencyAtIndex:(int32_t) index { + id value = [mutableDependencyList objectAtIndex:index]; + return value; +} +- (NSArray*) messageTypeList { + return mutableMessageTypeList; +} +- (PBDescriptorProto*) messageTypeAtIndex:(int32_t) index { + id value = [mutableMessageTypeList objectAtIndex:index]; + return value; +} +- (NSArray*) enumTypeList { + return mutableEnumTypeList; +} +- (PBEnumDescriptorProto*) enumTypeAtIndex:(int32_t) index { + id value = [mutableEnumTypeList objectAtIndex:index]; + return value; +} +- (NSArray*) serviceList { + return mutableServiceList; +} +- (PBServiceDescriptorProto*) serviceAtIndex:(int32_t) index { + id value = [mutableServiceList objectAtIndex:index]; + return value; +} +- (NSArray*) extensionList { + return mutableExtensionList; +} +- (PBFieldDescriptorProto*) extensionAtIndex:(int32_t) index { + id value = [mutableExtensionList objectAtIndex:index]; + return value; +} +- (BOOL) isInitialized { + for (PBDescriptorProto* element in self.messageTypeList) { + if (!element.isInitialized) { + return NO; + } + } + for (PBEnumDescriptorProto* element in self.enumTypeList) { + if (!element.isInitialized) { + return NO; + } + } + for (PBServiceDescriptorProto* element in self.serviceList) { + if (!element.isInitialized) { + return NO; + } + } + for (PBFieldDescriptorProto* element in self.extensionList) { + if (!element.isInitialized) { + return NO; + } + } + if (self.hasOptions) { + if (!self.options.isInitialized) { + return NO; + } + } + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + if (self.hasName) { + [output writeString:1 value:self.name]; + } + if (self.hasPackage) { + [output writeString:2 value:self.package]; + } + for (NSString* element in self.mutableDependencyList) { + [output writeString:3 value:element]; + } + for (PBDescriptorProto* element in self.messageTypeList) { + [output writeMessage:4 value:element]; + } + for (PBEnumDescriptorProto* element in self.enumTypeList) { + [output writeMessage:5 value:element]; + } + for (PBServiceDescriptorProto* element in self.serviceList) { + [output writeMessage:6 value:element]; + } + for (PBFieldDescriptorProto* element in self.extensionList) { + [output writeMessage:7 value:element]; + } + if (self.hasOptions) { + [output writeMessage:8 value:self.options]; + } + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + if (self.hasName) { + size += computeStringSize(1, self.name); + } + if (self.hasPackage) { + size += computeStringSize(2, self.package); + } + { + int32_t dataSize = 0; + for (NSString* element in self.mutableDependencyList) { + dataSize += computeStringSizeNoTag(element); + } + size += dataSize; + size += 1 * self.mutableDependencyList.count; + } + for (PBDescriptorProto* element in self.messageTypeList) { + size += computeMessageSize(4, element); + } + for (PBEnumDescriptorProto* element in self.enumTypeList) { + size += computeMessageSize(5, element); + } + for (PBServiceDescriptorProto* element in self.serviceList) { + size += computeMessageSize(6, element); + } + for (PBFieldDescriptorProto* element in self.extensionList) { + size += computeMessageSize(7, element); + } + if (self.hasOptions) { + size += computeMessageSize(8, self.options); + } + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (PBFileDescriptorProto*) parseFromData:(NSData*) data { + return (PBFileDescriptorProto*)[[[PBFileDescriptorProto builder] mergeFromData:data] build]; +} ++ (PBFileDescriptorProto*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBFileDescriptorProto*)[[[PBFileDescriptorProto builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (PBFileDescriptorProto*) parseFromInputStream:(NSInputStream*) input { + return (PBFileDescriptorProto*)[[[PBFileDescriptorProto builder] mergeFromInputStream:input] build]; +} ++ (PBFileDescriptorProto*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBFileDescriptorProto*)[[[PBFileDescriptorProto builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (PBFileDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (PBFileDescriptorProto*)[[[PBFileDescriptorProto builder] mergeFromCodedInputStream:input] build]; +} ++ (PBFileDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBFileDescriptorProto*)[[[PBFileDescriptorProto builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (PBFileDescriptorProto_Builder*) builder { + return [[[PBFileDescriptorProto_Builder alloc] init] autorelease]; +} ++ (PBFileDescriptorProto_Builder*) builderWithPrototype:(PBFileDescriptorProto*) prototype { + return [[PBFileDescriptorProto builder] mergeFrom:prototype]; +} +- (PBFileDescriptorProto_Builder*) builder { + return [PBFileDescriptorProto builder]; +} +@end + +@interface PBFileDescriptorProto_Builder() +@property (retain) PBFileDescriptorProto* result; +@end + +@implementation PBFileDescriptorProto_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[PBFileDescriptorProto alloc] init] autorelease]; + } + return self; +} +- (PBGeneratedMessage*) internalGetResult { + return result; +} +- (PBFileDescriptorProto_Builder*) clear { + self.result = [[[PBFileDescriptorProto alloc] init] autorelease]; + return self; +} +- (PBFileDescriptorProto_Builder*) clone { + return [PBFileDescriptorProto builderWithPrototype:result]; +} +- (PBFileDescriptorProto*) defaultInstance { + return [PBFileDescriptorProto defaultInstance]; +} +- (PBFileDescriptorProto*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (PBFileDescriptorProto*) buildPartial { + PBFileDescriptorProto* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (PBFileDescriptorProto_Builder*) mergeFrom:(PBFileDescriptorProto*) other { + if (other == [PBFileDescriptorProto defaultInstance]) { + return self; + } + if (other.hasName) { + [self setName:other.name]; + } + if (other.hasPackage) { + [self setPackage:other.package]; + } + if (other.mutableDependencyList.count > 0) { + if (result.mutableDependencyList == nil) { + result.mutableDependencyList = [NSMutableArray array]; + } + [result.mutableDependencyList addObjectsFromArray:other.mutableDependencyList]; + } + if (other.mutableMessageTypeList.count > 0) { + if (result.mutableMessageTypeList == nil) { + result.mutableMessageTypeList = [NSMutableArray array]; + } + [result.mutableMessageTypeList addObjectsFromArray:other.mutableMessageTypeList]; + } + if (other.mutableEnumTypeList.count > 0) { + if (result.mutableEnumTypeList == nil) { + result.mutableEnumTypeList = [NSMutableArray array]; + } + [result.mutableEnumTypeList addObjectsFromArray:other.mutableEnumTypeList]; + } + if (other.mutableServiceList.count > 0) { + if (result.mutableServiceList == nil) { + result.mutableServiceList = [NSMutableArray array]; + } + [result.mutableServiceList addObjectsFromArray:other.mutableServiceList]; + } + if (other.mutableExtensionList.count > 0) { + if (result.mutableExtensionList == nil) { + result.mutableExtensionList = [NSMutableArray array]; + } + [result.mutableExtensionList addObjectsFromArray:other.mutableExtensionList]; + } + if (other.hasOptions) { + [self mergeOptions:other.options]; + } + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (PBFileDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (PBFileDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 10: { + [self setName:[input readString]]; + break; + } + case 18: { + [self setPackage:[input readString]]; + break; + } + case 26: { + [self addDependency:[input readString]]; + break; + } + case 34: { + PBDescriptorProto_Builder* subBuilder = [PBDescriptorProto builder]; + [input readMessage:subBuilder extensionRegistry:extensionRegistry]; + [self addMessageType:[subBuilder buildPartial]]; + break; + } + case 42: { + PBEnumDescriptorProto_Builder* subBuilder = [PBEnumDescriptorProto builder]; + [input readMessage:subBuilder extensionRegistry:extensionRegistry]; + [self addEnumType:[subBuilder buildPartial]]; + break; + } + case 50: { + PBServiceDescriptorProto_Builder* subBuilder = [PBServiceDescriptorProto builder]; + [input readMessage:subBuilder extensionRegistry:extensionRegistry]; + [self addService:[subBuilder buildPartial]]; + break; + } + case 58: { + PBFieldDescriptorProto_Builder* subBuilder = [PBFieldDescriptorProto builder]; + [input readMessage:subBuilder extensionRegistry:extensionRegistry]; + [self addExtension:[subBuilder buildPartial]]; + break; + } + case 66: { + PBFileOptions_Builder* subBuilder = [PBFileOptions builder]; + if (self.hasOptions) { + [subBuilder mergeFrom:self.options]; + } + [input readMessage:subBuilder extensionRegistry:extensionRegistry]; + [self setOptions:[subBuilder buildPartial]]; + break; + } + } + } +} +- (BOOL) hasName { + return result.hasName; +} +- (NSString*) name { + return result.name; +} +- (PBFileDescriptorProto_Builder*) setName:(NSString*) value { + result.hasName = YES; + result.name = value; + return self; +} +- (PBFileDescriptorProto_Builder*) clearName { + result.hasName = NO; + result.name = @""; + return self; +} +- (BOOL) hasPackage { + return result.hasPackage; +} +- (NSString*) package { + return result.package; +} +- (PBFileDescriptorProto_Builder*) setPackage:(NSString*) value { + result.hasPackage = YES; + result.package = value; + return self; +} +- (PBFileDescriptorProto_Builder*) clearPackage { + result.hasPackage = NO; + result.package = @""; + return self; +} +- (NSArray*) dependencyList { + if (result.mutableDependencyList == nil) { + return [NSArray array]; + } + return result.mutableDependencyList; +} +- (NSString*) dependencyAtIndex:(int32_t) index { + return [result dependencyAtIndex:index]; +} +- (PBFileDescriptorProto_Builder*) replaceDependencyAtIndex:(int32_t) index with:(NSString*) value { + [result.mutableDependencyList replaceObjectAtIndex:index withObject:value]; + return self; +} +- (PBFileDescriptorProto_Builder*) addDependency:(NSString*) value { + if (result.mutableDependencyList == nil) { + result.mutableDependencyList = [NSMutableArray array]; + } + [result.mutableDependencyList addObject:value]; + return self; +} +- (PBFileDescriptorProto_Builder*) addAllDependency:(NSArray*) values { + if (result.mutableDependencyList == nil) { + result.mutableDependencyList = [NSMutableArray array]; + } + [result.mutableDependencyList addObjectsFromArray:values]; + return self; +} +- (PBFileDescriptorProto_Builder*) clearDependencyList { + result.mutableDependencyList = nil; + return self; +} +- (NSArray*) messageTypeList { + if (result.mutableMessageTypeList == nil) { return [NSArray array]; } + return result.mutableMessageTypeList; +} +- (PBDescriptorProto*) messageTypeAtIndex:(int32_t) index { + return [result messageTypeAtIndex:index]; +} +- (PBFileDescriptorProto_Builder*) replaceMessageTypeAtIndex:(int32_t) index with:(PBDescriptorProto*) value { + [result.mutableMessageTypeList replaceObjectAtIndex:index withObject:value]; + return self; +} +- (PBFileDescriptorProto_Builder*) addAllMessageType:(NSArray*) values { + if (result.mutableMessageTypeList == nil) { + result.mutableMessageTypeList = [NSMutableArray array]; + } + [result.mutableMessageTypeList addObjectsFromArray:values]; + return self; +} +- (PBFileDescriptorProto_Builder*) clearMessageTypeList { + result.mutableMessageTypeList = nil; + return self; +} +- (PBFileDescriptorProto_Builder*) addMessageType:(PBDescriptorProto*) value { + if (result.mutableMessageTypeList == nil) { + result.mutableMessageTypeList = [NSMutableArray array]; + } + [result.mutableMessageTypeList addObject:value]; + return self; +} +- (NSArray*) enumTypeList { + if (result.mutableEnumTypeList == nil) { return [NSArray array]; } + return result.mutableEnumTypeList; +} +- (PBEnumDescriptorProto*) enumTypeAtIndex:(int32_t) index { + return [result enumTypeAtIndex:index]; +} +- (PBFileDescriptorProto_Builder*) replaceEnumTypeAtIndex:(int32_t) index with:(PBEnumDescriptorProto*) value { + [result.mutableEnumTypeList replaceObjectAtIndex:index withObject:value]; + return self; +} +- (PBFileDescriptorProto_Builder*) addAllEnumType:(NSArray*) values { + if (result.mutableEnumTypeList == nil) { + result.mutableEnumTypeList = [NSMutableArray array]; + } + [result.mutableEnumTypeList addObjectsFromArray:values]; + return self; +} +- (PBFileDescriptorProto_Builder*) clearEnumTypeList { + result.mutableEnumTypeList = nil; + return self; +} +- (PBFileDescriptorProto_Builder*) addEnumType:(PBEnumDescriptorProto*) value { + if (result.mutableEnumTypeList == nil) { + result.mutableEnumTypeList = [NSMutableArray array]; + } + [result.mutableEnumTypeList addObject:value]; + return self; +} +- (NSArray*) serviceList { + if (result.mutableServiceList == nil) { return [NSArray array]; } + return result.mutableServiceList; +} +- (PBServiceDescriptorProto*) serviceAtIndex:(int32_t) index { + return [result serviceAtIndex:index]; +} +- (PBFileDescriptorProto_Builder*) replaceServiceAtIndex:(int32_t) index with:(PBServiceDescriptorProto*) value { + [result.mutableServiceList replaceObjectAtIndex:index withObject:value]; + return self; +} +- (PBFileDescriptorProto_Builder*) addAllService:(NSArray*) values { + if (result.mutableServiceList == nil) { + result.mutableServiceList = [NSMutableArray array]; + } + [result.mutableServiceList addObjectsFromArray:values]; + return self; +} +- (PBFileDescriptorProto_Builder*) clearServiceList { + result.mutableServiceList = nil; + return self; +} +- (PBFileDescriptorProto_Builder*) addService:(PBServiceDescriptorProto*) value { + if (result.mutableServiceList == nil) { + result.mutableServiceList = [NSMutableArray array]; + } + [result.mutableServiceList addObject:value]; + return self; +} +- (NSArray*) extensionList { + if (result.mutableExtensionList == nil) { return [NSArray array]; } + return result.mutableExtensionList; +} +- (PBFieldDescriptorProto*) extensionAtIndex:(int32_t) index { + return [result extensionAtIndex:index]; +} +- (PBFileDescriptorProto_Builder*) replaceExtensionAtIndex:(int32_t) index with:(PBFieldDescriptorProto*) value { + [result.mutableExtensionList replaceObjectAtIndex:index withObject:value]; + return self; +} +- (PBFileDescriptorProto_Builder*) addAllExtension:(NSArray*) values { + if (result.mutableExtensionList == nil) { + result.mutableExtensionList = [NSMutableArray array]; + } + [result.mutableExtensionList addObjectsFromArray:values]; + return self; +} +- (PBFileDescriptorProto_Builder*) clearExtensionList { + result.mutableExtensionList = nil; + return self; +} +- (PBFileDescriptorProto_Builder*) addExtension:(PBFieldDescriptorProto*) value { + if (result.mutableExtensionList == nil) { + result.mutableExtensionList = [NSMutableArray array]; + } + [result.mutableExtensionList addObject:value]; + return self; +} +- (BOOL) hasOptions { + return result.hasOptions; +} +- (PBFileOptions*) options { + return result.options; +} +- (PBFileDescriptorProto_Builder*) setOptions:(PBFileOptions*) value { + result.hasOptions = YES; + result.options = value; + return self; +} +- (PBFileDescriptorProto_Builder*) setOptionsBuilder:(PBFileOptions_Builder*) builderForValue { + return [self setOptions:[builderForValue build]]; +} +- (PBFileDescriptorProto_Builder*) mergeOptions:(PBFileOptions*) value { + if (result.hasOptions && + result.options != [PBFileOptions defaultInstance]) { + result.options = + [[[PBFileOptions builderWithPrototype:result.options] mergeFrom:value] buildPartial]; + } else { + result.options = value; + } + result.hasOptions = YES; + return self; +} +- (PBFileDescriptorProto_Builder*) clearOptions { + result.hasOptions = NO; + result.options = [PBFileOptions defaultInstance]; + return self; +} +@end + +@interface PBDescriptorProto () +@property (retain) NSString* name; +@property (retain) NSMutableArray* mutableFieldList; +@property (retain) NSMutableArray* mutableExtensionList; +@property (retain) NSMutableArray* mutableNestedTypeList; +@property (retain) NSMutableArray* mutableEnumTypeList; +@property (retain) NSMutableArray* mutableExtensionRangeList; +@property (retain) PBMessageOptions* options; +@end + +@implementation PBDescriptorProto + +- (BOOL) hasName { + return !!hasName_; +} +- (void) setHasName:(BOOL) value { + hasName_ = !!value; +} +@synthesize name; +@synthesize mutableFieldList; +@synthesize mutableExtensionList; +@synthesize mutableNestedTypeList; +@synthesize mutableEnumTypeList; +@synthesize mutableExtensionRangeList; +- (BOOL) hasOptions { + return !!hasOptions_; +} +- (void) setHasOptions:(BOOL) value { + hasOptions_ = !!value; +} +@synthesize options; +- (void) dealloc { + self.name = nil; + self.mutableFieldList = nil; + self.mutableExtensionList = nil; + self.mutableNestedTypeList = nil; + self.mutableEnumTypeList = nil; + self.mutableExtensionRangeList = nil; + self.options = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.name = @""; + self.options = [PBMessageOptions defaultInstance]; + } + return self; +} +static PBDescriptorProto* defaultPBDescriptorProtoInstance = nil; ++ (void) initialize { + if (self == [PBDescriptorProto class]) { + defaultPBDescriptorProtoInstance = [[PBDescriptorProto alloc] init]; + } +} ++ (PBDescriptorProto*) defaultInstance { + return defaultPBDescriptorProtoInstance; +} +- (PBDescriptorProto*) defaultInstance { + return defaultPBDescriptorProtoInstance; +} +- (NSArray*) fieldList { + return mutableFieldList; +} +- (PBFieldDescriptorProto*) fieldAtIndex:(int32_t) index { + id value = [mutableFieldList objectAtIndex:index]; + return value; +} +- (NSArray*) extensionList { + return mutableExtensionList; +} +- (PBFieldDescriptorProto*) extensionAtIndex:(int32_t) index { + id value = [mutableExtensionList objectAtIndex:index]; + return value; +} +- (NSArray*) nestedTypeList { + return mutableNestedTypeList; +} +- (PBDescriptorProto*) nestedTypeAtIndex:(int32_t) index { + id value = [mutableNestedTypeList objectAtIndex:index]; + return value; +} +- (NSArray*) enumTypeList { + return mutableEnumTypeList; +} +- (PBEnumDescriptorProto*) enumTypeAtIndex:(int32_t) index { + id value = [mutableEnumTypeList objectAtIndex:index]; + return value; +} +- (NSArray*) extensionRangeList { + return mutableExtensionRangeList; +} +- (PBDescriptorProto_ExtensionRange*) extensionRangeAtIndex:(int32_t) index { + id value = [mutableExtensionRangeList objectAtIndex:index]; + return value; +} +- (BOOL) isInitialized { + for (PBFieldDescriptorProto* element in self.fieldList) { + if (!element.isInitialized) { + return NO; + } + } + for (PBFieldDescriptorProto* element in self.extensionList) { + if (!element.isInitialized) { + return NO; + } + } + for (PBDescriptorProto* element in self.nestedTypeList) { + if (!element.isInitialized) { + return NO; + } + } + for (PBEnumDescriptorProto* element in self.enumTypeList) { + if (!element.isInitialized) { + return NO; + } + } + if (self.hasOptions) { + if (!self.options.isInitialized) { + return NO; + } + } + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + if (self.hasName) { + [output writeString:1 value:self.name]; + } + for (PBFieldDescriptorProto* element in self.fieldList) { + [output writeMessage:2 value:element]; + } + for (PBDescriptorProto* element in self.nestedTypeList) { + [output writeMessage:3 value:element]; + } + for (PBEnumDescriptorProto* element in self.enumTypeList) { + [output writeMessage:4 value:element]; + } + for (PBDescriptorProto_ExtensionRange* element in self.extensionRangeList) { + [output writeMessage:5 value:element]; + } + for (PBFieldDescriptorProto* element in self.extensionList) { + [output writeMessage:6 value:element]; + } + if (self.hasOptions) { + [output writeMessage:7 value:self.options]; + } + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + if (self.hasName) { + size += computeStringSize(1, self.name); + } + for (PBFieldDescriptorProto* element in self.fieldList) { + size += computeMessageSize(2, element); + } + for (PBDescriptorProto* element in self.nestedTypeList) { + size += computeMessageSize(3, element); + } + for (PBEnumDescriptorProto* element in self.enumTypeList) { + size += computeMessageSize(4, element); + } + for (PBDescriptorProto_ExtensionRange* element in self.extensionRangeList) { + size += computeMessageSize(5, element); + } + for (PBFieldDescriptorProto* element in self.extensionList) { + size += computeMessageSize(6, element); + } + if (self.hasOptions) { + size += computeMessageSize(7, self.options); + } + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (PBDescriptorProto*) parseFromData:(NSData*) data { + return (PBDescriptorProto*)[[[PBDescriptorProto builder] mergeFromData:data] build]; +} ++ (PBDescriptorProto*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBDescriptorProto*)[[[PBDescriptorProto builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (PBDescriptorProto*) parseFromInputStream:(NSInputStream*) input { + return (PBDescriptorProto*)[[[PBDescriptorProto builder] mergeFromInputStream:input] build]; +} ++ (PBDescriptorProto*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBDescriptorProto*)[[[PBDescriptorProto builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (PBDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (PBDescriptorProto*)[[[PBDescriptorProto builder] mergeFromCodedInputStream:input] build]; +} ++ (PBDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBDescriptorProto*)[[[PBDescriptorProto builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (PBDescriptorProto_Builder*) builder { + return [[[PBDescriptorProto_Builder alloc] init] autorelease]; +} ++ (PBDescriptorProto_Builder*) builderWithPrototype:(PBDescriptorProto*) prototype { + return [[PBDescriptorProto builder] mergeFrom:prototype]; +} +- (PBDescriptorProto_Builder*) builder { + return [PBDescriptorProto builder]; +} +@end + +@interface PBDescriptorProto_ExtensionRange () +@property int32_t start; +@property int32_t end; +@end + +@implementation PBDescriptorProto_ExtensionRange + +- (BOOL) hasStart { + return !!hasStart_; +} +- (void) setHasStart:(BOOL) value { + hasStart_ = !!value; +} +@synthesize start; +- (BOOL) hasEnd { + return !!hasEnd_; +} +- (void) setHasEnd:(BOOL) value { + hasEnd_ = !!value; +} +@synthesize end; +- (void) dealloc { + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.start = 0; + self.end = 0; + } + return self; +} +static PBDescriptorProto_ExtensionRange* defaultPBDescriptorProto_ExtensionRangeInstance = nil; ++ (void) initialize { + if (self == [PBDescriptorProto_ExtensionRange class]) { + defaultPBDescriptorProto_ExtensionRangeInstance = [[PBDescriptorProto_ExtensionRange alloc] init]; + } +} ++ (PBDescriptorProto_ExtensionRange*) defaultInstance { + return defaultPBDescriptorProto_ExtensionRangeInstance; +} +- (PBDescriptorProto_ExtensionRange*) defaultInstance { + return defaultPBDescriptorProto_ExtensionRangeInstance; +} +- (BOOL) isInitialized { + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + if (self.hasStart) { + [output writeInt32:1 value:self.start]; + } + if (self.hasEnd) { + [output writeInt32:2 value:self.end]; + } + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + if (self.hasStart) { + size += computeInt32Size(1, self.start); + } + if (self.hasEnd) { + size += computeInt32Size(2, self.end); + } + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (PBDescriptorProto_ExtensionRange*) parseFromData:(NSData*) data { + return (PBDescriptorProto_ExtensionRange*)[[[PBDescriptorProto_ExtensionRange builder] mergeFromData:data] build]; +} ++ (PBDescriptorProto_ExtensionRange*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBDescriptorProto_ExtensionRange*)[[[PBDescriptorProto_ExtensionRange builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (PBDescriptorProto_ExtensionRange*) parseFromInputStream:(NSInputStream*) input { + return (PBDescriptorProto_ExtensionRange*)[[[PBDescriptorProto_ExtensionRange builder] mergeFromInputStream:input] build]; +} ++ (PBDescriptorProto_ExtensionRange*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBDescriptorProto_ExtensionRange*)[[[PBDescriptorProto_ExtensionRange builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (PBDescriptorProto_ExtensionRange*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (PBDescriptorProto_ExtensionRange*)[[[PBDescriptorProto_ExtensionRange builder] mergeFromCodedInputStream:input] build]; +} ++ (PBDescriptorProto_ExtensionRange*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBDescriptorProto_ExtensionRange*)[[[PBDescriptorProto_ExtensionRange builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (PBDescriptorProto_ExtensionRange_Builder*) builder { + return [[[PBDescriptorProto_ExtensionRange_Builder alloc] init] autorelease]; +} ++ (PBDescriptorProto_ExtensionRange_Builder*) builderWithPrototype:(PBDescriptorProto_ExtensionRange*) prototype { + return [[PBDescriptorProto_ExtensionRange builder] mergeFrom:prototype]; +} +- (PBDescriptorProto_ExtensionRange_Builder*) builder { + return [PBDescriptorProto_ExtensionRange builder]; +} +@end + +@interface PBDescriptorProto_ExtensionRange_Builder() +@property (retain) PBDescriptorProto_ExtensionRange* result; +@end + +@implementation PBDescriptorProto_ExtensionRange_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[PBDescriptorProto_ExtensionRange alloc] init] autorelease]; + } + return self; +} +- (PBGeneratedMessage*) internalGetResult { + return result; +} +- (PBDescriptorProto_ExtensionRange_Builder*) clear { + self.result = [[[PBDescriptorProto_ExtensionRange alloc] init] autorelease]; + return self; +} +- (PBDescriptorProto_ExtensionRange_Builder*) clone { + return [PBDescriptorProto_ExtensionRange builderWithPrototype:result]; +} +- (PBDescriptorProto_ExtensionRange*) defaultInstance { + return [PBDescriptorProto_ExtensionRange defaultInstance]; +} +- (PBDescriptorProto_ExtensionRange*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (PBDescriptorProto_ExtensionRange*) buildPartial { + PBDescriptorProto_ExtensionRange* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (PBDescriptorProto_ExtensionRange_Builder*) mergeFrom:(PBDescriptorProto_ExtensionRange*) other { + if (other == [PBDescriptorProto_ExtensionRange defaultInstance]) { + return self; + } + if (other.hasStart) { + [self setStart:other.start]; + } + if (other.hasEnd) { + [self setEnd:other.end]; + } + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (PBDescriptorProto_ExtensionRange_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (PBDescriptorProto_ExtensionRange_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 8: { + [self setStart:[input readInt32]]; + break; + } + case 16: { + [self setEnd:[input readInt32]]; + break; + } + } + } +} +- (BOOL) hasStart { + return result.hasStart; +} +- (int32_t) start { + return result.start; +} +- (PBDescriptorProto_ExtensionRange_Builder*) setStart:(int32_t) value { + result.hasStart = YES; + result.start = value; + return self; +} +- (PBDescriptorProto_ExtensionRange_Builder*) clearStart { + result.hasStart = NO; + result.start = 0; + return self; +} +- (BOOL) hasEnd { + return result.hasEnd; +} +- (int32_t) end { + return result.end; +} +- (PBDescriptorProto_ExtensionRange_Builder*) setEnd:(int32_t) value { + result.hasEnd = YES; + result.end = value; + return self; +} +- (PBDescriptorProto_ExtensionRange_Builder*) clearEnd { + result.hasEnd = NO; + result.end = 0; + return self; +} +@end + +@interface PBDescriptorProto_Builder() +@property (retain) PBDescriptorProto* result; +@end + +@implementation PBDescriptorProto_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[PBDescriptorProto alloc] init] autorelease]; + } + return self; +} +- (PBGeneratedMessage*) internalGetResult { + return result; +} +- (PBDescriptorProto_Builder*) clear { + self.result = [[[PBDescriptorProto alloc] init] autorelease]; + return self; +} +- (PBDescriptorProto_Builder*) clone { + return [PBDescriptorProto builderWithPrototype:result]; +} +- (PBDescriptorProto*) defaultInstance { + return [PBDescriptorProto defaultInstance]; +} +- (PBDescriptorProto*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (PBDescriptorProto*) buildPartial { + PBDescriptorProto* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (PBDescriptorProto_Builder*) mergeFrom:(PBDescriptorProto*) other { + if (other == [PBDescriptorProto defaultInstance]) { + return self; + } + if (other.hasName) { + [self setName:other.name]; + } + if (other.mutableFieldList.count > 0) { + if (result.mutableFieldList == nil) { + result.mutableFieldList = [NSMutableArray array]; + } + [result.mutableFieldList addObjectsFromArray:other.mutableFieldList]; + } + if (other.mutableExtensionList.count > 0) { + if (result.mutableExtensionList == nil) { + result.mutableExtensionList = [NSMutableArray array]; + } + [result.mutableExtensionList addObjectsFromArray:other.mutableExtensionList]; + } + if (other.mutableNestedTypeList.count > 0) { + if (result.mutableNestedTypeList == nil) { + result.mutableNestedTypeList = [NSMutableArray array]; + } + [result.mutableNestedTypeList addObjectsFromArray:other.mutableNestedTypeList]; + } + if (other.mutableEnumTypeList.count > 0) { + if (result.mutableEnumTypeList == nil) { + result.mutableEnumTypeList = [NSMutableArray array]; + } + [result.mutableEnumTypeList addObjectsFromArray:other.mutableEnumTypeList]; + } + if (other.mutableExtensionRangeList.count > 0) { + if (result.mutableExtensionRangeList == nil) { + result.mutableExtensionRangeList = [NSMutableArray array]; + } + [result.mutableExtensionRangeList addObjectsFromArray:other.mutableExtensionRangeList]; + } + if (other.hasOptions) { + [self mergeOptions:other.options]; + } + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (PBDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (PBDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 10: { + [self setName:[input readString]]; + break; + } + case 18: { + PBFieldDescriptorProto_Builder* subBuilder = [PBFieldDescriptorProto builder]; + [input readMessage:subBuilder extensionRegistry:extensionRegistry]; + [self addField:[subBuilder buildPartial]]; + break; + } + case 26: { + PBDescriptorProto_Builder* subBuilder = [PBDescriptorProto builder]; + [input readMessage:subBuilder extensionRegistry:extensionRegistry]; + [self addNestedType:[subBuilder buildPartial]]; + break; + } + case 34: { + PBEnumDescriptorProto_Builder* subBuilder = [PBEnumDescriptorProto builder]; + [input readMessage:subBuilder extensionRegistry:extensionRegistry]; + [self addEnumType:[subBuilder buildPartial]]; + break; + } + case 42: { + PBDescriptorProto_ExtensionRange_Builder* subBuilder = [PBDescriptorProto_ExtensionRange builder]; + [input readMessage:subBuilder extensionRegistry:extensionRegistry]; + [self addExtensionRange:[subBuilder buildPartial]]; + break; + } + case 50: { + PBFieldDescriptorProto_Builder* subBuilder = [PBFieldDescriptorProto builder]; + [input readMessage:subBuilder extensionRegistry:extensionRegistry]; + [self addExtension:[subBuilder buildPartial]]; + break; + } + case 58: { + PBMessageOptions_Builder* subBuilder = [PBMessageOptions builder]; + if (self.hasOptions) { + [subBuilder mergeFrom:self.options]; + } + [input readMessage:subBuilder extensionRegistry:extensionRegistry]; + [self setOptions:[subBuilder buildPartial]]; + break; + } + } + } +} +- (BOOL) hasName { + return result.hasName; +} +- (NSString*) name { + return result.name; +} +- (PBDescriptorProto_Builder*) setName:(NSString*) value { + result.hasName = YES; + result.name = value; + return self; +} +- (PBDescriptorProto_Builder*) clearName { + result.hasName = NO; + result.name = @""; + return self; +} +- (NSArray*) fieldList { + if (result.mutableFieldList == nil) { return [NSArray array]; } + return result.mutableFieldList; +} +- (PBFieldDescriptorProto*) fieldAtIndex:(int32_t) index { + return [result fieldAtIndex:index]; +} +- (PBDescriptorProto_Builder*) replaceFieldAtIndex:(int32_t) index with:(PBFieldDescriptorProto*) value { + [result.mutableFieldList replaceObjectAtIndex:index withObject:value]; + return self; +} +- (PBDescriptorProto_Builder*) addAllField:(NSArray*) values { + if (result.mutableFieldList == nil) { + result.mutableFieldList = [NSMutableArray array]; + } + [result.mutableFieldList addObjectsFromArray:values]; + return self; +} +- (PBDescriptorProto_Builder*) clearFieldList { + result.mutableFieldList = nil; + return self; +} +- (PBDescriptorProto_Builder*) addField:(PBFieldDescriptorProto*) value { + if (result.mutableFieldList == nil) { + result.mutableFieldList = [NSMutableArray array]; + } + [result.mutableFieldList addObject:value]; + return self; +} +- (NSArray*) extensionList { + if (result.mutableExtensionList == nil) { return [NSArray array]; } + return result.mutableExtensionList; +} +- (PBFieldDescriptorProto*) extensionAtIndex:(int32_t) index { + return [result extensionAtIndex:index]; +} +- (PBDescriptorProto_Builder*) replaceExtensionAtIndex:(int32_t) index with:(PBFieldDescriptorProto*) value { + [result.mutableExtensionList replaceObjectAtIndex:index withObject:value]; + return self; +} +- (PBDescriptorProto_Builder*) addAllExtension:(NSArray*) values { + if (result.mutableExtensionList == nil) { + result.mutableExtensionList = [NSMutableArray array]; + } + [result.mutableExtensionList addObjectsFromArray:values]; + return self; +} +- (PBDescriptorProto_Builder*) clearExtensionList { + result.mutableExtensionList = nil; + return self; +} +- (PBDescriptorProto_Builder*) addExtension:(PBFieldDescriptorProto*) value { + if (result.mutableExtensionList == nil) { + result.mutableExtensionList = [NSMutableArray array]; + } + [result.mutableExtensionList addObject:value]; + return self; +} +- (NSArray*) nestedTypeList { + if (result.mutableNestedTypeList == nil) { return [NSArray array]; } + return result.mutableNestedTypeList; +} +- (PBDescriptorProto*) nestedTypeAtIndex:(int32_t) index { + return [result nestedTypeAtIndex:index]; +} +- (PBDescriptorProto_Builder*) replaceNestedTypeAtIndex:(int32_t) index with:(PBDescriptorProto*) value { + [result.mutableNestedTypeList replaceObjectAtIndex:index withObject:value]; + return self; +} +- (PBDescriptorProto_Builder*) addAllNestedType:(NSArray*) values { + if (result.mutableNestedTypeList == nil) { + result.mutableNestedTypeList = [NSMutableArray array]; + } + [result.mutableNestedTypeList addObjectsFromArray:values]; + return self; +} +- (PBDescriptorProto_Builder*) clearNestedTypeList { + result.mutableNestedTypeList = nil; + return self; +} +- (PBDescriptorProto_Builder*) addNestedType:(PBDescriptorProto*) value { + if (result.mutableNestedTypeList == nil) { + result.mutableNestedTypeList = [NSMutableArray array]; + } + [result.mutableNestedTypeList addObject:value]; + return self; +} +- (NSArray*) enumTypeList { + if (result.mutableEnumTypeList == nil) { return [NSArray array]; } + return result.mutableEnumTypeList; +} +- (PBEnumDescriptorProto*) enumTypeAtIndex:(int32_t) index { + return [result enumTypeAtIndex:index]; +} +- (PBDescriptorProto_Builder*) replaceEnumTypeAtIndex:(int32_t) index with:(PBEnumDescriptorProto*) value { + [result.mutableEnumTypeList replaceObjectAtIndex:index withObject:value]; + return self; +} +- (PBDescriptorProto_Builder*) addAllEnumType:(NSArray*) values { + if (result.mutableEnumTypeList == nil) { + result.mutableEnumTypeList = [NSMutableArray array]; + } + [result.mutableEnumTypeList addObjectsFromArray:values]; + return self; +} +- (PBDescriptorProto_Builder*) clearEnumTypeList { + result.mutableEnumTypeList = nil; + return self; +} +- (PBDescriptorProto_Builder*) addEnumType:(PBEnumDescriptorProto*) value { + if (result.mutableEnumTypeList == nil) { + result.mutableEnumTypeList = [NSMutableArray array]; + } + [result.mutableEnumTypeList addObject:value]; + return self; +} +- (NSArray*) extensionRangeList { + if (result.mutableExtensionRangeList == nil) { return [NSArray array]; } + return result.mutableExtensionRangeList; +} +- (PBDescriptorProto_ExtensionRange*) extensionRangeAtIndex:(int32_t) index { + return [result extensionRangeAtIndex:index]; +} +- (PBDescriptorProto_Builder*) replaceExtensionRangeAtIndex:(int32_t) index with:(PBDescriptorProto_ExtensionRange*) value { + [result.mutableExtensionRangeList replaceObjectAtIndex:index withObject:value]; + return self; +} +- (PBDescriptorProto_Builder*) addAllExtensionRange:(NSArray*) values { + if (result.mutableExtensionRangeList == nil) { + result.mutableExtensionRangeList = [NSMutableArray array]; + } + [result.mutableExtensionRangeList addObjectsFromArray:values]; + return self; +} +- (PBDescriptorProto_Builder*) clearExtensionRangeList { + result.mutableExtensionRangeList = nil; + return self; +} +- (PBDescriptorProto_Builder*) addExtensionRange:(PBDescriptorProto_ExtensionRange*) value { + if (result.mutableExtensionRangeList == nil) { + result.mutableExtensionRangeList = [NSMutableArray array]; + } + [result.mutableExtensionRangeList addObject:value]; + return self; +} +- (BOOL) hasOptions { + return result.hasOptions; +} +- (PBMessageOptions*) options { + return result.options; +} +- (PBDescriptorProto_Builder*) setOptions:(PBMessageOptions*) value { + result.hasOptions = YES; + result.options = value; + return self; +} +- (PBDescriptorProto_Builder*) setOptionsBuilder:(PBMessageOptions_Builder*) builderForValue { + return [self setOptions:[builderForValue build]]; +} +- (PBDescriptorProto_Builder*) mergeOptions:(PBMessageOptions*) value { + if (result.hasOptions && + result.options != [PBMessageOptions defaultInstance]) { + result.options = + [[[PBMessageOptions builderWithPrototype:result.options] mergeFrom:value] buildPartial]; + } else { + result.options = value; + } + result.hasOptions = YES; + return self; +} +- (PBDescriptorProto_Builder*) clearOptions { + result.hasOptions = NO; + result.options = [PBMessageOptions defaultInstance]; + return self; +} +@end + +@interface PBFieldDescriptorProto () +@property (retain) NSString* name; +@property int32_t number; +@property PBFieldDescriptorProto_Label label; +@property PBFieldDescriptorProto_Type type; +@property (retain) NSString* typeName; +@property (retain) NSString* extendee; +@property (retain) NSString* defaultValue; +@property (retain) PBFieldOptions* options; +@end + +@implementation PBFieldDescriptorProto + +- (BOOL) hasName { + return !!hasName_; +} +- (void) setHasName:(BOOL) value { + hasName_ = !!value; +} +@synthesize name; +- (BOOL) hasNumber { + return !!hasNumber_; +} +- (void) setHasNumber:(BOOL) value { + hasNumber_ = !!value; +} +@synthesize number; +- (BOOL) hasLabel { + return !!hasLabel_; +} +- (void) setHasLabel:(BOOL) value { + hasLabel_ = !!value; +} +@synthesize label; +- (BOOL) hasType { + return !!hasType_; +} +- (void) setHasType:(BOOL) value { + hasType_ = !!value; +} +@synthesize type; +- (BOOL) hasTypeName { + return !!hasTypeName_; +} +- (void) setHasTypeName:(BOOL) value { + hasTypeName_ = !!value; +} +@synthesize typeName; +- (BOOL) hasExtendee { + return !!hasExtendee_; +} +- (void) setHasExtendee:(BOOL) value { + hasExtendee_ = !!value; +} +@synthesize extendee; +- (BOOL) hasDefaultValue { + return !!hasDefaultValue_; +} +- (void) setHasDefaultValue:(BOOL) value { + hasDefaultValue_ = !!value; +} +@synthesize defaultValue; +- (BOOL) hasOptions { + return !!hasOptions_; +} +- (void) setHasOptions:(BOOL) value { + hasOptions_ = !!value; +} +@synthesize options; +- (void) dealloc { + self.name = nil; + self.typeName = nil; + self.extendee = nil; + self.defaultValue = nil; + self.options = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.name = @""; + self.number = 0; + self.label = PBFieldDescriptorProto_LabelLabelOptional; + self.type = PBFieldDescriptorProto_TypeTypeDouble; + self.typeName = @""; + self.extendee = @""; + self.defaultValue = @""; + self.options = [PBFieldOptions defaultInstance]; + } + return self; +} +static PBFieldDescriptorProto* defaultPBFieldDescriptorProtoInstance = nil; ++ (void) initialize { + if (self == [PBFieldDescriptorProto class]) { + defaultPBFieldDescriptorProtoInstance = [[PBFieldDescriptorProto alloc] init]; + } +} ++ (PBFieldDescriptorProto*) defaultInstance { + return defaultPBFieldDescriptorProtoInstance; +} +- (PBFieldDescriptorProto*) defaultInstance { + return defaultPBFieldDescriptorProtoInstance; +} +- (BOOL) isInitialized { + if (self.hasOptions) { + if (!self.options.isInitialized) { + return NO; + } + } + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + if (self.hasName) { + [output writeString:1 value:self.name]; + } + if (self.hasExtendee) { + [output writeString:2 value:self.extendee]; + } + if (self.hasNumber) { + [output writeInt32:3 value:self.number]; + } + if (self.hasLabel) { + [output writeEnum:4 value:self.label]; + } + if (self.hasType) { + [output writeEnum:5 value:self.type]; + } + if (self.hasTypeName) { + [output writeString:6 value:self.typeName]; + } + if (self.hasDefaultValue) { + [output writeString:7 value:self.defaultValue]; + } + if (self.hasOptions) { + [output writeMessage:8 value:self.options]; + } + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + if (self.hasName) { + size += computeStringSize(1, self.name); + } + if (self.hasExtendee) { + size += computeStringSize(2, self.extendee); + } + if (self.hasNumber) { + size += computeInt32Size(3, self.number); + } + if (self.hasLabel) { + size += computeEnumSize(4, self.label); + } + if (self.hasType) { + size += computeEnumSize(5, self.type); + } + if (self.hasTypeName) { + size += computeStringSize(6, self.typeName); + } + if (self.hasDefaultValue) { + size += computeStringSize(7, self.defaultValue); + } + if (self.hasOptions) { + size += computeMessageSize(8, self.options); + } + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (PBFieldDescriptorProto*) parseFromData:(NSData*) data { + return (PBFieldDescriptorProto*)[[[PBFieldDescriptorProto builder] mergeFromData:data] build]; +} ++ (PBFieldDescriptorProto*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBFieldDescriptorProto*)[[[PBFieldDescriptorProto builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (PBFieldDescriptorProto*) parseFromInputStream:(NSInputStream*) input { + return (PBFieldDescriptorProto*)[[[PBFieldDescriptorProto builder] mergeFromInputStream:input] build]; +} ++ (PBFieldDescriptorProto*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBFieldDescriptorProto*)[[[PBFieldDescriptorProto builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (PBFieldDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (PBFieldDescriptorProto*)[[[PBFieldDescriptorProto builder] mergeFromCodedInputStream:input] build]; +} ++ (PBFieldDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBFieldDescriptorProto*)[[[PBFieldDescriptorProto builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (PBFieldDescriptorProto_Builder*) builder { + return [[[PBFieldDescriptorProto_Builder alloc] init] autorelease]; +} ++ (PBFieldDescriptorProto_Builder*) builderWithPrototype:(PBFieldDescriptorProto*) prototype { + return [[PBFieldDescriptorProto builder] mergeFrom:prototype]; +} +- (PBFieldDescriptorProto_Builder*) builder { + return [PBFieldDescriptorProto builder]; +} +@end + +BOOL PBFieldDescriptorProto_TypeIsValidValue(PBFieldDescriptorProto_Type value) { + switch (value) { + case PBFieldDescriptorProto_TypeTypeDouble: + case PBFieldDescriptorProto_TypeTypeFloat: + case PBFieldDescriptorProto_TypeTypeInt64: + case PBFieldDescriptorProto_TypeTypeUint64: + case PBFieldDescriptorProto_TypeTypeInt32: + case PBFieldDescriptorProto_TypeTypeFixed64: + case PBFieldDescriptorProto_TypeTypeFixed32: + case PBFieldDescriptorProto_TypeTypeBool: + case PBFieldDescriptorProto_TypeTypeString: + case PBFieldDescriptorProto_TypeTypeGroup: + case PBFieldDescriptorProto_TypeTypeMessage: + case PBFieldDescriptorProto_TypeTypeBytes: + case PBFieldDescriptorProto_TypeTypeUint32: + case PBFieldDescriptorProto_TypeTypeEnum: + case PBFieldDescriptorProto_TypeTypeSfixed32: + case PBFieldDescriptorProto_TypeTypeSfixed64: + case PBFieldDescriptorProto_TypeTypeSint32: + case PBFieldDescriptorProto_TypeTypeSint64: + return YES; + default: + return NO; + } +} +BOOL PBFieldDescriptorProto_LabelIsValidValue(PBFieldDescriptorProto_Label value) { + switch (value) { + case PBFieldDescriptorProto_LabelLabelOptional: + case PBFieldDescriptorProto_LabelLabelRequired: + case PBFieldDescriptorProto_LabelLabelRepeated: + return YES; + default: + return NO; + } +} +@interface PBFieldDescriptorProto_Builder() +@property (retain) PBFieldDescriptorProto* result; +@end + +@implementation PBFieldDescriptorProto_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[PBFieldDescriptorProto alloc] init] autorelease]; + } + return self; +} +- (PBGeneratedMessage*) internalGetResult { + return result; +} +- (PBFieldDescriptorProto_Builder*) clear { + self.result = [[[PBFieldDescriptorProto alloc] init] autorelease]; + return self; +} +- (PBFieldDescriptorProto_Builder*) clone { + return [PBFieldDescriptorProto builderWithPrototype:result]; +} +- (PBFieldDescriptorProto*) defaultInstance { + return [PBFieldDescriptorProto defaultInstance]; +} +- (PBFieldDescriptorProto*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (PBFieldDescriptorProto*) buildPartial { + PBFieldDescriptorProto* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (PBFieldDescriptorProto_Builder*) mergeFrom:(PBFieldDescriptorProto*) other { + if (other == [PBFieldDescriptorProto defaultInstance]) { + return self; + } + if (other.hasName) { + [self setName:other.name]; + } + if (other.hasNumber) { + [self setNumber:other.number]; + } + if (other.hasLabel) { + [self setLabel:other.label]; + } + if (other.hasType) { + [self setType:other.type]; + } + if (other.hasTypeName) { + [self setTypeName:other.typeName]; + } + if (other.hasExtendee) { + [self setExtendee:other.extendee]; + } + if (other.hasDefaultValue) { + [self setDefaultValue:other.defaultValue]; + } + if (other.hasOptions) { + [self mergeOptions:other.options]; + } + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (PBFieldDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (PBFieldDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 10: { + [self setName:[input readString]]; + break; + } + case 18: { + [self setExtendee:[input readString]]; + break; + } + case 24: { + [self setNumber:[input readInt32]]; + break; + } + case 32: { + int32_t value = [input readEnum]; + if (PBFieldDescriptorProto_LabelIsValidValue(value)) { + [self setLabel:value]; + } else { + [unknownFields mergeVarintField:4 value:value]; + } + break; + } + case 40: { + int32_t value = [input readEnum]; + if (PBFieldDescriptorProto_TypeIsValidValue(value)) { + [self setType:value]; + } else { + [unknownFields mergeVarintField:5 value:value]; + } + break; + } + case 50: { + [self setTypeName:[input readString]]; + break; + } + case 58: { + [self setDefaultValue:[input readString]]; + break; + } + case 66: { + PBFieldOptions_Builder* subBuilder = [PBFieldOptions builder]; + if (self.hasOptions) { + [subBuilder mergeFrom:self.options]; + } + [input readMessage:subBuilder extensionRegistry:extensionRegistry]; + [self setOptions:[subBuilder buildPartial]]; + break; + } + } + } +} +- (BOOL) hasName { + return result.hasName; +} +- (NSString*) name { + return result.name; +} +- (PBFieldDescriptorProto_Builder*) setName:(NSString*) value { + result.hasName = YES; + result.name = value; + return self; +} +- (PBFieldDescriptorProto_Builder*) clearName { + result.hasName = NO; + result.name = @""; + return self; +} +- (BOOL) hasNumber { + return result.hasNumber; +} +- (int32_t) number { + return result.number; +} +- (PBFieldDescriptorProto_Builder*) setNumber:(int32_t) value { + result.hasNumber = YES; + result.number = value; + return self; +} +- (PBFieldDescriptorProto_Builder*) clearNumber { + result.hasNumber = NO; + result.number = 0; + return self; +} +- (BOOL) hasLabel { + return result.hasLabel; +} +- (PBFieldDescriptorProto_Label) label { + return result.label; +} +- (PBFieldDescriptorProto_Builder*) setLabel:(PBFieldDescriptorProto_Label) value { + result.hasLabel = YES; + result.label = value; + return self; +} +- (PBFieldDescriptorProto_Builder*) clearLabel { + result.hasLabel = NO; + result.label = PBFieldDescriptorProto_LabelLabelOptional; + return self; +} +- (BOOL) hasType { + return result.hasType; +} +- (PBFieldDescriptorProto_Type) type { + return result.type; +} +- (PBFieldDescriptorProto_Builder*) setType:(PBFieldDescriptorProto_Type) value { + result.hasType = YES; + result.type = value; + return self; +} +- (PBFieldDescriptorProto_Builder*) clearType { + result.hasType = NO; + result.type = PBFieldDescriptorProto_TypeTypeDouble; + return self; +} +- (BOOL) hasTypeName { + return result.hasTypeName; +} +- (NSString*) typeName { + return result.typeName; +} +- (PBFieldDescriptorProto_Builder*) setTypeName:(NSString*) value { + result.hasTypeName = YES; + result.typeName = value; + return self; +} +- (PBFieldDescriptorProto_Builder*) clearTypeName { + result.hasTypeName = NO; + result.typeName = @""; + return self; +} +- (BOOL) hasExtendee { + return result.hasExtendee; +} +- (NSString*) extendee { + return result.extendee; +} +- (PBFieldDescriptorProto_Builder*) setExtendee:(NSString*) value { + result.hasExtendee = YES; + result.extendee = value; + return self; +} +- (PBFieldDescriptorProto_Builder*) clearExtendee { + result.hasExtendee = NO; + result.extendee = @""; + return self; +} +- (BOOL) hasDefaultValue { + return result.hasDefaultValue; +} +- (NSString*) defaultValue { + return result.defaultValue; +} +- (PBFieldDescriptorProto_Builder*) setDefaultValue:(NSString*) value { + result.hasDefaultValue = YES; + result.defaultValue = value; + return self; +} +- (PBFieldDescriptorProto_Builder*) clearDefaultValue { + result.hasDefaultValue = NO; + result.defaultValue = @""; + return self; +} +- (BOOL) hasOptions { + return result.hasOptions; +} +- (PBFieldOptions*) options { + return result.options; +} +- (PBFieldDescriptorProto_Builder*) setOptions:(PBFieldOptions*) value { + result.hasOptions = YES; + result.options = value; + return self; +} +- (PBFieldDescriptorProto_Builder*) setOptionsBuilder:(PBFieldOptions_Builder*) builderForValue { + return [self setOptions:[builderForValue build]]; +} +- (PBFieldDescriptorProto_Builder*) mergeOptions:(PBFieldOptions*) value { + if (result.hasOptions && + result.options != [PBFieldOptions defaultInstance]) { + result.options = + [[[PBFieldOptions builderWithPrototype:result.options] mergeFrom:value] buildPartial]; + } else { + result.options = value; + } + result.hasOptions = YES; + return self; +} +- (PBFieldDescriptorProto_Builder*) clearOptions { + result.hasOptions = NO; + result.options = [PBFieldOptions defaultInstance]; + return self; +} +@end + +@interface PBEnumDescriptorProto () +@property (retain) NSString* name; +@property (retain) NSMutableArray* mutableValueList; +@property (retain) PBEnumOptions* options; +@end + +@implementation PBEnumDescriptorProto + +- (BOOL) hasName { + return !!hasName_; +} +- (void) setHasName:(BOOL) value { + hasName_ = !!value; +} +@synthesize name; +@synthesize mutableValueList; +- (BOOL) hasOptions { + return !!hasOptions_; +} +- (void) setHasOptions:(BOOL) value { + hasOptions_ = !!value; +} +@synthesize options; +- (void) dealloc { + self.name = nil; + self.mutableValueList = nil; + self.options = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.name = @""; + self.options = [PBEnumOptions defaultInstance]; + } + return self; +} +static PBEnumDescriptorProto* defaultPBEnumDescriptorProtoInstance = nil; ++ (void) initialize { + if (self == [PBEnumDescriptorProto class]) { + defaultPBEnumDescriptorProtoInstance = [[PBEnumDescriptorProto alloc] init]; + } +} ++ (PBEnumDescriptorProto*) defaultInstance { + return defaultPBEnumDescriptorProtoInstance; +} +- (PBEnumDescriptorProto*) defaultInstance { + return defaultPBEnumDescriptorProtoInstance; +} +- (NSArray*) valueList { + return mutableValueList; +} +- (PBEnumValueDescriptorProto*) valueAtIndex:(int32_t) index { + id value = [mutableValueList objectAtIndex:index]; + return value; +} +- (BOOL) isInitialized { + for (PBEnumValueDescriptorProto* element in self.valueList) { + if (!element.isInitialized) { + return NO; + } + } + if (self.hasOptions) { + if (!self.options.isInitialized) { + return NO; + } + } + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + if (self.hasName) { + [output writeString:1 value:self.name]; + } + for (PBEnumValueDescriptorProto* element in self.valueList) { + [output writeMessage:2 value:element]; + } + if (self.hasOptions) { + [output writeMessage:3 value:self.options]; + } + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + if (self.hasName) { + size += computeStringSize(1, self.name); + } + for (PBEnumValueDescriptorProto* element in self.valueList) { + size += computeMessageSize(2, element); + } + if (self.hasOptions) { + size += computeMessageSize(3, self.options); + } + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (PBEnumDescriptorProto*) parseFromData:(NSData*) data { + return (PBEnumDescriptorProto*)[[[PBEnumDescriptorProto builder] mergeFromData:data] build]; +} ++ (PBEnumDescriptorProto*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBEnumDescriptorProto*)[[[PBEnumDescriptorProto builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (PBEnumDescriptorProto*) parseFromInputStream:(NSInputStream*) input { + return (PBEnumDescriptorProto*)[[[PBEnumDescriptorProto builder] mergeFromInputStream:input] build]; +} ++ (PBEnumDescriptorProto*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBEnumDescriptorProto*)[[[PBEnumDescriptorProto builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (PBEnumDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (PBEnumDescriptorProto*)[[[PBEnumDescriptorProto builder] mergeFromCodedInputStream:input] build]; +} ++ (PBEnumDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBEnumDescriptorProto*)[[[PBEnumDescriptorProto builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (PBEnumDescriptorProto_Builder*) builder { + return [[[PBEnumDescriptorProto_Builder alloc] init] autorelease]; +} ++ (PBEnumDescriptorProto_Builder*) builderWithPrototype:(PBEnumDescriptorProto*) prototype { + return [[PBEnumDescriptorProto builder] mergeFrom:prototype]; +} +- (PBEnumDescriptorProto_Builder*) builder { + return [PBEnumDescriptorProto builder]; +} +@end + +@interface PBEnumDescriptorProto_Builder() +@property (retain) PBEnumDescriptorProto* result; +@end + +@implementation PBEnumDescriptorProto_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[PBEnumDescriptorProto alloc] init] autorelease]; + } + return self; +} +- (PBGeneratedMessage*) internalGetResult { + return result; +} +- (PBEnumDescriptorProto_Builder*) clear { + self.result = [[[PBEnumDescriptorProto alloc] init] autorelease]; + return self; +} +- (PBEnumDescriptorProto_Builder*) clone { + return [PBEnumDescriptorProto builderWithPrototype:result]; +} +- (PBEnumDescriptorProto*) defaultInstance { + return [PBEnumDescriptorProto defaultInstance]; +} +- (PBEnumDescriptorProto*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (PBEnumDescriptorProto*) buildPartial { + PBEnumDescriptorProto* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (PBEnumDescriptorProto_Builder*) mergeFrom:(PBEnumDescriptorProto*) other { + if (other == [PBEnumDescriptorProto defaultInstance]) { + return self; + } + if (other.hasName) { + [self setName:other.name]; + } + if (other.mutableValueList.count > 0) { + if (result.mutableValueList == nil) { + result.mutableValueList = [NSMutableArray array]; + } + [result.mutableValueList addObjectsFromArray:other.mutableValueList]; + } + if (other.hasOptions) { + [self mergeOptions:other.options]; + } + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (PBEnumDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (PBEnumDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 10: { + [self setName:[input readString]]; + break; + } + case 18: { + PBEnumValueDescriptorProto_Builder* subBuilder = [PBEnumValueDescriptorProto builder]; + [input readMessage:subBuilder extensionRegistry:extensionRegistry]; + [self addValue:[subBuilder buildPartial]]; + break; + } + case 26: { + PBEnumOptions_Builder* subBuilder = [PBEnumOptions builder]; + if (self.hasOptions) { + [subBuilder mergeFrom:self.options]; + } + [input readMessage:subBuilder extensionRegistry:extensionRegistry]; + [self setOptions:[subBuilder buildPartial]]; + break; + } + } + } +} +- (BOOL) hasName { + return result.hasName; +} +- (NSString*) name { + return result.name; +} +- (PBEnumDescriptorProto_Builder*) setName:(NSString*) value { + result.hasName = YES; + result.name = value; + return self; +} +- (PBEnumDescriptorProto_Builder*) clearName { + result.hasName = NO; + result.name = @""; + return self; +} +- (NSArray*) valueList { + if (result.mutableValueList == nil) { return [NSArray array]; } + return result.mutableValueList; +} +- (PBEnumValueDescriptorProto*) valueAtIndex:(int32_t) index { + return [result valueAtIndex:index]; +} +- (PBEnumDescriptorProto_Builder*) replaceValueAtIndex:(int32_t) index with:(PBEnumValueDescriptorProto*) value { + [result.mutableValueList replaceObjectAtIndex:index withObject:value]; + return self; +} +- (PBEnumDescriptorProto_Builder*) addAllValue:(NSArray*) values { + if (result.mutableValueList == nil) { + result.mutableValueList = [NSMutableArray array]; + } + [result.mutableValueList addObjectsFromArray:values]; + return self; +} +- (PBEnumDescriptorProto_Builder*) clearValueList { + result.mutableValueList = nil; + return self; +} +- (PBEnumDescriptorProto_Builder*) addValue:(PBEnumValueDescriptorProto*) value { + if (result.mutableValueList == nil) { + result.mutableValueList = [NSMutableArray array]; + } + [result.mutableValueList addObject:value]; + return self; +} +- (BOOL) hasOptions { + return result.hasOptions; +} +- (PBEnumOptions*) options { + return result.options; +} +- (PBEnumDescriptorProto_Builder*) setOptions:(PBEnumOptions*) value { + result.hasOptions = YES; + result.options = value; + return self; +} +- (PBEnumDescriptorProto_Builder*) setOptionsBuilder:(PBEnumOptions_Builder*) builderForValue { + return [self setOptions:[builderForValue build]]; +} +- (PBEnumDescriptorProto_Builder*) mergeOptions:(PBEnumOptions*) value { + if (result.hasOptions && + result.options != [PBEnumOptions defaultInstance]) { + result.options = + [[[PBEnumOptions builderWithPrototype:result.options] mergeFrom:value] buildPartial]; + } else { + result.options = value; + } + result.hasOptions = YES; + return self; +} +- (PBEnumDescriptorProto_Builder*) clearOptions { + result.hasOptions = NO; + result.options = [PBEnumOptions defaultInstance]; + return self; +} +@end + +@interface PBEnumValueDescriptorProto () +@property (retain) NSString* name; +@property int32_t number; +@property (retain) PBEnumValueOptions* options; +@end + +@implementation PBEnumValueDescriptorProto + +- (BOOL) hasName { + return !!hasName_; +} +- (void) setHasName:(BOOL) value { + hasName_ = !!value; +} +@synthesize name; +- (BOOL) hasNumber { + return !!hasNumber_; +} +- (void) setHasNumber:(BOOL) value { + hasNumber_ = !!value; +} +@synthesize number; +- (BOOL) hasOptions { + return !!hasOptions_; +} +- (void) setHasOptions:(BOOL) value { + hasOptions_ = !!value; +} +@synthesize options; +- (void) dealloc { + self.name = nil; + self.options = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.name = @""; + self.number = 0; + self.options = [PBEnumValueOptions defaultInstance]; + } + return self; +} +static PBEnumValueDescriptorProto* defaultPBEnumValueDescriptorProtoInstance = nil; ++ (void) initialize { + if (self == [PBEnumValueDescriptorProto class]) { + defaultPBEnumValueDescriptorProtoInstance = [[PBEnumValueDescriptorProto alloc] init]; + } +} ++ (PBEnumValueDescriptorProto*) defaultInstance { + return defaultPBEnumValueDescriptorProtoInstance; +} +- (PBEnumValueDescriptorProto*) defaultInstance { + return defaultPBEnumValueDescriptorProtoInstance; +} +- (BOOL) isInitialized { + if (self.hasOptions) { + if (!self.options.isInitialized) { + return NO; + } + } + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + if (self.hasName) { + [output writeString:1 value:self.name]; + } + if (self.hasNumber) { + [output writeInt32:2 value:self.number]; + } + if (self.hasOptions) { + [output writeMessage:3 value:self.options]; + } + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + if (self.hasName) { + size += computeStringSize(1, self.name); + } + if (self.hasNumber) { + size += computeInt32Size(2, self.number); + } + if (self.hasOptions) { + size += computeMessageSize(3, self.options); + } + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (PBEnumValueDescriptorProto*) parseFromData:(NSData*) data { + return (PBEnumValueDescriptorProto*)[[[PBEnumValueDescriptorProto builder] mergeFromData:data] build]; +} ++ (PBEnumValueDescriptorProto*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBEnumValueDescriptorProto*)[[[PBEnumValueDescriptorProto builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (PBEnumValueDescriptorProto*) parseFromInputStream:(NSInputStream*) input { + return (PBEnumValueDescriptorProto*)[[[PBEnumValueDescriptorProto builder] mergeFromInputStream:input] build]; +} ++ (PBEnumValueDescriptorProto*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBEnumValueDescriptorProto*)[[[PBEnumValueDescriptorProto builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (PBEnumValueDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (PBEnumValueDescriptorProto*)[[[PBEnumValueDescriptorProto builder] mergeFromCodedInputStream:input] build]; +} ++ (PBEnumValueDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBEnumValueDescriptorProto*)[[[PBEnumValueDescriptorProto builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (PBEnumValueDescriptorProto_Builder*) builder { + return [[[PBEnumValueDescriptorProto_Builder alloc] init] autorelease]; +} ++ (PBEnumValueDescriptorProto_Builder*) builderWithPrototype:(PBEnumValueDescriptorProto*) prototype { + return [[PBEnumValueDescriptorProto builder] mergeFrom:prototype]; +} +- (PBEnumValueDescriptorProto_Builder*) builder { + return [PBEnumValueDescriptorProto builder]; +} +@end + +@interface PBEnumValueDescriptorProto_Builder() +@property (retain) PBEnumValueDescriptorProto* result; +@end + +@implementation PBEnumValueDescriptorProto_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[PBEnumValueDescriptorProto alloc] init] autorelease]; + } + return self; +} +- (PBGeneratedMessage*) internalGetResult { + return result; +} +- (PBEnumValueDescriptorProto_Builder*) clear { + self.result = [[[PBEnumValueDescriptorProto alloc] init] autorelease]; + return self; +} +- (PBEnumValueDescriptorProto_Builder*) clone { + return [PBEnumValueDescriptorProto builderWithPrototype:result]; +} +- (PBEnumValueDescriptorProto*) defaultInstance { + return [PBEnumValueDescriptorProto defaultInstance]; +} +- (PBEnumValueDescriptorProto*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (PBEnumValueDescriptorProto*) buildPartial { + PBEnumValueDescriptorProto* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (PBEnumValueDescriptorProto_Builder*) mergeFrom:(PBEnumValueDescriptorProto*) other { + if (other == [PBEnumValueDescriptorProto defaultInstance]) { + return self; + } + if (other.hasName) { + [self setName:other.name]; + } + if (other.hasNumber) { + [self setNumber:other.number]; + } + if (other.hasOptions) { + [self mergeOptions:other.options]; + } + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (PBEnumValueDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (PBEnumValueDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 10: { + [self setName:[input readString]]; + break; + } + case 16: { + [self setNumber:[input readInt32]]; + break; + } + case 26: { + PBEnumValueOptions_Builder* subBuilder = [PBEnumValueOptions builder]; + if (self.hasOptions) { + [subBuilder mergeFrom:self.options]; + } + [input readMessage:subBuilder extensionRegistry:extensionRegistry]; + [self setOptions:[subBuilder buildPartial]]; + break; + } + } + } +} +- (BOOL) hasName { + return result.hasName; +} +- (NSString*) name { + return result.name; +} +- (PBEnumValueDescriptorProto_Builder*) setName:(NSString*) value { + result.hasName = YES; + result.name = value; + return self; +} +- (PBEnumValueDescriptorProto_Builder*) clearName { + result.hasName = NO; + result.name = @""; + return self; +} +- (BOOL) hasNumber { + return result.hasNumber; +} +- (int32_t) number { + return result.number; +} +- (PBEnumValueDescriptorProto_Builder*) setNumber:(int32_t) value { + result.hasNumber = YES; + result.number = value; + return self; +} +- (PBEnumValueDescriptorProto_Builder*) clearNumber { + result.hasNumber = NO; + result.number = 0; + return self; +} +- (BOOL) hasOptions { + return result.hasOptions; +} +- (PBEnumValueOptions*) options { + return result.options; +} +- (PBEnumValueDescriptorProto_Builder*) setOptions:(PBEnumValueOptions*) value { + result.hasOptions = YES; + result.options = value; + return self; +} +- (PBEnumValueDescriptorProto_Builder*) setOptionsBuilder:(PBEnumValueOptions_Builder*) builderForValue { + return [self setOptions:[builderForValue build]]; +} +- (PBEnumValueDescriptorProto_Builder*) mergeOptions:(PBEnumValueOptions*) value { + if (result.hasOptions && + result.options != [PBEnumValueOptions defaultInstance]) { + result.options = + [[[PBEnumValueOptions builderWithPrototype:result.options] mergeFrom:value] buildPartial]; + } else { + result.options = value; + } + result.hasOptions = YES; + return self; +} +- (PBEnumValueDescriptorProto_Builder*) clearOptions { + result.hasOptions = NO; + result.options = [PBEnumValueOptions defaultInstance]; + return self; +} +@end + +@interface PBServiceDescriptorProto () +@property (retain) NSString* name; +@property (retain) NSMutableArray* mutableMethodList; +@property (retain) PBServiceOptions* options; +@end + +@implementation PBServiceDescriptorProto + +- (BOOL) hasName { + return !!hasName_; +} +- (void) setHasName:(BOOL) value { + hasName_ = !!value; +} +@synthesize name; +@synthesize mutableMethodList; +- (BOOL) hasOptions { + return !!hasOptions_; +} +- (void) setHasOptions:(BOOL) value { + hasOptions_ = !!value; +} +@synthesize options; +- (void) dealloc { + self.name = nil; + self.mutableMethodList = nil; + self.options = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.name = @""; + self.options = [PBServiceOptions defaultInstance]; + } + return self; +} +static PBServiceDescriptorProto* defaultPBServiceDescriptorProtoInstance = nil; ++ (void) initialize { + if (self == [PBServiceDescriptorProto class]) { + defaultPBServiceDescriptorProtoInstance = [[PBServiceDescriptorProto alloc] init]; + } +} ++ (PBServiceDescriptorProto*) defaultInstance { + return defaultPBServiceDescriptorProtoInstance; +} +- (PBServiceDescriptorProto*) defaultInstance { + return defaultPBServiceDescriptorProtoInstance; +} +- (NSArray*) methodList { + return mutableMethodList; +} +- (PBMethodDescriptorProto*) methodAtIndex:(int32_t) index { + id value = [mutableMethodList objectAtIndex:index]; + return value; +} +- (BOOL) isInitialized { + for (PBMethodDescriptorProto* element in self.methodList) { + if (!element.isInitialized) { + return NO; + } + } + if (self.hasOptions) { + if (!self.options.isInitialized) { + return NO; + } + } + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + if (self.hasName) { + [output writeString:1 value:self.name]; + } + for (PBMethodDescriptorProto* element in self.methodList) { + [output writeMessage:2 value:element]; + } + if (self.hasOptions) { + [output writeMessage:3 value:self.options]; + } + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + if (self.hasName) { + size += computeStringSize(1, self.name); + } + for (PBMethodDescriptorProto* element in self.methodList) { + size += computeMessageSize(2, element); + } + if (self.hasOptions) { + size += computeMessageSize(3, self.options); + } + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (PBServiceDescriptorProto*) parseFromData:(NSData*) data { + return (PBServiceDescriptorProto*)[[[PBServiceDescriptorProto builder] mergeFromData:data] build]; +} ++ (PBServiceDescriptorProto*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBServiceDescriptorProto*)[[[PBServiceDescriptorProto builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (PBServiceDescriptorProto*) parseFromInputStream:(NSInputStream*) input { + return (PBServiceDescriptorProto*)[[[PBServiceDescriptorProto builder] mergeFromInputStream:input] build]; +} ++ (PBServiceDescriptorProto*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBServiceDescriptorProto*)[[[PBServiceDescriptorProto builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (PBServiceDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (PBServiceDescriptorProto*)[[[PBServiceDescriptorProto builder] mergeFromCodedInputStream:input] build]; +} ++ (PBServiceDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBServiceDescriptorProto*)[[[PBServiceDescriptorProto builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (PBServiceDescriptorProto_Builder*) builder { + return [[[PBServiceDescriptorProto_Builder alloc] init] autorelease]; +} ++ (PBServiceDescriptorProto_Builder*) builderWithPrototype:(PBServiceDescriptorProto*) prototype { + return [[PBServiceDescriptorProto builder] mergeFrom:prototype]; +} +- (PBServiceDescriptorProto_Builder*) builder { + return [PBServiceDescriptorProto builder]; +} +@end + +@interface PBServiceDescriptorProto_Builder() +@property (retain) PBServiceDescriptorProto* result; +@end + +@implementation PBServiceDescriptorProto_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[PBServiceDescriptorProto alloc] init] autorelease]; + } + return self; +} +- (PBGeneratedMessage*) internalGetResult { + return result; +} +- (PBServiceDescriptorProto_Builder*) clear { + self.result = [[[PBServiceDescriptorProto alloc] init] autorelease]; + return self; +} +- (PBServiceDescriptorProto_Builder*) clone { + return [PBServiceDescriptorProto builderWithPrototype:result]; +} +- (PBServiceDescriptorProto*) defaultInstance { + return [PBServiceDescriptorProto defaultInstance]; +} +- (PBServiceDescriptorProto*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (PBServiceDescriptorProto*) buildPartial { + PBServiceDescriptorProto* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (PBServiceDescriptorProto_Builder*) mergeFrom:(PBServiceDescriptorProto*) other { + if (other == [PBServiceDescriptorProto defaultInstance]) { + return self; + } + if (other.hasName) { + [self setName:other.name]; + } + if (other.mutableMethodList.count > 0) { + if (result.mutableMethodList == nil) { + result.mutableMethodList = [NSMutableArray array]; + } + [result.mutableMethodList addObjectsFromArray:other.mutableMethodList]; + } + if (other.hasOptions) { + [self mergeOptions:other.options]; + } + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (PBServiceDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (PBServiceDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 10: { + [self setName:[input readString]]; + break; + } + case 18: { + PBMethodDescriptorProto_Builder* subBuilder = [PBMethodDescriptorProto builder]; + [input readMessage:subBuilder extensionRegistry:extensionRegistry]; + [self addMethod:[subBuilder buildPartial]]; + break; + } + case 26: { + PBServiceOptions_Builder* subBuilder = [PBServiceOptions builder]; + if (self.hasOptions) { + [subBuilder mergeFrom:self.options]; + } + [input readMessage:subBuilder extensionRegistry:extensionRegistry]; + [self setOptions:[subBuilder buildPartial]]; + break; + } + } + } +} +- (BOOL) hasName { + return result.hasName; +} +- (NSString*) name { + return result.name; +} +- (PBServiceDescriptorProto_Builder*) setName:(NSString*) value { + result.hasName = YES; + result.name = value; + return self; +} +- (PBServiceDescriptorProto_Builder*) clearName { + result.hasName = NO; + result.name = @""; + return self; +} +- (NSArray*) methodList { + if (result.mutableMethodList == nil) { return [NSArray array]; } + return result.mutableMethodList; +} +- (PBMethodDescriptorProto*) methodAtIndex:(int32_t) index { + return [result methodAtIndex:index]; +} +- (PBServiceDescriptorProto_Builder*) replaceMethodAtIndex:(int32_t) index with:(PBMethodDescriptorProto*) value { + [result.mutableMethodList replaceObjectAtIndex:index withObject:value]; + return self; +} +- (PBServiceDescriptorProto_Builder*) addAllMethod:(NSArray*) values { + if (result.mutableMethodList == nil) { + result.mutableMethodList = [NSMutableArray array]; + } + [result.mutableMethodList addObjectsFromArray:values]; + return self; +} +- (PBServiceDescriptorProto_Builder*) clearMethodList { + result.mutableMethodList = nil; + return self; +} +- (PBServiceDescriptorProto_Builder*) addMethod:(PBMethodDescriptorProto*) value { + if (result.mutableMethodList == nil) { + result.mutableMethodList = [NSMutableArray array]; + } + [result.mutableMethodList addObject:value]; + return self; +} +- (BOOL) hasOptions { + return result.hasOptions; +} +- (PBServiceOptions*) options { + return result.options; +} +- (PBServiceDescriptorProto_Builder*) setOptions:(PBServiceOptions*) value { + result.hasOptions = YES; + result.options = value; + return self; +} +- (PBServiceDescriptorProto_Builder*) setOptionsBuilder:(PBServiceOptions_Builder*) builderForValue { + return [self setOptions:[builderForValue build]]; +} +- (PBServiceDescriptorProto_Builder*) mergeOptions:(PBServiceOptions*) value { + if (result.hasOptions && + result.options != [PBServiceOptions defaultInstance]) { + result.options = + [[[PBServiceOptions builderWithPrototype:result.options] mergeFrom:value] buildPartial]; + } else { + result.options = value; + } + result.hasOptions = YES; + return self; +} +- (PBServiceDescriptorProto_Builder*) clearOptions { + result.hasOptions = NO; + result.options = [PBServiceOptions defaultInstance]; + return self; +} +@end + +@interface PBMethodDescriptorProto () +@property (retain) NSString* name; +@property (retain) NSString* inputType; +@property (retain) NSString* outputType; +@property (retain) PBMethodOptions* options; +@end + +@implementation PBMethodDescriptorProto + +- (BOOL) hasName { + return !!hasName_; +} +- (void) setHasName:(BOOL) value { + hasName_ = !!value; +} +@synthesize name; +- (BOOL) hasInputType { + return !!hasInputType_; +} +- (void) setHasInputType:(BOOL) value { + hasInputType_ = !!value; +} +@synthesize inputType; +- (BOOL) hasOutputType { + return !!hasOutputType_; +} +- (void) setHasOutputType:(BOOL) value { + hasOutputType_ = !!value; +} +@synthesize outputType; +- (BOOL) hasOptions { + return !!hasOptions_; +} +- (void) setHasOptions:(BOOL) value { + hasOptions_ = !!value; +} +@synthesize options; +- (void) dealloc { + self.name = nil; + self.inputType = nil; + self.outputType = nil; + self.options = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.name = @""; + self.inputType = @""; + self.outputType = @""; + self.options = [PBMethodOptions defaultInstance]; + } + return self; +} +static PBMethodDescriptorProto* defaultPBMethodDescriptorProtoInstance = nil; ++ (void) initialize { + if (self == [PBMethodDescriptorProto class]) { + defaultPBMethodDescriptorProtoInstance = [[PBMethodDescriptorProto alloc] init]; + } +} ++ (PBMethodDescriptorProto*) defaultInstance { + return defaultPBMethodDescriptorProtoInstance; +} +- (PBMethodDescriptorProto*) defaultInstance { + return defaultPBMethodDescriptorProtoInstance; +} +- (BOOL) isInitialized { + if (self.hasOptions) { + if (!self.options.isInitialized) { + return NO; + } + } + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + if (self.hasName) { + [output writeString:1 value:self.name]; + } + if (self.hasInputType) { + [output writeString:2 value:self.inputType]; + } + if (self.hasOutputType) { + [output writeString:3 value:self.outputType]; + } + if (self.hasOptions) { + [output writeMessage:4 value:self.options]; + } + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + if (self.hasName) { + size += computeStringSize(1, self.name); + } + if (self.hasInputType) { + size += computeStringSize(2, self.inputType); + } + if (self.hasOutputType) { + size += computeStringSize(3, self.outputType); + } + if (self.hasOptions) { + size += computeMessageSize(4, self.options); + } + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (PBMethodDescriptorProto*) parseFromData:(NSData*) data { + return (PBMethodDescriptorProto*)[[[PBMethodDescriptorProto builder] mergeFromData:data] build]; +} ++ (PBMethodDescriptorProto*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBMethodDescriptorProto*)[[[PBMethodDescriptorProto builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (PBMethodDescriptorProto*) parseFromInputStream:(NSInputStream*) input { + return (PBMethodDescriptorProto*)[[[PBMethodDescriptorProto builder] mergeFromInputStream:input] build]; +} ++ (PBMethodDescriptorProto*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBMethodDescriptorProto*)[[[PBMethodDescriptorProto builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (PBMethodDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (PBMethodDescriptorProto*)[[[PBMethodDescriptorProto builder] mergeFromCodedInputStream:input] build]; +} ++ (PBMethodDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBMethodDescriptorProto*)[[[PBMethodDescriptorProto builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (PBMethodDescriptorProto_Builder*) builder { + return [[[PBMethodDescriptorProto_Builder alloc] init] autorelease]; +} ++ (PBMethodDescriptorProto_Builder*) builderWithPrototype:(PBMethodDescriptorProto*) prototype { + return [[PBMethodDescriptorProto builder] mergeFrom:prototype]; +} +- (PBMethodDescriptorProto_Builder*) builder { + return [PBMethodDescriptorProto builder]; +} +@end + +@interface PBMethodDescriptorProto_Builder() +@property (retain) PBMethodDescriptorProto* result; +@end + +@implementation PBMethodDescriptorProto_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[PBMethodDescriptorProto alloc] init] autorelease]; + } + return self; +} +- (PBGeneratedMessage*) internalGetResult { + return result; +} +- (PBMethodDescriptorProto_Builder*) clear { + self.result = [[[PBMethodDescriptorProto alloc] init] autorelease]; + return self; +} +- (PBMethodDescriptorProto_Builder*) clone { + return [PBMethodDescriptorProto builderWithPrototype:result]; +} +- (PBMethodDescriptorProto*) defaultInstance { + return [PBMethodDescriptorProto defaultInstance]; +} +- (PBMethodDescriptorProto*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (PBMethodDescriptorProto*) buildPartial { + PBMethodDescriptorProto* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (PBMethodDescriptorProto_Builder*) mergeFrom:(PBMethodDescriptorProto*) other { + if (other == [PBMethodDescriptorProto defaultInstance]) { + return self; + } + if (other.hasName) { + [self setName:other.name]; + } + if (other.hasInputType) { + [self setInputType:other.inputType]; + } + if (other.hasOutputType) { + [self setOutputType:other.outputType]; + } + if (other.hasOptions) { + [self mergeOptions:other.options]; + } + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (PBMethodDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (PBMethodDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 10: { + [self setName:[input readString]]; + break; + } + case 18: { + [self setInputType:[input readString]]; + break; + } + case 26: { + [self setOutputType:[input readString]]; + break; + } + case 34: { + PBMethodOptions_Builder* subBuilder = [PBMethodOptions builder]; + if (self.hasOptions) { + [subBuilder mergeFrom:self.options]; + } + [input readMessage:subBuilder extensionRegistry:extensionRegistry]; + [self setOptions:[subBuilder buildPartial]]; + break; + } + } + } +} +- (BOOL) hasName { + return result.hasName; +} +- (NSString*) name { + return result.name; +} +- (PBMethodDescriptorProto_Builder*) setName:(NSString*) value { + result.hasName = YES; + result.name = value; + return self; +} +- (PBMethodDescriptorProto_Builder*) clearName { + result.hasName = NO; + result.name = @""; + return self; +} +- (BOOL) hasInputType { + return result.hasInputType; +} +- (NSString*) inputType { + return result.inputType; +} +- (PBMethodDescriptorProto_Builder*) setInputType:(NSString*) value { + result.hasInputType = YES; + result.inputType = value; + return self; +} +- (PBMethodDescriptorProto_Builder*) clearInputType { + result.hasInputType = NO; + result.inputType = @""; + return self; +} +- (BOOL) hasOutputType { + return result.hasOutputType; +} +- (NSString*) outputType { + return result.outputType; +} +- (PBMethodDescriptorProto_Builder*) setOutputType:(NSString*) value { + result.hasOutputType = YES; + result.outputType = value; + return self; +} +- (PBMethodDescriptorProto_Builder*) clearOutputType { + result.hasOutputType = NO; + result.outputType = @""; + return self; +} +- (BOOL) hasOptions { + return result.hasOptions; +} +- (PBMethodOptions*) options { + return result.options; +} +- (PBMethodDescriptorProto_Builder*) setOptions:(PBMethodOptions*) value { + result.hasOptions = YES; + result.options = value; + return self; +} +- (PBMethodDescriptorProto_Builder*) setOptionsBuilder:(PBMethodOptions_Builder*) builderForValue { + return [self setOptions:[builderForValue build]]; +} +- (PBMethodDescriptorProto_Builder*) mergeOptions:(PBMethodOptions*) value { + if (result.hasOptions && + result.options != [PBMethodOptions defaultInstance]) { + result.options = + [[[PBMethodOptions builderWithPrototype:result.options] mergeFrom:value] buildPartial]; + } else { + result.options = value; + } + result.hasOptions = YES; + return self; +} +- (PBMethodDescriptorProto_Builder*) clearOptions { + result.hasOptions = NO; + result.options = [PBMethodOptions defaultInstance]; + return self; +} +@end + +@interface PBFileOptions () +@property (retain) NSString* javaPackage; +@property (retain) NSString* javaOuterClassname; +@property BOOL javaMultipleFiles; +@property PBFileOptions_OptimizeMode optimizeFor; +@property (retain) NSMutableArray* mutableUninterpretedOptionList; +@end + +@implementation PBFileOptions + +- (BOOL) hasJavaPackage { + return !!hasJavaPackage_; +} +- (void) setHasJavaPackage:(BOOL) value { + hasJavaPackage_ = !!value; +} +@synthesize javaPackage; +- (BOOL) hasJavaOuterClassname { + return !!hasJavaOuterClassname_; +} +- (void) setHasJavaOuterClassname:(BOOL) value { + hasJavaOuterClassname_ = !!value; +} +@synthesize javaOuterClassname; +- (BOOL) hasJavaMultipleFiles { + return !!hasJavaMultipleFiles_; +} +- (void) setHasJavaMultipleFiles:(BOOL) value { + hasJavaMultipleFiles_ = !!value; +} +- (BOOL) javaMultipleFiles { + return !!javaMultipleFiles_; +} +- (void) setJavaMultipleFiles:(BOOL) value { + javaMultipleFiles_ = !!value; +} +- (BOOL) hasOptimizeFor { + return !!hasOptimizeFor_; +} +- (void) setHasOptimizeFor:(BOOL) value { + hasOptimizeFor_ = !!value; +} +@synthesize optimizeFor; +@synthesize mutableUninterpretedOptionList; +- (void) dealloc { + self.javaPackage = nil; + self.javaOuterClassname = nil; + self.mutableUninterpretedOptionList = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.javaPackage = @""; + self.javaOuterClassname = @""; + self.javaMultipleFiles = NO; + self.optimizeFor = PBFileOptions_OptimizeModeSpeed; + } + return self; +} +static PBFileOptions* defaultPBFileOptionsInstance = nil; ++ (void) initialize { + if (self == [PBFileOptions class]) { + defaultPBFileOptionsInstance = [[PBFileOptions alloc] init]; + } +} ++ (PBFileOptions*) defaultInstance { + return defaultPBFileOptionsInstance; +} +- (PBFileOptions*) defaultInstance { + return defaultPBFileOptionsInstance; +} +- (NSArray*) uninterpretedOptionList { + return mutableUninterpretedOptionList; +} +- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index { + id value = [mutableUninterpretedOptionList objectAtIndex:index]; + return value; +} +- (BOOL) isInitialized { + for (PBUninterpretedOption* element in self.uninterpretedOptionList) { + if (!element.isInitialized) { + return NO; + } + } + if (!self.extensionsAreInitialized) { + return NO; + } + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + if (self.hasJavaPackage) { + [output writeString:1 value:self.javaPackage]; + } + if (self.hasJavaOuterClassname) { + [output writeString:8 value:self.javaOuterClassname]; + } + if (self.hasOptimizeFor) { + [output writeEnum:9 value:self.optimizeFor]; + } + if (self.hasJavaMultipleFiles) { + [output writeBool:10 value:self.javaMultipleFiles]; + } + for (PBUninterpretedOption* element in self.uninterpretedOptionList) { + [output writeMessage:999 value:element]; + } + [self writeExtensionsToCodedOutputStream:output + from:1000 + to:536870912]; + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + if (self.hasJavaPackage) { + size += computeStringSize(1, self.javaPackage); + } + if (self.hasJavaOuterClassname) { + size += computeStringSize(8, self.javaOuterClassname); + } + if (self.hasOptimizeFor) { + size += computeEnumSize(9, self.optimizeFor); + } + if (self.hasJavaMultipleFiles) { + size += computeBoolSize(10, self.javaMultipleFiles); + } + for (PBUninterpretedOption* element in self.uninterpretedOptionList) { + size += computeMessageSize(999, element); + } + size += [self extensionsSerializedSize]; + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (PBFileOptions*) parseFromData:(NSData*) data { + return (PBFileOptions*)[[[PBFileOptions builder] mergeFromData:data] build]; +} ++ (PBFileOptions*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBFileOptions*)[[[PBFileOptions builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (PBFileOptions*) parseFromInputStream:(NSInputStream*) input { + return (PBFileOptions*)[[[PBFileOptions builder] mergeFromInputStream:input] build]; +} ++ (PBFileOptions*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBFileOptions*)[[[PBFileOptions builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (PBFileOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (PBFileOptions*)[[[PBFileOptions builder] mergeFromCodedInputStream:input] build]; +} ++ (PBFileOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBFileOptions*)[[[PBFileOptions builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (PBFileOptions_Builder*) builder { + return [[[PBFileOptions_Builder alloc] init] autorelease]; +} ++ (PBFileOptions_Builder*) builderWithPrototype:(PBFileOptions*) prototype { + return [[PBFileOptions builder] mergeFrom:prototype]; +} +- (PBFileOptions_Builder*) builder { + return [PBFileOptions builder]; +} +@end + +BOOL PBFileOptions_OptimizeModeIsValidValue(PBFileOptions_OptimizeMode value) { + switch (value) { + case PBFileOptions_OptimizeModeSpeed: + case PBFileOptions_OptimizeModeCodeSize: + case PBFileOptions_OptimizeModeLiteRuntime: + return YES; + default: + return NO; + } +} +@interface PBFileOptions_Builder() +@property (retain) PBFileOptions* result; +@end + +@implementation PBFileOptions_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[PBFileOptions alloc] init] autorelease]; + } + return self; +} +- (PBExtendableMessage*) internalGetResult { + return result; +} +- (PBFileOptions_Builder*) clear { + self.result = [[[PBFileOptions alloc] init] autorelease]; + return self; +} +- (PBFileOptions_Builder*) clone { + return [PBFileOptions builderWithPrototype:result]; +} +- (PBFileOptions*) defaultInstance { + return [PBFileOptions defaultInstance]; +} +- (PBFileOptions*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (PBFileOptions*) buildPartial { + PBFileOptions* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (PBFileOptions_Builder*) mergeFrom:(PBFileOptions*) other { + if (other == [PBFileOptions defaultInstance]) { + return self; + } + if (other.hasJavaPackage) { + [self setJavaPackage:other.javaPackage]; + } + if (other.hasJavaOuterClassname) { + [self setJavaOuterClassname:other.javaOuterClassname]; + } + if (other.hasJavaMultipleFiles) { + [self setJavaMultipleFiles:other.javaMultipleFiles]; + } + if (other.hasOptimizeFor) { + [self setOptimizeFor:other.optimizeFor]; + } + if (other.mutableUninterpretedOptionList.count > 0) { + if (result.mutableUninterpretedOptionList == nil) { + result.mutableUninterpretedOptionList = [NSMutableArray array]; + } + [result.mutableUninterpretedOptionList addObjectsFromArray:other.mutableUninterpretedOptionList]; + } + [self mergeExtensionFields:other]; + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (PBFileOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (PBFileOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 10: { + [self setJavaPackage:[input readString]]; + break; + } + case 66: { + [self setJavaOuterClassname:[input readString]]; + break; + } + case 72: { + int32_t value = [input readEnum]; + if (PBFileOptions_OptimizeModeIsValidValue(value)) { + [self setOptimizeFor:value]; + } else { + [unknownFields mergeVarintField:9 value:value]; + } + break; + } + case 80: { + [self setJavaMultipleFiles:[input readBool]]; + break; + } + case 7994: { + PBUninterpretedOption_Builder* subBuilder = [PBUninterpretedOption builder]; + [input readMessage:subBuilder extensionRegistry:extensionRegistry]; + [self addUninterpretedOption:[subBuilder buildPartial]]; + break; + } + } + } +} +- (BOOL) hasJavaPackage { + return result.hasJavaPackage; +} +- (NSString*) javaPackage { + return result.javaPackage; +} +- (PBFileOptions_Builder*) setJavaPackage:(NSString*) value { + result.hasJavaPackage = YES; + result.javaPackage = value; + return self; +} +- (PBFileOptions_Builder*) clearJavaPackage { + result.hasJavaPackage = NO; + result.javaPackage = @""; + return self; +} +- (BOOL) hasJavaOuterClassname { + return result.hasJavaOuterClassname; +} +- (NSString*) javaOuterClassname { + return result.javaOuterClassname; +} +- (PBFileOptions_Builder*) setJavaOuterClassname:(NSString*) value { + result.hasJavaOuterClassname = YES; + result.javaOuterClassname = value; + return self; +} +- (PBFileOptions_Builder*) clearJavaOuterClassname { + result.hasJavaOuterClassname = NO; + result.javaOuterClassname = @""; + return self; +} +- (BOOL) hasJavaMultipleFiles { + return result.hasJavaMultipleFiles; +} +- (BOOL) javaMultipleFiles { + return result.javaMultipleFiles; +} +- (PBFileOptions_Builder*) setJavaMultipleFiles:(BOOL) value { + result.hasJavaMultipleFiles = YES; + result.javaMultipleFiles = value; + return self; +} +- (PBFileOptions_Builder*) clearJavaMultipleFiles { + result.hasJavaMultipleFiles = NO; + result.javaMultipleFiles = NO; + return self; +} +- (BOOL) hasOptimizeFor { + return result.hasOptimizeFor; +} +- (PBFileOptions_OptimizeMode) optimizeFor { + return result.optimizeFor; +} +- (PBFileOptions_Builder*) setOptimizeFor:(PBFileOptions_OptimizeMode) value { + result.hasOptimizeFor = YES; + result.optimizeFor = value; + return self; +} +- (PBFileOptions_Builder*) clearOptimizeFor { + result.hasOptimizeFor = NO; + result.optimizeFor = PBFileOptions_OptimizeModeSpeed; + return self; +} +- (NSArray*) uninterpretedOptionList { + if (result.mutableUninterpretedOptionList == nil) { return [NSArray array]; } + return result.mutableUninterpretedOptionList; +} +- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index { + return [result uninterpretedOptionAtIndex:index]; +} +- (PBFileOptions_Builder*) replaceUninterpretedOptionAtIndex:(int32_t) index with:(PBUninterpretedOption*) value { + [result.mutableUninterpretedOptionList replaceObjectAtIndex:index withObject:value]; + return self; +} +- (PBFileOptions_Builder*) addAllUninterpretedOption:(NSArray*) values { + if (result.mutableUninterpretedOptionList == nil) { + result.mutableUninterpretedOptionList = [NSMutableArray array]; + } + [result.mutableUninterpretedOptionList addObjectsFromArray:values]; + return self; +} +- (PBFileOptions_Builder*) clearUninterpretedOptionList { + result.mutableUninterpretedOptionList = nil; + return self; +} +- (PBFileOptions_Builder*) addUninterpretedOption:(PBUninterpretedOption*) value { + if (result.mutableUninterpretedOptionList == nil) { + result.mutableUninterpretedOptionList = [NSMutableArray array]; + } + [result.mutableUninterpretedOptionList addObject:value]; + return self; +} +@end + +@interface PBMessageOptions () +@property BOOL messageSetWireFormat; +@property BOOL noStandardDescriptorAccessor; +@property (retain) NSMutableArray* mutableUninterpretedOptionList; +@end + +@implementation PBMessageOptions + +- (BOOL) hasMessageSetWireFormat { + return !!hasMessageSetWireFormat_; +} +- (void) setHasMessageSetWireFormat:(BOOL) value { + hasMessageSetWireFormat_ = !!value; +} +- (BOOL) messageSetWireFormat { + return !!messageSetWireFormat_; +} +- (void) setMessageSetWireFormat:(BOOL) value { + messageSetWireFormat_ = !!value; +} +- (BOOL) hasNoStandardDescriptorAccessor { + return !!hasNoStandardDescriptorAccessor_; +} +- (void) setHasNoStandardDescriptorAccessor:(BOOL) value { + hasNoStandardDescriptorAccessor_ = !!value; +} +- (BOOL) noStandardDescriptorAccessor { + return !!noStandardDescriptorAccessor_; +} +- (void) setNoStandardDescriptorAccessor:(BOOL) value { + noStandardDescriptorAccessor_ = !!value; +} +@synthesize mutableUninterpretedOptionList; +- (void) dealloc { + self.mutableUninterpretedOptionList = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.messageSetWireFormat = NO; + self.noStandardDescriptorAccessor = NO; + } + return self; +} +static PBMessageOptions* defaultPBMessageOptionsInstance = nil; ++ (void) initialize { + if (self == [PBMessageOptions class]) { + defaultPBMessageOptionsInstance = [[PBMessageOptions alloc] init]; + } +} ++ (PBMessageOptions*) defaultInstance { + return defaultPBMessageOptionsInstance; +} +- (PBMessageOptions*) defaultInstance { + return defaultPBMessageOptionsInstance; +} +- (NSArray*) uninterpretedOptionList { + return mutableUninterpretedOptionList; +} +- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index { + id value = [mutableUninterpretedOptionList objectAtIndex:index]; + return value; +} +- (BOOL) isInitialized { + for (PBUninterpretedOption* element in self.uninterpretedOptionList) { + if (!element.isInitialized) { + return NO; + } + } + if (!self.extensionsAreInitialized) { + return NO; + } + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + if (self.hasMessageSetWireFormat) { + [output writeBool:1 value:self.messageSetWireFormat]; + } + if (self.hasNoStandardDescriptorAccessor) { + [output writeBool:2 value:self.noStandardDescriptorAccessor]; + } + for (PBUninterpretedOption* element in self.uninterpretedOptionList) { + [output writeMessage:999 value:element]; + } + [self writeExtensionsToCodedOutputStream:output + from:1000 + to:536870912]; + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + if (self.hasMessageSetWireFormat) { + size += computeBoolSize(1, self.messageSetWireFormat); + } + if (self.hasNoStandardDescriptorAccessor) { + size += computeBoolSize(2, self.noStandardDescriptorAccessor); + } + for (PBUninterpretedOption* element in self.uninterpretedOptionList) { + size += computeMessageSize(999, element); + } + size += [self extensionsSerializedSize]; + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (PBMessageOptions*) parseFromData:(NSData*) data { + return (PBMessageOptions*)[[[PBMessageOptions builder] mergeFromData:data] build]; +} ++ (PBMessageOptions*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBMessageOptions*)[[[PBMessageOptions builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (PBMessageOptions*) parseFromInputStream:(NSInputStream*) input { + return (PBMessageOptions*)[[[PBMessageOptions builder] mergeFromInputStream:input] build]; +} ++ (PBMessageOptions*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBMessageOptions*)[[[PBMessageOptions builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (PBMessageOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (PBMessageOptions*)[[[PBMessageOptions builder] mergeFromCodedInputStream:input] build]; +} ++ (PBMessageOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBMessageOptions*)[[[PBMessageOptions builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (PBMessageOptions_Builder*) builder { + return [[[PBMessageOptions_Builder alloc] init] autorelease]; +} ++ (PBMessageOptions_Builder*) builderWithPrototype:(PBMessageOptions*) prototype { + return [[PBMessageOptions builder] mergeFrom:prototype]; +} +- (PBMessageOptions_Builder*) builder { + return [PBMessageOptions builder]; +} +@end + +@interface PBMessageOptions_Builder() +@property (retain) PBMessageOptions* result; +@end + +@implementation PBMessageOptions_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[PBMessageOptions alloc] init] autorelease]; + } + return self; +} +- (PBExtendableMessage*) internalGetResult { + return result; +} +- (PBMessageOptions_Builder*) clear { + self.result = [[[PBMessageOptions alloc] init] autorelease]; + return self; +} +- (PBMessageOptions_Builder*) clone { + return [PBMessageOptions builderWithPrototype:result]; +} +- (PBMessageOptions*) defaultInstance { + return [PBMessageOptions defaultInstance]; +} +- (PBMessageOptions*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (PBMessageOptions*) buildPartial { + PBMessageOptions* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (PBMessageOptions_Builder*) mergeFrom:(PBMessageOptions*) other { + if (other == [PBMessageOptions defaultInstance]) { + return self; + } + if (other.hasMessageSetWireFormat) { + [self setMessageSetWireFormat:other.messageSetWireFormat]; + } + if (other.hasNoStandardDescriptorAccessor) { + [self setNoStandardDescriptorAccessor:other.noStandardDescriptorAccessor]; + } + if (other.mutableUninterpretedOptionList.count > 0) { + if (result.mutableUninterpretedOptionList == nil) { + result.mutableUninterpretedOptionList = [NSMutableArray array]; + } + [result.mutableUninterpretedOptionList addObjectsFromArray:other.mutableUninterpretedOptionList]; + } + [self mergeExtensionFields:other]; + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (PBMessageOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (PBMessageOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 8: { + [self setMessageSetWireFormat:[input readBool]]; + break; + } + case 16: { + [self setNoStandardDescriptorAccessor:[input readBool]]; + break; + } + case 7994: { + PBUninterpretedOption_Builder* subBuilder = [PBUninterpretedOption builder]; + [input readMessage:subBuilder extensionRegistry:extensionRegistry]; + [self addUninterpretedOption:[subBuilder buildPartial]]; + break; + } + } + } +} +- (BOOL) hasMessageSetWireFormat { + return result.hasMessageSetWireFormat; +} +- (BOOL) messageSetWireFormat { + return result.messageSetWireFormat; +} +- (PBMessageOptions_Builder*) setMessageSetWireFormat:(BOOL) value { + result.hasMessageSetWireFormat = YES; + result.messageSetWireFormat = value; + return self; +} +- (PBMessageOptions_Builder*) clearMessageSetWireFormat { + result.hasMessageSetWireFormat = NO; + result.messageSetWireFormat = NO; + return self; +} +- (BOOL) hasNoStandardDescriptorAccessor { + return result.hasNoStandardDescriptorAccessor; +} +- (BOOL) noStandardDescriptorAccessor { + return result.noStandardDescriptorAccessor; +} +- (PBMessageOptions_Builder*) setNoStandardDescriptorAccessor:(BOOL) value { + result.hasNoStandardDescriptorAccessor = YES; + result.noStandardDescriptorAccessor = value; + return self; +} +- (PBMessageOptions_Builder*) clearNoStandardDescriptorAccessor { + result.hasNoStandardDescriptorAccessor = NO; + result.noStandardDescriptorAccessor = NO; + return self; +} +- (NSArray*) uninterpretedOptionList { + if (result.mutableUninterpretedOptionList == nil) { return [NSArray array]; } + return result.mutableUninterpretedOptionList; +} +- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index { + return [result uninterpretedOptionAtIndex:index]; +} +- (PBMessageOptions_Builder*) replaceUninterpretedOptionAtIndex:(int32_t) index with:(PBUninterpretedOption*) value { + [result.mutableUninterpretedOptionList replaceObjectAtIndex:index withObject:value]; + return self; +} +- (PBMessageOptions_Builder*) addAllUninterpretedOption:(NSArray*) values { + if (result.mutableUninterpretedOptionList == nil) { + result.mutableUninterpretedOptionList = [NSMutableArray array]; + } + [result.mutableUninterpretedOptionList addObjectsFromArray:values]; + return self; +} +- (PBMessageOptions_Builder*) clearUninterpretedOptionList { + result.mutableUninterpretedOptionList = nil; + return self; +} +- (PBMessageOptions_Builder*) addUninterpretedOption:(PBUninterpretedOption*) value { + if (result.mutableUninterpretedOptionList == nil) { + result.mutableUninterpretedOptionList = [NSMutableArray array]; + } + [result.mutableUninterpretedOptionList addObject:value]; + return self; +} +@end + +@interface PBFieldOptions () +@property PBFieldOptions_CType ctype; +@property BOOL packed; +@property BOOL deprecated; +@property (retain) NSString* experimentalMapKey; +@property (retain) NSMutableArray* mutableUninterpretedOptionList; +@end + +@implementation PBFieldOptions + +- (BOOL) hasCtype { + return !!hasCtype_; +} +- (void) setHasCtype:(BOOL) value { + hasCtype_ = !!value; +} +@synthesize ctype; +- (BOOL) hasPacked { + return !!hasPacked_; +} +- (void) setHasPacked:(BOOL) value { + hasPacked_ = !!value; +} +- (BOOL) packed { + return !!packed_; +} +- (void) setPacked:(BOOL) value { + packed_ = !!value; +} +- (BOOL) hasDeprecated { + return !!hasDeprecated_; +} +- (void) setHasDeprecated:(BOOL) value { + hasDeprecated_ = !!value; +} +- (BOOL) deprecated { + return !!deprecated_; +} +- (void) setDeprecated:(BOOL) value { + deprecated_ = !!value; +} +- (BOOL) hasExperimentalMapKey { + return !!hasExperimentalMapKey_; +} +- (void) setHasExperimentalMapKey:(BOOL) value { + hasExperimentalMapKey_ = !!value; +} +@synthesize experimentalMapKey; +@synthesize mutableUninterpretedOptionList; +- (void) dealloc { + self.experimentalMapKey = nil; + self.mutableUninterpretedOptionList = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.ctype = PBFieldOptions_CTypeCord; + self.packed = NO; + self.deprecated = NO; + self.experimentalMapKey = @""; + } + return self; +} +static PBFieldOptions* defaultPBFieldOptionsInstance = nil; ++ (void) initialize { + if (self == [PBFieldOptions class]) { + defaultPBFieldOptionsInstance = [[PBFieldOptions alloc] init]; + } +} ++ (PBFieldOptions*) defaultInstance { + return defaultPBFieldOptionsInstance; +} +- (PBFieldOptions*) defaultInstance { + return defaultPBFieldOptionsInstance; +} +- (NSArray*) uninterpretedOptionList { + return mutableUninterpretedOptionList; +} +- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index { + id value = [mutableUninterpretedOptionList objectAtIndex:index]; + return value; +} +- (BOOL) isInitialized { + for (PBUninterpretedOption* element in self.uninterpretedOptionList) { + if (!element.isInitialized) { + return NO; + } + } + if (!self.extensionsAreInitialized) { + return NO; + } + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + if (self.hasCtype) { + [output writeEnum:1 value:self.ctype]; + } + if (self.hasPacked) { + [output writeBool:2 value:self.packed]; + } + if (self.hasDeprecated) { + [output writeBool:3 value:self.deprecated]; + } + if (self.hasExperimentalMapKey) { + [output writeString:9 value:self.experimentalMapKey]; + } + for (PBUninterpretedOption* element in self.uninterpretedOptionList) { + [output writeMessage:999 value:element]; + } + [self writeExtensionsToCodedOutputStream:output + from:1000 + to:536870912]; + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + if (self.hasCtype) { + size += computeEnumSize(1, self.ctype); + } + if (self.hasPacked) { + size += computeBoolSize(2, self.packed); + } + if (self.hasDeprecated) { + size += computeBoolSize(3, self.deprecated); + } + if (self.hasExperimentalMapKey) { + size += computeStringSize(9, self.experimentalMapKey); + } + for (PBUninterpretedOption* element in self.uninterpretedOptionList) { + size += computeMessageSize(999, element); + } + size += [self extensionsSerializedSize]; + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (PBFieldOptions*) parseFromData:(NSData*) data { + return (PBFieldOptions*)[[[PBFieldOptions builder] mergeFromData:data] build]; +} ++ (PBFieldOptions*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBFieldOptions*)[[[PBFieldOptions builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (PBFieldOptions*) parseFromInputStream:(NSInputStream*) input { + return (PBFieldOptions*)[[[PBFieldOptions builder] mergeFromInputStream:input] build]; +} ++ (PBFieldOptions*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBFieldOptions*)[[[PBFieldOptions builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (PBFieldOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (PBFieldOptions*)[[[PBFieldOptions builder] mergeFromCodedInputStream:input] build]; +} ++ (PBFieldOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBFieldOptions*)[[[PBFieldOptions builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (PBFieldOptions_Builder*) builder { + return [[[PBFieldOptions_Builder alloc] init] autorelease]; +} ++ (PBFieldOptions_Builder*) builderWithPrototype:(PBFieldOptions*) prototype { + return [[PBFieldOptions builder] mergeFrom:prototype]; +} +- (PBFieldOptions_Builder*) builder { + return [PBFieldOptions builder]; +} +@end + +BOOL PBFieldOptions_CTypeIsValidValue(PBFieldOptions_CType value) { + switch (value) { + case PBFieldOptions_CTypeCord: + case PBFieldOptions_CTypeStringPiece: + return YES; + default: + return NO; + } +} +@interface PBFieldOptions_Builder() +@property (retain) PBFieldOptions* result; +@end + +@implementation PBFieldOptions_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[PBFieldOptions alloc] init] autorelease]; + } + return self; +} +- (PBExtendableMessage*) internalGetResult { + return result; +} +- (PBFieldOptions_Builder*) clear { + self.result = [[[PBFieldOptions alloc] init] autorelease]; + return self; +} +- (PBFieldOptions_Builder*) clone { + return [PBFieldOptions builderWithPrototype:result]; +} +- (PBFieldOptions*) defaultInstance { + return [PBFieldOptions defaultInstance]; +} +- (PBFieldOptions*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (PBFieldOptions*) buildPartial { + PBFieldOptions* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (PBFieldOptions_Builder*) mergeFrom:(PBFieldOptions*) other { + if (other == [PBFieldOptions defaultInstance]) { + return self; + } + if (other.hasCtype) { + [self setCtype:other.ctype]; + } + if (other.hasPacked) { + [self setPacked:other.packed]; + } + if (other.hasDeprecated) { + [self setDeprecated:other.deprecated]; + } + if (other.hasExperimentalMapKey) { + [self setExperimentalMapKey:other.experimentalMapKey]; + } + if (other.mutableUninterpretedOptionList.count > 0) { + if (result.mutableUninterpretedOptionList == nil) { + result.mutableUninterpretedOptionList = [NSMutableArray array]; + } + [result.mutableUninterpretedOptionList addObjectsFromArray:other.mutableUninterpretedOptionList]; + } + [self mergeExtensionFields:other]; + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (PBFieldOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (PBFieldOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 8: { + int32_t value = [input readEnum]; + if (PBFieldOptions_CTypeIsValidValue(value)) { + [self setCtype:value]; + } else { + [unknownFields mergeVarintField:1 value:value]; + } + break; + } + case 16: { + [self setPacked:[input readBool]]; + break; + } + case 24: { + [self setDeprecated:[input readBool]]; + break; + } + case 74: { + [self setExperimentalMapKey:[input readString]]; + break; + } + case 7994: { + PBUninterpretedOption_Builder* subBuilder = [PBUninterpretedOption builder]; + [input readMessage:subBuilder extensionRegistry:extensionRegistry]; + [self addUninterpretedOption:[subBuilder buildPartial]]; + break; + } + } + } +} +- (BOOL) hasCtype { + return result.hasCtype; +} +- (PBFieldOptions_CType) ctype { + return result.ctype; +} +- (PBFieldOptions_Builder*) setCtype:(PBFieldOptions_CType) value { + result.hasCtype = YES; + result.ctype = value; + return self; +} +- (PBFieldOptions_Builder*) clearCtype { + result.hasCtype = NO; + result.ctype = PBFieldOptions_CTypeCord; + return self; +} +- (BOOL) hasPacked { + return result.hasPacked; +} +- (BOOL) packed { + return result.packed; +} +- (PBFieldOptions_Builder*) setPacked:(BOOL) value { + result.hasPacked = YES; + result.packed = value; + return self; +} +- (PBFieldOptions_Builder*) clearPacked { + result.hasPacked = NO; + result.packed = NO; + return self; +} +- (BOOL) hasDeprecated { + return result.hasDeprecated; +} +- (BOOL) deprecated { + return result.deprecated; +} +- (PBFieldOptions_Builder*) setDeprecated:(BOOL) value { + result.hasDeprecated = YES; + result.deprecated = value; + return self; +} +- (PBFieldOptions_Builder*) clearDeprecated { + result.hasDeprecated = NO; + result.deprecated = NO; + return self; +} +- (BOOL) hasExperimentalMapKey { + return result.hasExperimentalMapKey; +} +- (NSString*) experimentalMapKey { + return result.experimentalMapKey; +} +- (PBFieldOptions_Builder*) setExperimentalMapKey:(NSString*) value { + result.hasExperimentalMapKey = YES; + result.experimentalMapKey = value; + return self; +} +- (PBFieldOptions_Builder*) clearExperimentalMapKey { + result.hasExperimentalMapKey = NO; + result.experimentalMapKey = @""; + return self; +} +- (NSArray*) uninterpretedOptionList { + if (result.mutableUninterpretedOptionList == nil) { return [NSArray array]; } + return result.mutableUninterpretedOptionList; +} +- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index { + return [result uninterpretedOptionAtIndex:index]; +} +- (PBFieldOptions_Builder*) replaceUninterpretedOptionAtIndex:(int32_t) index with:(PBUninterpretedOption*) value { + [result.mutableUninterpretedOptionList replaceObjectAtIndex:index withObject:value]; + return self; +} +- (PBFieldOptions_Builder*) addAllUninterpretedOption:(NSArray*) values { + if (result.mutableUninterpretedOptionList == nil) { + result.mutableUninterpretedOptionList = [NSMutableArray array]; + } + [result.mutableUninterpretedOptionList addObjectsFromArray:values]; + return self; +} +- (PBFieldOptions_Builder*) clearUninterpretedOptionList { + result.mutableUninterpretedOptionList = nil; + return self; +} +- (PBFieldOptions_Builder*) addUninterpretedOption:(PBUninterpretedOption*) value { + if (result.mutableUninterpretedOptionList == nil) { + result.mutableUninterpretedOptionList = [NSMutableArray array]; + } + [result.mutableUninterpretedOptionList addObject:value]; + return self; +} +@end + +@interface PBEnumOptions () +@property (retain) NSMutableArray* mutableUninterpretedOptionList; +@end + +@implementation PBEnumOptions + +@synthesize mutableUninterpretedOptionList; +- (void) dealloc { + self.mutableUninterpretedOptionList = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + } + return self; +} +static PBEnumOptions* defaultPBEnumOptionsInstance = nil; ++ (void) initialize { + if (self == [PBEnumOptions class]) { + defaultPBEnumOptionsInstance = [[PBEnumOptions alloc] init]; + } +} ++ (PBEnumOptions*) defaultInstance { + return defaultPBEnumOptionsInstance; +} +- (PBEnumOptions*) defaultInstance { + return defaultPBEnumOptionsInstance; +} +- (NSArray*) uninterpretedOptionList { + return mutableUninterpretedOptionList; +} +- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index { + id value = [mutableUninterpretedOptionList objectAtIndex:index]; + return value; +} +- (BOOL) isInitialized { + for (PBUninterpretedOption* element in self.uninterpretedOptionList) { + if (!element.isInitialized) { + return NO; + } + } + if (!self.extensionsAreInitialized) { + return NO; + } + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + for (PBUninterpretedOption* element in self.uninterpretedOptionList) { + [output writeMessage:999 value:element]; + } + [self writeExtensionsToCodedOutputStream:output + from:1000 + to:536870912]; + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + for (PBUninterpretedOption* element in self.uninterpretedOptionList) { + size += computeMessageSize(999, element); + } + size += [self extensionsSerializedSize]; + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (PBEnumOptions*) parseFromData:(NSData*) data { + return (PBEnumOptions*)[[[PBEnumOptions builder] mergeFromData:data] build]; +} ++ (PBEnumOptions*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBEnumOptions*)[[[PBEnumOptions builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (PBEnumOptions*) parseFromInputStream:(NSInputStream*) input { + return (PBEnumOptions*)[[[PBEnumOptions builder] mergeFromInputStream:input] build]; +} ++ (PBEnumOptions*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBEnumOptions*)[[[PBEnumOptions builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (PBEnumOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (PBEnumOptions*)[[[PBEnumOptions builder] mergeFromCodedInputStream:input] build]; +} ++ (PBEnumOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBEnumOptions*)[[[PBEnumOptions builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (PBEnumOptions_Builder*) builder { + return [[[PBEnumOptions_Builder alloc] init] autorelease]; +} ++ (PBEnumOptions_Builder*) builderWithPrototype:(PBEnumOptions*) prototype { + return [[PBEnumOptions builder] mergeFrom:prototype]; +} +- (PBEnumOptions_Builder*) builder { + return [PBEnumOptions builder]; +} +@end + +@interface PBEnumOptions_Builder() +@property (retain) PBEnumOptions* result; +@end + +@implementation PBEnumOptions_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[PBEnumOptions alloc] init] autorelease]; + } + return self; +} +- (PBExtendableMessage*) internalGetResult { + return result; +} +- (PBEnumOptions_Builder*) clear { + self.result = [[[PBEnumOptions alloc] init] autorelease]; + return self; +} +- (PBEnumOptions_Builder*) clone { + return [PBEnumOptions builderWithPrototype:result]; +} +- (PBEnumOptions*) defaultInstance { + return [PBEnumOptions defaultInstance]; +} +- (PBEnumOptions*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (PBEnumOptions*) buildPartial { + PBEnumOptions* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (PBEnumOptions_Builder*) mergeFrom:(PBEnumOptions*) other { + if (other == [PBEnumOptions defaultInstance]) { + return self; + } + if (other.mutableUninterpretedOptionList.count > 0) { + if (result.mutableUninterpretedOptionList == nil) { + result.mutableUninterpretedOptionList = [NSMutableArray array]; + } + [result.mutableUninterpretedOptionList addObjectsFromArray:other.mutableUninterpretedOptionList]; + } + [self mergeExtensionFields:other]; + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (PBEnumOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (PBEnumOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 7994: { + PBUninterpretedOption_Builder* subBuilder = [PBUninterpretedOption builder]; + [input readMessage:subBuilder extensionRegistry:extensionRegistry]; + [self addUninterpretedOption:[subBuilder buildPartial]]; + break; + } + } + } +} +- (NSArray*) uninterpretedOptionList { + if (result.mutableUninterpretedOptionList == nil) { return [NSArray array]; } + return result.mutableUninterpretedOptionList; +} +- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index { + return [result uninterpretedOptionAtIndex:index]; +} +- (PBEnumOptions_Builder*) replaceUninterpretedOptionAtIndex:(int32_t) index with:(PBUninterpretedOption*) value { + [result.mutableUninterpretedOptionList replaceObjectAtIndex:index withObject:value]; + return self; +} +- (PBEnumOptions_Builder*) addAllUninterpretedOption:(NSArray*) values { + if (result.mutableUninterpretedOptionList == nil) { + result.mutableUninterpretedOptionList = [NSMutableArray array]; + } + [result.mutableUninterpretedOptionList addObjectsFromArray:values]; + return self; +} +- (PBEnumOptions_Builder*) clearUninterpretedOptionList { + result.mutableUninterpretedOptionList = nil; + return self; +} +- (PBEnumOptions_Builder*) addUninterpretedOption:(PBUninterpretedOption*) value { + if (result.mutableUninterpretedOptionList == nil) { + result.mutableUninterpretedOptionList = [NSMutableArray array]; + } + [result.mutableUninterpretedOptionList addObject:value]; + return self; +} +@end + +@interface PBEnumValueOptions () +@property (retain) NSMutableArray* mutableUninterpretedOptionList; +@end + +@implementation PBEnumValueOptions + +@synthesize mutableUninterpretedOptionList; +- (void) dealloc { + self.mutableUninterpretedOptionList = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + } + return self; +} +static PBEnumValueOptions* defaultPBEnumValueOptionsInstance = nil; ++ (void) initialize { + if (self == [PBEnumValueOptions class]) { + defaultPBEnumValueOptionsInstance = [[PBEnumValueOptions alloc] init]; + } +} ++ (PBEnumValueOptions*) defaultInstance { + return defaultPBEnumValueOptionsInstance; +} +- (PBEnumValueOptions*) defaultInstance { + return defaultPBEnumValueOptionsInstance; +} +- (NSArray*) uninterpretedOptionList { + return mutableUninterpretedOptionList; +} +- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index { + id value = [mutableUninterpretedOptionList objectAtIndex:index]; + return value; +} +- (BOOL) isInitialized { + for (PBUninterpretedOption* element in self.uninterpretedOptionList) { + if (!element.isInitialized) { + return NO; + } + } + if (!self.extensionsAreInitialized) { + return NO; + } + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + for (PBUninterpretedOption* element in self.uninterpretedOptionList) { + [output writeMessage:999 value:element]; + } + [self writeExtensionsToCodedOutputStream:output + from:1000 + to:536870912]; + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + for (PBUninterpretedOption* element in self.uninterpretedOptionList) { + size += computeMessageSize(999, element); + } + size += [self extensionsSerializedSize]; + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (PBEnumValueOptions*) parseFromData:(NSData*) data { + return (PBEnumValueOptions*)[[[PBEnumValueOptions builder] mergeFromData:data] build]; +} ++ (PBEnumValueOptions*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBEnumValueOptions*)[[[PBEnumValueOptions builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (PBEnumValueOptions*) parseFromInputStream:(NSInputStream*) input { + return (PBEnumValueOptions*)[[[PBEnumValueOptions builder] mergeFromInputStream:input] build]; +} ++ (PBEnumValueOptions*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBEnumValueOptions*)[[[PBEnumValueOptions builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (PBEnumValueOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (PBEnumValueOptions*)[[[PBEnumValueOptions builder] mergeFromCodedInputStream:input] build]; +} ++ (PBEnumValueOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBEnumValueOptions*)[[[PBEnumValueOptions builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (PBEnumValueOptions_Builder*) builder { + return [[[PBEnumValueOptions_Builder alloc] init] autorelease]; +} ++ (PBEnumValueOptions_Builder*) builderWithPrototype:(PBEnumValueOptions*) prototype { + return [[PBEnumValueOptions builder] mergeFrom:prototype]; +} +- (PBEnumValueOptions_Builder*) builder { + return [PBEnumValueOptions builder]; +} +@end + +@interface PBEnumValueOptions_Builder() +@property (retain) PBEnumValueOptions* result; +@end + +@implementation PBEnumValueOptions_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[PBEnumValueOptions alloc] init] autorelease]; + } + return self; +} +- (PBExtendableMessage*) internalGetResult { + return result; +} +- (PBEnumValueOptions_Builder*) clear { + self.result = [[[PBEnumValueOptions alloc] init] autorelease]; + return self; +} +- (PBEnumValueOptions_Builder*) clone { + return [PBEnumValueOptions builderWithPrototype:result]; +} +- (PBEnumValueOptions*) defaultInstance { + return [PBEnumValueOptions defaultInstance]; +} +- (PBEnumValueOptions*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (PBEnumValueOptions*) buildPartial { + PBEnumValueOptions* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (PBEnumValueOptions_Builder*) mergeFrom:(PBEnumValueOptions*) other { + if (other == [PBEnumValueOptions defaultInstance]) { + return self; + } + if (other.mutableUninterpretedOptionList.count > 0) { + if (result.mutableUninterpretedOptionList == nil) { + result.mutableUninterpretedOptionList = [NSMutableArray array]; + } + [result.mutableUninterpretedOptionList addObjectsFromArray:other.mutableUninterpretedOptionList]; + } + [self mergeExtensionFields:other]; + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (PBEnumValueOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (PBEnumValueOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 7994: { + PBUninterpretedOption_Builder* subBuilder = [PBUninterpretedOption builder]; + [input readMessage:subBuilder extensionRegistry:extensionRegistry]; + [self addUninterpretedOption:[subBuilder buildPartial]]; + break; + } + } + } +} +- (NSArray*) uninterpretedOptionList { + if (result.mutableUninterpretedOptionList == nil) { return [NSArray array]; } + return result.mutableUninterpretedOptionList; +} +- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index { + return [result uninterpretedOptionAtIndex:index]; +} +- (PBEnumValueOptions_Builder*) replaceUninterpretedOptionAtIndex:(int32_t) index with:(PBUninterpretedOption*) value { + [result.mutableUninterpretedOptionList replaceObjectAtIndex:index withObject:value]; + return self; +} +- (PBEnumValueOptions_Builder*) addAllUninterpretedOption:(NSArray*) values { + if (result.mutableUninterpretedOptionList == nil) { + result.mutableUninterpretedOptionList = [NSMutableArray array]; + } + [result.mutableUninterpretedOptionList addObjectsFromArray:values]; + return self; +} +- (PBEnumValueOptions_Builder*) clearUninterpretedOptionList { + result.mutableUninterpretedOptionList = nil; + return self; +} +- (PBEnumValueOptions_Builder*) addUninterpretedOption:(PBUninterpretedOption*) value { + if (result.mutableUninterpretedOptionList == nil) { + result.mutableUninterpretedOptionList = [NSMutableArray array]; + } + [result.mutableUninterpretedOptionList addObject:value]; + return self; +} +@end + +@interface PBServiceOptions () +@property (retain) NSMutableArray* mutableUninterpretedOptionList; +@end + +@implementation PBServiceOptions + +@synthesize mutableUninterpretedOptionList; +- (void) dealloc { + self.mutableUninterpretedOptionList = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + } + return self; +} +static PBServiceOptions* defaultPBServiceOptionsInstance = nil; ++ (void) initialize { + if (self == [PBServiceOptions class]) { + defaultPBServiceOptionsInstance = [[PBServiceOptions alloc] init]; + } +} ++ (PBServiceOptions*) defaultInstance { + return defaultPBServiceOptionsInstance; +} +- (PBServiceOptions*) defaultInstance { + return defaultPBServiceOptionsInstance; +} +- (NSArray*) uninterpretedOptionList { + return mutableUninterpretedOptionList; +} +- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index { + id value = [mutableUninterpretedOptionList objectAtIndex:index]; + return value; +} +- (BOOL) isInitialized { + for (PBUninterpretedOption* element in self.uninterpretedOptionList) { + if (!element.isInitialized) { + return NO; + } + } + if (!self.extensionsAreInitialized) { + return NO; + } + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + for (PBUninterpretedOption* element in self.uninterpretedOptionList) { + [output writeMessage:999 value:element]; + } + [self writeExtensionsToCodedOutputStream:output + from:1000 + to:536870912]; + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + for (PBUninterpretedOption* element in self.uninterpretedOptionList) { + size += computeMessageSize(999, element); + } + size += [self extensionsSerializedSize]; + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (PBServiceOptions*) parseFromData:(NSData*) data { + return (PBServiceOptions*)[[[PBServiceOptions builder] mergeFromData:data] build]; +} ++ (PBServiceOptions*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBServiceOptions*)[[[PBServiceOptions builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (PBServiceOptions*) parseFromInputStream:(NSInputStream*) input { + return (PBServiceOptions*)[[[PBServiceOptions builder] mergeFromInputStream:input] build]; +} ++ (PBServiceOptions*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBServiceOptions*)[[[PBServiceOptions builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (PBServiceOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (PBServiceOptions*)[[[PBServiceOptions builder] mergeFromCodedInputStream:input] build]; +} ++ (PBServiceOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBServiceOptions*)[[[PBServiceOptions builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (PBServiceOptions_Builder*) builder { + return [[[PBServiceOptions_Builder alloc] init] autorelease]; +} ++ (PBServiceOptions_Builder*) builderWithPrototype:(PBServiceOptions*) prototype { + return [[PBServiceOptions builder] mergeFrom:prototype]; +} +- (PBServiceOptions_Builder*) builder { + return [PBServiceOptions builder]; +} +@end + +@interface PBServiceOptions_Builder() +@property (retain) PBServiceOptions* result; +@end + +@implementation PBServiceOptions_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[PBServiceOptions alloc] init] autorelease]; + } + return self; +} +- (PBExtendableMessage*) internalGetResult { + return result; +} +- (PBServiceOptions_Builder*) clear { + self.result = [[[PBServiceOptions alloc] init] autorelease]; + return self; +} +- (PBServiceOptions_Builder*) clone { + return [PBServiceOptions builderWithPrototype:result]; +} +- (PBServiceOptions*) defaultInstance { + return [PBServiceOptions defaultInstance]; +} +- (PBServiceOptions*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (PBServiceOptions*) buildPartial { + PBServiceOptions* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (PBServiceOptions_Builder*) mergeFrom:(PBServiceOptions*) other { + if (other == [PBServiceOptions defaultInstance]) { + return self; + } + if (other.mutableUninterpretedOptionList.count > 0) { + if (result.mutableUninterpretedOptionList == nil) { + result.mutableUninterpretedOptionList = [NSMutableArray array]; + } + [result.mutableUninterpretedOptionList addObjectsFromArray:other.mutableUninterpretedOptionList]; + } + [self mergeExtensionFields:other]; + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (PBServiceOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (PBServiceOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 7994: { + PBUninterpretedOption_Builder* subBuilder = [PBUninterpretedOption builder]; + [input readMessage:subBuilder extensionRegistry:extensionRegistry]; + [self addUninterpretedOption:[subBuilder buildPartial]]; + break; + } + } + } +} +- (NSArray*) uninterpretedOptionList { + if (result.mutableUninterpretedOptionList == nil) { return [NSArray array]; } + return result.mutableUninterpretedOptionList; +} +- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index { + return [result uninterpretedOptionAtIndex:index]; +} +- (PBServiceOptions_Builder*) replaceUninterpretedOptionAtIndex:(int32_t) index with:(PBUninterpretedOption*) value { + [result.mutableUninterpretedOptionList replaceObjectAtIndex:index withObject:value]; + return self; +} +- (PBServiceOptions_Builder*) addAllUninterpretedOption:(NSArray*) values { + if (result.mutableUninterpretedOptionList == nil) { + result.mutableUninterpretedOptionList = [NSMutableArray array]; + } + [result.mutableUninterpretedOptionList addObjectsFromArray:values]; + return self; +} +- (PBServiceOptions_Builder*) clearUninterpretedOptionList { + result.mutableUninterpretedOptionList = nil; + return self; +} +- (PBServiceOptions_Builder*) addUninterpretedOption:(PBUninterpretedOption*) value { + if (result.mutableUninterpretedOptionList == nil) { + result.mutableUninterpretedOptionList = [NSMutableArray array]; + } + [result.mutableUninterpretedOptionList addObject:value]; + return self; +} +@end + +@interface PBMethodOptions () +@property (retain) NSMutableArray* mutableUninterpretedOptionList; +@end + +@implementation PBMethodOptions + +@synthesize mutableUninterpretedOptionList; +- (void) dealloc { + self.mutableUninterpretedOptionList = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + } + return self; +} +static PBMethodOptions* defaultPBMethodOptionsInstance = nil; ++ (void) initialize { + if (self == [PBMethodOptions class]) { + defaultPBMethodOptionsInstance = [[PBMethodOptions alloc] init]; + } +} ++ (PBMethodOptions*) defaultInstance { + return defaultPBMethodOptionsInstance; +} +- (PBMethodOptions*) defaultInstance { + return defaultPBMethodOptionsInstance; +} +- (NSArray*) uninterpretedOptionList { + return mutableUninterpretedOptionList; +} +- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index { + id value = [mutableUninterpretedOptionList objectAtIndex:index]; + return value; +} +- (BOOL) isInitialized { + for (PBUninterpretedOption* element in self.uninterpretedOptionList) { + if (!element.isInitialized) { + return NO; + } + } + if (!self.extensionsAreInitialized) { + return NO; + } + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + for (PBUninterpretedOption* element in self.uninterpretedOptionList) { + [output writeMessage:999 value:element]; + } + [self writeExtensionsToCodedOutputStream:output + from:1000 + to:536870912]; + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + for (PBUninterpretedOption* element in self.uninterpretedOptionList) { + size += computeMessageSize(999, element); + } + size += [self extensionsSerializedSize]; + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (PBMethodOptions*) parseFromData:(NSData*) data { + return (PBMethodOptions*)[[[PBMethodOptions builder] mergeFromData:data] build]; +} ++ (PBMethodOptions*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBMethodOptions*)[[[PBMethodOptions builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (PBMethodOptions*) parseFromInputStream:(NSInputStream*) input { + return (PBMethodOptions*)[[[PBMethodOptions builder] mergeFromInputStream:input] build]; +} ++ (PBMethodOptions*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBMethodOptions*)[[[PBMethodOptions builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (PBMethodOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (PBMethodOptions*)[[[PBMethodOptions builder] mergeFromCodedInputStream:input] build]; +} ++ (PBMethodOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBMethodOptions*)[[[PBMethodOptions builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (PBMethodOptions_Builder*) builder { + return [[[PBMethodOptions_Builder alloc] init] autorelease]; +} ++ (PBMethodOptions_Builder*) builderWithPrototype:(PBMethodOptions*) prototype { + return [[PBMethodOptions builder] mergeFrom:prototype]; +} +- (PBMethodOptions_Builder*) builder { + return [PBMethodOptions builder]; +} +@end + +@interface PBMethodOptions_Builder() +@property (retain) PBMethodOptions* result; +@end + +@implementation PBMethodOptions_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[PBMethodOptions alloc] init] autorelease]; + } + return self; +} +- (PBExtendableMessage*) internalGetResult { + return result; +} +- (PBMethodOptions_Builder*) clear { + self.result = [[[PBMethodOptions alloc] init] autorelease]; + return self; +} +- (PBMethodOptions_Builder*) clone { + return [PBMethodOptions builderWithPrototype:result]; +} +- (PBMethodOptions*) defaultInstance { + return [PBMethodOptions defaultInstance]; +} +- (PBMethodOptions*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (PBMethodOptions*) buildPartial { + PBMethodOptions* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (PBMethodOptions_Builder*) mergeFrom:(PBMethodOptions*) other { + if (other == [PBMethodOptions defaultInstance]) { + return self; + } + if (other.mutableUninterpretedOptionList.count > 0) { + if (result.mutableUninterpretedOptionList == nil) { + result.mutableUninterpretedOptionList = [NSMutableArray array]; + } + [result.mutableUninterpretedOptionList addObjectsFromArray:other.mutableUninterpretedOptionList]; + } + [self mergeExtensionFields:other]; + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (PBMethodOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (PBMethodOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 7994: { + PBUninterpretedOption_Builder* subBuilder = [PBUninterpretedOption builder]; + [input readMessage:subBuilder extensionRegistry:extensionRegistry]; + [self addUninterpretedOption:[subBuilder buildPartial]]; + break; + } + } + } +} +- (NSArray*) uninterpretedOptionList { + if (result.mutableUninterpretedOptionList == nil) { return [NSArray array]; } + return result.mutableUninterpretedOptionList; +} +- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index { + return [result uninterpretedOptionAtIndex:index]; +} +- (PBMethodOptions_Builder*) replaceUninterpretedOptionAtIndex:(int32_t) index with:(PBUninterpretedOption*) value { + [result.mutableUninterpretedOptionList replaceObjectAtIndex:index withObject:value]; + return self; +} +- (PBMethodOptions_Builder*) addAllUninterpretedOption:(NSArray*) values { + if (result.mutableUninterpretedOptionList == nil) { + result.mutableUninterpretedOptionList = [NSMutableArray array]; + } + [result.mutableUninterpretedOptionList addObjectsFromArray:values]; + return self; +} +- (PBMethodOptions_Builder*) clearUninterpretedOptionList { + result.mutableUninterpretedOptionList = nil; + return self; +} +- (PBMethodOptions_Builder*) addUninterpretedOption:(PBUninterpretedOption*) value { + if (result.mutableUninterpretedOptionList == nil) { + result.mutableUninterpretedOptionList = [NSMutableArray array]; + } + [result.mutableUninterpretedOptionList addObject:value]; + return self; +} +@end + +@interface PBUninterpretedOption () +@property (retain) NSMutableArray* mutableNameList; +@property (retain) NSString* identifierValue; +@property int64_t positiveIntValue; +@property int64_t negativeIntValue; +@property Float64 doubleValue; +@property (retain) NSData* stringValue; +@end + +@implementation PBUninterpretedOption + +@synthesize mutableNameList; +- (BOOL) hasIdentifierValue { + return !!hasIdentifierValue_; +} +- (void) setHasIdentifierValue:(BOOL) value { + hasIdentifierValue_ = !!value; +} +@synthesize identifierValue; +- (BOOL) hasPositiveIntValue { + return !!hasPositiveIntValue_; +} +- (void) setHasPositiveIntValue:(BOOL) value { + hasPositiveIntValue_ = !!value; +} +@synthesize positiveIntValue; +- (BOOL) hasNegativeIntValue { + return !!hasNegativeIntValue_; +} +- (void) setHasNegativeIntValue:(BOOL) value { + hasNegativeIntValue_ = !!value; +} +@synthesize negativeIntValue; +- (BOOL) hasDoubleValue { + return !!hasDoubleValue_; +} +- (void) setHasDoubleValue:(BOOL) value { + hasDoubleValue_ = !!value; +} +@synthesize doubleValue; +- (BOOL) hasStringValue { + return !!hasStringValue_; +} +- (void) setHasStringValue:(BOOL) value { + hasStringValue_ = !!value; +} +@synthesize stringValue; +- (void) dealloc { + self.mutableNameList = nil; + self.identifierValue = nil; + self.stringValue = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.identifierValue = @""; + self.positiveIntValue = 0L; + self.negativeIntValue = 0L; + self.doubleValue = 0; + self.stringValue = [NSData data]; + } + return self; +} +static PBUninterpretedOption* defaultPBUninterpretedOptionInstance = nil; ++ (void) initialize { + if (self == [PBUninterpretedOption class]) { + defaultPBUninterpretedOptionInstance = [[PBUninterpretedOption alloc] init]; + } +} ++ (PBUninterpretedOption*) defaultInstance { + return defaultPBUninterpretedOptionInstance; +} +- (PBUninterpretedOption*) defaultInstance { + return defaultPBUninterpretedOptionInstance; +} +- (NSArray*) nameList { + return mutableNameList; +} +- (PBUninterpretedOption_NamePart*) nameAtIndex:(int32_t) index { + id value = [mutableNameList objectAtIndex:index]; + return value; +} +- (BOOL) isInitialized { + for (PBUninterpretedOption_NamePart* element in self.nameList) { + if (!element.isInitialized) { + return NO; + } + } + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + for (PBUninterpretedOption_NamePart* element in self.nameList) { + [output writeMessage:2 value:element]; + } + if (self.hasIdentifierValue) { + [output writeString:3 value:self.identifierValue]; + } + if (self.hasPositiveIntValue) { + [output writeUInt64:4 value:self.positiveIntValue]; + } + if (self.hasNegativeIntValue) { + [output writeInt64:5 value:self.negativeIntValue]; + } + if (self.hasDoubleValue) { + [output writeDouble:6 value:self.doubleValue]; + } + if (self.hasStringValue) { + [output writeData:7 value:self.stringValue]; + } + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + for (PBUninterpretedOption_NamePart* element in self.nameList) { + size += computeMessageSize(2, element); + } + if (self.hasIdentifierValue) { + size += computeStringSize(3, self.identifierValue); + } + if (self.hasPositiveIntValue) { + size += computeUInt64Size(4, self.positiveIntValue); + } + if (self.hasNegativeIntValue) { + size += computeInt64Size(5, self.negativeIntValue); + } + if (self.hasDoubleValue) { + size += computeDoubleSize(6, self.doubleValue); + } + if (self.hasStringValue) { + size += computeDataSize(7, self.stringValue); + } + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (PBUninterpretedOption*) parseFromData:(NSData*) data { + return (PBUninterpretedOption*)[[[PBUninterpretedOption builder] mergeFromData:data] build]; +} ++ (PBUninterpretedOption*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBUninterpretedOption*)[[[PBUninterpretedOption builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (PBUninterpretedOption*) parseFromInputStream:(NSInputStream*) input { + return (PBUninterpretedOption*)[[[PBUninterpretedOption builder] mergeFromInputStream:input] build]; +} ++ (PBUninterpretedOption*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBUninterpretedOption*)[[[PBUninterpretedOption builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (PBUninterpretedOption*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (PBUninterpretedOption*)[[[PBUninterpretedOption builder] mergeFromCodedInputStream:input] build]; +} ++ (PBUninterpretedOption*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBUninterpretedOption*)[[[PBUninterpretedOption builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (PBUninterpretedOption_Builder*) builder { + return [[[PBUninterpretedOption_Builder alloc] init] autorelease]; +} ++ (PBUninterpretedOption_Builder*) builderWithPrototype:(PBUninterpretedOption*) prototype { + return [[PBUninterpretedOption builder] mergeFrom:prototype]; +} +- (PBUninterpretedOption_Builder*) builder { + return [PBUninterpretedOption builder]; +} +@end + +@interface PBUninterpretedOption_NamePart () +@property (retain) NSString* namePart; +@property BOOL isExtension; +@end + +@implementation PBUninterpretedOption_NamePart + +- (BOOL) hasNamePart { + return !!hasNamePart_; +} +- (void) setHasNamePart:(BOOL) value { + hasNamePart_ = !!value; +} +@synthesize namePart; +- (BOOL) hasIsExtension { + return !!hasIsExtension_; +} +- (void) setHasIsExtension:(BOOL) value { + hasIsExtension_ = !!value; +} +- (BOOL) isExtension { + return !!isExtension_; +} +- (void) setIsExtension:(BOOL) value { + isExtension_ = !!value; +} +- (void) dealloc { + self.namePart = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.namePart = @""; + self.isExtension = NO; + } + return self; +} +static PBUninterpretedOption_NamePart* defaultPBUninterpretedOption_NamePartInstance = nil; ++ (void) initialize { + if (self == [PBUninterpretedOption_NamePart class]) { + defaultPBUninterpretedOption_NamePartInstance = [[PBUninterpretedOption_NamePart alloc] init]; + } +} ++ (PBUninterpretedOption_NamePart*) defaultInstance { + return defaultPBUninterpretedOption_NamePartInstance; +} +- (PBUninterpretedOption_NamePart*) defaultInstance { + return defaultPBUninterpretedOption_NamePartInstance; +} +- (BOOL) isInitialized { + if (!self.hasNamePart) { + return NO; + } + if (!self.hasIsExtension) { + return NO; + } + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + if (self.hasNamePart) { + [output writeString:1 value:self.namePart]; + } + if (self.hasIsExtension) { + [output writeBool:2 value:self.isExtension]; + } + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + if (self.hasNamePart) { + size += computeStringSize(1, self.namePart); + } + if (self.hasIsExtension) { + size += computeBoolSize(2, self.isExtension); + } + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (PBUninterpretedOption_NamePart*) parseFromData:(NSData*) data { + return (PBUninterpretedOption_NamePart*)[[[PBUninterpretedOption_NamePart builder] mergeFromData:data] build]; +} ++ (PBUninterpretedOption_NamePart*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBUninterpretedOption_NamePart*)[[[PBUninterpretedOption_NamePart builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (PBUninterpretedOption_NamePart*) parseFromInputStream:(NSInputStream*) input { + return (PBUninterpretedOption_NamePart*)[[[PBUninterpretedOption_NamePart builder] mergeFromInputStream:input] build]; +} ++ (PBUninterpretedOption_NamePart*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBUninterpretedOption_NamePart*)[[[PBUninterpretedOption_NamePart builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (PBUninterpretedOption_NamePart*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (PBUninterpretedOption_NamePart*)[[[PBUninterpretedOption_NamePart builder] mergeFromCodedInputStream:input] build]; +} ++ (PBUninterpretedOption_NamePart*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (PBUninterpretedOption_NamePart*)[[[PBUninterpretedOption_NamePart builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (PBUninterpretedOption_NamePart_Builder*) builder { + return [[[PBUninterpretedOption_NamePart_Builder alloc] init] autorelease]; +} ++ (PBUninterpretedOption_NamePart_Builder*) builderWithPrototype:(PBUninterpretedOption_NamePart*) prototype { + return [[PBUninterpretedOption_NamePart builder] mergeFrom:prototype]; +} +- (PBUninterpretedOption_NamePart_Builder*) builder { + return [PBUninterpretedOption_NamePart builder]; +} +@end + +@interface PBUninterpretedOption_NamePart_Builder() +@property (retain) PBUninterpretedOption_NamePart* result; +@end + +@implementation PBUninterpretedOption_NamePart_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[PBUninterpretedOption_NamePart alloc] init] autorelease]; + } + return self; +} +- (PBGeneratedMessage*) internalGetResult { + return result; +} +- (PBUninterpretedOption_NamePart_Builder*) clear { + self.result = [[[PBUninterpretedOption_NamePart alloc] init] autorelease]; + return self; +} +- (PBUninterpretedOption_NamePart_Builder*) clone { + return [PBUninterpretedOption_NamePart builderWithPrototype:result]; +} +- (PBUninterpretedOption_NamePart*) defaultInstance { + return [PBUninterpretedOption_NamePart defaultInstance]; +} +- (PBUninterpretedOption_NamePart*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (PBUninterpretedOption_NamePart*) buildPartial { + PBUninterpretedOption_NamePart* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (PBUninterpretedOption_NamePart_Builder*) mergeFrom:(PBUninterpretedOption_NamePart*) other { + if (other == [PBUninterpretedOption_NamePart defaultInstance]) { + return self; + } + if (other.hasNamePart) { + [self setNamePart:other.namePart]; + } + if (other.hasIsExtension) { + [self setIsExtension:other.isExtension]; + } + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (PBUninterpretedOption_NamePart_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (PBUninterpretedOption_NamePart_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 10: { + [self setNamePart:[input readString]]; + break; + } + case 16: { + [self setIsExtension:[input readBool]]; + break; + } + } + } +} +- (BOOL) hasNamePart { + return result.hasNamePart; +} +- (NSString*) namePart { + return result.namePart; +} +- (PBUninterpretedOption_NamePart_Builder*) setNamePart:(NSString*) value { + result.hasNamePart = YES; + result.namePart = value; + return self; +} +- (PBUninterpretedOption_NamePart_Builder*) clearNamePart { + result.hasNamePart = NO; + result.namePart = @""; + return self; +} +- (BOOL) hasIsExtension { + return result.hasIsExtension; +} +- (BOOL) isExtension { + return result.isExtension; +} +- (PBUninterpretedOption_NamePart_Builder*) setIsExtension:(BOOL) value { + result.hasIsExtension = YES; + result.isExtension = value; + return self; +} +- (PBUninterpretedOption_NamePart_Builder*) clearIsExtension { + result.hasIsExtension = NO; + result.isExtension = NO; + return self; +} +@end + +@interface PBUninterpretedOption_Builder() +@property (retain) PBUninterpretedOption* result; +@end + +@implementation PBUninterpretedOption_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[PBUninterpretedOption alloc] init] autorelease]; + } + return self; +} +- (PBGeneratedMessage*) internalGetResult { + return result; +} +- (PBUninterpretedOption_Builder*) clear { + self.result = [[[PBUninterpretedOption alloc] init] autorelease]; + return self; +} +- (PBUninterpretedOption_Builder*) clone { + return [PBUninterpretedOption builderWithPrototype:result]; +} +- (PBUninterpretedOption*) defaultInstance { + return [PBUninterpretedOption defaultInstance]; +} +- (PBUninterpretedOption*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (PBUninterpretedOption*) buildPartial { + PBUninterpretedOption* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (PBUninterpretedOption_Builder*) mergeFrom:(PBUninterpretedOption*) other { + if (other == [PBUninterpretedOption defaultInstance]) { + return self; + } + if (other.mutableNameList.count > 0) { + if (result.mutableNameList == nil) { + result.mutableNameList = [NSMutableArray array]; + } + [result.mutableNameList addObjectsFromArray:other.mutableNameList]; + } + if (other.hasIdentifierValue) { + [self setIdentifierValue:other.identifierValue]; + } + if (other.hasPositiveIntValue) { + [self setPositiveIntValue:other.positiveIntValue]; + } + if (other.hasNegativeIntValue) { + [self setNegativeIntValue:other.negativeIntValue]; + } + if (other.hasDoubleValue) { + [self setDoubleValue:other.doubleValue]; + } + if (other.hasStringValue) { + [self setStringValue:other.stringValue]; + } + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (PBUninterpretedOption_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (PBUninterpretedOption_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 18: { + PBUninterpretedOption_NamePart_Builder* subBuilder = [PBUninterpretedOption_NamePart builder]; + [input readMessage:subBuilder extensionRegistry:extensionRegistry]; + [self addName:[subBuilder buildPartial]]; + break; + } + case 26: { + [self setIdentifierValue:[input readString]]; + break; + } + case 32: { + [self setPositiveIntValue:[input readUInt64]]; + break; + } + case 40: { + [self setNegativeIntValue:[input readInt64]]; + break; + } + case 49: { + [self setDoubleValue:[input readDouble]]; + break; + } + case 58: { + [self setStringValue:[input readData]]; + break; + } + } + } +} +- (NSArray*) nameList { + if (result.mutableNameList == nil) { return [NSArray array]; } + return result.mutableNameList; +} +- (PBUninterpretedOption_NamePart*) nameAtIndex:(int32_t) index { + return [result nameAtIndex:index]; +} +- (PBUninterpretedOption_Builder*) replaceNameAtIndex:(int32_t) index with:(PBUninterpretedOption_NamePart*) value { + [result.mutableNameList replaceObjectAtIndex:index withObject:value]; + return self; +} +- (PBUninterpretedOption_Builder*) addAllName:(NSArray*) values { + if (result.mutableNameList == nil) { + result.mutableNameList = [NSMutableArray array]; + } + [result.mutableNameList addObjectsFromArray:values]; + return self; +} +- (PBUninterpretedOption_Builder*) clearNameList { + result.mutableNameList = nil; + return self; +} +- (PBUninterpretedOption_Builder*) addName:(PBUninterpretedOption_NamePart*) value { + if (result.mutableNameList == nil) { + result.mutableNameList = [NSMutableArray array]; + } + [result.mutableNameList addObject:value]; + return self; +} +- (BOOL) hasIdentifierValue { + return result.hasIdentifierValue; +} +- (NSString*) identifierValue { + return result.identifierValue; +} +- (PBUninterpretedOption_Builder*) setIdentifierValue:(NSString*) value { + result.hasIdentifierValue = YES; + result.identifierValue = value; + return self; +} +- (PBUninterpretedOption_Builder*) clearIdentifierValue { + result.hasIdentifierValue = NO; + result.identifierValue = @""; + return self; +} +- (BOOL) hasPositiveIntValue { + return result.hasPositiveIntValue; +} +- (int64_t) positiveIntValue { + return result.positiveIntValue; +} +- (PBUninterpretedOption_Builder*) setPositiveIntValue:(int64_t) value { + result.hasPositiveIntValue = YES; + result.positiveIntValue = value; + return self; +} +- (PBUninterpretedOption_Builder*) clearPositiveIntValue { + result.hasPositiveIntValue = NO; + result.positiveIntValue = 0L; + return self; +} +- (BOOL) hasNegativeIntValue { + return result.hasNegativeIntValue; +} +- (int64_t) negativeIntValue { + return result.negativeIntValue; +} +- (PBUninterpretedOption_Builder*) setNegativeIntValue:(int64_t) value { + result.hasNegativeIntValue = YES; + result.negativeIntValue = value; + return self; +} +- (PBUninterpretedOption_Builder*) clearNegativeIntValue { + result.hasNegativeIntValue = NO; + result.negativeIntValue = 0L; + return self; +} +- (BOOL) hasDoubleValue { + return result.hasDoubleValue; +} +- (Float64) doubleValue { + return result.doubleValue; +} +- (PBUninterpretedOption_Builder*) setDoubleValue:(Float64) value { + result.hasDoubleValue = YES; + result.doubleValue = value; + return self; +} +- (PBUninterpretedOption_Builder*) clearDoubleValue { + result.hasDoubleValue = NO; + result.doubleValue = 0; + return self; +} +- (BOOL) hasStringValue { + return result.hasStringValue; +} +- (NSData*) stringValue { + return result.stringValue; +} +- (PBUninterpretedOption_Builder*) setStringValue:(NSData*) value { + result.hasStringValue = YES; + result.stringValue = value; + return self; +} +- (PBUninterpretedOption_Builder*) clearStringValue { + result.hasStringValue = NO; + result.stringValue = [NSData data]; + return self; +} +@end + diff --git a/proto/Mumble.pb.h b/proto/Mumble.pb.h new file mode 100644 index 0000000..1c96eb9 --- /dev/null +++ b/proto/Mumble.pb.h @@ -0,0 +1,2774 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! + +#import "ProtocolBuffers.h" + +#import "ObjectivecDescriptor.pb.h" + +@class MPACL; +@class MPACL_Builder; +@class MPACL_ChanACL; +@class MPACL_ChanACL_Builder; +@class MPACL_ChanGroup; +@class MPACL_ChanGroup_Builder; +@class MPAuthenticate; +@class MPAuthenticate_Builder; +@class MPBanList; +@class MPBanList_BanEntry; +@class MPBanList_BanEntry_Builder; +@class MPBanList_Builder; +@class MPChannelRemove; +@class MPChannelRemove_Builder; +@class MPChannelState; +@class MPChannelState_Builder; +@class MPCodecVersion; +@class MPCodecVersion_Builder; +@class MPContextAction; +@class MPContextActionAdd; +@class MPContextActionAdd_Builder; +@class MPContextAction_Builder; +@class MPCryptSetup; +@class MPCryptSetup_Builder; +@class MPPermissionDenied; +@class MPPermissionDenied_Builder; +@class MPPermissionQuery; +@class MPPermissionQuery_Builder; +@class MPPing; +@class MPPing_Builder; +@class MPQueryUsers; +@class MPQueryUsers_Builder; +@class MPReject; +@class MPReject_Builder; +@class MPRequestBlob; +@class MPRequestBlob_Builder; +@class MPServerConfig; +@class MPServerConfig_Builder; +@class MPServerSync; +@class MPServerSync_Builder; +@class MPTextMessage; +@class MPTextMessage_Builder; +@class MPUDPTunnel; +@class MPUDPTunnel_Builder; +@class MPUserList; +@class MPUserList_Builder; +@class MPUserList_User; +@class MPUserList_User_Builder; +@class MPUserRemove; +@class MPUserRemove_Builder; +@class MPUserState; +@class MPUserState_Builder; +@class MPUserStats; +@class MPUserStats_Builder; +@class MPUserStats_Stats; +@class MPUserStats_Stats_Builder; +@class MPVersion; +@class MPVersion_Builder; +@class MPVoiceTarget; +@class MPVoiceTarget_Builder; +@class MPVoiceTarget_Target; +@class MPVoiceTarget_Target_Builder; +@class ObjectiveCFileOptions; +@class ObjectiveCFileOptions_Builder; +@class PBDescriptorProto; +@class PBDescriptorProto_Builder; +@class PBDescriptorProto_ExtensionRange; +@class PBDescriptorProto_ExtensionRange_Builder; +@class PBEnumDescriptorProto; +@class PBEnumDescriptorProto_Builder; +@class PBEnumOptions; +@class PBEnumOptions_Builder; +@class PBEnumValueDescriptorProto; +@class PBEnumValueDescriptorProto_Builder; +@class PBEnumValueOptions; +@class PBEnumValueOptions_Builder; +@class PBFieldDescriptorProto; +@class PBFieldDescriptorProto_Builder; +@class PBFieldOptions; +@class PBFieldOptions_Builder; +@class PBFileDescriptorProto; +@class PBFileDescriptorProto_Builder; +@class PBFileDescriptorSet; +@class PBFileDescriptorSet_Builder; +@class PBFileOptions; +@class PBFileOptions_Builder; +@class PBMessageOptions; +@class PBMessageOptions_Builder; +@class PBMethodDescriptorProto; +@class PBMethodDescriptorProto_Builder; +@class PBMethodOptions; +@class PBMethodOptions_Builder; +@class PBServiceDescriptorProto; +@class PBServiceDescriptorProto_Builder; +@class PBServiceOptions; +@class PBServiceOptions_Builder; +@class PBUninterpretedOption; +@class PBUninterpretedOption_Builder; +@class PBUninterpretedOption_NamePart; +@class PBUninterpretedOption_NamePart_Builder; +typedef enum { + MPReject_RejectTypeNone = 0, + MPReject_RejectTypeWrongVersion = 1, + MPReject_RejectTypeInvalidUsername = 2, + MPReject_RejectTypeWrongUserPw = 3, + MPReject_RejectTypeWrongServerPw = 4, + MPReject_RejectTypeUsernameInUse = 5, + MPReject_RejectTypeServerFull = 6, + MPReject_RejectTypeNoCertificate = 7, +} MPReject_RejectType; + +BOOL MPReject_RejectTypeIsValidValue(MPReject_RejectType value); + +typedef enum { + MPPermissionDenied_DenyTypeText = 0, + MPPermissionDenied_DenyTypePermission = 1, + MPPermissionDenied_DenyTypeSuperUser = 2, + MPPermissionDenied_DenyTypeChannelName = 3, + MPPermissionDenied_DenyTypeTextTooLong = 4, + MPPermissionDenied_DenyTypeH9K = 5, + MPPermissionDenied_DenyTypeTemporaryChannel = 6, + MPPermissionDenied_DenyTypeMissingCertificate = 7, + MPPermissionDenied_DenyTypeUserName = 8, + MPPermissionDenied_DenyTypeChannelFull = 9, +} MPPermissionDenied_DenyType; + +BOOL MPPermissionDenied_DenyTypeIsValidValue(MPPermissionDenied_DenyType value); + +typedef enum { + MPContextActionAdd_ContextServer = 1, + MPContextActionAdd_ContextChannel = 2, + MPContextActionAdd_ContextUser = 4, +} MPContextActionAdd_Context; + +BOOL MPContextActionAdd_ContextIsValidValue(MPContextActionAdd_Context value); + + +@interface MPMumbleRoot : NSObject { +} ++ (PBExtensionRegistry*) extensionRegistry; ++ (void) registerAllExtensions:(PBMutableExtensionRegistry*) registry; +@end + +@interface MPVersion : PBGeneratedMessage { +@private + BOOL hasRelease_:1; + BOOL hasOs_:1; + BOOL hasOsVersion_:1; + BOOL hasVersion_:1; + NSString* release; + NSString* os; + NSString* osVersion; + int32_t version; +} +- (BOOL) hasVersion; +- (BOOL) hasRelease; +- (BOOL) hasOs; +- (BOOL) hasOsVersion; +@property (readonly) int32_t version; +@property (readonly, retain) NSString* release; +@property (readonly, retain) NSString* os; +@property (readonly, retain) NSString* osVersion; + ++ (MPVersion*) defaultInstance; +- (MPVersion*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (MPVersion_Builder*) builder; ++ (MPVersion_Builder*) builder; ++ (MPVersion_Builder*) builderWithPrototype:(MPVersion*) prototype; + ++ (MPVersion*) parseFromData:(NSData*) data; ++ (MPVersion*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPVersion*) parseFromInputStream:(NSInputStream*) input; ++ (MPVersion*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPVersion*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (MPVersion*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface MPVersion_Builder : PBGeneratedMessage_Builder { +@private + MPVersion* result; +} + +- (MPVersion*) defaultInstance; + +- (MPVersion_Builder*) clear; +- (MPVersion_Builder*) clone; + +- (MPVersion*) build; +- (MPVersion*) buildPartial; + +- (MPVersion_Builder*) mergeFrom:(MPVersion*) other; +- (MPVersion_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (MPVersion_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (BOOL) hasVersion; +- (int32_t) version; +- (MPVersion_Builder*) setVersion:(int32_t) value; +- (MPVersion_Builder*) clearVersion; + +- (BOOL) hasRelease; +- (NSString*) release; +- (MPVersion_Builder*) setRelease:(NSString*) value; +- (MPVersion_Builder*) clearRelease; + +- (BOOL) hasOs; +- (NSString*) os; +- (MPVersion_Builder*) setOs:(NSString*) value; +- (MPVersion_Builder*) clearOs; + +- (BOOL) hasOsVersion; +- (NSString*) osVersion; +- (MPVersion_Builder*) setOsVersion:(NSString*) value; +- (MPVersion_Builder*) clearOsVersion; +@end + +@interface MPUDPTunnel : PBGeneratedMessage { +@private + BOOL hasPacket_:1; + NSData* packet; +} +- (BOOL) hasPacket; +@property (readonly, retain) NSData* packet; + ++ (MPUDPTunnel*) defaultInstance; +- (MPUDPTunnel*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (MPUDPTunnel_Builder*) builder; ++ (MPUDPTunnel_Builder*) builder; ++ (MPUDPTunnel_Builder*) builderWithPrototype:(MPUDPTunnel*) prototype; + ++ (MPUDPTunnel*) parseFromData:(NSData*) data; ++ (MPUDPTunnel*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPUDPTunnel*) parseFromInputStream:(NSInputStream*) input; ++ (MPUDPTunnel*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPUDPTunnel*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (MPUDPTunnel*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface MPUDPTunnel_Builder : PBGeneratedMessage_Builder { +@private + MPUDPTunnel* result; +} + +- (MPUDPTunnel*) defaultInstance; + +- (MPUDPTunnel_Builder*) clear; +- (MPUDPTunnel_Builder*) clone; + +- (MPUDPTunnel*) build; +- (MPUDPTunnel*) buildPartial; + +- (MPUDPTunnel_Builder*) mergeFrom:(MPUDPTunnel*) other; +- (MPUDPTunnel_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (MPUDPTunnel_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (BOOL) hasPacket; +- (NSData*) packet; +- (MPUDPTunnel_Builder*) setPacket:(NSData*) value; +- (MPUDPTunnel_Builder*) clearPacket; +@end + +@interface MPAuthenticate : PBGeneratedMessage { +@private + BOOL hasUsername_:1; + BOOL hasPassword_:1; + NSString* username; + NSString* password; + NSMutableArray* mutableCeltVersionsList; + NSMutableArray* mutableTokensList; +} +- (BOOL) hasUsername; +- (BOOL) hasPassword; +@property (readonly, retain) NSString* username; +@property (readonly, retain) NSString* password; +- (NSArray*) tokensList; +- (NSString*) tokensAtIndex:(int32_t) index; +- (NSArray*) celtVersionsList; +- (int32_t) celtVersionsAtIndex:(int32_t) index; + ++ (MPAuthenticate*) defaultInstance; +- (MPAuthenticate*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (MPAuthenticate_Builder*) builder; ++ (MPAuthenticate_Builder*) builder; ++ (MPAuthenticate_Builder*) builderWithPrototype:(MPAuthenticate*) prototype; + ++ (MPAuthenticate*) parseFromData:(NSData*) data; ++ (MPAuthenticate*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPAuthenticate*) parseFromInputStream:(NSInputStream*) input; ++ (MPAuthenticate*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPAuthenticate*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (MPAuthenticate*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface MPAuthenticate_Builder : PBGeneratedMessage_Builder { +@private + MPAuthenticate* result; +} + +- (MPAuthenticate*) defaultInstance; + +- (MPAuthenticate_Builder*) clear; +- (MPAuthenticate_Builder*) clone; + +- (MPAuthenticate*) build; +- (MPAuthenticate*) buildPartial; + +- (MPAuthenticate_Builder*) mergeFrom:(MPAuthenticate*) other; +- (MPAuthenticate_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (MPAuthenticate_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (BOOL) hasUsername; +- (NSString*) username; +- (MPAuthenticate_Builder*) setUsername:(NSString*) value; +- (MPAuthenticate_Builder*) clearUsername; + +- (BOOL) hasPassword; +- (NSString*) password; +- (MPAuthenticate_Builder*) setPassword:(NSString*) value; +- (MPAuthenticate_Builder*) clearPassword; + +- (NSArray*) tokensList; +- (NSString*) tokensAtIndex:(int32_t) index; +- (MPAuthenticate_Builder*) replaceTokensAtIndex:(int32_t) index with:(NSString*) value; +- (MPAuthenticate_Builder*) addTokens:(NSString*) value; +- (MPAuthenticate_Builder*) addAllTokens:(NSArray*) values; +- (MPAuthenticate_Builder*) clearTokensList; + +- (NSArray*) celtVersionsList; +- (int32_t) celtVersionsAtIndex:(int32_t) index; +- (MPAuthenticate_Builder*) replaceCeltVersionsAtIndex:(int32_t) index with:(int32_t) value; +- (MPAuthenticate_Builder*) addCeltVersions:(int32_t) value; +- (MPAuthenticate_Builder*) addAllCeltVersions:(NSArray*) values; +- (MPAuthenticate_Builder*) clearCeltVersionsList; +@end + +@interface MPPing : PBGeneratedMessage { +@private + BOOL hasUdpPingAvg_:1; + BOOL hasUdpPingVar_:1; + BOOL hasTcpPingAvg_:1; + BOOL hasTcpPingVar_:1; + BOOL hasTimestamp_:1; + BOOL hasGood_:1; + BOOL hasLate_:1; + BOOL hasLost_:1; + BOOL hasResync_:1; + BOOL hasUdpPackets_:1; + BOOL hasTcpPackets_:1; + Float32 udpPingAvg; + Float32 udpPingVar; + Float32 tcpPingAvg; + Float32 tcpPingVar; + int64_t timestamp; + int32_t good; + int32_t late; + int32_t lost; + int32_t resync; + int32_t udpPackets; + int32_t tcpPackets; +} +- (BOOL) hasTimestamp; +- (BOOL) hasGood; +- (BOOL) hasLate; +- (BOOL) hasLost; +- (BOOL) hasResync; +- (BOOL) hasUdpPackets; +- (BOOL) hasTcpPackets; +- (BOOL) hasUdpPingAvg; +- (BOOL) hasUdpPingVar; +- (BOOL) hasTcpPingAvg; +- (BOOL) hasTcpPingVar; +@property (readonly) int64_t timestamp; +@property (readonly) int32_t good; +@property (readonly) int32_t late; +@property (readonly) int32_t lost; +@property (readonly) int32_t resync; +@property (readonly) int32_t udpPackets; +@property (readonly) int32_t tcpPackets; +@property (readonly) Float32 udpPingAvg; +@property (readonly) Float32 udpPingVar; +@property (readonly) Float32 tcpPingAvg; +@property (readonly) Float32 tcpPingVar; + ++ (MPPing*) defaultInstance; +- (MPPing*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (MPPing_Builder*) builder; ++ (MPPing_Builder*) builder; ++ (MPPing_Builder*) builderWithPrototype:(MPPing*) prototype; + ++ (MPPing*) parseFromData:(NSData*) data; ++ (MPPing*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPPing*) parseFromInputStream:(NSInputStream*) input; ++ (MPPing*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPPing*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (MPPing*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface MPPing_Builder : PBGeneratedMessage_Builder { +@private + MPPing* result; +} + +- (MPPing*) defaultInstance; + +- (MPPing_Builder*) clear; +- (MPPing_Builder*) clone; + +- (MPPing*) build; +- (MPPing*) buildPartial; + +- (MPPing_Builder*) mergeFrom:(MPPing*) other; +- (MPPing_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (MPPing_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (BOOL) hasTimestamp; +- (int64_t) timestamp; +- (MPPing_Builder*) setTimestamp:(int64_t) value; +- (MPPing_Builder*) clearTimestamp; + +- (BOOL) hasGood; +- (int32_t) good; +- (MPPing_Builder*) setGood:(int32_t) value; +- (MPPing_Builder*) clearGood; + +- (BOOL) hasLate; +- (int32_t) late; +- (MPPing_Builder*) setLate:(int32_t) value; +- (MPPing_Builder*) clearLate; + +- (BOOL) hasLost; +- (int32_t) lost; +- (MPPing_Builder*) setLost:(int32_t) value; +- (MPPing_Builder*) clearLost; + +- (BOOL) hasResync; +- (int32_t) resync; +- (MPPing_Builder*) setResync:(int32_t) value; +- (MPPing_Builder*) clearResync; + +- (BOOL) hasUdpPackets; +- (int32_t) udpPackets; +- (MPPing_Builder*) setUdpPackets:(int32_t) value; +- (MPPing_Builder*) clearUdpPackets; + +- (BOOL) hasTcpPackets; +- (int32_t) tcpPackets; +- (MPPing_Builder*) setTcpPackets:(int32_t) value; +- (MPPing_Builder*) clearTcpPackets; + +- (BOOL) hasUdpPingAvg; +- (Float32) udpPingAvg; +- (MPPing_Builder*) setUdpPingAvg:(Float32) value; +- (MPPing_Builder*) clearUdpPingAvg; + +- (BOOL) hasUdpPingVar; +- (Float32) udpPingVar; +- (MPPing_Builder*) setUdpPingVar:(Float32) value; +- (MPPing_Builder*) clearUdpPingVar; + +- (BOOL) hasTcpPingAvg; +- (Float32) tcpPingAvg; +- (MPPing_Builder*) setTcpPingAvg:(Float32) value; +- (MPPing_Builder*) clearTcpPingAvg; + +- (BOOL) hasTcpPingVar; +- (Float32) tcpPingVar; +- (MPPing_Builder*) setTcpPingVar:(Float32) value; +- (MPPing_Builder*) clearTcpPingVar; +@end + +@interface MPReject : PBGeneratedMessage { +@private + BOOL hasReason_:1; + BOOL hasType_:1; + NSString* reason; + MPReject_RejectType type; +} +- (BOOL) hasType; +- (BOOL) hasReason; +@property (readonly) MPReject_RejectType type; +@property (readonly, retain) NSString* reason; + ++ (MPReject*) defaultInstance; +- (MPReject*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (MPReject_Builder*) builder; ++ (MPReject_Builder*) builder; ++ (MPReject_Builder*) builderWithPrototype:(MPReject*) prototype; + ++ (MPReject*) parseFromData:(NSData*) data; ++ (MPReject*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPReject*) parseFromInputStream:(NSInputStream*) input; ++ (MPReject*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPReject*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (MPReject*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface MPReject_Builder : PBGeneratedMessage_Builder { +@private + MPReject* result; +} + +- (MPReject*) defaultInstance; + +- (MPReject_Builder*) clear; +- (MPReject_Builder*) clone; + +- (MPReject*) build; +- (MPReject*) buildPartial; + +- (MPReject_Builder*) mergeFrom:(MPReject*) other; +- (MPReject_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (MPReject_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (BOOL) hasType; +- (MPReject_RejectType) type; +- (MPReject_Builder*) setType:(MPReject_RejectType) value; +- (MPReject_Builder*) clearType; + +- (BOOL) hasReason; +- (NSString*) reason; +- (MPReject_Builder*) setReason:(NSString*) value; +- (MPReject_Builder*) clearReason; +@end + +@interface MPServerConfig : PBGeneratedMessage { +@private + BOOL hasAllowHtml_:1; + BOOL hasWelcomeText_:1; + BOOL hasMaxBandwidth_:1; + BOOL hasMessageLength_:1; + BOOL hasImageMessageLength_:1; + BOOL allowHtml_:1; + NSString* welcomeText; + int32_t maxBandwidth; + int32_t messageLength; + int32_t imageMessageLength; +} +- (BOOL) hasMaxBandwidth; +- (BOOL) hasWelcomeText; +- (BOOL) hasAllowHtml; +- (BOOL) hasMessageLength; +- (BOOL) hasImageMessageLength; +@property (readonly) int32_t maxBandwidth; +@property (readonly, retain) NSString* welcomeText; +- (BOOL) allowHtml; +@property (readonly) int32_t messageLength; +@property (readonly) int32_t imageMessageLength; + ++ (MPServerConfig*) defaultInstance; +- (MPServerConfig*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (MPServerConfig_Builder*) builder; ++ (MPServerConfig_Builder*) builder; ++ (MPServerConfig_Builder*) builderWithPrototype:(MPServerConfig*) prototype; + ++ (MPServerConfig*) parseFromData:(NSData*) data; ++ (MPServerConfig*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPServerConfig*) parseFromInputStream:(NSInputStream*) input; ++ (MPServerConfig*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPServerConfig*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (MPServerConfig*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface MPServerConfig_Builder : PBGeneratedMessage_Builder { +@private + MPServerConfig* result; +} + +- (MPServerConfig*) defaultInstance; + +- (MPServerConfig_Builder*) clear; +- (MPServerConfig_Builder*) clone; + +- (MPServerConfig*) build; +- (MPServerConfig*) buildPartial; + +- (MPServerConfig_Builder*) mergeFrom:(MPServerConfig*) other; +- (MPServerConfig_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (MPServerConfig_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (BOOL) hasMaxBandwidth; +- (int32_t) maxBandwidth; +- (MPServerConfig_Builder*) setMaxBandwidth:(int32_t) value; +- (MPServerConfig_Builder*) clearMaxBandwidth; + +- (BOOL) hasWelcomeText; +- (NSString*) welcomeText; +- (MPServerConfig_Builder*) setWelcomeText:(NSString*) value; +- (MPServerConfig_Builder*) clearWelcomeText; + +- (BOOL) hasAllowHtml; +- (BOOL) allowHtml; +- (MPServerConfig_Builder*) setAllowHtml:(BOOL) value; +- (MPServerConfig_Builder*) clearAllowHtml; + +- (BOOL) hasMessageLength; +- (int32_t) messageLength; +- (MPServerConfig_Builder*) setMessageLength:(int32_t) value; +- (MPServerConfig_Builder*) clearMessageLength; + +- (BOOL) hasImageMessageLength; +- (int32_t) imageMessageLength; +- (MPServerConfig_Builder*) setImageMessageLength:(int32_t) value; +- (MPServerConfig_Builder*) clearImageMessageLength; +@end + +@interface MPServerSync : PBGeneratedMessage { +@private + BOOL hasPermissions_:1; + BOOL hasWelcomeText_:1; + BOOL hasSession_:1; + BOOL hasMaxBandwidth_:1; + int64_t permissions; + NSString* welcomeText; + int32_t session; + int32_t maxBandwidth; +} +- (BOOL) hasSession; +- (BOOL) hasMaxBandwidth; +- (BOOL) hasWelcomeText; +- (BOOL) hasPermissions; +@property (readonly) int32_t session; +@property (readonly) int32_t maxBandwidth; +@property (readonly, retain) NSString* welcomeText; +@property (readonly) int64_t permissions; + ++ (MPServerSync*) defaultInstance; +- (MPServerSync*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (MPServerSync_Builder*) builder; ++ (MPServerSync_Builder*) builder; ++ (MPServerSync_Builder*) builderWithPrototype:(MPServerSync*) prototype; + ++ (MPServerSync*) parseFromData:(NSData*) data; ++ (MPServerSync*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPServerSync*) parseFromInputStream:(NSInputStream*) input; ++ (MPServerSync*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPServerSync*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (MPServerSync*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface MPServerSync_Builder : PBGeneratedMessage_Builder { +@private + MPServerSync* result; +} + +- (MPServerSync*) defaultInstance; + +- (MPServerSync_Builder*) clear; +- (MPServerSync_Builder*) clone; + +- (MPServerSync*) build; +- (MPServerSync*) buildPartial; + +- (MPServerSync_Builder*) mergeFrom:(MPServerSync*) other; +- (MPServerSync_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (MPServerSync_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (BOOL) hasSession; +- (int32_t) session; +- (MPServerSync_Builder*) setSession:(int32_t) value; +- (MPServerSync_Builder*) clearSession; + +- (BOOL) hasMaxBandwidth; +- (int32_t) maxBandwidth; +- (MPServerSync_Builder*) setMaxBandwidth:(int32_t) value; +- (MPServerSync_Builder*) clearMaxBandwidth; + +- (BOOL) hasWelcomeText; +- (NSString*) welcomeText; +- (MPServerSync_Builder*) setWelcomeText:(NSString*) value; +- (MPServerSync_Builder*) clearWelcomeText; + +- (BOOL) hasPermissions; +- (int64_t) permissions; +- (MPServerSync_Builder*) setPermissions:(int64_t) value; +- (MPServerSync_Builder*) clearPermissions; +@end + +@interface MPChannelRemove : PBGeneratedMessage { +@private + BOOL hasChannelId_:1; + int32_t channelId; +} +- (BOOL) hasChannelId; +@property (readonly) int32_t channelId; + ++ (MPChannelRemove*) defaultInstance; +- (MPChannelRemove*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (MPChannelRemove_Builder*) builder; ++ (MPChannelRemove_Builder*) builder; ++ (MPChannelRemove_Builder*) builderWithPrototype:(MPChannelRemove*) prototype; + ++ (MPChannelRemove*) parseFromData:(NSData*) data; ++ (MPChannelRemove*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPChannelRemove*) parseFromInputStream:(NSInputStream*) input; ++ (MPChannelRemove*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPChannelRemove*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (MPChannelRemove*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface MPChannelRemove_Builder : PBGeneratedMessage_Builder { +@private + MPChannelRemove* result; +} + +- (MPChannelRemove*) defaultInstance; + +- (MPChannelRemove_Builder*) clear; +- (MPChannelRemove_Builder*) clone; + +- (MPChannelRemove*) build; +- (MPChannelRemove*) buildPartial; + +- (MPChannelRemove_Builder*) mergeFrom:(MPChannelRemove*) other; +- (MPChannelRemove_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (MPChannelRemove_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (BOOL) hasChannelId; +- (int32_t) channelId; +- (MPChannelRemove_Builder*) setChannelId:(int32_t) value; +- (MPChannelRemove_Builder*) clearChannelId; +@end + +@interface MPChannelState : PBGeneratedMessage { +@private + BOOL hasTemporary_:1; + BOOL hasPosition_:1; + BOOL hasName_:1; + BOOL hasDescription_:1; + BOOL hasDescriptionHash_:1; + BOOL hasChannelId_:1; + BOOL hasParent_:1; + BOOL temporary_:1; + int32_t position; + NSString* name; + NSString* description; + NSData* descriptionHash; + int32_t channelId; + int32_t parent; + NSMutableArray* mutableLinksList; + NSMutableArray* mutableLinksAddList; + NSMutableArray* mutableLinksRemoveList; +} +- (BOOL) hasChannelId; +- (BOOL) hasParent; +- (BOOL) hasName; +- (BOOL) hasDescription; +- (BOOL) hasTemporary; +- (BOOL) hasPosition; +- (BOOL) hasDescriptionHash; +@property (readonly) int32_t channelId; +@property (readonly) int32_t parent; +@property (readonly, retain) NSString* name; +@property (readonly, retain) NSString* description; +- (BOOL) temporary; +@property (readonly) int32_t position; +@property (readonly, retain) NSData* descriptionHash; +- (NSArray*) linksList; +- (int32_t) linksAtIndex:(int32_t) index; +- (NSArray*) linksAddList; +- (int32_t) linksAddAtIndex:(int32_t) index; +- (NSArray*) linksRemoveList; +- (int32_t) linksRemoveAtIndex:(int32_t) index; + ++ (MPChannelState*) defaultInstance; +- (MPChannelState*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (MPChannelState_Builder*) builder; ++ (MPChannelState_Builder*) builder; ++ (MPChannelState_Builder*) builderWithPrototype:(MPChannelState*) prototype; + ++ (MPChannelState*) parseFromData:(NSData*) data; ++ (MPChannelState*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPChannelState*) parseFromInputStream:(NSInputStream*) input; ++ (MPChannelState*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPChannelState*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (MPChannelState*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface MPChannelState_Builder : PBGeneratedMessage_Builder { +@private + MPChannelState* result; +} + +- (MPChannelState*) defaultInstance; + +- (MPChannelState_Builder*) clear; +- (MPChannelState_Builder*) clone; + +- (MPChannelState*) build; +- (MPChannelState*) buildPartial; + +- (MPChannelState_Builder*) mergeFrom:(MPChannelState*) other; +- (MPChannelState_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (MPChannelState_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (BOOL) hasChannelId; +- (int32_t) channelId; +- (MPChannelState_Builder*) setChannelId:(int32_t) value; +- (MPChannelState_Builder*) clearChannelId; + +- (BOOL) hasParent; +- (int32_t) parent; +- (MPChannelState_Builder*) setParent:(int32_t) value; +- (MPChannelState_Builder*) clearParent; + +- (BOOL) hasName; +- (NSString*) name; +- (MPChannelState_Builder*) setName:(NSString*) value; +- (MPChannelState_Builder*) clearName; + +- (NSArray*) linksList; +- (int32_t) linksAtIndex:(int32_t) index; +- (MPChannelState_Builder*) replaceLinksAtIndex:(int32_t) index with:(int32_t) value; +- (MPChannelState_Builder*) addLinks:(int32_t) value; +- (MPChannelState_Builder*) addAllLinks:(NSArray*) values; +- (MPChannelState_Builder*) clearLinksList; + +- (BOOL) hasDescription; +- (NSString*) description; +- (MPChannelState_Builder*) setDescription:(NSString*) value; +- (MPChannelState_Builder*) clearDescription; + +- (NSArray*) linksAddList; +- (int32_t) linksAddAtIndex:(int32_t) index; +- (MPChannelState_Builder*) replaceLinksAddAtIndex:(int32_t) index with:(int32_t) value; +- (MPChannelState_Builder*) addLinksAdd:(int32_t) value; +- (MPChannelState_Builder*) addAllLinksAdd:(NSArray*) values; +- (MPChannelState_Builder*) clearLinksAddList; + +- (NSArray*) linksRemoveList; +- (int32_t) linksRemoveAtIndex:(int32_t) index; +- (MPChannelState_Builder*) replaceLinksRemoveAtIndex:(int32_t) index with:(int32_t) value; +- (MPChannelState_Builder*) addLinksRemove:(int32_t) value; +- (MPChannelState_Builder*) addAllLinksRemove:(NSArray*) values; +- (MPChannelState_Builder*) clearLinksRemoveList; + +- (BOOL) hasTemporary; +- (BOOL) temporary; +- (MPChannelState_Builder*) setTemporary:(BOOL) value; +- (MPChannelState_Builder*) clearTemporary; + +- (BOOL) hasPosition; +- (int32_t) position; +- (MPChannelState_Builder*) setPosition:(int32_t) value; +- (MPChannelState_Builder*) clearPosition; + +- (BOOL) hasDescriptionHash; +- (NSData*) descriptionHash; +- (MPChannelState_Builder*) setDescriptionHash:(NSData*) value; +- (MPChannelState_Builder*) clearDescriptionHash; +@end + +@interface MPUserRemove : PBGeneratedMessage { +@private + BOOL hasBan_:1; + BOOL hasReason_:1; + BOOL hasSession_:1; + BOOL hasActor_:1; + BOOL ban_:1; + NSString* reason; + int32_t session; + int32_t actor; +} +- (BOOL) hasSession; +- (BOOL) hasActor; +- (BOOL) hasReason; +- (BOOL) hasBan; +@property (readonly) int32_t session; +@property (readonly) int32_t actor; +@property (readonly, retain) NSString* reason; +- (BOOL) ban; + ++ (MPUserRemove*) defaultInstance; +- (MPUserRemove*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (MPUserRemove_Builder*) builder; ++ (MPUserRemove_Builder*) builder; ++ (MPUserRemove_Builder*) builderWithPrototype:(MPUserRemove*) prototype; + ++ (MPUserRemove*) parseFromData:(NSData*) data; ++ (MPUserRemove*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPUserRemove*) parseFromInputStream:(NSInputStream*) input; ++ (MPUserRemove*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPUserRemove*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (MPUserRemove*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface MPUserRemove_Builder : PBGeneratedMessage_Builder { +@private + MPUserRemove* result; +} + +- (MPUserRemove*) defaultInstance; + +- (MPUserRemove_Builder*) clear; +- (MPUserRemove_Builder*) clone; + +- (MPUserRemove*) build; +- (MPUserRemove*) buildPartial; + +- (MPUserRemove_Builder*) mergeFrom:(MPUserRemove*) other; +- (MPUserRemove_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (MPUserRemove_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (BOOL) hasSession; +- (int32_t) session; +- (MPUserRemove_Builder*) setSession:(int32_t) value; +- (MPUserRemove_Builder*) clearSession; + +- (BOOL) hasActor; +- (int32_t) actor; +- (MPUserRemove_Builder*) setActor:(int32_t) value; +- (MPUserRemove_Builder*) clearActor; + +- (BOOL) hasReason; +- (NSString*) reason; +- (MPUserRemove_Builder*) setReason:(NSString*) value; +- (MPUserRemove_Builder*) clearReason; + +- (BOOL) hasBan; +- (BOOL) ban; +- (MPUserRemove_Builder*) setBan:(BOOL) value; +- (MPUserRemove_Builder*) clearBan; +@end + +@interface MPUserState : PBGeneratedMessage { +@private + BOOL hasMute_:1; + BOOL hasDeaf_:1; + BOOL hasSuppress_:1; + BOOL hasSelfMute_:1; + BOOL hasSelfDeaf_:1; + BOOL hasName_:1; + BOOL hasHash_:1; + BOOL hasComment_:1; + BOOL hasPluginIdentity_:1; + BOOL hasTextureHash_:1; + BOOL hasCommentHash_:1; + BOOL hasPluginContext_:1; + BOOL hasTexture_:1; + BOOL hasChannelId_:1; + BOOL hasUserId_:1; + BOOL hasActor_:1; + BOOL hasSession_:1; + BOOL mute_:1; + BOOL deaf_:1; + BOOL suppress_:1; + BOOL selfMute_:1; + BOOL selfDeaf_:1; + NSString* name; + NSString* hash; + NSString* comment; + NSString* pluginIdentity; + NSData* textureHash; + NSData* commentHash; + NSData* pluginContext; + NSData* texture; + int32_t channelId; + int32_t userId; + int32_t actor; + int32_t session; +} +- (BOOL) hasSession; +- (BOOL) hasActor; +- (BOOL) hasName; +- (BOOL) hasUserId; +- (BOOL) hasChannelId; +- (BOOL) hasMute; +- (BOOL) hasDeaf; +- (BOOL) hasSuppress; +- (BOOL) hasSelfMute; +- (BOOL) hasSelfDeaf; +- (BOOL) hasTexture; +- (BOOL) hasPluginContext; +- (BOOL) hasPluginIdentity; +- (BOOL) hasComment; +- (BOOL) hasHash; +- (BOOL) hasCommentHash; +- (BOOL) hasTextureHash; +@property (readonly) int32_t session; +@property (readonly) int32_t actor; +@property (readonly, retain) NSString* name; +@property (readonly) int32_t userId; +@property (readonly) int32_t channelId; +- (BOOL) mute; +- (BOOL) deaf; +- (BOOL) suppress; +- (BOOL) selfMute; +- (BOOL) selfDeaf; +@property (readonly, retain) NSData* texture; +@property (readonly, retain) NSData* pluginContext; +@property (readonly, retain) NSString* pluginIdentity; +@property (readonly, retain) NSString* comment; +@property (readonly, retain) NSString* hash; +@property (readonly, retain) NSData* commentHash; +@property (readonly, retain) NSData* textureHash; + ++ (MPUserState*) defaultInstance; +- (MPUserState*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (MPUserState_Builder*) builder; ++ (MPUserState_Builder*) builder; ++ (MPUserState_Builder*) builderWithPrototype:(MPUserState*) prototype; + ++ (MPUserState*) parseFromData:(NSData*) data; ++ (MPUserState*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPUserState*) parseFromInputStream:(NSInputStream*) input; ++ (MPUserState*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPUserState*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (MPUserState*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface MPUserState_Builder : PBGeneratedMessage_Builder { +@private + MPUserState* result; +} + +- (MPUserState*) defaultInstance; + +- (MPUserState_Builder*) clear; +- (MPUserState_Builder*) clone; + +- (MPUserState*) build; +- (MPUserState*) buildPartial; + +- (MPUserState_Builder*) mergeFrom:(MPUserState*) other; +- (MPUserState_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (MPUserState_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (BOOL) hasSession; +- (int32_t) session; +- (MPUserState_Builder*) setSession:(int32_t) value; +- (MPUserState_Builder*) clearSession; + +- (BOOL) hasActor; +- (int32_t) actor; +- (MPUserState_Builder*) setActor:(int32_t) value; +- (MPUserState_Builder*) clearActor; + +- (BOOL) hasName; +- (NSString*) name; +- (MPUserState_Builder*) setName:(NSString*) value; +- (MPUserState_Builder*) clearName; + +- (BOOL) hasUserId; +- (int32_t) userId; +- (MPUserState_Builder*) setUserId:(int32_t) value; +- (MPUserState_Builder*) clearUserId; + +- (BOOL) hasChannelId; +- (int32_t) channelId; +- (MPUserState_Builder*) setChannelId:(int32_t) value; +- (MPUserState_Builder*) clearChannelId; + +- (BOOL) hasMute; +- (BOOL) mute; +- (MPUserState_Builder*) setMute:(BOOL) value; +- (MPUserState_Builder*) clearMute; + +- (BOOL) hasDeaf; +- (BOOL) deaf; +- (MPUserState_Builder*) setDeaf:(BOOL) value; +- (MPUserState_Builder*) clearDeaf; + +- (BOOL) hasSuppress; +- (BOOL) suppress; +- (MPUserState_Builder*) setSuppress:(BOOL) value; +- (MPUserState_Builder*) clearSuppress; + +- (BOOL) hasSelfMute; +- (BOOL) selfMute; +- (MPUserState_Builder*) setSelfMute:(BOOL) value; +- (MPUserState_Builder*) clearSelfMute; + +- (BOOL) hasSelfDeaf; +- (BOOL) selfDeaf; +- (MPUserState_Builder*) setSelfDeaf:(BOOL) value; +- (MPUserState_Builder*) clearSelfDeaf; + +- (BOOL) hasTexture; +- (NSData*) texture; +- (MPUserState_Builder*) setTexture:(NSData*) value; +- (MPUserState_Builder*) clearTexture; + +- (BOOL) hasPluginContext; +- (NSData*) pluginContext; +- (MPUserState_Builder*) setPluginContext:(NSData*) value; +- (MPUserState_Builder*) clearPluginContext; + +- (BOOL) hasPluginIdentity; +- (NSString*) pluginIdentity; +- (MPUserState_Builder*) setPluginIdentity:(NSString*) value; +- (MPUserState_Builder*) clearPluginIdentity; + +- (BOOL) hasComment; +- (NSString*) comment; +- (MPUserState_Builder*) setComment:(NSString*) value; +- (MPUserState_Builder*) clearComment; + +- (BOOL) hasHash; +- (NSString*) hash; +- (MPUserState_Builder*) setHash:(NSString*) value; +- (MPUserState_Builder*) clearHash; + +- (BOOL) hasCommentHash; +- (NSData*) commentHash; +- (MPUserState_Builder*) setCommentHash:(NSData*) value; +- (MPUserState_Builder*) clearCommentHash; + +- (BOOL) hasTextureHash; +- (NSData*) textureHash; +- (MPUserState_Builder*) setTextureHash:(NSData*) value; +- (MPUserState_Builder*) clearTextureHash; +@end + +@interface MPBanList : PBGeneratedMessage { +@private + BOOL hasQuery_:1; + BOOL query_:1; + NSMutableArray* mutableBansList; +} +- (BOOL) hasQuery; +- (BOOL) query; +- (NSArray*) bansList; +- (MPBanList_BanEntry*) bansAtIndex:(int32_t) index; + ++ (MPBanList*) defaultInstance; +- (MPBanList*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (MPBanList_Builder*) builder; ++ (MPBanList_Builder*) builder; ++ (MPBanList_Builder*) builderWithPrototype:(MPBanList*) prototype; + ++ (MPBanList*) parseFromData:(NSData*) data; ++ (MPBanList*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPBanList*) parseFromInputStream:(NSInputStream*) input; ++ (MPBanList*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPBanList*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (MPBanList*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface MPBanList_BanEntry : PBGeneratedMessage { +@private + BOOL hasName_:1; + BOOL hasHash_:1; + BOOL hasReason_:1; + BOOL hasStart_:1; + BOOL hasAddress_:1; + BOOL hasMask_:1; + BOOL hasDuration_:1; + NSString* name; + NSString* hash; + NSString* reason; + NSString* start; + NSData* address; + int32_t mask; + int32_t duration; +} +- (BOOL) hasAddress; +- (BOOL) hasMask; +- (BOOL) hasName; +- (BOOL) hasHash; +- (BOOL) hasReason; +- (BOOL) hasStart; +- (BOOL) hasDuration; +@property (readonly, retain) NSData* address; +@property (readonly) int32_t mask; +@property (readonly, retain) NSString* name; +@property (readonly, retain) NSString* hash; +@property (readonly, retain) NSString* reason; +@property (readonly, retain) NSString* start; +@property (readonly) int32_t duration; + ++ (MPBanList_BanEntry*) defaultInstance; +- (MPBanList_BanEntry*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (MPBanList_BanEntry_Builder*) builder; ++ (MPBanList_BanEntry_Builder*) builder; ++ (MPBanList_BanEntry_Builder*) builderWithPrototype:(MPBanList_BanEntry*) prototype; + ++ (MPBanList_BanEntry*) parseFromData:(NSData*) data; ++ (MPBanList_BanEntry*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPBanList_BanEntry*) parseFromInputStream:(NSInputStream*) input; ++ (MPBanList_BanEntry*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPBanList_BanEntry*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (MPBanList_BanEntry*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface MPBanList_BanEntry_Builder : PBGeneratedMessage_Builder { +@private + MPBanList_BanEntry* result; +} + +- (MPBanList_BanEntry*) defaultInstance; + +- (MPBanList_BanEntry_Builder*) clear; +- (MPBanList_BanEntry_Builder*) clone; + +- (MPBanList_BanEntry*) build; +- (MPBanList_BanEntry*) buildPartial; + +- (MPBanList_BanEntry_Builder*) mergeFrom:(MPBanList_BanEntry*) other; +- (MPBanList_BanEntry_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (MPBanList_BanEntry_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (BOOL) hasAddress; +- (NSData*) address; +- (MPBanList_BanEntry_Builder*) setAddress:(NSData*) value; +- (MPBanList_BanEntry_Builder*) clearAddress; + +- (BOOL) hasMask; +- (int32_t) mask; +- (MPBanList_BanEntry_Builder*) setMask:(int32_t) value; +- (MPBanList_BanEntry_Builder*) clearMask; + +- (BOOL) hasName; +- (NSString*) name; +- (MPBanList_BanEntry_Builder*) setName:(NSString*) value; +- (MPBanList_BanEntry_Builder*) clearName; + +- (BOOL) hasHash; +- (NSString*) hash; +- (MPBanList_BanEntry_Builder*) setHash:(NSString*) value; +- (MPBanList_BanEntry_Builder*) clearHash; + +- (BOOL) hasReason; +- (NSString*) reason; +- (MPBanList_BanEntry_Builder*) setReason:(NSString*) value; +- (MPBanList_BanEntry_Builder*) clearReason; + +- (BOOL) hasStart; +- (NSString*) start; +- (MPBanList_BanEntry_Builder*) setStart:(NSString*) value; +- (MPBanList_BanEntry_Builder*) clearStart; + +- (BOOL) hasDuration; +- (int32_t) duration; +- (MPBanList_BanEntry_Builder*) setDuration:(int32_t) value; +- (MPBanList_BanEntry_Builder*) clearDuration; +@end + +@interface MPBanList_Builder : PBGeneratedMessage_Builder { +@private + MPBanList* result; +} + +- (MPBanList*) defaultInstance; + +- (MPBanList_Builder*) clear; +- (MPBanList_Builder*) clone; + +- (MPBanList*) build; +- (MPBanList*) buildPartial; + +- (MPBanList_Builder*) mergeFrom:(MPBanList*) other; +- (MPBanList_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (MPBanList_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (NSArray*) bansList; +- (MPBanList_BanEntry*) bansAtIndex:(int32_t) index; +- (MPBanList_Builder*) replaceBansAtIndex:(int32_t) index with:(MPBanList_BanEntry*) value; +- (MPBanList_Builder*) addBans:(MPBanList_BanEntry*) value; +- (MPBanList_Builder*) addAllBans:(NSArray*) values; +- (MPBanList_Builder*) clearBansList; + +- (BOOL) hasQuery; +- (BOOL) query; +- (MPBanList_Builder*) setQuery:(BOOL) value; +- (MPBanList_Builder*) clearQuery; +@end + +@interface MPTextMessage : PBGeneratedMessage { +@private + BOOL hasMessage_:1; + BOOL hasActor_:1; + NSString* message; + int32_t actor; + NSMutableArray* mutableSessionList; + NSMutableArray* mutableChannelIdList; + NSMutableArray* mutableTreeIdList; +} +- (BOOL) hasActor; +- (BOOL) hasMessage; +@property (readonly) int32_t actor; +@property (readonly, retain) NSString* message; +- (NSArray*) sessionList; +- (int32_t) sessionAtIndex:(int32_t) index; +- (NSArray*) channelIdList; +- (int32_t) channelIdAtIndex:(int32_t) index; +- (NSArray*) treeIdList; +- (int32_t) treeIdAtIndex:(int32_t) index; + ++ (MPTextMessage*) defaultInstance; +- (MPTextMessage*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (MPTextMessage_Builder*) builder; ++ (MPTextMessage_Builder*) builder; ++ (MPTextMessage_Builder*) builderWithPrototype:(MPTextMessage*) prototype; + ++ (MPTextMessage*) parseFromData:(NSData*) data; ++ (MPTextMessage*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPTextMessage*) parseFromInputStream:(NSInputStream*) input; ++ (MPTextMessage*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPTextMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (MPTextMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface MPTextMessage_Builder : PBGeneratedMessage_Builder { +@private + MPTextMessage* result; +} + +- (MPTextMessage*) defaultInstance; + +- (MPTextMessage_Builder*) clear; +- (MPTextMessage_Builder*) clone; + +- (MPTextMessage*) build; +- (MPTextMessage*) buildPartial; + +- (MPTextMessage_Builder*) mergeFrom:(MPTextMessage*) other; +- (MPTextMessage_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (MPTextMessage_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (BOOL) hasActor; +- (int32_t) actor; +- (MPTextMessage_Builder*) setActor:(int32_t) value; +- (MPTextMessage_Builder*) clearActor; + +- (NSArray*) sessionList; +- (int32_t) sessionAtIndex:(int32_t) index; +- (MPTextMessage_Builder*) replaceSessionAtIndex:(int32_t) index with:(int32_t) value; +- (MPTextMessage_Builder*) addSession:(int32_t) value; +- (MPTextMessage_Builder*) addAllSession:(NSArray*) values; +- (MPTextMessage_Builder*) clearSessionList; + +- (NSArray*) channelIdList; +- (int32_t) channelIdAtIndex:(int32_t) index; +- (MPTextMessage_Builder*) replaceChannelIdAtIndex:(int32_t) index with:(int32_t) value; +- (MPTextMessage_Builder*) addChannelId:(int32_t) value; +- (MPTextMessage_Builder*) addAllChannelId:(NSArray*) values; +- (MPTextMessage_Builder*) clearChannelIdList; + +- (NSArray*) treeIdList; +- (int32_t) treeIdAtIndex:(int32_t) index; +- (MPTextMessage_Builder*) replaceTreeIdAtIndex:(int32_t) index with:(int32_t) value; +- (MPTextMessage_Builder*) addTreeId:(int32_t) value; +- (MPTextMessage_Builder*) addAllTreeId:(NSArray*) values; +- (MPTextMessage_Builder*) clearTreeIdList; + +- (BOOL) hasMessage; +- (NSString*) message; +- (MPTextMessage_Builder*) setMessage:(NSString*) value; +- (MPTextMessage_Builder*) clearMessage; +@end + +@interface MPPermissionDenied : PBGeneratedMessage { +@private + BOOL hasReason_:1; + BOOL hasName_:1; + BOOL hasPermission_:1; + BOOL hasChannelId_:1; + BOOL hasSession_:1; + BOOL hasType_:1; + NSString* reason; + NSString* name; + int32_t permission; + int32_t channelId; + int32_t session; + MPPermissionDenied_DenyType type; +} +- (BOOL) hasPermission; +- (BOOL) hasChannelId; +- (BOOL) hasSession; +- (BOOL) hasReason; +- (BOOL) hasType; +- (BOOL) hasName; +@property (readonly) int32_t permission; +@property (readonly) int32_t channelId; +@property (readonly) int32_t session; +@property (readonly, retain) NSString* reason; +@property (readonly) MPPermissionDenied_DenyType type; +@property (readonly, retain) NSString* name; + ++ (MPPermissionDenied*) defaultInstance; +- (MPPermissionDenied*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (MPPermissionDenied_Builder*) builder; ++ (MPPermissionDenied_Builder*) builder; ++ (MPPermissionDenied_Builder*) builderWithPrototype:(MPPermissionDenied*) prototype; + ++ (MPPermissionDenied*) parseFromData:(NSData*) data; ++ (MPPermissionDenied*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPPermissionDenied*) parseFromInputStream:(NSInputStream*) input; ++ (MPPermissionDenied*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPPermissionDenied*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (MPPermissionDenied*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface MPPermissionDenied_Builder : PBGeneratedMessage_Builder { +@private + MPPermissionDenied* result; +} + +- (MPPermissionDenied*) defaultInstance; + +- (MPPermissionDenied_Builder*) clear; +- (MPPermissionDenied_Builder*) clone; + +- (MPPermissionDenied*) build; +- (MPPermissionDenied*) buildPartial; + +- (MPPermissionDenied_Builder*) mergeFrom:(MPPermissionDenied*) other; +- (MPPermissionDenied_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (MPPermissionDenied_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (BOOL) hasPermission; +- (int32_t) permission; +- (MPPermissionDenied_Builder*) setPermission:(int32_t) value; +- (MPPermissionDenied_Builder*) clearPermission; + +- (BOOL) hasChannelId; +- (int32_t) channelId; +- (MPPermissionDenied_Builder*) setChannelId:(int32_t) value; +- (MPPermissionDenied_Builder*) clearChannelId; + +- (BOOL) hasSession; +- (int32_t) session; +- (MPPermissionDenied_Builder*) setSession:(int32_t) value; +- (MPPermissionDenied_Builder*) clearSession; + +- (BOOL) hasReason; +- (NSString*) reason; +- (MPPermissionDenied_Builder*) setReason:(NSString*) value; +- (MPPermissionDenied_Builder*) clearReason; + +- (BOOL) hasType; +- (MPPermissionDenied_DenyType) type; +- (MPPermissionDenied_Builder*) setType:(MPPermissionDenied_DenyType) value; +- (MPPermissionDenied_Builder*) clearType; + +- (BOOL) hasName; +- (NSString*) name; +- (MPPermissionDenied_Builder*) setName:(NSString*) value; +- (MPPermissionDenied_Builder*) clearName; +@end + +@interface MPACL : PBGeneratedMessage { +@private + BOOL hasInheritAcls_:1; + BOOL hasQuery_:1; + BOOL hasChannelId_:1; + BOOL inheritAcls_:1; + BOOL query_:1; + int32_t channelId; + NSMutableArray* mutableGroupsList; + NSMutableArray* mutableAclsList; +} +- (BOOL) hasChannelId; +- (BOOL) hasInheritAcls; +- (BOOL) hasQuery; +@property (readonly) int32_t channelId; +- (BOOL) inheritAcls; +- (BOOL) query; +- (NSArray*) groupsList; +- (MPACL_ChanGroup*) groupsAtIndex:(int32_t) index; +- (NSArray*) aclsList; +- (MPACL_ChanACL*) aclsAtIndex:(int32_t) index; + ++ (MPACL*) defaultInstance; +- (MPACL*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (MPACL_Builder*) builder; ++ (MPACL_Builder*) builder; ++ (MPACL_Builder*) builderWithPrototype:(MPACL*) prototype; + ++ (MPACL*) parseFromData:(NSData*) data; ++ (MPACL*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPACL*) parseFromInputStream:(NSInputStream*) input; ++ (MPACL*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPACL*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (MPACL*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface MPACL_ChanGroup : PBGeneratedMessage { +@private + BOOL hasInherited_:1; + BOOL hasInherit_:1; + BOOL hasInheritable_:1; + BOOL hasName_:1; + BOOL inherited_:1; + BOOL inherit_:1; + BOOL inheritable_:1; + NSString* name; + NSMutableArray* mutableAddList; + NSMutableArray* mutableRemoveList; + NSMutableArray* mutableInheritedMembersList; +} +- (BOOL) hasName; +- (BOOL) hasInherited; +- (BOOL) hasInherit; +- (BOOL) hasInheritable; +@property (readonly, retain) NSString* name; +- (BOOL) inherited; +- (BOOL) inherit; +- (BOOL) inheritable; +- (NSArray*) addList; +- (int32_t) addAtIndex:(int32_t) index; +- (NSArray*) removeList; +- (int32_t) removeAtIndex:(int32_t) index; +- (NSArray*) inheritedMembersList; +- (int32_t) inheritedMembersAtIndex:(int32_t) index; + ++ (MPACL_ChanGroup*) defaultInstance; +- (MPACL_ChanGroup*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (MPACL_ChanGroup_Builder*) builder; ++ (MPACL_ChanGroup_Builder*) builder; ++ (MPACL_ChanGroup_Builder*) builderWithPrototype:(MPACL_ChanGroup*) prototype; + ++ (MPACL_ChanGroup*) parseFromData:(NSData*) data; ++ (MPACL_ChanGroup*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPACL_ChanGroup*) parseFromInputStream:(NSInputStream*) input; ++ (MPACL_ChanGroup*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPACL_ChanGroup*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (MPACL_ChanGroup*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface MPACL_ChanGroup_Builder : PBGeneratedMessage_Builder { +@private + MPACL_ChanGroup* result; +} + +- (MPACL_ChanGroup*) defaultInstance; + +- (MPACL_ChanGroup_Builder*) clear; +- (MPACL_ChanGroup_Builder*) clone; + +- (MPACL_ChanGroup*) build; +- (MPACL_ChanGroup*) buildPartial; + +- (MPACL_ChanGroup_Builder*) mergeFrom:(MPACL_ChanGroup*) other; +- (MPACL_ChanGroup_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (MPACL_ChanGroup_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (BOOL) hasName; +- (NSString*) name; +- (MPACL_ChanGroup_Builder*) setName:(NSString*) value; +- (MPACL_ChanGroup_Builder*) clearName; + +- (BOOL) hasInherited; +- (BOOL) inherited; +- (MPACL_ChanGroup_Builder*) setInherited:(BOOL) value; +- (MPACL_ChanGroup_Builder*) clearInherited; + +- (BOOL) hasInherit; +- (BOOL) inherit; +- (MPACL_ChanGroup_Builder*) setInherit:(BOOL) value; +- (MPACL_ChanGroup_Builder*) clearInherit; + +- (BOOL) hasInheritable; +- (BOOL) inheritable; +- (MPACL_ChanGroup_Builder*) setInheritable:(BOOL) value; +- (MPACL_ChanGroup_Builder*) clearInheritable; + +- (NSArray*) addList; +- (int32_t) addAtIndex:(int32_t) index; +- (MPACL_ChanGroup_Builder*) replaceAddAtIndex:(int32_t) index with:(int32_t) value; +- (MPACL_ChanGroup_Builder*) addAdd:(int32_t) value; +- (MPACL_ChanGroup_Builder*) addAllAdd:(NSArray*) values; +- (MPACL_ChanGroup_Builder*) clearAddList; + +- (NSArray*) removeList; +- (int32_t) removeAtIndex:(int32_t) index; +- (MPACL_ChanGroup_Builder*) replaceRemoveAtIndex:(int32_t) index with:(int32_t) value; +- (MPACL_ChanGroup_Builder*) addRemove:(int32_t) value; +- (MPACL_ChanGroup_Builder*) addAllRemove:(NSArray*) values; +- (MPACL_ChanGroup_Builder*) clearRemoveList; + +- (NSArray*) inheritedMembersList; +- (int32_t) inheritedMembersAtIndex:(int32_t) index; +- (MPACL_ChanGroup_Builder*) replaceInheritedMembersAtIndex:(int32_t) index with:(int32_t) value; +- (MPACL_ChanGroup_Builder*) addInheritedMembers:(int32_t) value; +- (MPACL_ChanGroup_Builder*) addAllInheritedMembers:(NSArray*) values; +- (MPACL_ChanGroup_Builder*) clearInheritedMembersList; +@end + +@interface MPACL_ChanACL : PBGeneratedMessage { +@private + BOOL hasApplyHere_:1; + BOOL hasApplySubs_:1; + BOOL hasInherited_:1; + BOOL hasGroup_:1; + BOOL hasUserId_:1; + BOOL hasGrant_:1; + BOOL hasDeny_:1; + BOOL applyHere_:1; + BOOL applySubs_:1; + BOOL inherited_:1; + NSString* group; + int32_t userId; + int32_t grant; + int32_t deny; +} +- (BOOL) hasApplyHere; +- (BOOL) hasApplySubs; +- (BOOL) hasInherited; +- (BOOL) hasUserId; +- (BOOL) hasGroup; +- (BOOL) hasGrant; +- (BOOL) hasDeny; +- (BOOL) applyHere; +- (BOOL) applySubs; +- (BOOL) inherited; +@property (readonly) int32_t userId; +@property (readonly, retain) NSString* group; +@property (readonly) int32_t grant; +@property (readonly) int32_t deny; + ++ (MPACL_ChanACL*) defaultInstance; +- (MPACL_ChanACL*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (MPACL_ChanACL_Builder*) builder; ++ (MPACL_ChanACL_Builder*) builder; ++ (MPACL_ChanACL_Builder*) builderWithPrototype:(MPACL_ChanACL*) prototype; + ++ (MPACL_ChanACL*) parseFromData:(NSData*) data; ++ (MPACL_ChanACL*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPACL_ChanACL*) parseFromInputStream:(NSInputStream*) input; ++ (MPACL_ChanACL*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPACL_ChanACL*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (MPACL_ChanACL*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface MPACL_ChanACL_Builder : PBGeneratedMessage_Builder { +@private + MPACL_ChanACL* result; +} + +- (MPACL_ChanACL*) defaultInstance; + +- (MPACL_ChanACL_Builder*) clear; +- (MPACL_ChanACL_Builder*) clone; + +- (MPACL_ChanACL*) build; +- (MPACL_ChanACL*) buildPartial; + +- (MPACL_ChanACL_Builder*) mergeFrom:(MPACL_ChanACL*) other; +- (MPACL_ChanACL_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (MPACL_ChanACL_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (BOOL) hasApplyHere; +- (BOOL) applyHere; +- (MPACL_ChanACL_Builder*) setApplyHere:(BOOL) value; +- (MPACL_ChanACL_Builder*) clearApplyHere; + +- (BOOL) hasApplySubs; +- (BOOL) applySubs; +- (MPACL_ChanACL_Builder*) setApplySubs:(BOOL) value; +- (MPACL_ChanACL_Builder*) clearApplySubs; + +- (BOOL) hasInherited; +- (BOOL) inherited; +- (MPACL_ChanACL_Builder*) setInherited:(BOOL) value; +- (MPACL_ChanACL_Builder*) clearInherited; + +- (BOOL) hasUserId; +- (int32_t) userId; +- (MPACL_ChanACL_Builder*) setUserId:(int32_t) value; +- (MPACL_ChanACL_Builder*) clearUserId; + +- (BOOL) hasGroup; +- (NSString*) group; +- (MPACL_ChanACL_Builder*) setGroup:(NSString*) value; +- (MPACL_ChanACL_Builder*) clearGroup; + +- (BOOL) hasGrant; +- (int32_t) grant; +- (MPACL_ChanACL_Builder*) setGrant:(int32_t) value; +- (MPACL_ChanACL_Builder*) clearGrant; + +- (BOOL) hasDeny; +- (int32_t) deny; +- (MPACL_ChanACL_Builder*) setDeny:(int32_t) value; +- (MPACL_ChanACL_Builder*) clearDeny; +@end + +@interface MPACL_Builder : PBGeneratedMessage_Builder { +@private + MPACL* result; +} + +- (MPACL*) defaultInstance; + +- (MPACL_Builder*) clear; +- (MPACL_Builder*) clone; + +- (MPACL*) build; +- (MPACL*) buildPartial; + +- (MPACL_Builder*) mergeFrom:(MPACL*) other; +- (MPACL_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (MPACL_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (BOOL) hasChannelId; +- (int32_t) channelId; +- (MPACL_Builder*) setChannelId:(int32_t) value; +- (MPACL_Builder*) clearChannelId; + +- (BOOL) hasInheritAcls; +- (BOOL) inheritAcls; +- (MPACL_Builder*) setInheritAcls:(BOOL) value; +- (MPACL_Builder*) clearInheritAcls; + +- (NSArray*) groupsList; +- (MPACL_ChanGroup*) groupsAtIndex:(int32_t) index; +- (MPACL_Builder*) replaceGroupsAtIndex:(int32_t) index with:(MPACL_ChanGroup*) value; +- (MPACL_Builder*) addGroups:(MPACL_ChanGroup*) value; +- (MPACL_Builder*) addAllGroups:(NSArray*) values; +- (MPACL_Builder*) clearGroupsList; + +- (NSArray*) aclsList; +- (MPACL_ChanACL*) aclsAtIndex:(int32_t) index; +- (MPACL_Builder*) replaceAclsAtIndex:(int32_t) index with:(MPACL_ChanACL*) value; +- (MPACL_Builder*) addAcls:(MPACL_ChanACL*) value; +- (MPACL_Builder*) addAllAcls:(NSArray*) values; +- (MPACL_Builder*) clearAclsList; + +- (BOOL) hasQuery; +- (BOOL) query; +- (MPACL_Builder*) setQuery:(BOOL) value; +- (MPACL_Builder*) clearQuery; +@end + +@interface MPQueryUsers : PBGeneratedMessage { +@private + NSMutableArray* mutableNamesList; + NSMutableArray* mutableIdsList; +} +- (NSArray*) idsList; +- (int32_t) idsAtIndex:(int32_t) index; +- (NSArray*) namesList; +- (NSString*) namesAtIndex:(int32_t) index; + ++ (MPQueryUsers*) defaultInstance; +- (MPQueryUsers*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (MPQueryUsers_Builder*) builder; ++ (MPQueryUsers_Builder*) builder; ++ (MPQueryUsers_Builder*) builderWithPrototype:(MPQueryUsers*) prototype; + ++ (MPQueryUsers*) parseFromData:(NSData*) data; ++ (MPQueryUsers*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPQueryUsers*) parseFromInputStream:(NSInputStream*) input; ++ (MPQueryUsers*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPQueryUsers*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (MPQueryUsers*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface MPQueryUsers_Builder : PBGeneratedMessage_Builder { +@private + MPQueryUsers* result; +} + +- (MPQueryUsers*) defaultInstance; + +- (MPQueryUsers_Builder*) clear; +- (MPQueryUsers_Builder*) clone; + +- (MPQueryUsers*) build; +- (MPQueryUsers*) buildPartial; + +- (MPQueryUsers_Builder*) mergeFrom:(MPQueryUsers*) other; +- (MPQueryUsers_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (MPQueryUsers_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (NSArray*) idsList; +- (int32_t) idsAtIndex:(int32_t) index; +- (MPQueryUsers_Builder*) replaceIdsAtIndex:(int32_t) index with:(int32_t) value; +- (MPQueryUsers_Builder*) addIds:(int32_t) value; +- (MPQueryUsers_Builder*) addAllIds:(NSArray*) values; +- (MPQueryUsers_Builder*) clearIdsList; + +- (NSArray*) namesList; +- (NSString*) namesAtIndex:(int32_t) index; +- (MPQueryUsers_Builder*) replaceNamesAtIndex:(int32_t) index with:(NSString*) value; +- (MPQueryUsers_Builder*) addNames:(NSString*) value; +- (MPQueryUsers_Builder*) addAllNames:(NSArray*) values; +- (MPQueryUsers_Builder*) clearNamesList; +@end + +@interface MPCryptSetup : PBGeneratedMessage { +@private + BOOL hasKey_:1; + BOOL hasClientNonce_:1; + BOOL hasServerNonce_:1; + NSData* key; + NSData* clientNonce; + NSData* serverNonce; +} +- (BOOL) hasKey; +- (BOOL) hasClientNonce; +- (BOOL) hasServerNonce; +@property (readonly, retain) NSData* key; +@property (readonly, retain) NSData* clientNonce; +@property (readonly, retain) NSData* serverNonce; + ++ (MPCryptSetup*) defaultInstance; +- (MPCryptSetup*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (MPCryptSetup_Builder*) builder; ++ (MPCryptSetup_Builder*) builder; ++ (MPCryptSetup_Builder*) builderWithPrototype:(MPCryptSetup*) prototype; + ++ (MPCryptSetup*) parseFromData:(NSData*) data; ++ (MPCryptSetup*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPCryptSetup*) parseFromInputStream:(NSInputStream*) input; ++ (MPCryptSetup*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPCryptSetup*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (MPCryptSetup*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface MPCryptSetup_Builder : PBGeneratedMessage_Builder { +@private + MPCryptSetup* result; +} + +- (MPCryptSetup*) defaultInstance; + +- (MPCryptSetup_Builder*) clear; +- (MPCryptSetup_Builder*) clone; + +- (MPCryptSetup*) build; +- (MPCryptSetup*) buildPartial; + +- (MPCryptSetup_Builder*) mergeFrom:(MPCryptSetup*) other; +- (MPCryptSetup_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (MPCryptSetup_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (BOOL) hasKey; +- (NSData*) key; +- (MPCryptSetup_Builder*) setKey:(NSData*) value; +- (MPCryptSetup_Builder*) clearKey; + +- (BOOL) hasClientNonce; +- (NSData*) clientNonce; +- (MPCryptSetup_Builder*) setClientNonce:(NSData*) value; +- (MPCryptSetup_Builder*) clearClientNonce; + +- (BOOL) hasServerNonce; +- (NSData*) serverNonce; +- (MPCryptSetup_Builder*) setServerNonce:(NSData*) value; +- (MPCryptSetup_Builder*) clearServerNonce; +@end + +@interface MPContextActionAdd : PBGeneratedMessage { +@private + BOOL hasAction_:1; + BOOL hasText_:1; + BOOL hasContext_:1; + NSString* action; + NSString* text; + int32_t context; +} +- (BOOL) hasAction; +- (BOOL) hasText; +- (BOOL) hasContext; +@property (readonly, retain) NSString* action; +@property (readonly, retain) NSString* text; +@property (readonly) int32_t context; + ++ (MPContextActionAdd*) defaultInstance; +- (MPContextActionAdd*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (MPContextActionAdd_Builder*) builder; ++ (MPContextActionAdd_Builder*) builder; ++ (MPContextActionAdd_Builder*) builderWithPrototype:(MPContextActionAdd*) prototype; + ++ (MPContextActionAdd*) parseFromData:(NSData*) data; ++ (MPContextActionAdd*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPContextActionAdd*) parseFromInputStream:(NSInputStream*) input; ++ (MPContextActionAdd*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPContextActionAdd*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (MPContextActionAdd*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface MPContextActionAdd_Builder : PBGeneratedMessage_Builder { +@private + MPContextActionAdd* result; +} + +- (MPContextActionAdd*) defaultInstance; + +- (MPContextActionAdd_Builder*) clear; +- (MPContextActionAdd_Builder*) clone; + +- (MPContextActionAdd*) build; +- (MPContextActionAdd*) buildPartial; + +- (MPContextActionAdd_Builder*) mergeFrom:(MPContextActionAdd*) other; +- (MPContextActionAdd_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (MPContextActionAdd_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (BOOL) hasAction; +- (NSString*) action; +- (MPContextActionAdd_Builder*) setAction:(NSString*) value; +- (MPContextActionAdd_Builder*) clearAction; + +- (BOOL) hasText; +- (NSString*) text; +- (MPContextActionAdd_Builder*) setText:(NSString*) value; +- (MPContextActionAdd_Builder*) clearText; + +- (BOOL) hasContext; +- (int32_t) context; +- (MPContextActionAdd_Builder*) setContext:(int32_t) value; +- (MPContextActionAdd_Builder*) clearContext; +@end + +@interface MPContextAction : PBGeneratedMessage { +@private + BOOL hasAction_:1; + BOOL hasSession_:1; + BOOL hasChannelId_:1; + NSString* action; + int32_t session; + int32_t channelId; +} +- (BOOL) hasSession; +- (BOOL) hasChannelId; +- (BOOL) hasAction; +@property (readonly) int32_t session; +@property (readonly) int32_t channelId; +@property (readonly, retain) NSString* action; + ++ (MPContextAction*) defaultInstance; +- (MPContextAction*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (MPContextAction_Builder*) builder; ++ (MPContextAction_Builder*) builder; ++ (MPContextAction_Builder*) builderWithPrototype:(MPContextAction*) prototype; + ++ (MPContextAction*) parseFromData:(NSData*) data; ++ (MPContextAction*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPContextAction*) parseFromInputStream:(NSInputStream*) input; ++ (MPContextAction*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPContextAction*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (MPContextAction*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface MPContextAction_Builder : PBGeneratedMessage_Builder { +@private + MPContextAction* result; +} + +- (MPContextAction*) defaultInstance; + +- (MPContextAction_Builder*) clear; +- (MPContextAction_Builder*) clone; + +- (MPContextAction*) build; +- (MPContextAction*) buildPartial; + +- (MPContextAction_Builder*) mergeFrom:(MPContextAction*) other; +- (MPContextAction_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (MPContextAction_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (BOOL) hasSession; +- (int32_t) session; +- (MPContextAction_Builder*) setSession:(int32_t) value; +- (MPContextAction_Builder*) clearSession; + +- (BOOL) hasChannelId; +- (int32_t) channelId; +- (MPContextAction_Builder*) setChannelId:(int32_t) value; +- (MPContextAction_Builder*) clearChannelId; + +- (BOOL) hasAction; +- (NSString*) action; +- (MPContextAction_Builder*) setAction:(NSString*) value; +- (MPContextAction_Builder*) clearAction; +@end + +@interface MPUserList : PBGeneratedMessage { +@private + NSMutableArray* mutableUsersList; +} +- (NSArray*) usersList; +- (MPUserList_User*) usersAtIndex:(int32_t) index; + ++ (MPUserList*) defaultInstance; +- (MPUserList*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (MPUserList_Builder*) builder; ++ (MPUserList_Builder*) builder; ++ (MPUserList_Builder*) builderWithPrototype:(MPUserList*) prototype; + ++ (MPUserList*) parseFromData:(NSData*) data; ++ (MPUserList*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPUserList*) parseFromInputStream:(NSInputStream*) input; ++ (MPUserList*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPUserList*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (MPUserList*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface MPUserList_User : PBGeneratedMessage { +@private + BOOL hasName_:1; + BOOL hasUserId_:1; + NSString* name; + int32_t userId; +} +- (BOOL) hasUserId; +- (BOOL) hasName; +@property (readonly) int32_t userId; +@property (readonly, retain) NSString* name; + ++ (MPUserList_User*) defaultInstance; +- (MPUserList_User*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (MPUserList_User_Builder*) builder; ++ (MPUserList_User_Builder*) builder; ++ (MPUserList_User_Builder*) builderWithPrototype:(MPUserList_User*) prototype; + ++ (MPUserList_User*) parseFromData:(NSData*) data; ++ (MPUserList_User*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPUserList_User*) parseFromInputStream:(NSInputStream*) input; ++ (MPUserList_User*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPUserList_User*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (MPUserList_User*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface MPUserList_User_Builder : PBGeneratedMessage_Builder { +@private + MPUserList_User* result; +} + +- (MPUserList_User*) defaultInstance; + +- (MPUserList_User_Builder*) clear; +- (MPUserList_User_Builder*) clone; + +- (MPUserList_User*) build; +- (MPUserList_User*) buildPartial; + +- (MPUserList_User_Builder*) mergeFrom:(MPUserList_User*) other; +- (MPUserList_User_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (MPUserList_User_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (BOOL) hasUserId; +- (int32_t) userId; +- (MPUserList_User_Builder*) setUserId:(int32_t) value; +- (MPUserList_User_Builder*) clearUserId; + +- (BOOL) hasName; +- (NSString*) name; +- (MPUserList_User_Builder*) setName:(NSString*) value; +- (MPUserList_User_Builder*) clearName; +@end + +@interface MPUserList_Builder : PBGeneratedMessage_Builder { +@private + MPUserList* result; +} + +- (MPUserList*) defaultInstance; + +- (MPUserList_Builder*) clear; +- (MPUserList_Builder*) clone; + +- (MPUserList*) build; +- (MPUserList*) buildPartial; + +- (MPUserList_Builder*) mergeFrom:(MPUserList*) other; +- (MPUserList_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (MPUserList_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (NSArray*) usersList; +- (MPUserList_User*) usersAtIndex:(int32_t) index; +- (MPUserList_Builder*) replaceUsersAtIndex:(int32_t) index with:(MPUserList_User*) value; +- (MPUserList_Builder*) addUsers:(MPUserList_User*) value; +- (MPUserList_Builder*) addAllUsers:(NSArray*) values; +- (MPUserList_Builder*) clearUsersList; +@end + +@interface MPVoiceTarget : PBGeneratedMessage { +@private + BOOL hasId_:1; + int32_t id; + NSMutableArray* mutableTargetsList; +} +- (BOOL) hasId; +@property (readonly) int32_t id; +- (NSArray*) targetsList; +- (MPVoiceTarget_Target*) targetsAtIndex:(int32_t) index; + ++ (MPVoiceTarget*) defaultInstance; +- (MPVoiceTarget*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (MPVoiceTarget_Builder*) builder; ++ (MPVoiceTarget_Builder*) builder; ++ (MPVoiceTarget_Builder*) builderWithPrototype:(MPVoiceTarget*) prototype; + ++ (MPVoiceTarget*) parseFromData:(NSData*) data; ++ (MPVoiceTarget*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPVoiceTarget*) parseFromInputStream:(NSInputStream*) input; ++ (MPVoiceTarget*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPVoiceTarget*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (MPVoiceTarget*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface MPVoiceTarget_Target : PBGeneratedMessage { +@private + BOOL hasLinks_:1; + BOOL hasChildren_:1; + BOOL hasGroup_:1; + BOOL hasChannelId_:1; + BOOL links_:1; + BOOL children_:1; + NSString* group; + int32_t channelId; + NSMutableArray* mutableSessionList; +} +- (BOOL) hasChannelId; +- (BOOL) hasGroup; +- (BOOL) hasLinks; +- (BOOL) hasChildren; +@property (readonly) int32_t channelId; +@property (readonly, retain) NSString* group; +- (BOOL) links; +- (BOOL) children; +- (NSArray*) sessionList; +- (int32_t) sessionAtIndex:(int32_t) index; + ++ (MPVoiceTarget_Target*) defaultInstance; +- (MPVoiceTarget_Target*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (MPVoiceTarget_Target_Builder*) builder; ++ (MPVoiceTarget_Target_Builder*) builder; ++ (MPVoiceTarget_Target_Builder*) builderWithPrototype:(MPVoiceTarget_Target*) prototype; + ++ (MPVoiceTarget_Target*) parseFromData:(NSData*) data; ++ (MPVoiceTarget_Target*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPVoiceTarget_Target*) parseFromInputStream:(NSInputStream*) input; ++ (MPVoiceTarget_Target*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPVoiceTarget_Target*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (MPVoiceTarget_Target*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface MPVoiceTarget_Target_Builder : PBGeneratedMessage_Builder { +@private + MPVoiceTarget_Target* result; +} + +- (MPVoiceTarget_Target*) defaultInstance; + +- (MPVoiceTarget_Target_Builder*) clear; +- (MPVoiceTarget_Target_Builder*) clone; + +- (MPVoiceTarget_Target*) build; +- (MPVoiceTarget_Target*) buildPartial; + +- (MPVoiceTarget_Target_Builder*) mergeFrom:(MPVoiceTarget_Target*) other; +- (MPVoiceTarget_Target_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (MPVoiceTarget_Target_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (NSArray*) sessionList; +- (int32_t) sessionAtIndex:(int32_t) index; +- (MPVoiceTarget_Target_Builder*) replaceSessionAtIndex:(int32_t) index with:(int32_t) value; +- (MPVoiceTarget_Target_Builder*) addSession:(int32_t) value; +- (MPVoiceTarget_Target_Builder*) addAllSession:(NSArray*) values; +- (MPVoiceTarget_Target_Builder*) clearSessionList; + +- (BOOL) hasChannelId; +- (int32_t) channelId; +- (MPVoiceTarget_Target_Builder*) setChannelId:(int32_t) value; +- (MPVoiceTarget_Target_Builder*) clearChannelId; + +- (BOOL) hasGroup; +- (NSString*) group; +- (MPVoiceTarget_Target_Builder*) setGroup:(NSString*) value; +- (MPVoiceTarget_Target_Builder*) clearGroup; + +- (BOOL) hasLinks; +- (BOOL) links; +- (MPVoiceTarget_Target_Builder*) setLinks:(BOOL) value; +- (MPVoiceTarget_Target_Builder*) clearLinks; + +- (BOOL) hasChildren; +- (BOOL) children; +- (MPVoiceTarget_Target_Builder*) setChildren:(BOOL) value; +- (MPVoiceTarget_Target_Builder*) clearChildren; +@end + +@interface MPVoiceTarget_Builder : PBGeneratedMessage_Builder { +@private + MPVoiceTarget* result; +} + +- (MPVoiceTarget*) defaultInstance; + +- (MPVoiceTarget_Builder*) clear; +- (MPVoiceTarget_Builder*) clone; + +- (MPVoiceTarget*) build; +- (MPVoiceTarget*) buildPartial; + +- (MPVoiceTarget_Builder*) mergeFrom:(MPVoiceTarget*) other; +- (MPVoiceTarget_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (MPVoiceTarget_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (BOOL) hasId; +- (int32_t) id; +- (MPVoiceTarget_Builder*) setId:(int32_t) value; +- (MPVoiceTarget_Builder*) clearId; + +- (NSArray*) targetsList; +- (MPVoiceTarget_Target*) targetsAtIndex:(int32_t) index; +- (MPVoiceTarget_Builder*) replaceTargetsAtIndex:(int32_t) index with:(MPVoiceTarget_Target*) value; +- (MPVoiceTarget_Builder*) addTargets:(MPVoiceTarget_Target*) value; +- (MPVoiceTarget_Builder*) addAllTargets:(NSArray*) values; +- (MPVoiceTarget_Builder*) clearTargetsList; +@end + +@interface MPPermissionQuery : PBGeneratedMessage { +@private + BOOL hasFlush_:1; + BOOL hasChannelId_:1; + BOOL hasPermissions_:1; + BOOL flush_:1; + int32_t channelId; + int32_t permissions; +} +- (BOOL) hasChannelId; +- (BOOL) hasPermissions; +- (BOOL) hasFlush; +@property (readonly) int32_t channelId; +@property (readonly) int32_t permissions; +- (BOOL) flush; + ++ (MPPermissionQuery*) defaultInstance; +- (MPPermissionQuery*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (MPPermissionQuery_Builder*) builder; ++ (MPPermissionQuery_Builder*) builder; ++ (MPPermissionQuery_Builder*) builderWithPrototype:(MPPermissionQuery*) prototype; + ++ (MPPermissionQuery*) parseFromData:(NSData*) data; ++ (MPPermissionQuery*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPPermissionQuery*) parseFromInputStream:(NSInputStream*) input; ++ (MPPermissionQuery*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPPermissionQuery*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (MPPermissionQuery*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface MPPermissionQuery_Builder : PBGeneratedMessage_Builder { +@private + MPPermissionQuery* result; +} + +- (MPPermissionQuery*) defaultInstance; + +- (MPPermissionQuery_Builder*) clear; +- (MPPermissionQuery_Builder*) clone; + +- (MPPermissionQuery*) build; +- (MPPermissionQuery*) buildPartial; + +- (MPPermissionQuery_Builder*) mergeFrom:(MPPermissionQuery*) other; +- (MPPermissionQuery_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (MPPermissionQuery_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (BOOL) hasChannelId; +- (int32_t) channelId; +- (MPPermissionQuery_Builder*) setChannelId:(int32_t) value; +- (MPPermissionQuery_Builder*) clearChannelId; + +- (BOOL) hasPermissions; +- (int32_t) permissions; +- (MPPermissionQuery_Builder*) setPermissions:(int32_t) value; +- (MPPermissionQuery_Builder*) clearPermissions; + +- (BOOL) hasFlush; +- (BOOL) flush; +- (MPPermissionQuery_Builder*) setFlush:(BOOL) value; +- (MPPermissionQuery_Builder*) clearFlush; +@end + +@interface MPCodecVersion : PBGeneratedMessage { +@private + BOOL hasPreferAlpha_:1; + BOOL hasAlpha_:1; + BOOL hasBeta_:1; + BOOL preferAlpha_:1; + int32_t alpha; + int32_t beta; +} +- (BOOL) hasAlpha; +- (BOOL) hasBeta; +- (BOOL) hasPreferAlpha; +@property (readonly) int32_t alpha; +@property (readonly) int32_t beta; +- (BOOL) preferAlpha; + ++ (MPCodecVersion*) defaultInstance; +- (MPCodecVersion*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (MPCodecVersion_Builder*) builder; ++ (MPCodecVersion_Builder*) builder; ++ (MPCodecVersion_Builder*) builderWithPrototype:(MPCodecVersion*) prototype; + ++ (MPCodecVersion*) parseFromData:(NSData*) data; ++ (MPCodecVersion*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPCodecVersion*) parseFromInputStream:(NSInputStream*) input; ++ (MPCodecVersion*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPCodecVersion*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (MPCodecVersion*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface MPCodecVersion_Builder : PBGeneratedMessage_Builder { +@private + MPCodecVersion* result; +} + +- (MPCodecVersion*) defaultInstance; + +- (MPCodecVersion_Builder*) clear; +- (MPCodecVersion_Builder*) clone; + +- (MPCodecVersion*) build; +- (MPCodecVersion*) buildPartial; + +- (MPCodecVersion_Builder*) mergeFrom:(MPCodecVersion*) other; +- (MPCodecVersion_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (MPCodecVersion_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (BOOL) hasAlpha; +- (int32_t) alpha; +- (MPCodecVersion_Builder*) setAlpha:(int32_t) value; +- (MPCodecVersion_Builder*) clearAlpha; + +- (BOOL) hasBeta; +- (int32_t) beta; +- (MPCodecVersion_Builder*) setBeta:(int32_t) value; +- (MPCodecVersion_Builder*) clearBeta; + +- (BOOL) hasPreferAlpha; +- (BOOL) preferAlpha; +- (MPCodecVersion_Builder*) setPreferAlpha:(BOOL) value; +- (MPCodecVersion_Builder*) clearPreferAlpha; +@end + +@interface MPUserStats : PBGeneratedMessage { +@private + BOOL hasStrongCertificate_:1; + BOOL hasStatsOnly_:1; + BOOL hasTcpPingVar_:1; + BOOL hasTcpPingAvg_:1; + BOOL hasUdpPingVar_:1; + BOOL hasUdpPingAvg_:1; + BOOL hasFromServer_:1; + BOOL hasFromClient_:1; + BOOL hasVersion_:1; + BOOL hasAddress_:1; + BOOL hasTcpPackets_:1; + BOOL hasUdpPackets_:1; + BOOL hasBandwidth_:1; + BOOL hasOnlinesecs_:1; + BOOL hasIdlesecs_:1; + BOOL hasSession_:1; + BOOL strongCertificate_:1; + BOOL statsOnly_:1; + Float32 tcpPingVar; + Float32 tcpPingAvg; + Float32 udpPingVar; + Float32 udpPingAvg; + MPUserStats_Stats* fromServer; + MPUserStats_Stats* fromClient; + MPVersion* version; + NSData* address; + int32_t tcpPackets; + int32_t udpPackets; + int32_t bandwidth; + int32_t onlinesecs; + int32_t idlesecs; + int32_t session; + NSMutableArray* mutableCeltVersionsList; + NSMutableArray* mutableCertificatesList; +} +- (BOOL) hasSession; +- (BOOL) hasStatsOnly; +- (BOOL) hasFromClient; +- (BOOL) hasFromServer; +- (BOOL) hasUdpPackets; +- (BOOL) hasTcpPackets; +- (BOOL) hasUdpPingAvg; +- (BOOL) hasUdpPingVar; +- (BOOL) hasTcpPingAvg; +- (BOOL) hasTcpPingVar; +- (BOOL) hasVersion; +- (BOOL) hasAddress; +- (BOOL) hasBandwidth; +- (BOOL) hasOnlinesecs; +- (BOOL) hasIdlesecs; +- (BOOL) hasStrongCertificate; +@property (readonly) int32_t session; +- (BOOL) statsOnly; +@property (readonly, retain) MPUserStats_Stats* fromClient; +@property (readonly, retain) MPUserStats_Stats* fromServer; +@property (readonly) int32_t udpPackets; +@property (readonly) int32_t tcpPackets; +@property (readonly) Float32 udpPingAvg; +@property (readonly) Float32 udpPingVar; +@property (readonly) Float32 tcpPingAvg; +@property (readonly) Float32 tcpPingVar; +@property (readonly, retain) MPVersion* version; +@property (readonly, retain) NSData* address; +@property (readonly) int32_t bandwidth; +@property (readonly) int32_t onlinesecs; +@property (readonly) int32_t idlesecs; +- (BOOL) strongCertificate; +- (NSArray*) certificatesList; +- (NSData*) certificatesAtIndex:(int32_t) index; +- (NSArray*) celtVersionsList; +- (int32_t) celtVersionsAtIndex:(int32_t) index; + ++ (MPUserStats*) defaultInstance; +- (MPUserStats*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (MPUserStats_Builder*) builder; ++ (MPUserStats_Builder*) builder; ++ (MPUserStats_Builder*) builderWithPrototype:(MPUserStats*) prototype; + ++ (MPUserStats*) parseFromData:(NSData*) data; ++ (MPUserStats*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPUserStats*) parseFromInputStream:(NSInputStream*) input; ++ (MPUserStats*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPUserStats*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (MPUserStats*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface MPUserStats_Stats : PBGeneratedMessage { +@private + BOOL hasGood_:1; + BOOL hasLate_:1; + BOOL hasLost_:1; + BOOL hasResync_:1; + int32_t good; + int32_t late; + int32_t lost; + int32_t resync; +} +- (BOOL) hasGood; +- (BOOL) hasLate; +- (BOOL) hasLost; +- (BOOL) hasResync; +@property (readonly) int32_t good; +@property (readonly) int32_t late; +@property (readonly) int32_t lost; +@property (readonly) int32_t resync; + ++ (MPUserStats_Stats*) defaultInstance; +- (MPUserStats_Stats*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (MPUserStats_Stats_Builder*) builder; ++ (MPUserStats_Stats_Builder*) builder; ++ (MPUserStats_Stats_Builder*) builderWithPrototype:(MPUserStats_Stats*) prototype; + ++ (MPUserStats_Stats*) parseFromData:(NSData*) data; ++ (MPUserStats_Stats*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPUserStats_Stats*) parseFromInputStream:(NSInputStream*) input; ++ (MPUserStats_Stats*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPUserStats_Stats*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (MPUserStats_Stats*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface MPUserStats_Stats_Builder : PBGeneratedMessage_Builder { +@private + MPUserStats_Stats* result; +} + +- (MPUserStats_Stats*) defaultInstance; + +- (MPUserStats_Stats_Builder*) clear; +- (MPUserStats_Stats_Builder*) clone; + +- (MPUserStats_Stats*) build; +- (MPUserStats_Stats*) buildPartial; + +- (MPUserStats_Stats_Builder*) mergeFrom:(MPUserStats_Stats*) other; +- (MPUserStats_Stats_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (MPUserStats_Stats_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (BOOL) hasGood; +- (int32_t) good; +- (MPUserStats_Stats_Builder*) setGood:(int32_t) value; +- (MPUserStats_Stats_Builder*) clearGood; + +- (BOOL) hasLate; +- (int32_t) late; +- (MPUserStats_Stats_Builder*) setLate:(int32_t) value; +- (MPUserStats_Stats_Builder*) clearLate; + +- (BOOL) hasLost; +- (int32_t) lost; +- (MPUserStats_Stats_Builder*) setLost:(int32_t) value; +- (MPUserStats_Stats_Builder*) clearLost; + +- (BOOL) hasResync; +- (int32_t) resync; +- (MPUserStats_Stats_Builder*) setResync:(int32_t) value; +- (MPUserStats_Stats_Builder*) clearResync; +@end + +@interface MPUserStats_Builder : PBGeneratedMessage_Builder { +@private + MPUserStats* result; +} + +- (MPUserStats*) defaultInstance; + +- (MPUserStats_Builder*) clear; +- (MPUserStats_Builder*) clone; + +- (MPUserStats*) build; +- (MPUserStats*) buildPartial; + +- (MPUserStats_Builder*) mergeFrom:(MPUserStats*) other; +- (MPUserStats_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (MPUserStats_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (BOOL) hasSession; +- (int32_t) session; +- (MPUserStats_Builder*) setSession:(int32_t) value; +- (MPUserStats_Builder*) clearSession; + +- (BOOL) hasStatsOnly; +- (BOOL) statsOnly; +- (MPUserStats_Builder*) setStatsOnly:(BOOL) value; +- (MPUserStats_Builder*) clearStatsOnly; + +- (NSArray*) certificatesList; +- (NSData*) certificatesAtIndex:(int32_t) index; +- (MPUserStats_Builder*) replaceCertificatesAtIndex:(int32_t) index with:(NSData*) value; +- (MPUserStats_Builder*) addCertificates:(NSData*) value; +- (MPUserStats_Builder*) addAllCertificates:(NSArray*) values; +- (MPUserStats_Builder*) clearCertificatesList; + +- (BOOL) hasFromClient; +- (MPUserStats_Stats*) fromClient; +- (MPUserStats_Builder*) setFromClient:(MPUserStats_Stats*) value; +- (MPUserStats_Builder*) setFromClientBuilder:(MPUserStats_Stats_Builder*) builderForValue; +- (MPUserStats_Builder*) mergeFromClient:(MPUserStats_Stats*) value; +- (MPUserStats_Builder*) clearFromClient; + +- (BOOL) hasFromServer; +- (MPUserStats_Stats*) fromServer; +- (MPUserStats_Builder*) setFromServer:(MPUserStats_Stats*) value; +- (MPUserStats_Builder*) setFromServerBuilder:(MPUserStats_Stats_Builder*) builderForValue; +- (MPUserStats_Builder*) mergeFromServer:(MPUserStats_Stats*) value; +- (MPUserStats_Builder*) clearFromServer; + +- (BOOL) hasUdpPackets; +- (int32_t) udpPackets; +- (MPUserStats_Builder*) setUdpPackets:(int32_t) value; +- (MPUserStats_Builder*) clearUdpPackets; + +- (BOOL) hasTcpPackets; +- (int32_t) tcpPackets; +- (MPUserStats_Builder*) setTcpPackets:(int32_t) value; +- (MPUserStats_Builder*) clearTcpPackets; + +- (BOOL) hasUdpPingAvg; +- (Float32) udpPingAvg; +- (MPUserStats_Builder*) setUdpPingAvg:(Float32) value; +- (MPUserStats_Builder*) clearUdpPingAvg; + +- (BOOL) hasUdpPingVar; +- (Float32) udpPingVar; +- (MPUserStats_Builder*) setUdpPingVar:(Float32) value; +- (MPUserStats_Builder*) clearUdpPingVar; + +- (BOOL) hasTcpPingAvg; +- (Float32) tcpPingAvg; +- (MPUserStats_Builder*) setTcpPingAvg:(Float32) value; +- (MPUserStats_Builder*) clearTcpPingAvg; + +- (BOOL) hasTcpPingVar; +- (Float32) tcpPingVar; +- (MPUserStats_Builder*) setTcpPingVar:(Float32) value; +- (MPUserStats_Builder*) clearTcpPingVar; + +- (BOOL) hasVersion; +- (MPVersion*) version; +- (MPUserStats_Builder*) setVersion:(MPVersion*) value; +- (MPUserStats_Builder*) setVersionBuilder:(MPVersion_Builder*) builderForValue; +- (MPUserStats_Builder*) mergeVersion:(MPVersion*) value; +- (MPUserStats_Builder*) clearVersion; + +- (NSArray*) celtVersionsList; +- (int32_t) celtVersionsAtIndex:(int32_t) index; +- (MPUserStats_Builder*) replaceCeltVersionsAtIndex:(int32_t) index with:(int32_t) value; +- (MPUserStats_Builder*) addCeltVersions:(int32_t) value; +- (MPUserStats_Builder*) addAllCeltVersions:(NSArray*) values; +- (MPUserStats_Builder*) clearCeltVersionsList; + +- (BOOL) hasAddress; +- (NSData*) address; +- (MPUserStats_Builder*) setAddress:(NSData*) value; +- (MPUserStats_Builder*) clearAddress; + +- (BOOL) hasBandwidth; +- (int32_t) bandwidth; +- (MPUserStats_Builder*) setBandwidth:(int32_t) value; +- (MPUserStats_Builder*) clearBandwidth; + +- (BOOL) hasOnlinesecs; +- (int32_t) onlinesecs; +- (MPUserStats_Builder*) setOnlinesecs:(int32_t) value; +- (MPUserStats_Builder*) clearOnlinesecs; + +- (BOOL) hasIdlesecs; +- (int32_t) idlesecs; +- (MPUserStats_Builder*) setIdlesecs:(int32_t) value; +- (MPUserStats_Builder*) clearIdlesecs; + +- (BOOL) hasStrongCertificate; +- (BOOL) strongCertificate; +- (MPUserStats_Builder*) setStrongCertificate:(BOOL) value; +- (MPUserStats_Builder*) clearStrongCertificate; +@end + +@interface MPRequestBlob : PBGeneratedMessage { +@private + NSMutableArray* mutableSessionTextureList; + NSMutableArray* mutableSessionCommentList; + NSMutableArray* mutableChannelDescriptionList; +} +- (NSArray*) sessionTextureList; +- (int32_t) sessionTextureAtIndex:(int32_t) index; +- (NSArray*) sessionCommentList; +- (int32_t) sessionCommentAtIndex:(int32_t) index; +- (NSArray*) channelDescriptionList; +- (int32_t) channelDescriptionAtIndex:(int32_t) index; + ++ (MPRequestBlob*) defaultInstance; +- (MPRequestBlob*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (MPRequestBlob_Builder*) builder; ++ (MPRequestBlob_Builder*) builder; ++ (MPRequestBlob_Builder*) builderWithPrototype:(MPRequestBlob*) prototype; + ++ (MPRequestBlob*) parseFromData:(NSData*) data; ++ (MPRequestBlob*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPRequestBlob*) parseFromInputStream:(NSInputStream*) input; ++ (MPRequestBlob*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (MPRequestBlob*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (MPRequestBlob*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface MPRequestBlob_Builder : PBGeneratedMessage_Builder { +@private + MPRequestBlob* result; +} + +- (MPRequestBlob*) defaultInstance; + +- (MPRequestBlob_Builder*) clear; +- (MPRequestBlob_Builder*) clone; + +- (MPRequestBlob*) build; +- (MPRequestBlob*) buildPartial; + +- (MPRequestBlob_Builder*) mergeFrom:(MPRequestBlob*) other; +- (MPRequestBlob_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (MPRequestBlob_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (NSArray*) sessionTextureList; +- (int32_t) sessionTextureAtIndex:(int32_t) index; +- (MPRequestBlob_Builder*) replaceSessionTextureAtIndex:(int32_t) index with:(int32_t) value; +- (MPRequestBlob_Builder*) addSessionTexture:(int32_t) value; +- (MPRequestBlob_Builder*) addAllSessionTexture:(NSArray*) values; +- (MPRequestBlob_Builder*) clearSessionTextureList; + +- (NSArray*) sessionCommentList; +- (int32_t) sessionCommentAtIndex:(int32_t) index; +- (MPRequestBlob_Builder*) replaceSessionCommentAtIndex:(int32_t) index with:(int32_t) value; +- (MPRequestBlob_Builder*) addSessionComment:(int32_t) value; +- (MPRequestBlob_Builder*) addAllSessionComment:(NSArray*) values; +- (MPRequestBlob_Builder*) clearSessionCommentList; + +- (NSArray*) channelDescriptionList; +- (int32_t) channelDescriptionAtIndex:(int32_t) index; +- (MPRequestBlob_Builder*) replaceChannelDescriptionAtIndex:(int32_t) index with:(int32_t) value; +- (MPRequestBlob_Builder*) addChannelDescription:(int32_t) value; +- (MPRequestBlob_Builder*) addAllChannelDescription:(NSArray*) values; +- (MPRequestBlob_Builder*) clearChannelDescriptionList; +@end + diff --git a/proto/Mumble.pb.m b/proto/Mumble.pb.m new file mode 100644 index 0000000..0166b3e --- /dev/null +++ b/proto/Mumble.pb.m @@ -0,0 +1,11061 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! + +#import "Mumble.pb.h" + +@implementation MPMumbleRoot +static PBExtensionRegistry* extensionRegistry = nil; ++ (PBExtensionRegistry*) extensionRegistry { + return extensionRegistry; +} + ++ (void) initialize { + if (self == [MPMumbleRoot class]) { + PBMutableExtensionRegistry* registry = [PBMutableExtensionRegistry registry]; + [self registerAllExtensions:registry]; + [ObjectivecDescriptorRoot registerAllExtensions:registry]; + extensionRegistry = [registry retain]; + } +} ++ (void) registerAllExtensions:(PBMutableExtensionRegistry*) registry { +} +@end + +@interface MPVersion () +@property int32_t version; +@property (retain) NSString* release; +@property (retain) NSString* os; +@property (retain) NSString* osVersion; +@end + +@implementation MPVersion + +- (BOOL) hasVersion { + return !!hasVersion_; +} +- (void) setHasVersion:(BOOL) value { + hasVersion_ = !!value; +} +@synthesize version; +- (BOOL) hasRelease { + return !!hasRelease_; +} +- (void) setHasRelease:(BOOL) value { + hasRelease_ = !!value; +} +@synthesize release; +- (BOOL) hasOs { + return !!hasOs_; +} +- (void) setHasOs:(BOOL) value { + hasOs_ = !!value; +} +@synthesize os; +- (BOOL) hasOsVersion { + return !!hasOsVersion_; +} +- (void) setHasOsVersion:(BOOL) value { + hasOsVersion_ = !!value; +} +@synthesize osVersion; +- (void) dealloc { + self.release = nil; + self.os = nil; + self.osVersion = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.version = 0; + self.release = @""; + self.os = @""; + self.osVersion = @""; + } + return self; +} +static MPVersion* defaultMPVersionInstance = nil; ++ (void) initialize { + if (self == [MPVersion class]) { + defaultMPVersionInstance = [[MPVersion alloc] init]; + } +} ++ (MPVersion*) defaultInstance { + return defaultMPVersionInstance; +} +- (MPVersion*) defaultInstance { + return defaultMPVersionInstance; +} +- (BOOL) isInitialized { + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + if (self.hasVersion) { + [output writeUInt32:1 value:self.version]; + } + if (self.hasRelease) { + [output writeString:2 value:self.release]; + } + if (self.hasOs) { + [output writeString:3 value:self.os]; + } + if (self.hasOsVersion) { + [output writeString:4 value:self.osVersion]; + } + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + if (self.hasVersion) { + size += computeUInt32Size(1, self.version); + } + if (self.hasRelease) { + size += computeStringSize(2, self.release); + } + if (self.hasOs) { + size += computeStringSize(3, self.os); + } + if (self.hasOsVersion) { + size += computeStringSize(4, self.osVersion); + } + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (MPVersion*) parseFromData:(NSData*) data { + return (MPVersion*)[[[MPVersion builder] mergeFromData:data] build]; +} ++ (MPVersion*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPVersion*)[[[MPVersion builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (MPVersion*) parseFromInputStream:(NSInputStream*) input { + return (MPVersion*)[[[MPVersion builder] mergeFromInputStream:input] build]; +} ++ (MPVersion*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPVersion*)[[[MPVersion builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPVersion*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (MPVersion*)[[[MPVersion builder] mergeFromCodedInputStream:input] build]; +} ++ (MPVersion*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPVersion*)[[[MPVersion builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPVersion_Builder*) builder { + return [[[MPVersion_Builder alloc] init] autorelease]; +} ++ (MPVersion_Builder*) builderWithPrototype:(MPVersion*) prototype { + return [[MPVersion builder] mergeFrom:prototype]; +} +- (MPVersion_Builder*) builder { + return [MPVersion builder]; +} +@end + +@interface MPVersion_Builder() +@property (retain) MPVersion* result; +@end + +@implementation MPVersion_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[MPVersion alloc] init] autorelease]; + } + return self; +} +- (PBGeneratedMessage*) internalGetResult { + return result; +} +- (MPVersion_Builder*) clear { + self.result = [[[MPVersion alloc] init] autorelease]; + return self; +} +- (MPVersion_Builder*) clone { + return [MPVersion builderWithPrototype:result]; +} +- (MPVersion*) defaultInstance { + return [MPVersion defaultInstance]; +} +- (MPVersion*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (MPVersion*) buildPartial { + MPVersion* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (MPVersion_Builder*) mergeFrom:(MPVersion*) other { + if (other == [MPVersion defaultInstance]) { + return self; + } + if (other.hasVersion) { + [self setVersion:other.version]; + } + if (other.hasRelease) { + [self setRelease:other.release]; + } + if (other.hasOs) { + [self setOs:other.os]; + } + if (other.hasOsVersion) { + [self setOsVersion:other.osVersion]; + } + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (MPVersion_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (MPVersion_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 8: { + [self setVersion:[input readUInt32]]; + break; + } + case 18: { + [self setRelease:[input readString]]; + break; + } + case 26: { + [self setOs:[input readString]]; + break; + } + case 34: { + [self setOsVersion:[input readString]]; + break; + } + } + } +} +- (BOOL) hasVersion { + return result.hasVersion; +} +- (int32_t) version { + return result.version; +} +- (MPVersion_Builder*) setVersion:(int32_t) value { + result.hasVersion = YES; + result.version = value; + return self; +} +- (MPVersion_Builder*) clearVersion { + result.hasVersion = NO; + result.version = 0; + return self; +} +- (BOOL) hasRelease { + return result.hasRelease; +} +- (NSString*) release { + return result.release; +} +- (MPVersion_Builder*) setRelease:(NSString*) value { + result.hasRelease = YES; + result.release = value; + return self; +} +- (MPVersion_Builder*) clearRelease { + result.hasRelease = NO; + result.release = @""; + return self; +} +- (BOOL) hasOs { + return result.hasOs; +} +- (NSString*) os { + return result.os; +} +- (MPVersion_Builder*) setOs:(NSString*) value { + result.hasOs = YES; + result.os = value; + return self; +} +- (MPVersion_Builder*) clearOs { + result.hasOs = NO; + result.os = @""; + return self; +} +- (BOOL) hasOsVersion { + return result.hasOsVersion; +} +- (NSString*) osVersion { + return result.osVersion; +} +- (MPVersion_Builder*) setOsVersion:(NSString*) value { + result.hasOsVersion = YES; + result.osVersion = value; + return self; +} +- (MPVersion_Builder*) clearOsVersion { + result.hasOsVersion = NO; + result.osVersion = @""; + return self; +} +@end + +@interface MPUDPTunnel () +@property (retain) NSData* packet; +@end + +@implementation MPUDPTunnel + +- (BOOL) hasPacket { + return !!hasPacket_; +} +- (void) setHasPacket:(BOOL) value { + hasPacket_ = !!value; +} +@synthesize packet; +- (void) dealloc { + self.packet = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.packet = [NSData data]; + } + return self; +} +static MPUDPTunnel* defaultMPUDPTunnelInstance = nil; ++ (void) initialize { + if (self == [MPUDPTunnel class]) { + defaultMPUDPTunnelInstance = [[MPUDPTunnel alloc] init]; + } +} ++ (MPUDPTunnel*) defaultInstance { + return defaultMPUDPTunnelInstance; +} +- (MPUDPTunnel*) defaultInstance { + return defaultMPUDPTunnelInstance; +} +- (BOOL) isInitialized { + if (!self.hasPacket) { + return NO; + } + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + if (self.hasPacket) { + [output writeData:1 value:self.packet]; + } + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + if (self.hasPacket) { + size += computeDataSize(1, self.packet); + } + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (MPUDPTunnel*) parseFromData:(NSData*) data { + return (MPUDPTunnel*)[[[MPUDPTunnel builder] mergeFromData:data] build]; +} ++ (MPUDPTunnel*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPUDPTunnel*)[[[MPUDPTunnel builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (MPUDPTunnel*) parseFromInputStream:(NSInputStream*) input { + return (MPUDPTunnel*)[[[MPUDPTunnel builder] mergeFromInputStream:input] build]; +} ++ (MPUDPTunnel*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPUDPTunnel*)[[[MPUDPTunnel builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPUDPTunnel*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (MPUDPTunnel*)[[[MPUDPTunnel builder] mergeFromCodedInputStream:input] build]; +} ++ (MPUDPTunnel*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPUDPTunnel*)[[[MPUDPTunnel builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPUDPTunnel_Builder*) builder { + return [[[MPUDPTunnel_Builder alloc] init] autorelease]; +} ++ (MPUDPTunnel_Builder*) builderWithPrototype:(MPUDPTunnel*) prototype { + return [[MPUDPTunnel builder] mergeFrom:prototype]; +} +- (MPUDPTunnel_Builder*) builder { + return [MPUDPTunnel builder]; +} +@end + +@interface MPUDPTunnel_Builder() +@property (retain) MPUDPTunnel* result; +@end + +@implementation MPUDPTunnel_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[MPUDPTunnel alloc] init] autorelease]; + } + return self; +} +- (PBGeneratedMessage*) internalGetResult { + return result; +} +- (MPUDPTunnel_Builder*) clear { + self.result = [[[MPUDPTunnel alloc] init] autorelease]; + return self; +} +- (MPUDPTunnel_Builder*) clone { + return [MPUDPTunnel builderWithPrototype:result]; +} +- (MPUDPTunnel*) defaultInstance { + return [MPUDPTunnel defaultInstance]; +} +- (MPUDPTunnel*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (MPUDPTunnel*) buildPartial { + MPUDPTunnel* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (MPUDPTunnel_Builder*) mergeFrom:(MPUDPTunnel*) other { + if (other == [MPUDPTunnel defaultInstance]) { + return self; + } + if (other.hasPacket) { + [self setPacket:other.packet]; + } + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (MPUDPTunnel_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (MPUDPTunnel_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 10: { + [self setPacket:[input readData]]; + break; + } + } + } +} +- (BOOL) hasPacket { + return result.hasPacket; +} +- (NSData*) packet { + return result.packet; +} +- (MPUDPTunnel_Builder*) setPacket:(NSData*) value { + result.hasPacket = YES; + result.packet = value; + return self; +} +- (MPUDPTunnel_Builder*) clearPacket { + result.hasPacket = NO; + result.packet = [NSData data]; + return self; +} +@end + +@interface MPAuthenticate () +@property (retain) NSString* username; +@property (retain) NSString* password; +@property (retain) NSMutableArray* mutableTokensList; +@property (retain) NSMutableArray* mutableCeltVersionsList; +@end + +@implementation MPAuthenticate + +- (BOOL) hasUsername { + return !!hasUsername_; +} +- (void) setHasUsername:(BOOL) value { + hasUsername_ = !!value; +} +@synthesize username; +- (BOOL) hasPassword { + return !!hasPassword_; +} +- (void) setHasPassword:(BOOL) value { + hasPassword_ = !!value; +} +@synthesize password; +@synthesize mutableTokensList; +@synthesize mutableCeltVersionsList; +- (void) dealloc { + self.username = nil; + self.password = nil; + self.mutableTokensList = nil; + self.mutableCeltVersionsList = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.username = @""; + self.password = @""; + } + return self; +} +static MPAuthenticate* defaultMPAuthenticateInstance = nil; ++ (void) initialize { + if (self == [MPAuthenticate class]) { + defaultMPAuthenticateInstance = [[MPAuthenticate alloc] init]; + } +} ++ (MPAuthenticate*) defaultInstance { + return defaultMPAuthenticateInstance; +} +- (MPAuthenticate*) defaultInstance { + return defaultMPAuthenticateInstance; +} +- (NSArray*) tokensList { + return mutableTokensList; +} +- (NSString*) tokensAtIndex:(int32_t) index { + id value = [mutableTokensList objectAtIndex:index]; + return value; +} +- (NSArray*) celtVersionsList { + return mutableCeltVersionsList; +} +- (int32_t) celtVersionsAtIndex:(int32_t) index { + id value = [mutableCeltVersionsList objectAtIndex:index]; + return [value intValue]; +} +- (BOOL) isInitialized { + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + if (self.hasUsername) { + [output writeString:1 value:self.username]; + } + if (self.hasPassword) { + [output writeString:2 value:self.password]; + } + for (NSString* element in self.mutableTokensList) { + [output writeString:3 value:element]; + } + for (NSNumber* value in self.mutableCeltVersionsList) { + [output writeInt32:4 value:[value intValue]]; + } + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + if (self.hasUsername) { + size += computeStringSize(1, self.username); + } + if (self.hasPassword) { + size += computeStringSize(2, self.password); + } + { + int32_t dataSize = 0; + for (NSString* element in self.mutableTokensList) { + dataSize += computeStringSizeNoTag(element); + } + size += dataSize; + size += 1 * self.mutableTokensList.count; + } + { + int32_t dataSize = 0; + for (NSNumber* value in self.mutableCeltVersionsList) { + dataSize += computeInt32SizeNoTag([value intValue]); + } + size += dataSize; + size += 1 * self.mutableCeltVersionsList.count; + } + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (MPAuthenticate*) parseFromData:(NSData*) data { + return (MPAuthenticate*)[[[MPAuthenticate builder] mergeFromData:data] build]; +} ++ (MPAuthenticate*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPAuthenticate*)[[[MPAuthenticate builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (MPAuthenticate*) parseFromInputStream:(NSInputStream*) input { + return (MPAuthenticate*)[[[MPAuthenticate builder] mergeFromInputStream:input] build]; +} ++ (MPAuthenticate*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPAuthenticate*)[[[MPAuthenticate builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPAuthenticate*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (MPAuthenticate*)[[[MPAuthenticate builder] mergeFromCodedInputStream:input] build]; +} ++ (MPAuthenticate*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPAuthenticate*)[[[MPAuthenticate builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPAuthenticate_Builder*) builder { + return [[[MPAuthenticate_Builder alloc] init] autorelease]; +} ++ (MPAuthenticate_Builder*) builderWithPrototype:(MPAuthenticate*) prototype { + return [[MPAuthenticate builder] mergeFrom:prototype]; +} +- (MPAuthenticate_Builder*) builder { + return [MPAuthenticate builder]; +} +@end + +@interface MPAuthenticate_Builder() +@property (retain) MPAuthenticate* result; +@end + +@implementation MPAuthenticate_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[MPAuthenticate alloc] init] autorelease]; + } + return self; +} +- (PBGeneratedMessage*) internalGetResult { + return result; +} +- (MPAuthenticate_Builder*) clear { + self.result = [[[MPAuthenticate alloc] init] autorelease]; + return self; +} +- (MPAuthenticate_Builder*) clone { + return [MPAuthenticate builderWithPrototype:result]; +} +- (MPAuthenticate*) defaultInstance { + return [MPAuthenticate defaultInstance]; +} +- (MPAuthenticate*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (MPAuthenticate*) buildPartial { + MPAuthenticate* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (MPAuthenticate_Builder*) mergeFrom:(MPAuthenticate*) other { + if (other == [MPAuthenticate defaultInstance]) { + return self; + } + if (other.hasUsername) { + [self setUsername:other.username]; + } + if (other.hasPassword) { + [self setPassword:other.password]; + } + if (other.mutableTokensList.count > 0) { + if (result.mutableTokensList == nil) { + result.mutableTokensList = [NSMutableArray array]; + } + [result.mutableTokensList addObjectsFromArray:other.mutableTokensList]; + } + if (other.mutableCeltVersionsList.count > 0) { + if (result.mutableCeltVersionsList == nil) { + result.mutableCeltVersionsList = [NSMutableArray array]; + } + [result.mutableCeltVersionsList addObjectsFromArray:other.mutableCeltVersionsList]; + } + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (MPAuthenticate_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (MPAuthenticate_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 10: { + [self setUsername:[input readString]]; + break; + } + case 18: { + [self setPassword:[input readString]]; + break; + } + case 26: { + [self addTokens:[input readString]]; + break; + } + case 32: { + [self addCeltVersions:[input readInt32]]; + break; + } + } + } +} +- (BOOL) hasUsername { + return result.hasUsername; +} +- (NSString*) username { + return result.username; +} +- (MPAuthenticate_Builder*) setUsername:(NSString*) value { + result.hasUsername = YES; + result.username = value; + return self; +} +- (MPAuthenticate_Builder*) clearUsername { + result.hasUsername = NO; + result.username = @""; + return self; +} +- (BOOL) hasPassword { + return result.hasPassword; +} +- (NSString*) password { + return result.password; +} +- (MPAuthenticate_Builder*) setPassword:(NSString*) value { + result.hasPassword = YES; + result.password = value; + return self; +} +- (MPAuthenticate_Builder*) clearPassword { + result.hasPassword = NO; + result.password = @""; + return self; +} +- (NSArray*) tokensList { + if (result.mutableTokensList == nil) { + return [NSArray array]; + } + return result.mutableTokensList; +} +- (NSString*) tokensAtIndex:(int32_t) index { + return [result tokensAtIndex:index]; +} +- (MPAuthenticate_Builder*) replaceTokensAtIndex:(int32_t) index with:(NSString*) value { + [result.mutableTokensList replaceObjectAtIndex:index withObject:value]; + return self; +} +- (MPAuthenticate_Builder*) addTokens:(NSString*) value { + if (result.mutableTokensList == nil) { + result.mutableTokensList = [NSMutableArray array]; + } + [result.mutableTokensList addObject:value]; + return self; +} +- (MPAuthenticate_Builder*) addAllTokens:(NSArray*) values { + if (result.mutableTokensList == nil) { + result.mutableTokensList = [NSMutableArray array]; + } + [result.mutableTokensList addObjectsFromArray:values]; + return self; +} +- (MPAuthenticate_Builder*) clearTokensList { + result.mutableTokensList = nil; + return self; +} +- (NSArray*) celtVersionsList { + if (result.mutableCeltVersionsList == nil) { + return [NSArray array]; + } + return result.mutableCeltVersionsList; +} +- (int32_t) celtVersionsAtIndex:(int32_t) index { + return [result celtVersionsAtIndex:index]; +} +- (MPAuthenticate_Builder*) replaceCeltVersionsAtIndex:(int32_t) index with:(int32_t) value { + [result.mutableCeltVersionsList replaceObjectAtIndex:index withObject:[NSNumber numberWithInt:value]]; + return self; +} +- (MPAuthenticate_Builder*) addCeltVersions:(int32_t) value { + if (result.mutableCeltVersionsList == nil) { + result.mutableCeltVersionsList = [NSMutableArray array]; + } + [result.mutableCeltVersionsList addObject:[NSNumber numberWithInt:value]]; + return self; +} +- (MPAuthenticate_Builder*) addAllCeltVersions:(NSArray*) values { + if (result.mutableCeltVersionsList == nil) { + result.mutableCeltVersionsList = [NSMutableArray array]; + } + [result.mutableCeltVersionsList addObjectsFromArray:values]; + return self; +} +- (MPAuthenticate_Builder*) clearCeltVersionsList { + result.mutableCeltVersionsList = nil; + return self; +} +@end + +@interface MPPing () +@property int64_t timestamp; +@property int32_t good; +@property int32_t late; +@property int32_t lost; +@property int32_t resync; +@property int32_t udpPackets; +@property int32_t tcpPackets; +@property Float32 udpPingAvg; +@property Float32 udpPingVar; +@property Float32 tcpPingAvg; +@property Float32 tcpPingVar; +@end + +@implementation MPPing + +- (BOOL) hasTimestamp { + return !!hasTimestamp_; +} +- (void) setHasTimestamp:(BOOL) value { + hasTimestamp_ = !!value; +} +@synthesize timestamp; +- (BOOL) hasGood { + return !!hasGood_; +} +- (void) setHasGood:(BOOL) value { + hasGood_ = !!value; +} +@synthesize good; +- (BOOL) hasLate { + return !!hasLate_; +} +- (void) setHasLate:(BOOL) value { + hasLate_ = !!value; +} +@synthesize late; +- (BOOL) hasLost { + return !!hasLost_; +} +- (void) setHasLost:(BOOL) value { + hasLost_ = !!value; +} +@synthesize lost; +- (BOOL) hasResync { + return !!hasResync_; +} +- (void) setHasResync:(BOOL) value { + hasResync_ = !!value; +} +@synthesize resync; +- (BOOL) hasUdpPackets { + return !!hasUdpPackets_; +} +- (void) setHasUdpPackets:(BOOL) value { + hasUdpPackets_ = !!value; +} +@synthesize udpPackets; +- (BOOL) hasTcpPackets { + return !!hasTcpPackets_; +} +- (void) setHasTcpPackets:(BOOL) value { + hasTcpPackets_ = !!value; +} +@synthesize tcpPackets; +- (BOOL) hasUdpPingAvg { + return !!hasUdpPingAvg_; +} +- (void) setHasUdpPingAvg:(BOOL) value { + hasUdpPingAvg_ = !!value; +} +@synthesize udpPingAvg; +- (BOOL) hasUdpPingVar { + return !!hasUdpPingVar_; +} +- (void) setHasUdpPingVar:(BOOL) value { + hasUdpPingVar_ = !!value; +} +@synthesize udpPingVar; +- (BOOL) hasTcpPingAvg { + return !!hasTcpPingAvg_; +} +- (void) setHasTcpPingAvg:(BOOL) value { + hasTcpPingAvg_ = !!value; +} +@synthesize tcpPingAvg; +- (BOOL) hasTcpPingVar { + return !!hasTcpPingVar_; +} +- (void) setHasTcpPingVar:(BOOL) value { + hasTcpPingVar_ = !!value; +} +@synthesize tcpPingVar; +- (void) dealloc { + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.timestamp = 0L; + self.good = 0; + self.late = 0; + self.lost = 0; + self.resync = 0; + self.udpPackets = 0; + self.tcpPackets = 0; + self.udpPingAvg = 0; + self.udpPingVar = 0; + self.tcpPingAvg = 0; + self.tcpPingVar = 0; + } + return self; +} +static MPPing* defaultMPPingInstance = nil; ++ (void) initialize { + if (self == [MPPing class]) { + defaultMPPingInstance = [[MPPing alloc] init]; + } +} ++ (MPPing*) defaultInstance { + return defaultMPPingInstance; +} +- (MPPing*) defaultInstance { + return defaultMPPingInstance; +} +- (BOOL) isInitialized { + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + if (self.hasTimestamp) { + [output writeUInt64:1 value:self.timestamp]; + } + if (self.hasGood) { + [output writeUInt32:2 value:self.good]; + } + if (self.hasLate) { + [output writeUInt32:3 value:self.late]; + } + if (self.hasLost) { + [output writeUInt32:4 value:self.lost]; + } + if (self.hasResync) { + [output writeUInt32:5 value:self.resync]; + } + if (self.hasUdpPackets) { + [output writeUInt32:6 value:self.udpPackets]; + } + if (self.hasTcpPackets) { + [output writeUInt32:7 value:self.tcpPackets]; + } + if (self.hasUdpPingAvg) { + [output writeFloat:8 value:self.udpPingAvg]; + } + if (self.hasUdpPingVar) { + [output writeFloat:9 value:self.udpPingVar]; + } + if (self.hasTcpPingAvg) { + [output writeFloat:10 value:self.tcpPingAvg]; + } + if (self.hasTcpPingVar) { + [output writeFloat:11 value:self.tcpPingVar]; + } + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + if (self.hasTimestamp) { + size += computeUInt64Size(1, self.timestamp); + } + if (self.hasGood) { + size += computeUInt32Size(2, self.good); + } + if (self.hasLate) { + size += computeUInt32Size(3, self.late); + } + if (self.hasLost) { + size += computeUInt32Size(4, self.lost); + } + if (self.hasResync) { + size += computeUInt32Size(5, self.resync); + } + if (self.hasUdpPackets) { + size += computeUInt32Size(6, self.udpPackets); + } + if (self.hasTcpPackets) { + size += computeUInt32Size(7, self.tcpPackets); + } + if (self.hasUdpPingAvg) { + size += computeFloatSize(8, self.udpPingAvg); + } + if (self.hasUdpPingVar) { + size += computeFloatSize(9, self.udpPingVar); + } + if (self.hasTcpPingAvg) { + size += computeFloatSize(10, self.tcpPingAvg); + } + if (self.hasTcpPingVar) { + size += computeFloatSize(11, self.tcpPingVar); + } + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (MPPing*) parseFromData:(NSData*) data { + return (MPPing*)[[[MPPing builder] mergeFromData:data] build]; +} ++ (MPPing*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPPing*)[[[MPPing builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (MPPing*) parseFromInputStream:(NSInputStream*) input { + return (MPPing*)[[[MPPing builder] mergeFromInputStream:input] build]; +} ++ (MPPing*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPPing*)[[[MPPing builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPPing*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (MPPing*)[[[MPPing builder] mergeFromCodedInputStream:input] build]; +} ++ (MPPing*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPPing*)[[[MPPing builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPPing_Builder*) builder { + return [[[MPPing_Builder alloc] init] autorelease]; +} ++ (MPPing_Builder*) builderWithPrototype:(MPPing*) prototype { + return [[MPPing builder] mergeFrom:prototype]; +} +- (MPPing_Builder*) builder { + return [MPPing builder]; +} +@end + +@interface MPPing_Builder() +@property (retain) MPPing* result; +@end + +@implementation MPPing_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[MPPing alloc] init] autorelease]; + } + return self; +} +- (PBGeneratedMessage*) internalGetResult { + return result; +} +- (MPPing_Builder*) clear { + self.result = [[[MPPing alloc] init] autorelease]; + return self; +} +- (MPPing_Builder*) clone { + return [MPPing builderWithPrototype:result]; +} +- (MPPing*) defaultInstance { + return [MPPing defaultInstance]; +} +- (MPPing*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (MPPing*) buildPartial { + MPPing* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (MPPing_Builder*) mergeFrom:(MPPing*) other { + if (other == [MPPing defaultInstance]) { + return self; + } + if (other.hasTimestamp) { + [self setTimestamp:other.timestamp]; + } + if (other.hasGood) { + [self setGood:other.good]; + } + if (other.hasLate) { + [self setLate:other.late]; + } + if (other.hasLost) { + [self setLost:other.lost]; + } + if (other.hasResync) { + [self setResync:other.resync]; + } + if (other.hasUdpPackets) { + [self setUdpPackets:other.udpPackets]; + } + if (other.hasTcpPackets) { + [self setTcpPackets:other.tcpPackets]; + } + if (other.hasUdpPingAvg) { + [self setUdpPingAvg:other.udpPingAvg]; + } + if (other.hasUdpPingVar) { + [self setUdpPingVar:other.udpPingVar]; + } + if (other.hasTcpPingAvg) { + [self setTcpPingAvg:other.tcpPingAvg]; + } + if (other.hasTcpPingVar) { + [self setTcpPingVar:other.tcpPingVar]; + } + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (MPPing_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (MPPing_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 8: { + [self setTimestamp:[input readUInt64]]; + break; + } + case 16: { + [self setGood:[input readUInt32]]; + break; + } + case 24: { + [self setLate:[input readUInt32]]; + break; + } + case 32: { + [self setLost:[input readUInt32]]; + break; + } + case 40: { + [self setResync:[input readUInt32]]; + break; + } + case 48: { + [self setUdpPackets:[input readUInt32]]; + break; + } + case 56: { + [self setTcpPackets:[input readUInt32]]; + break; + } + case 69: { + [self setUdpPingAvg:[input readFloat]]; + break; + } + case 77: { + [self setUdpPingVar:[input readFloat]]; + break; + } + case 85: { + [self setTcpPingAvg:[input readFloat]]; + break; + } + case 93: { + [self setTcpPingVar:[input readFloat]]; + break; + } + } + } +} +- (BOOL) hasTimestamp { + return result.hasTimestamp; +} +- (int64_t) timestamp { + return result.timestamp; +} +- (MPPing_Builder*) setTimestamp:(int64_t) value { + result.hasTimestamp = YES; + result.timestamp = value; + return self; +} +- (MPPing_Builder*) clearTimestamp { + result.hasTimestamp = NO; + result.timestamp = 0L; + return self; +} +- (BOOL) hasGood { + return result.hasGood; +} +- (int32_t) good { + return result.good; +} +- (MPPing_Builder*) setGood:(int32_t) value { + result.hasGood = YES; + result.good = value; + return self; +} +- (MPPing_Builder*) clearGood { + result.hasGood = NO; + result.good = 0; + return self; +} +- (BOOL) hasLate { + return result.hasLate; +} +- (int32_t) late { + return result.late; +} +- (MPPing_Builder*) setLate:(int32_t) value { + result.hasLate = YES; + result.late = value; + return self; +} +- (MPPing_Builder*) clearLate { + result.hasLate = NO; + result.late = 0; + return self; +} +- (BOOL) hasLost { + return result.hasLost; +} +- (int32_t) lost { + return result.lost; +} +- (MPPing_Builder*) setLost:(int32_t) value { + result.hasLost = YES; + result.lost = value; + return self; +} +- (MPPing_Builder*) clearLost { + result.hasLost = NO; + result.lost = 0; + return self; +} +- (BOOL) hasResync { + return result.hasResync; +} +- (int32_t) resync { + return result.resync; +} +- (MPPing_Builder*) setResync:(int32_t) value { + result.hasResync = YES; + result.resync = value; + return self; +} +- (MPPing_Builder*) clearResync { + result.hasResync = NO; + result.resync = 0; + return self; +} +- (BOOL) hasUdpPackets { + return result.hasUdpPackets; +} +- (int32_t) udpPackets { + return result.udpPackets; +} +- (MPPing_Builder*) setUdpPackets:(int32_t) value { + result.hasUdpPackets = YES; + result.udpPackets = value; + return self; +} +- (MPPing_Builder*) clearUdpPackets { + result.hasUdpPackets = NO; + result.udpPackets = 0; + return self; +} +- (BOOL) hasTcpPackets { + return result.hasTcpPackets; +} +- (int32_t) tcpPackets { + return result.tcpPackets; +} +- (MPPing_Builder*) setTcpPackets:(int32_t) value { + result.hasTcpPackets = YES; + result.tcpPackets = value; + return self; +} +- (MPPing_Builder*) clearTcpPackets { + result.hasTcpPackets = NO; + result.tcpPackets = 0; + return self; +} +- (BOOL) hasUdpPingAvg { + return result.hasUdpPingAvg; +} +- (Float32) udpPingAvg { + return result.udpPingAvg; +} +- (MPPing_Builder*) setUdpPingAvg:(Float32) value { + result.hasUdpPingAvg = YES; + result.udpPingAvg = value; + return self; +} +- (MPPing_Builder*) clearUdpPingAvg { + result.hasUdpPingAvg = NO; + result.udpPingAvg = 0; + return self; +} +- (BOOL) hasUdpPingVar { + return result.hasUdpPingVar; +} +- (Float32) udpPingVar { + return result.udpPingVar; +} +- (MPPing_Builder*) setUdpPingVar:(Float32) value { + result.hasUdpPingVar = YES; + result.udpPingVar = value; + return self; +} +- (MPPing_Builder*) clearUdpPingVar { + result.hasUdpPingVar = NO; + result.udpPingVar = 0; + return self; +} +- (BOOL) hasTcpPingAvg { + return result.hasTcpPingAvg; +} +- (Float32) tcpPingAvg { + return result.tcpPingAvg; +} +- (MPPing_Builder*) setTcpPingAvg:(Float32) value { + result.hasTcpPingAvg = YES; + result.tcpPingAvg = value; + return self; +} +- (MPPing_Builder*) clearTcpPingAvg { + result.hasTcpPingAvg = NO; + result.tcpPingAvg = 0; + return self; +} +- (BOOL) hasTcpPingVar { + return result.hasTcpPingVar; +} +- (Float32) tcpPingVar { + return result.tcpPingVar; +} +- (MPPing_Builder*) setTcpPingVar:(Float32) value { + result.hasTcpPingVar = YES; + result.tcpPingVar = value; + return self; +} +- (MPPing_Builder*) clearTcpPingVar { + result.hasTcpPingVar = NO; + result.tcpPingVar = 0; + return self; +} +@end + +@interface MPReject () +@property MPReject_RejectType type; +@property (retain) NSString* reason; +@end + +@implementation MPReject + +- (BOOL) hasType { + return !!hasType_; +} +- (void) setHasType:(BOOL) value { + hasType_ = !!value; +} +@synthesize type; +- (BOOL) hasReason { + return !!hasReason_; +} +- (void) setHasReason:(BOOL) value { + hasReason_ = !!value; +} +@synthesize reason; +- (void) dealloc { + self.reason = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.type = MPReject_RejectTypeNone; + self.reason = @""; + } + return self; +} +static MPReject* defaultMPRejectInstance = nil; ++ (void) initialize { + if (self == [MPReject class]) { + defaultMPRejectInstance = [[MPReject alloc] init]; + } +} ++ (MPReject*) defaultInstance { + return defaultMPRejectInstance; +} +- (MPReject*) defaultInstance { + return defaultMPRejectInstance; +} +- (BOOL) isInitialized { + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + if (self.hasType) { + [output writeEnum:1 value:self.type]; + } + if (self.hasReason) { + [output writeString:2 value:self.reason]; + } + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + if (self.hasType) { + size += computeEnumSize(1, self.type); + } + if (self.hasReason) { + size += computeStringSize(2, self.reason); + } + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (MPReject*) parseFromData:(NSData*) data { + return (MPReject*)[[[MPReject builder] mergeFromData:data] build]; +} ++ (MPReject*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPReject*)[[[MPReject builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (MPReject*) parseFromInputStream:(NSInputStream*) input { + return (MPReject*)[[[MPReject builder] mergeFromInputStream:input] build]; +} ++ (MPReject*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPReject*)[[[MPReject builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPReject*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (MPReject*)[[[MPReject builder] mergeFromCodedInputStream:input] build]; +} ++ (MPReject*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPReject*)[[[MPReject builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPReject_Builder*) builder { + return [[[MPReject_Builder alloc] init] autorelease]; +} ++ (MPReject_Builder*) builderWithPrototype:(MPReject*) prototype { + return [[MPReject builder] mergeFrom:prototype]; +} +- (MPReject_Builder*) builder { + return [MPReject builder]; +} +@end + +BOOL MPReject_RejectTypeIsValidValue(MPReject_RejectType value) { + switch (value) { + case MPReject_RejectTypeNone: + case MPReject_RejectTypeWrongVersion: + case MPReject_RejectTypeInvalidUsername: + case MPReject_RejectTypeWrongUserPw: + case MPReject_RejectTypeWrongServerPw: + case MPReject_RejectTypeUsernameInUse: + case MPReject_RejectTypeServerFull: + case MPReject_RejectTypeNoCertificate: + return YES; + default: + return NO; + } +} +@interface MPReject_Builder() +@property (retain) MPReject* result; +@end + +@implementation MPReject_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[MPReject alloc] init] autorelease]; + } + return self; +} +- (PBGeneratedMessage*) internalGetResult { + return result; +} +- (MPReject_Builder*) clear { + self.result = [[[MPReject alloc] init] autorelease]; + return self; +} +- (MPReject_Builder*) clone { + return [MPReject builderWithPrototype:result]; +} +- (MPReject*) defaultInstance { + return [MPReject defaultInstance]; +} +- (MPReject*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (MPReject*) buildPartial { + MPReject* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (MPReject_Builder*) mergeFrom:(MPReject*) other { + if (other == [MPReject defaultInstance]) { + return self; + } + if (other.hasType) { + [self setType:other.type]; + } + if (other.hasReason) { + [self setReason:other.reason]; + } + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (MPReject_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (MPReject_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 8: { + int32_t value = [input readEnum]; + if (MPReject_RejectTypeIsValidValue(value)) { + [self setType:value]; + } else { + [unknownFields mergeVarintField:1 value:value]; + } + break; + } + case 18: { + [self setReason:[input readString]]; + break; + } + } + } +} +- (BOOL) hasType { + return result.hasType; +} +- (MPReject_RejectType) type { + return result.type; +} +- (MPReject_Builder*) setType:(MPReject_RejectType) value { + result.hasType = YES; + result.type = value; + return self; +} +- (MPReject_Builder*) clearType { + result.hasType = NO; + result.type = MPReject_RejectTypeNone; + return self; +} +- (BOOL) hasReason { + return result.hasReason; +} +- (NSString*) reason { + return result.reason; +} +- (MPReject_Builder*) setReason:(NSString*) value { + result.hasReason = YES; + result.reason = value; + return self; +} +- (MPReject_Builder*) clearReason { + result.hasReason = NO; + result.reason = @""; + return self; +} +@end + +@interface MPServerConfig () +@property int32_t maxBandwidth; +@property (retain) NSString* welcomeText; +@property BOOL allowHtml; +@property int32_t messageLength; +@property int32_t imageMessageLength; +@end + +@implementation MPServerConfig + +- (BOOL) hasMaxBandwidth { + return !!hasMaxBandwidth_; +} +- (void) setHasMaxBandwidth:(BOOL) value { + hasMaxBandwidth_ = !!value; +} +@synthesize maxBandwidth; +- (BOOL) hasWelcomeText { + return !!hasWelcomeText_; +} +- (void) setHasWelcomeText:(BOOL) value { + hasWelcomeText_ = !!value; +} +@synthesize welcomeText; +- (BOOL) hasAllowHtml { + return !!hasAllowHtml_; +} +- (void) setHasAllowHtml:(BOOL) value { + hasAllowHtml_ = !!value; +} +- (BOOL) allowHtml { + return !!allowHtml_; +} +- (void) setAllowHtml:(BOOL) value { + allowHtml_ = !!value; +} +- (BOOL) hasMessageLength { + return !!hasMessageLength_; +} +- (void) setHasMessageLength:(BOOL) value { + hasMessageLength_ = !!value; +} +@synthesize messageLength; +- (BOOL) hasImageMessageLength { + return !!hasImageMessageLength_; +} +- (void) setHasImageMessageLength:(BOOL) value { + hasImageMessageLength_ = !!value; +} +@synthesize imageMessageLength; +- (void) dealloc { + self.welcomeText = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.maxBandwidth = 0; + self.welcomeText = @""; + self.allowHtml = NO; + self.messageLength = 0; + self.imageMessageLength = 0; + } + return self; +} +static MPServerConfig* defaultMPServerConfigInstance = nil; ++ (void) initialize { + if (self == [MPServerConfig class]) { + defaultMPServerConfigInstance = [[MPServerConfig alloc] init]; + } +} ++ (MPServerConfig*) defaultInstance { + return defaultMPServerConfigInstance; +} +- (MPServerConfig*) defaultInstance { + return defaultMPServerConfigInstance; +} +- (BOOL) isInitialized { + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + if (self.hasMaxBandwidth) { + [output writeUInt32:1 value:self.maxBandwidth]; + } + if (self.hasWelcomeText) { + [output writeString:2 value:self.welcomeText]; + } + if (self.hasAllowHtml) { + [output writeBool:3 value:self.allowHtml]; + } + if (self.hasMessageLength) { + [output writeUInt32:4 value:self.messageLength]; + } + if (self.hasImageMessageLength) { + [output writeUInt32:5 value:self.imageMessageLength]; + } + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + if (self.hasMaxBandwidth) { + size += computeUInt32Size(1, self.maxBandwidth); + } + if (self.hasWelcomeText) { + size += computeStringSize(2, self.welcomeText); + } + if (self.hasAllowHtml) { + size += computeBoolSize(3, self.allowHtml); + } + if (self.hasMessageLength) { + size += computeUInt32Size(4, self.messageLength); + } + if (self.hasImageMessageLength) { + size += computeUInt32Size(5, self.imageMessageLength); + } + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (MPServerConfig*) parseFromData:(NSData*) data { + return (MPServerConfig*)[[[MPServerConfig builder] mergeFromData:data] build]; +} ++ (MPServerConfig*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPServerConfig*)[[[MPServerConfig builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (MPServerConfig*) parseFromInputStream:(NSInputStream*) input { + return (MPServerConfig*)[[[MPServerConfig builder] mergeFromInputStream:input] build]; +} ++ (MPServerConfig*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPServerConfig*)[[[MPServerConfig builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPServerConfig*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (MPServerConfig*)[[[MPServerConfig builder] mergeFromCodedInputStream:input] build]; +} ++ (MPServerConfig*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPServerConfig*)[[[MPServerConfig builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPServerConfig_Builder*) builder { + return [[[MPServerConfig_Builder alloc] init] autorelease]; +} ++ (MPServerConfig_Builder*) builderWithPrototype:(MPServerConfig*) prototype { + return [[MPServerConfig builder] mergeFrom:prototype]; +} +- (MPServerConfig_Builder*) builder { + return [MPServerConfig builder]; +} +@end + +@interface MPServerConfig_Builder() +@property (retain) MPServerConfig* result; +@end + +@implementation MPServerConfig_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[MPServerConfig alloc] init] autorelease]; + } + return self; +} +- (PBGeneratedMessage*) internalGetResult { + return result; +} +- (MPServerConfig_Builder*) clear { + self.result = [[[MPServerConfig alloc] init] autorelease]; + return self; +} +- (MPServerConfig_Builder*) clone { + return [MPServerConfig builderWithPrototype:result]; +} +- (MPServerConfig*) defaultInstance { + return [MPServerConfig defaultInstance]; +} +- (MPServerConfig*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (MPServerConfig*) buildPartial { + MPServerConfig* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (MPServerConfig_Builder*) mergeFrom:(MPServerConfig*) other { + if (other == [MPServerConfig defaultInstance]) { + return self; + } + if (other.hasMaxBandwidth) { + [self setMaxBandwidth:other.maxBandwidth]; + } + if (other.hasWelcomeText) { + [self setWelcomeText:other.welcomeText]; + } + if (other.hasAllowHtml) { + [self setAllowHtml:other.allowHtml]; + } + if (other.hasMessageLength) { + [self setMessageLength:other.messageLength]; + } + if (other.hasImageMessageLength) { + [self setImageMessageLength:other.imageMessageLength]; + } + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (MPServerConfig_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (MPServerConfig_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 8: { + [self setMaxBandwidth:[input readUInt32]]; + break; + } + case 18: { + [self setWelcomeText:[input readString]]; + break; + } + case 24: { + [self setAllowHtml:[input readBool]]; + break; + } + case 32: { + [self setMessageLength:[input readUInt32]]; + break; + } + case 40: { + [self setImageMessageLength:[input readUInt32]]; + break; + } + } + } +} +- (BOOL) hasMaxBandwidth { + return result.hasMaxBandwidth; +} +- (int32_t) maxBandwidth { + return result.maxBandwidth; +} +- (MPServerConfig_Builder*) setMaxBandwidth:(int32_t) value { + result.hasMaxBandwidth = YES; + result.maxBandwidth = value; + return self; +} +- (MPServerConfig_Builder*) clearMaxBandwidth { + result.hasMaxBandwidth = NO; + result.maxBandwidth = 0; + return self; +} +- (BOOL) hasWelcomeText { + return result.hasWelcomeText; +} +- (NSString*) welcomeText { + return result.welcomeText; +} +- (MPServerConfig_Builder*) setWelcomeText:(NSString*) value { + result.hasWelcomeText = YES; + result.welcomeText = value; + return self; +} +- (MPServerConfig_Builder*) clearWelcomeText { + result.hasWelcomeText = NO; + result.welcomeText = @""; + return self; +} +- (BOOL) hasAllowHtml { + return result.hasAllowHtml; +} +- (BOOL) allowHtml { + return result.allowHtml; +} +- (MPServerConfig_Builder*) setAllowHtml:(BOOL) value { + result.hasAllowHtml = YES; + result.allowHtml = value; + return self; +} +- (MPServerConfig_Builder*) clearAllowHtml { + result.hasAllowHtml = NO; + result.allowHtml = NO; + return self; +} +- (BOOL) hasMessageLength { + return result.hasMessageLength; +} +- (int32_t) messageLength { + return result.messageLength; +} +- (MPServerConfig_Builder*) setMessageLength:(int32_t) value { + result.hasMessageLength = YES; + result.messageLength = value; + return self; +} +- (MPServerConfig_Builder*) clearMessageLength { + result.hasMessageLength = NO; + result.messageLength = 0; + return self; +} +- (BOOL) hasImageMessageLength { + return result.hasImageMessageLength; +} +- (int32_t) imageMessageLength { + return result.imageMessageLength; +} +- (MPServerConfig_Builder*) setImageMessageLength:(int32_t) value { + result.hasImageMessageLength = YES; + result.imageMessageLength = value; + return self; +} +- (MPServerConfig_Builder*) clearImageMessageLength { + result.hasImageMessageLength = NO; + result.imageMessageLength = 0; + return self; +} +@end + +@interface MPServerSync () +@property int32_t session; +@property int32_t maxBandwidth; +@property (retain) NSString* welcomeText; +@property int64_t permissions; +@end + +@implementation MPServerSync + +- (BOOL) hasSession { + return !!hasSession_; +} +- (void) setHasSession:(BOOL) value { + hasSession_ = !!value; +} +@synthesize session; +- (BOOL) hasMaxBandwidth { + return !!hasMaxBandwidth_; +} +- (void) setHasMaxBandwidth:(BOOL) value { + hasMaxBandwidth_ = !!value; +} +@synthesize maxBandwidth; +- (BOOL) hasWelcomeText { + return !!hasWelcomeText_; +} +- (void) setHasWelcomeText:(BOOL) value { + hasWelcomeText_ = !!value; +} +@synthesize welcomeText; +- (BOOL) hasPermissions { + return !!hasPermissions_; +} +- (void) setHasPermissions:(BOOL) value { + hasPermissions_ = !!value; +} +@synthesize permissions; +- (void) dealloc { + self.welcomeText = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.session = 0; + self.maxBandwidth = 0; + self.welcomeText = @""; + self.permissions = 0L; + } + return self; +} +static MPServerSync* defaultMPServerSyncInstance = nil; ++ (void) initialize { + if (self == [MPServerSync class]) { + defaultMPServerSyncInstance = [[MPServerSync alloc] init]; + } +} ++ (MPServerSync*) defaultInstance { + return defaultMPServerSyncInstance; +} +- (MPServerSync*) defaultInstance { + return defaultMPServerSyncInstance; +} +- (BOOL) isInitialized { + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + if (self.hasSession) { + [output writeUInt32:1 value:self.session]; + } + if (self.hasMaxBandwidth) { + [output writeUInt32:2 value:self.maxBandwidth]; + } + if (self.hasWelcomeText) { + [output writeString:3 value:self.welcomeText]; + } + if (self.hasPermissions) { + [output writeUInt64:4 value:self.permissions]; + } + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + if (self.hasSession) { + size += computeUInt32Size(1, self.session); + } + if (self.hasMaxBandwidth) { + size += computeUInt32Size(2, self.maxBandwidth); + } + if (self.hasWelcomeText) { + size += computeStringSize(3, self.welcomeText); + } + if (self.hasPermissions) { + size += computeUInt64Size(4, self.permissions); + } + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (MPServerSync*) parseFromData:(NSData*) data { + return (MPServerSync*)[[[MPServerSync builder] mergeFromData:data] build]; +} ++ (MPServerSync*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPServerSync*)[[[MPServerSync builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (MPServerSync*) parseFromInputStream:(NSInputStream*) input { + return (MPServerSync*)[[[MPServerSync builder] mergeFromInputStream:input] build]; +} ++ (MPServerSync*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPServerSync*)[[[MPServerSync builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPServerSync*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (MPServerSync*)[[[MPServerSync builder] mergeFromCodedInputStream:input] build]; +} ++ (MPServerSync*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPServerSync*)[[[MPServerSync builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPServerSync_Builder*) builder { + return [[[MPServerSync_Builder alloc] init] autorelease]; +} ++ (MPServerSync_Builder*) builderWithPrototype:(MPServerSync*) prototype { + return [[MPServerSync builder] mergeFrom:prototype]; +} +- (MPServerSync_Builder*) builder { + return [MPServerSync builder]; +} +@end + +@interface MPServerSync_Builder() +@property (retain) MPServerSync* result; +@end + +@implementation MPServerSync_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[MPServerSync alloc] init] autorelease]; + } + return self; +} +- (PBGeneratedMessage*) internalGetResult { + return result; +} +- (MPServerSync_Builder*) clear { + self.result = [[[MPServerSync alloc] init] autorelease]; + return self; +} +- (MPServerSync_Builder*) clone { + return [MPServerSync builderWithPrototype:result]; +} +- (MPServerSync*) defaultInstance { + return [MPServerSync defaultInstance]; +} +- (MPServerSync*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (MPServerSync*) buildPartial { + MPServerSync* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (MPServerSync_Builder*) mergeFrom:(MPServerSync*) other { + if (other == [MPServerSync defaultInstance]) { + return self; + } + if (other.hasSession) { + [self setSession:other.session]; + } + if (other.hasMaxBandwidth) { + [self setMaxBandwidth:other.maxBandwidth]; + } + if (other.hasWelcomeText) { + [self setWelcomeText:other.welcomeText]; + } + if (other.hasPermissions) { + [self setPermissions:other.permissions]; + } + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (MPServerSync_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (MPServerSync_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 8: { + [self setSession:[input readUInt32]]; + break; + } + case 16: { + [self setMaxBandwidth:[input readUInt32]]; + break; + } + case 26: { + [self setWelcomeText:[input readString]]; + break; + } + case 32: { + [self setPermissions:[input readUInt64]]; + break; + } + } + } +} +- (BOOL) hasSession { + return result.hasSession; +} +- (int32_t) session { + return result.session; +} +- (MPServerSync_Builder*) setSession:(int32_t) value { + result.hasSession = YES; + result.session = value; + return self; +} +- (MPServerSync_Builder*) clearSession { + result.hasSession = NO; + result.session = 0; + return self; +} +- (BOOL) hasMaxBandwidth { + return result.hasMaxBandwidth; +} +- (int32_t) maxBandwidth { + return result.maxBandwidth; +} +- (MPServerSync_Builder*) setMaxBandwidth:(int32_t) value { + result.hasMaxBandwidth = YES; + result.maxBandwidth = value; + return self; +} +- (MPServerSync_Builder*) clearMaxBandwidth { + result.hasMaxBandwidth = NO; + result.maxBandwidth = 0; + return self; +} +- (BOOL) hasWelcomeText { + return result.hasWelcomeText; +} +- (NSString*) welcomeText { + return result.welcomeText; +} +- (MPServerSync_Builder*) setWelcomeText:(NSString*) value { + result.hasWelcomeText = YES; + result.welcomeText = value; + return self; +} +- (MPServerSync_Builder*) clearWelcomeText { + result.hasWelcomeText = NO; + result.welcomeText = @""; + return self; +} +- (BOOL) hasPermissions { + return result.hasPermissions; +} +- (int64_t) permissions { + return result.permissions; +} +- (MPServerSync_Builder*) setPermissions:(int64_t) value { + result.hasPermissions = YES; + result.permissions = value; + return self; +} +- (MPServerSync_Builder*) clearPermissions { + result.hasPermissions = NO; + result.permissions = 0L; + return self; +} +@end + +@interface MPChannelRemove () +@property int32_t channelId; +@end + +@implementation MPChannelRemove + +- (BOOL) hasChannelId { + return !!hasChannelId_; +} +- (void) setHasChannelId:(BOOL) value { + hasChannelId_ = !!value; +} +@synthesize channelId; +- (void) dealloc { + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.channelId = 0; + } + return self; +} +static MPChannelRemove* defaultMPChannelRemoveInstance = nil; ++ (void) initialize { + if (self == [MPChannelRemove class]) { + defaultMPChannelRemoveInstance = [[MPChannelRemove alloc] init]; + } +} ++ (MPChannelRemove*) defaultInstance { + return defaultMPChannelRemoveInstance; +} +- (MPChannelRemove*) defaultInstance { + return defaultMPChannelRemoveInstance; +} +- (BOOL) isInitialized { + if (!self.hasChannelId) { + return NO; + } + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + if (self.hasChannelId) { + [output writeUInt32:1 value:self.channelId]; + } + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + if (self.hasChannelId) { + size += computeUInt32Size(1, self.channelId); + } + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (MPChannelRemove*) parseFromData:(NSData*) data { + return (MPChannelRemove*)[[[MPChannelRemove builder] mergeFromData:data] build]; +} ++ (MPChannelRemove*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPChannelRemove*)[[[MPChannelRemove builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (MPChannelRemove*) parseFromInputStream:(NSInputStream*) input { + return (MPChannelRemove*)[[[MPChannelRemove builder] mergeFromInputStream:input] build]; +} ++ (MPChannelRemove*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPChannelRemove*)[[[MPChannelRemove builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPChannelRemove*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (MPChannelRemove*)[[[MPChannelRemove builder] mergeFromCodedInputStream:input] build]; +} ++ (MPChannelRemove*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPChannelRemove*)[[[MPChannelRemove builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPChannelRemove_Builder*) builder { + return [[[MPChannelRemove_Builder alloc] init] autorelease]; +} ++ (MPChannelRemove_Builder*) builderWithPrototype:(MPChannelRemove*) prototype { + return [[MPChannelRemove builder] mergeFrom:prototype]; +} +- (MPChannelRemove_Builder*) builder { + return [MPChannelRemove builder]; +} +@end + +@interface MPChannelRemove_Builder() +@property (retain) MPChannelRemove* result; +@end + +@implementation MPChannelRemove_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[MPChannelRemove alloc] init] autorelease]; + } + return self; +} +- (PBGeneratedMessage*) internalGetResult { + return result; +} +- (MPChannelRemove_Builder*) clear { + self.result = [[[MPChannelRemove alloc] init] autorelease]; + return self; +} +- (MPChannelRemove_Builder*) clone { + return [MPChannelRemove builderWithPrototype:result]; +} +- (MPChannelRemove*) defaultInstance { + return [MPChannelRemove defaultInstance]; +} +- (MPChannelRemove*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (MPChannelRemove*) buildPartial { + MPChannelRemove* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (MPChannelRemove_Builder*) mergeFrom:(MPChannelRemove*) other { + if (other == [MPChannelRemove defaultInstance]) { + return self; + } + if (other.hasChannelId) { + [self setChannelId:other.channelId]; + } + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (MPChannelRemove_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (MPChannelRemove_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 8: { + [self setChannelId:[input readUInt32]]; + break; + } + } + } +} +- (BOOL) hasChannelId { + return result.hasChannelId; +} +- (int32_t) channelId { + return result.channelId; +} +- (MPChannelRemove_Builder*) setChannelId:(int32_t) value { + result.hasChannelId = YES; + result.channelId = value; + return self; +} +- (MPChannelRemove_Builder*) clearChannelId { + result.hasChannelId = NO; + result.channelId = 0; + return self; +} +@end + +@interface MPChannelState () +@property int32_t channelId; +@property int32_t parent; +@property (retain) NSString* name; +@property (retain) NSMutableArray* mutableLinksList; +@property (retain) NSString* description; +@property (retain) NSMutableArray* mutableLinksAddList; +@property (retain) NSMutableArray* mutableLinksRemoveList; +@property BOOL temporary; +@property int32_t position; +@property (retain) NSData* descriptionHash; +@end + +@implementation MPChannelState + +- (BOOL) hasChannelId { + return !!hasChannelId_; +} +- (void) setHasChannelId:(BOOL) value { + hasChannelId_ = !!value; +} +@synthesize channelId; +- (BOOL) hasParent { + return !!hasParent_; +} +- (void) setHasParent:(BOOL) value { + hasParent_ = !!value; +} +@synthesize parent; +- (BOOL) hasName { + return !!hasName_; +} +- (void) setHasName:(BOOL) value { + hasName_ = !!value; +} +@synthesize name; +@synthesize mutableLinksList; +- (BOOL) hasDescription { + return !!hasDescription_; +} +- (void) setHasDescription:(BOOL) value { + hasDescription_ = !!value; +} +@synthesize description; +@synthesize mutableLinksAddList; +@synthesize mutableLinksRemoveList; +- (BOOL) hasTemporary { + return !!hasTemporary_; +} +- (void) setHasTemporary:(BOOL) value { + hasTemporary_ = !!value; +} +- (BOOL) temporary { + return !!temporary_; +} +- (void) setTemporary:(BOOL) value { + temporary_ = !!value; +} +- (BOOL) hasPosition { + return !!hasPosition_; +} +- (void) setHasPosition:(BOOL) value { + hasPosition_ = !!value; +} +@synthesize position; +- (BOOL) hasDescriptionHash { + return !!hasDescriptionHash_; +} +- (void) setHasDescriptionHash:(BOOL) value { + hasDescriptionHash_ = !!value; +} +@synthesize descriptionHash; +- (void) dealloc { + self.name = nil; + self.mutableLinksList = nil; + self.description = nil; + self.mutableLinksAddList = nil; + self.mutableLinksRemoveList = nil; + self.descriptionHash = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.channelId = 0; + self.parent = 0; + self.name = @""; + self.description = @""; + self.temporary = NO; + self.position = 0; + self.descriptionHash = [NSData data]; + } + return self; +} +static MPChannelState* defaultMPChannelStateInstance = nil; ++ (void) initialize { + if (self == [MPChannelState class]) { + defaultMPChannelStateInstance = [[MPChannelState alloc] init]; + } +} ++ (MPChannelState*) defaultInstance { + return defaultMPChannelStateInstance; +} +- (MPChannelState*) defaultInstance { + return defaultMPChannelStateInstance; +} +- (NSArray*) linksList { + return mutableLinksList; +} +- (int32_t) linksAtIndex:(int32_t) index { + id value = [mutableLinksList objectAtIndex:index]; + return [value intValue]; +} +- (NSArray*) linksAddList { + return mutableLinksAddList; +} +- (int32_t) linksAddAtIndex:(int32_t) index { + id value = [mutableLinksAddList objectAtIndex:index]; + return [value intValue]; +} +- (NSArray*) linksRemoveList { + return mutableLinksRemoveList; +} +- (int32_t) linksRemoveAtIndex:(int32_t) index { + id value = [mutableLinksRemoveList objectAtIndex:index]; + return [value intValue]; +} +- (BOOL) isInitialized { + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + if (self.hasChannelId) { + [output writeUInt32:1 value:self.channelId]; + } + if (self.hasParent) { + [output writeUInt32:2 value:self.parent]; + } + if (self.hasName) { + [output writeString:3 value:self.name]; + } + for (NSNumber* value in self.mutableLinksList) { + [output writeUInt32:4 value:[value intValue]]; + } + if (self.hasDescription) { + [output writeString:5 value:self.description]; + } + for (NSNumber* value in self.mutableLinksAddList) { + [output writeUInt32:6 value:[value intValue]]; + } + for (NSNumber* value in self.mutableLinksRemoveList) { + [output writeUInt32:7 value:[value intValue]]; + } + if (self.hasTemporary) { + [output writeBool:8 value:self.temporary]; + } + if (self.hasPosition) { + [output writeInt32:9 value:self.position]; + } + if (self.hasDescriptionHash) { + [output writeData:10 value:self.descriptionHash]; + } + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + if (self.hasChannelId) { + size += computeUInt32Size(1, self.channelId); + } + if (self.hasParent) { + size += computeUInt32Size(2, self.parent); + } + if (self.hasName) { + size += computeStringSize(3, self.name); + } + { + int32_t dataSize = 0; + for (NSNumber* value in self.mutableLinksList) { + dataSize += computeUInt32SizeNoTag([value intValue]); + } + size += dataSize; + size += 1 * self.mutableLinksList.count; + } + if (self.hasDescription) { + size += computeStringSize(5, self.description); + } + { + int32_t dataSize = 0; + for (NSNumber* value in self.mutableLinksAddList) { + dataSize += computeUInt32SizeNoTag([value intValue]); + } + size += dataSize; + size += 1 * self.mutableLinksAddList.count; + } + { + int32_t dataSize = 0; + for (NSNumber* value in self.mutableLinksRemoveList) { + dataSize += computeUInt32SizeNoTag([value intValue]); + } + size += dataSize; + size += 1 * self.mutableLinksRemoveList.count; + } + if (self.hasTemporary) { + size += computeBoolSize(8, self.temporary); + } + if (self.hasPosition) { + size += computeInt32Size(9, self.position); + } + if (self.hasDescriptionHash) { + size += computeDataSize(10, self.descriptionHash); + } + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (MPChannelState*) parseFromData:(NSData*) data { + return (MPChannelState*)[[[MPChannelState builder] mergeFromData:data] build]; +} ++ (MPChannelState*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPChannelState*)[[[MPChannelState builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (MPChannelState*) parseFromInputStream:(NSInputStream*) input { + return (MPChannelState*)[[[MPChannelState builder] mergeFromInputStream:input] build]; +} ++ (MPChannelState*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPChannelState*)[[[MPChannelState builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPChannelState*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (MPChannelState*)[[[MPChannelState builder] mergeFromCodedInputStream:input] build]; +} ++ (MPChannelState*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPChannelState*)[[[MPChannelState builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPChannelState_Builder*) builder { + return [[[MPChannelState_Builder alloc] init] autorelease]; +} ++ (MPChannelState_Builder*) builderWithPrototype:(MPChannelState*) prototype { + return [[MPChannelState builder] mergeFrom:prototype]; +} +- (MPChannelState_Builder*) builder { + return [MPChannelState builder]; +} +@end + +@interface MPChannelState_Builder() +@property (retain) MPChannelState* result; +@end + +@implementation MPChannelState_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[MPChannelState alloc] init] autorelease]; + } + return self; +} +- (PBGeneratedMessage*) internalGetResult { + return result; +} +- (MPChannelState_Builder*) clear { + self.result = [[[MPChannelState alloc] init] autorelease]; + return self; +} +- (MPChannelState_Builder*) clone { + return [MPChannelState builderWithPrototype:result]; +} +- (MPChannelState*) defaultInstance { + return [MPChannelState defaultInstance]; +} +- (MPChannelState*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (MPChannelState*) buildPartial { + MPChannelState* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (MPChannelState_Builder*) mergeFrom:(MPChannelState*) other { + if (other == [MPChannelState defaultInstance]) { + return self; + } + if (other.hasChannelId) { + [self setChannelId:other.channelId]; + } + if (other.hasParent) { + [self setParent:other.parent]; + } + if (other.hasName) { + [self setName:other.name]; + } + if (other.mutableLinksList.count > 0) { + if (result.mutableLinksList == nil) { + result.mutableLinksList = [NSMutableArray array]; + } + [result.mutableLinksList addObjectsFromArray:other.mutableLinksList]; + } + if (other.hasDescription) { + [self setDescription:other.description]; + } + if (other.mutableLinksAddList.count > 0) { + if (result.mutableLinksAddList == nil) { + result.mutableLinksAddList = [NSMutableArray array]; + } + [result.mutableLinksAddList addObjectsFromArray:other.mutableLinksAddList]; + } + if (other.mutableLinksRemoveList.count > 0) { + if (result.mutableLinksRemoveList == nil) { + result.mutableLinksRemoveList = [NSMutableArray array]; + } + [result.mutableLinksRemoveList addObjectsFromArray:other.mutableLinksRemoveList]; + } + if (other.hasTemporary) { + [self setTemporary:other.temporary]; + } + if (other.hasPosition) { + [self setPosition:other.position]; + } + if (other.hasDescriptionHash) { + [self setDescriptionHash:other.descriptionHash]; + } + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (MPChannelState_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (MPChannelState_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 8: { + [self setChannelId:[input readUInt32]]; + break; + } + case 16: { + [self setParent:[input readUInt32]]; + break; + } + case 26: { + [self setName:[input readString]]; + break; + } + case 32: { + [self addLinks:[input readUInt32]]; + break; + } + case 42: { + [self setDescription:[input readString]]; + break; + } + case 48: { + [self addLinksAdd:[input readUInt32]]; + break; + } + case 56: { + [self addLinksRemove:[input readUInt32]]; + break; + } + case 64: { + [self setTemporary:[input readBool]]; + break; + } + case 72: { + [self setPosition:[input readInt32]]; + break; + } + case 82: { + [self setDescriptionHash:[input readData]]; + break; + } + } + } +} +- (BOOL) hasChannelId { + return result.hasChannelId; +} +- (int32_t) channelId { + return result.channelId; +} +- (MPChannelState_Builder*) setChannelId:(int32_t) value { + result.hasChannelId = YES; + result.channelId = value; + return self; +} +- (MPChannelState_Builder*) clearChannelId { + result.hasChannelId = NO; + result.channelId = 0; + return self; +} +- (BOOL) hasParent { + return result.hasParent; +} +- (int32_t) parent { + return result.parent; +} +- (MPChannelState_Builder*) setParent:(int32_t) value { + result.hasParent = YES; + result.parent = value; + return self; +} +- (MPChannelState_Builder*) clearParent { + result.hasParent = NO; + result.parent = 0; + return self; +} +- (BOOL) hasName { + return result.hasName; +} +- (NSString*) name { + return result.name; +} +- (MPChannelState_Builder*) setName:(NSString*) value { + result.hasName = YES; + result.name = value; + return self; +} +- (MPChannelState_Builder*) clearName { + result.hasName = NO; + result.name = @""; + return self; +} +- (NSArray*) linksList { + if (result.mutableLinksList == nil) { + return [NSArray array]; + } + return result.mutableLinksList; +} +- (int32_t) linksAtIndex:(int32_t) index { + return [result linksAtIndex:index]; +} +- (MPChannelState_Builder*) replaceLinksAtIndex:(int32_t) index with:(int32_t) value { + [result.mutableLinksList replaceObjectAtIndex:index withObject:[NSNumber numberWithInt:value]]; + return self; +} +- (MPChannelState_Builder*) addLinks:(int32_t) value { + if (result.mutableLinksList == nil) { + result.mutableLinksList = [NSMutableArray array]; + } + [result.mutableLinksList addObject:[NSNumber numberWithInt:value]]; + return self; +} +- (MPChannelState_Builder*) addAllLinks:(NSArray*) values { + if (result.mutableLinksList == nil) { + result.mutableLinksList = [NSMutableArray array]; + } + [result.mutableLinksList addObjectsFromArray:values]; + return self; +} +- (MPChannelState_Builder*) clearLinksList { + result.mutableLinksList = nil; + return self; +} +- (BOOL) hasDescription { + return result.hasDescription; +} +- (NSString*) description { + return result.description; +} +- (MPChannelState_Builder*) setDescription:(NSString*) value { + result.hasDescription = YES; + result.description = value; + return self; +} +- (MPChannelState_Builder*) clearDescription { + result.hasDescription = NO; + result.description = @""; + return self; +} +- (NSArray*) linksAddList { + if (result.mutableLinksAddList == nil) { + return [NSArray array]; + } + return result.mutableLinksAddList; +} +- (int32_t) linksAddAtIndex:(int32_t) index { + return [result linksAddAtIndex:index]; +} +- (MPChannelState_Builder*) replaceLinksAddAtIndex:(int32_t) index with:(int32_t) value { + [result.mutableLinksAddList replaceObjectAtIndex:index withObject:[NSNumber numberWithInt:value]]; + return self; +} +- (MPChannelState_Builder*) addLinksAdd:(int32_t) value { + if (result.mutableLinksAddList == nil) { + result.mutableLinksAddList = [NSMutableArray array]; + } + [result.mutableLinksAddList addObject:[NSNumber numberWithInt:value]]; + return self; +} +- (MPChannelState_Builder*) addAllLinksAdd:(NSArray*) values { + if (result.mutableLinksAddList == nil) { + result.mutableLinksAddList = [NSMutableArray array]; + } + [result.mutableLinksAddList addObjectsFromArray:values]; + return self; +} +- (MPChannelState_Builder*) clearLinksAddList { + result.mutableLinksAddList = nil; + return self; +} +- (NSArray*) linksRemoveList { + if (result.mutableLinksRemoveList == nil) { + return [NSArray array]; + } + return result.mutableLinksRemoveList; +} +- (int32_t) linksRemoveAtIndex:(int32_t) index { + return [result linksRemoveAtIndex:index]; +} +- (MPChannelState_Builder*) replaceLinksRemoveAtIndex:(int32_t) index with:(int32_t) value { + [result.mutableLinksRemoveList replaceObjectAtIndex:index withObject:[NSNumber numberWithInt:value]]; + return self; +} +- (MPChannelState_Builder*) addLinksRemove:(int32_t) value { + if (result.mutableLinksRemoveList == nil) { + result.mutableLinksRemoveList = [NSMutableArray array]; + } + [result.mutableLinksRemoveList addObject:[NSNumber numberWithInt:value]]; + return self; +} +- (MPChannelState_Builder*) addAllLinksRemove:(NSArray*) values { + if (result.mutableLinksRemoveList == nil) { + result.mutableLinksRemoveList = [NSMutableArray array]; + } + [result.mutableLinksRemoveList addObjectsFromArray:values]; + return self; +} +- (MPChannelState_Builder*) clearLinksRemoveList { + result.mutableLinksRemoveList = nil; + return self; +} +- (BOOL) hasTemporary { + return result.hasTemporary; +} +- (BOOL) temporary { + return result.temporary; +} +- (MPChannelState_Builder*) setTemporary:(BOOL) value { + result.hasTemporary = YES; + result.temporary = value; + return self; +} +- (MPChannelState_Builder*) clearTemporary { + result.hasTemporary = NO; + result.temporary = NO; + return self; +} +- (BOOL) hasPosition { + return result.hasPosition; +} +- (int32_t) position { + return result.position; +} +- (MPChannelState_Builder*) setPosition:(int32_t) value { + result.hasPosition = YES; + result.position = value; + return self; +} +- (MPChannelState_Builder*) clearPosition { + result.hasPosition = NO; + result.position = 0; + return self; +} +- (BOOL) hasDescriptionHash { + return result.hasDescriptionHash; +} +- (NSData*) descriptionHash { + return result.descriptionHash; +} +- (MPChannelState_Builder*) setDescriptionHash:(NSData*) value { + result.hasDescriptionHash = YES; + result.descriptionHash = value; + return self; +} +- (MPChannelState_Builder*) clearDescriptionHash { + result.hasDescriptionHash = NO; + result.descriptionHash = [NSData data]; + return self; +} +@end + +@interface MPUserRemove () +@property int32_t session; +@property int32_t actor; +@property (retain) NSString* reason; +@property BOOL ban; +@end + +@implementation MPUserRemove + +- (BOOL) hasSession { + return !!hasSession_; +} +- (void) setHasSession:(BOOL) value { + hasSession_ = !!value; +} +@synthesize session; +- (BOOL) hasActor { + return !!hasActor_; +} +- (void) setHasActor:(BOOL) value { + hasActor_ = !!value; +} +@synthesize actor; +- (BOOL) hasReason { + return !!hasReason_; +} +- (void) setHasReason:(BOOL) value { + hasReason_ = !!value; +} +@synthesize reason; +- (BOOL) hasBan { + return !!hasBan_; +} +- (void) setHasBan:(BOOL) value { + hasBan_ = !!value; +} +- (BOOL) ban { + return !!ban_; +} +- (void) setBan:(BOOL) value { + ban_ = !!value; +} +- (void) dealloc { + self.reason = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.session = 0; + self.actor = 0; + self.reason = @""; + self.ban = NO; + } + return self; +} +static MPUserRemove* defaultMPUserRemoveInstance = nil; ++ (void) initialize { + if (self == [MPUserRemove class]) { + defaultMPUserRemoveInstance = [[MPUserRemove alloc] init]; + } +} ++ (MPUserRemove*) defaultInstance { + return defaultMPUserRemoveInstance; +} +- (MPUserRemove*) defaultInstance { + return defaultMPUserRemoveInstance; +} +- (BOOL) isInitialized { + if (!self.hasSession) { + return NO; + } + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + if (self.hasSession) { + [output writeUInt32:1 value:self.session]; + } + if (self.hasActor) { + [output writeUInt32:2 value:self.actor]; + } + if (self.hasReason) { + [output writeString:3 value:self.reason]; + } + if (self.hasBan) { + [output writeBool:4 value:self.ban]; + } + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + if (self.hasSession) { + size += computeUInt32Size(1, self.session); + } + if (self.hasActor) { + size += computeUInt32Size(2, self.actor); + } + if (self.hasReason) { + size += computeStringSize(3, self.reason); + } + if (self.hasBan) { + size += computeBoolSize(4, self.ban); + } + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (MPUserRemove*) parseFromData:(NSData*) data { + return (MPUserRemove*)[[[MPUserRemove builder] mergeFromData:data] build]; +} ++ (MPUserRemove*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPUserRemove*)[[[MPUserRemove builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (MPUserRemove*) parseFromInputStream:(NSInputStream*) input { + return (MPUserRemove*)[[[MPUserRemove builder] mergeFromInputStream:input] build]; +} ++ (MPUserRemove*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPUserRemove*)[[[MPUserRemove builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPUserRemove*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (MPUserRemove*)[[[MPUserRemove builder] mergeFromCodedInputStream:input] build]; +} ++ (MPUserRemove*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPUserRemove*)[[[MPUserRemove builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPUserRemove_Builder*) builder { + return [[[MPUserRemove_Builder alloc] init] autorelease]; +} ++ (MPUserRemove_Builder*) builderWithPrototype:(MPUserRemove*) prototype { + return [[MPUserRemove builder] mergeFrom:prototype]; +} +- (MPUserRemove_Builder*) builder { + return [MPUserRemove builder]; +} +@end + +@interface MPUserRemove_Builder() +@property (retain) MPUserRemove* result; +@end + +@implementation MPUserRemove_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[MPUserRemove alloc] init] autorelease]; + } + return self; +} +- (PBGeneratedMessage*) internalGetResult { + return result; +} +- (MPUserRemove_Builder*) clear { + self.result = [[[MPUserRemove alloc] init] autorelease]; + return self; +} +- (MPUserRemove_Builder*) clone { + return [MPUserRemove builderWithPrototype:result]; +} +- (MPUserRemove*) defaultInstance { + return [MPUserRemove defaultInstance]; +} +- (MPUserRemove*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (MPUserRemove*) buildPartial { + MPUserRemove* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (MPUserRemove_Builder*) mergeFrom:(MPUserRemove*) other { + if (other == [MPUserRemove defaultInstance]) { + return self; + } + if (other.hasSession) { + [self setSession:other.session]; + } + if (other.hasActor) { + [self setActor:other.actor]; + } + if (other.hasReason) { + [self setReason:other.reason]; + } + if (other.hasBan) { + [self setBan:other.ban]; + } + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (MPUserRemove_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (MPUserRemove_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 8: { + [self setSession:[input readUInt32]]; + break; + } + case 16: { + [self setActor:[input readUInt32]]; + break; + } + case 26: { + [self setReason:[input readString]]; + break; + } + case 32: { + [self setBan:[input readBool]]; + break; + } + } + } +} +- (BOOL) hasSession { + return result.hasSession; +} +- (int32_t) session { + return result.session; +} +- (MPUserRemove_Builder*) setSession:(int32_t) value { + result.hasSession = YES; + result.session = value; + return self; +} +- (MPUserRemove_Builder*) clearSession { + result.hasSession = NO; + result.session = 0; + return self; +} +- (BOOL) hasActor { + return result.hasActor; +} +- (int32_t) actor { + return result.actor; +} +- (MPUserRemove_Builder*) setActor:(int32_t) value { + result.hasActor = YES; + result.actor = value; + return self; +} +- (MPUserRemove_Builder*) clearActor { + result.hasActor = NO; + result.actor = 0; + return self; +} +- (BOOL) hasReason { + return result.hasReason; +} +- (NSString*) reason { + return result.reason; +} +- (MPUserRemove_Builder*) setReason:(NSString*) value { + result.hasReason = YES; + result.reason = value; + return self; +} +- (MPUserRemove_Builder*) clearReason { + result.hasReason = NO; + result.reason = @""; + return self; +} +- (BOOL) hasBan { + return result.hasBan; +} +- (BOOL) ban { + return result.ban; +} +- (MPUserRemove_Builder*) setBan:(BOOL) value { + result.hasBan = YES; + result.ban = value; + return self; +} +- (MPUserRemove_Builder*) clearBan { + result.hasBan = NO; + result.ban = NO; + return self; +} +@end + +@interface MPUserState () +@property int32_t session; +@property int32_t actor; +@property (retain) NSString* name; +@property int32_t userId; +@property int32_t channelId; +@property BOOL mute; +@property BOOL deaf; +@property BOOL suppress; +@property BOOL selfMute; +@property BOOL selfDeaf; +@property (retain) NSData* texture; +@property (retain) NSData* pluginContext; +@property (retain) NSString* pluginIdentity; +@property (retain) NSString* comment; +@property (retain) NSString* hash; +@property (retain) NSData* commentHash; +@property (retain) NSData* textureHash; +@end + +@implementation MPUserState + +- (BOOL) hasSession { + return !!hasSession_; +} +- (void) setHasSession:(BOOL) value { + hasSession_ = !!value; +} +@synthesize session; +- (BOOL) hasActor { + return !!hasActor_; +} +- (void) setHasActor:(BOOL) value { + hasActor_ = !!value; +} +@synthesize actor; +- (BOOL) hasName { + return !!hasName_; +} +- (void) setHasName:(BOOL) value { + hasName_ = !!value; +} +@synthesize name; +- (BOOL) hasUserId { + return !!hasUserId_; +} +- (void) setHasUserId:(BOOL) value { + hasUserId_ = !!value; +} +@synthesize userId; +- (BOOL) hasChannelId { + return !!hasChannelId_; +} +- (void) setHasChannelId:(BOOL) value { + hasChannelId_ = !!value; +} +@synthesize channelId; +- (BOOL) hasMute { + return !!hasMute_; +} +- (void) setHasMute:(BOOL) value { + hasMute_ = !!value; +} +- (BOOL) mute { + return !!mute_; +} +- (void) setMute:(BOOL) value { + mute_ = !!value; +} +- (BOOL) hasDeaf { + return !!hasDeaf_; +} +- (void) setHasDeaf:(BOOL) value { + hasDeaf_ = !!value; +} +- (BOOL) deaf { + return !!deaf_; +} +- (void) setDeaf:(BOOL) value { + deaf_ = !!value; +} +- (BOOL) hasSuppress { + return !!hasSuppress_; +} +- (void) setHasSuppress:(BOOL) value { + hasSuppress_ = !!value; +} +- (BOOL) suppress { + return !!suppress_; +} +- (void) setSuppress:(BOOL) value { + suppress_ = !!value; +} +- (BOOL) hasSelfMute { + return !!hasSelfMute_; +} +- (void) setHasSelfMute:(BOOL) value { + hasSelfMute_ = !!value; +} +- (BOOL) selfMute { + return !!selfMute_; +} +- (void) setSelfMute:(BOOL) value { + selfMute_ = !!value; +} +- (BOOL) hasSelfDeaf { + return !!hasSelfDeaf_; +} +- (void) setHasSelfDeaf:(BOOL) value { + hasSelfDeaf_ = !!value; +} +- (BOOL) selfDeaf { + return !!selfDeaf_; +} +- (void) setSelfDeaf:(BOOL) value { + selfDeaf_ = !!value; +} +- (BOOL) hasTexture { + return !!hasTexture_; +} +- (void) setHasTexture:(BOOL) value { + hasTexture_ = !!value; +} +@synthesize texture; +- (BOOL) hasPluginContext { + return !!hasPluginContext_; +} +- (void) setHasPluginContext:(BOOL) value { + hasPluginContext_ = !!value; +} +@synthesize pluginContext; +- (BOOL) hasPluginIdentity { + return !!hasPluginIdentity_; +} +- (void) setHasPluginIdentity:(BOOL) value { + hasPluginIdentity_ = !!value; +} +@synthesize pluginIdentity; +- (BOOL) hasComment { + return !!hasComment_; +} +- (void) setHasComment:(BOOL) value { + hasComment_ = !!value; +} +@synthesize comment; +- (BOOL) hasHash { + return !!hasHash_; +} +- (void) setHasHash:(BOOL) value { + hasHash_ = !!value; +} +@synthesize hash; +- (BOOL) hasCommentHash { + return !!hasCommentHash_; +} +- (void) setHasCommentHash:(BOOL) value { + hasCommentHash_ = !!value; +} +@synthesize commentHash; +- (BOOL) hasTextureHash { + return !!hasTextureHash_; +} +- (void) setHasTextureHash:(BOOL) value { + hasTextureHash_ = !!value; +} +@synthesize textureHash; +- (void) dealloc { + self.name = nil; + self.texture = nil; + self.pluginContext = nil; + self.pluginIdentity = nil; + self.comment = nil; + self.hash = nil; + self.commentHash = nil; + self.textureHash = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.session = 0; + self.actor = 0; + self.name = @""; + self.userId = 0; + self.channelId = 0; + self.mute = NO; + self.deaf = NO; + self.suppress = NO; + self.selfMute = NO; + self.selfDeaf = NO; + self.texture = [NSData data]; + self.pluginContext = [NSData data]; + self.pluginIdentity = @""; + self.comment = @""; + self.hash = @""; + self.commentHash = [NSData data]; + self.textureHash = [NSData data]; + } + return self; +} +static MPUserState* defaultMPUserStateInstance = nil; ++ (void) initialize { + if (self == [MPUserState class]) { + defaultMPUserStateInstance = [[MPUserState alloc] init]; + } +} ++ (MPUserState*) defaultInstance { + return defaultMPUserStateInstance; +} +- (MPUserState*) defaultInstance { + return defaultMPUserStateInstance; +} +- (BOOL) isInitialized { + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + if (self.hasSession) { + [output writeUInt32:1 value:self.session]; + } + if (self.hasActor) { + [output writeUInt32:2 value:self.actor]; + } + if (self.hasName) { + [output writeString:3 value:self.name]; + } + if (self.hasUserId) { + [output writeUInt32:4 value:self.userId]; + } + if (self.hasChannelId) { + [output writeUInt32:5 value:self.channelId]; + } + if (self.hasMute) { + [output writeBool:6 value:self.mute]; + } + if (self.hasDeaf) { + [output writeBool:7 value:self.deaf]; + } + if (self.hasSuppress) { + [output writeBool:8 value:self.suppress]; + } + if (self.hasSelfMute) { + [output writeBool:9 value:self.selfMute]; + } + if (self.hasSelfDeaf) { + [output writeBool:10 value:self.selfDeaf]; + } + if (self.hasTexture) { + [output writeData:11 value:self.texture]; + } + if (self.hasPluginContext) { + [output writeData:12 value:self.pluginContext]; + } + if (self.hasPluginIdentity) { + [output writeString:13 value:self.pluginIdentity]; + } + if (self.hasComment) { + [output writeString:14 value:self.comment]; + } + if (self.hasHash) { + [output writeString:15 value:self.hash]; + } + if (self.hasCommentHash) { + [output writeData:16 value:self.commentHash]; + } + if (self.hasTextureHash) { + [output writeData:17 value:self.textureHash]; + } + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + if (self.hasSession) { + size += computeUInt32Size(1, self.session); + } + if (self.hasActor) { + size += computeUInt32Size(2, self.actor); + } + if (self.hasName) { + size += computeStringSize(3, self.name); + } + if (self.hasUserId) { + size += computeUInt32Size(4, self.userId); + } + if (self.hasChannelId) { + size += computeUInt32Size(5, self.channelId); + } + if (self.hasMute) { + size += computeBoolSize(6, self.mute); + } + if (self.hasDeaf) { + size += computeBoolSize(7, self.deaf); + } + if (self.hasSuppress) { + size += computeBoolSize(8, self.suppress); + } + if (self.hasSelfMute) { + size += computeBoolSize(9, self.selfMute); + } + if (self.hasSelfDeaf) { + size += computeBoolSize(10, self.selfDeaf); + } + if (self.hasTexture) { + size += computeDataSize(11, self.texture); + } + if (self.hasPluginContext) { + size += computeDataSize(12, self.pluginContext); + } + if (self.hasPluginIdentity) { + size += computeStringSize(13, self.pluginIdentity); + } + if (self.hasComment) { + size += computeStringSize(14, self.comment); + } + if (self.hasHash) { + size += computeStringSize(15, self.hash); + } + if (self.hasCommentHash) { + size += computeDataSize(16, self.commentHash); + } + if (self.hasTextureHash) { + size += computeDataSize(17, self.textureHash); + } + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (MPUserState*) parseFromData:(NSData*) data { + return (MPUserState*)[[[MPUserState builder] mergeFromData:data] build]; +} ++ (MPUserState*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPUserState*)[[[MPUserState builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (MPUserState*) parseFromInputStream:(NSInputStream*) input { + return (MPUserState*)[[[MPUserState builder] mergeFromInputStream:input] build]; +} ++ (MPUserState*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPUserState*)[[[MPUserState builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPUserState*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (MPUserState*)[[[MPUserState builder] mergeFromCodedInputStream:input] build]; +} ++ (MPUserState*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPUserState*)[[[MPUserState builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPUserState_Builder*) builder { + return [[[MPUserState_Builder alloc] init] autorelease]; +} ++ (MPUserState_Builder*) builderWithPrototype:(MPUserState*) prototype { + return [[MPUserState builder] mergeFrom:prototype]; +} +- (MPUserState_Builder*) builder { + return [MPUserState builder]; +} +@end + +@interface MPUserState_Builder() +@property (retain) MPUserState* result; +@end + +@implementation MPUserState_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[MPUserState alloc] init] autorelease]; + } + return self; +} +- (PBGeneratedMessage*) internalGetResult { + return result; +} +- (MPUserState_Builder*) clear { + self.result = [[[MPUserState alloc] init] autorelease]; + return self; +} +- (MPUserState_Builder*) clone { + return [MPUserState builderWithPrototype:result]; +} +- (MPUserState*) defaultInstance { + return [MPUserState defaultInstance]; +} +- (MPUserState*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (MPUserState*) buildPartial { + MPUserState* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (MPUserState_Builder*) mergeFrom:(MPUserState*) other { + if (other == [MPUserState defaultInstance]) { + return self; + } + if (other.hasSession) { + [self setSession:other.session]; + } + if (other.hasActor) { + [self setActor:other.actor]; + } + if (other.hasName) { + [self setName:other.name]; + } + if (other.hasUserId) { + [self setUserId:other.userId]; + } + if (other.hasChannelId) { + [self setChannelId:other.channelId]; + } + if (other.hasMute) { + [self setMute:other.mute]; + } + if (other.hasDeaf) { + [self setDeaf:other.deaf]; + } + if (other.hasSuppress) { + [self setSuppress:other.suppress]; + } + if (other.hasSelfMute) { + [self setSelfMute:other.selfMute]; + } + if (other.hasSelfDeaf) { + [self setSelfDeaf:other.selfDeaf]; + } + if (other.hasTexture) { + [self setTexture:other.texture]; + } + if (other.hasPluginContext) { + [self setPluginContext:other.pluginContext]; + } + if (other.hasPluginIdentity) { + [self setPluginIdentity:other.pluginIdentity]; + } + if (other.hasComment) { + [self setComment:other.comment]; + } + if (other.hasHash) { + [self setHash:other.hash]; + } + if (other.hasCommentHash) { + [self setCommentHash:other.commentHash]; + } + if (other.hasTextureHash) { + [self setTextureHash:other.textureHash]; + } + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (MPUserState_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (MPUserState_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 8: { + [self setSession:[input readUInt32]]; + break; + } + case 16: { + [self setActor:[input readUInt32]]; + break; + } + case 26: { + [self setName:[input readString]]; + break; + } + case 32: { + [self setUserId:[input readUInt32]]; + break; + } + case 40: { + [self setChannelId:[input readUInt32]]; + break; + } + case 48: { + [self setMute:[input readBool]]; + break; + } + case 56: { + [self setDeaf:[input readBool]]; + break; + } + case 64: { + [self setSuppress:[input readBool]]; + break; + } + case 72: { + [self setSelfMute:[input readBool]]; + break; + } + case 80: { + [self setSelfDeaf:[input readBool]]; + break; + } + case 90: { + [self setTexture:[input readData]]; + break; + } + case 98: { + [self setPluginContext:[input readData]]; + break; + } + case 106: { + [self setPluginIdentity:[input readString]]; + break; + } + case 114: { + [self setComment:[input readString]]; + break; + } + case 122: { + [self setHash:[input readString]]; + break; + } + case 130: { + [self setCommentHash:[input readData]]; + break; + } + case 138: { + [self setTextureHash:[input readData]]; + break; + } + } + } +} +- (BOOL) hasSession { + return result.hasSession; +} +- (int32_t) session { + return result.session; +} +- (MPUserState_Builder*) setSession:(int32_t) value { + result.hasSession = YES; + result.session = value; + return self; +} +- (MPUserState_Builder*) clearSession { + result.hasSession = NO; + result.session = 0; + return self; +} +- (BOOL) hasActor { + return result.hasActor; +} +- (int32_t) actor { + return result.actor; +} +- (MPUserState_Builder*) setActor:(int32_t) value { + result.hasActor = YES; + result.actor = value; + return self; +} +- (MPUserState_Builder*) clearActor { + result.hasActor = NO; + result.actor = 0; + return self; +} +- (BOOL) hasName { + return result.hasName; +} +- (NSString*) name { + return result.name; +} +- (MPUserState_Builder*) setName:(NSString*) value { + result.hasName = YES; + result.name = value; + return self; +} +- (MPUserState_Builder*) clearName { + result.hasName = NO; + result.name = @""; + return self; +} +- (BOOL) hasUserId { + return result.hasUserId; +} +- (int32_t) userId { + return result.userId; +} +- (MPUserState_Builder*) setUserId:(int32_t) value { + result.hasUserId = YES; + result.userId = value; + return self; +} +- (MPUserState_Builder*) clearUserId { + result.hasUserId = NO; + result.userId = 0; + return self; +} +- (BOOL) hasChannelId { + return result.hasChannelId; +} +- (int32_t) channelId { + return result.channelId; +} +- (MPUserState_Builder*) setChannelId:(int32_t) value { + result.hasChannelId = YES; + result.channelId = value; + return self; +} +- (MPUserState_Builder*) clearChannelId { + result.hasChannelId = NO; + result.channelId = 0; + return self; +} +- (BOOL) hasMute { + return result.hasMute; +} +- (BOOL) mute { + return result.mute; +} +- (MPUserState_Builder*) setMute:(BOOL) value { + result.hasMute = YES; + result.mute = value; + return self; +} +- (MPUserState_Builder*) clearMute { + result.hasMute = NO; + result.mute = NO; + return self; +} +- (BOOL) hasDeaf { + return result.hasDeaf; +} +- (BOOL) deaf { + return result.deaf; +} +- (MPUserState_Builder*) setDeaf:(BOOL) value { + result.hasDeaf = YES; + result.deaf = value; + return self; +} +- (MPUserState_Builder*) clearDeaf { + result.hasDeaf = NO; + result.deaf = NO; + return self; +} +- (BOOL) hasSuppress { + return result.hasSuppress; +} +- (BOOL) suppress { + return result.suppress; +} +- (MPUserState_Builder*) setSuppress:(BOOL) value { + result.hasSuppress = YES; + result.suppress = value; + return self; +} +- (MPUserState_Builder*) clearSuppress { + result.hasSuppress = NO; + result.suppress = NO; + return self; +} +- (BOOL) hasSelfMute { + return result.hasSelfMute; +} +- (BOOL) selfMute { + return result.selfMute; +} +- (MPUserState_Builder*) setSelfMute:(BOOL) value { + result.hasSelfMute = YES; + result.selfMute = value; + return self; +} +- (MPUserState_Builder*) clearSelfMute { + result.hasSelfMute = NO; + result.selfMute = NO; + return self; +} +- (BOOL) hasSelfDeaf { + return result.hasSelfDeaf; +} +- (BOOL) selfDeaf { + return result.selfDeaf; +} +- (MPUserState_Builder*) setSelfDeaf:(BOOL) value { + result.hasSelfDeaf = YES; + result.selfDeaf = value; + return self; +} +- (MPUserState_Builder*) clearSelfDeaf { + result.hasSelfDeaf = NO; + result.selfDeaf = NO; + return self; +} +- (BOOL) hasTexture { + return result.hasTexture; +} +- (NSData*) texture { + return result.texture; +} +- (MPUserState_Builder*) setTexture:(NSData*) value { + result.hasTexture = YES; + result.texture = value; + return self; +} +- (MPUserState_Builder*) clearTexture { + result.hasTexture = NO; + result.texture = [NSData data]; + return self; +} +- (BOOL) hasPluginContext { + return result.hasPluginContext; +} +- (NSData*) pluginContext { + return result.pluginContext; +} +- (MPUserState_Builder*) setPluginContext:(NSData*) value { + result.hasPluginContext = YES; + result.pluginContext = value; + return self; +} +- (MPUserState_Builder*) clearPluginContext { + result.hasPluginContext = NO; + result.pluginContext = [NSData data]; + return self; +} +- (BOOL) hasPluginIdentity { + return result.hasPluginIdentity; +} +- (NSString*) pluginIdentity { + return result.pluginIdentity; +} +- (MPUserState_Builder*) setPluginIdentity:(NSString*) value { + result.hasPluginIdentity = YES; + result.pluginIdentity = value; + return self; +} +- (MPUserState_Builder*) clearPluginIdentity { + result.hasPluginIdentity = NO; + result.pluginIdentity = @""; + return self; +} +- (BOOL) hasComment { + return result.hasComment; +} +- (NSString*) comment { + return result.comment; +} +- (MPUserState_Builder*) setComment:(NSString*) value { + result.hasComment = YES; + result.comment = value; + return self; +} +- (MPUserState_Builder*) clearComment { + result.hasComment = NO; + result.comment = @""; + return self; +} +- (BOOL) hasHash { + return result.hasHash; +} +- (NSString*) hash { + return result.hash; +} +- (MPUserState_Builder*) setHash:(NSString*) value { + result.hasHash = YES; + result.hash = value; + return self; +} +- (MPUserState_Builder*) clearHash { + result.hasHash = NO; + result.hash = @""; + return self; +} +- (BOOL) hasCommentHash { + return result.hasCommentHash; +} +- (NSData*) commentHash { + return result.commentHash; +} +- (MPUserState_Builder*) setCommentHash:(NSData*) value { + result.hasCommentHash = YES; + result.commentHash = value; + return self; +} +- (MPUserState_Builder*) clearCommentHash { + result.hasCommentHash = NO; + result.commentHash = [NSData data]; + return self; +} +- (BOOL) hasTextureHash { + return result.hasTextureHash; +} +- (NSData*) textureHash { + return result.textureHash; +} +- (MPUserState_Builder*) setTextureHash:(NSData*) value { + result.hasTextureHash = YES; + result.textureHash = value; + return self; +} +- (MPUserState_Builder*) clearTextureHash { + result.hasTextureHash = NO; + result.textureHash = [NSData data]; + return self; +} +@end + +@interface MPBanList () +@property (retain) NSMutableArray* mutableBansList; +@property BOOL query; +@end + +@implementation MPBanList + +@synthesize mutableBansList; +- (BOOL) hasQuery { + return !!hasQuery_; +} +- (void) setHasQuery:(BOOL) value { + hasQuery_ = !!value; +} +- (BOOL) query { + return !!query_; +} +- (void) setQuery:(BOOL) value { + query_ = !!value; +} +- (void) dealloc { + self.mutableBansList = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.query = NO; + } + return self; +} +static MPBanList* defaultMPBanListInstance = nil; ++ (void) initialize { + if (self == [MPBanList class]) { + defaultMPBanListInstance = [[MPBanList alloc] init]; + } +} ++ (MPBanList*) defaultInstance { + return defaultMPBanListInstance; +} +- (MPBanList*) defaultInstance { + return defaultMPBanListInstance; +} +- (NSArray*) bansList { + return mutableBansList; +} +- (MPBanList_BanEntry*) bansAtIndex:(int32_t) index { + id value = [mutableBansList objectAtIndex:index]; + return value; +} +- (BOOL) isInitialized { + for (MPBanList_BanEntry* element in self.bansList) { + if (!element.isInitialized) { + return NO; + } + } + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + for (MPBanList_BanEntry* element in self.bansList) { + [output writeMessage:1 value:element]; + } + if (self.hasQuery) { + [output writeBool:2 value:self.query]; + } + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + for (MPBanList_BanEntry* element in self.bansList) { + size += computeMessageSize(1, element); + } + if (self.hasQuery) { + size += computeBoolSize(2, self.query); + } + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (MPBanList*) parseFromData:(NSData*) data { + return (MPBanList*)[[[MPBanList builder] mergeFromData:data] build]; +} ++ (MPBanList*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPBanList*)[[[MPBanList builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (MPBanList*) parseFromInputStream:(NSInputStream*) input { + return (MPBanList*)[[[MPBanList builder] mergeFromInputStream:input] build]; +} ++ (MPBanList*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPBanList*)[[[MPBanList builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPBanList*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (MPBanList*)[[[MPBanList builder] mergeFromCodedInputStream:input] build]; +} ++ (MPBanList*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPBanList*)[[[MPBanList builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPBanList_Builder*) builder { + return [[[MPBanList_Builder alloc] init] autorelease]; +} ++ (MPBanList_Builder*) builderWithPrototype:(MPBanList*) prototype { + return [[MPBanList builder] mergeFrom:prototype]; +} +- (MPBanList_Builder*) builder { + return [MPBanList builder]; +} +@end + +@interface MPBanList_BanEntry () +@property (retain) NSData* address; +@property int32_t mask; +@property (retain) NSString* name; +@property (retain) NSString* hash; +@property (retain) NSString* reason; +@property (retain) NSString* start; +@property int32_t duration; +@end + +@implementation MPBanList_BanEntry + +- (BOOL) hasAddress { + return !!hasAddress_; +} +- (void) setHasAddress:(BOOL) value { + hasAddress_ = !!value; +} +@synthesize address; +- (BOOL) hasMask { + return !!hasMask_; +} +- (void) setHasMask:(BOOL) value { + hasMask_ = !!value; +} +@synthesize mask; +- (BOOL) hasName { + return !!hasName_; +} +- (void) setHasName:(BOOL) value { + hasName_ = !!value; +} +@synthesize name; +- (BOOL) hasHash { + return !!hasHash_; +} +- (void) setHasHash:(BOOL) value { + hasHash_ = !!value; +} +@synthesize hash; +- (BOOL) hasReason { + return !!hasReason_; +} +- (void) setHasReason:(BOOL) value { + hasReason_ = !!value; +} +@synthesize reason; +- (BOOL) hasStart { + return !!hasStart_; +} +- (void) setHasStart:(BOOL) value { + hasStart_ = !!value; +} +@synthesize start; +- (BOOL) hasDuration { + return !!hasDuration_; +} +- (void) setHasDuration:(BOOL) value { + hasDuration_ = !!value; +} +@synthesize duration; +- (void) dealloc { + self.address = nil; + self.name = nil; + self.hash = nil; + self.reason = nil; + self.start = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.address = [NSData data]; + self.mask = 0; + self.name = @""; + self.hash = @""; + self.reason = @""; + self.start = @""; + self.duration = 0; + } + return self; +} +static MPBanList_BanEntry* defaultMPBanList_BanEntryInstance = nil; ++ (void) initialize { + if (self == [MPBanList_BanEntry class]) { + defaultMPBanList_BanEntryInstance = [[MPBanList_BanEntry alloc] init]; + } +} ++ (MPBanList_BanEntry*) defaultInstance { + return defaultMPBanList_BanEntryInstance; +} +- (MPBanList_BanEntry*) defaultInstance { + return defaultMPBanList_BanEntryInstance; +} +- (BOOL) isInitialized { + if (!self.hasAddress) { + return NO; + } + if (!self.hasMask) { + return NO; + } + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + if (self.hasAddress) { + [output writeData:1 value:self.address]; + } + if (self.hasMask) { + [output writeUInt32:2 value:self.mask]; + } + if (self.hasName) { + [output writeString:3 value:self.name]; + } + if (self.hasHash) { + [output writeString:4 value:self.hash]; + } + if (self.hasReason) { + [output writeString:5 value:self.reason]; + } + if (self.hasStart) { + [output writeString:6 value:self.start]; + } + if (self.hasDuration) { + [output writeUInt32:7 value:self.duration]; + } + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + if (self.hasAddress) { + size += computeDataSize(1, self.address); + } + if (self.hasMask) { + size += computeUInt32Size(2, self.mask); + } + if (self.hasName) { + size += computeStringSize(3, self.name); + } + if (self.hasHash) { + size += computeStringSize(4, self.hash); + } + if (self.hasReason) { + size += computeStringSize(5, self.reason); + } + if (self.hasStart) { + size += computeStringSize(6, self.start); + } + if (self.hasDuration) { + size += computeUInt32Size(7, self.duration); + } + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (MPBanList_BanEntry*) parseFromData:(NSData*) data { + return (MPBanList_BanEntry*)[[[MPBanList_BanEntry builder] mergeFromData:data] build]; +} ++ (MPBanList_BanEntry*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPBanList_BanEntry*)[[[MPBanList_BanEntry builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (MPBanList_BanEntry*) parseFromInputStream:(NSInputStream*) input { + return (MPBanList_BanEntry*)[[[MPBanList_BanEntry builder] mergeFromInputStream:input] build]; +} ++ (MPBanList_BanEntry*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPBanList_BanEntry*)[[[MPBanList_BanEntry builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPBanList_BanEntry*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (MPBanList_BanEntry*)[[[MPBanList_BanEntry builder] mergeFromCodedInputStream:input] build]; +} ++ (MPBanList_BanEntry*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPBanList_BanEntry*)[[[MPBanList_BanEntry builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPBanList_BanEntry_Builder*) builder { + return [[[MPBanList_BanEntry_Builder alloc] init] autorelease]; +} ++ (MPBanList_BanEntry_Builder*) builderWithPrototype:(MPBanList_BanEntry*) prototype { + return [[MPBanList_BanEntry builder] mergeFrom:prototype]; +} +- (MPBanList_BanEntry_Builder*) builder { + return [MPBanList_BanEntry builder]; +} +@end + +@interface MPBanList_BanEntry_Builder() +@property (retain) MPBanList_BanEntry* result; +@end + +@implementation MPBanList_BanEntry_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[MPBanList_BanEntry alloc] init] autorelease]; + } + return self; +} +- (PBGeneratedMessage*) internalGetResult { + return result; +} +- (MPBanList_BanEntry_Builder*) clear { + self.result = [[[MPBanList_BanEntry alloc] init] autorelease]; + return self; +} +- (MPBanList_BanEntry_Builder*) clone { + return [MPBanList_BanEntry builderWithPrototype:result]; +} +- (MPBanList_BanEntry*) defaultInstance { + return [MPBanList_BanEntry defaultInstance]; +} +- (MPBanList_BanEntry*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (MPBanList_BanEntry*) buildPartial { + MPBanList_BanEntry* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (MPBanList_BanEntry_Builder*) mergeFrom:(MPBanList_BanEntry*) other { + if (other == [MPBanList_BanEntry defaultInstance]) { + return self; + } + if (other.hasAddress) { + [self setAddress:other.address]; + } + if (other.hasMask) { + [self setMask:other.mask]; + } + if (other.hasName) { + [self setName:other.name]; + } + if (other.hasHash) { + [self setHash:other.hash]; + } + if (other.hasReason) { + [self setReason:other.reason]; + } + if (other.hasStart) { + [self setStart:other.start]; + } + if (other.hasDuration) { + [self setDuration:other.duration]; + } + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (MPBanList_BanEntry_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (MPBanList_BanEntry_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 10: { + [self setAddress:[input readData]]; + break; + } + case 16: { + [self setMask:[input readUInt32]]; + break; + } + case 26: { + [self setName:[input readString]]; + break; + } + case 34: { + [self setHash:[input readString]]; + break; + } + case 42: { + [self setReason:[input readString]]; + break; + } + case 50: { + [self setStart:[input readString]]; + break; + } + case 56: { + [self setDuration:[input readUInt32]]; + break; + } + } + } +} +- (BOOL) hasAddress { + return result.hasAddress; +} +- (NSData*) address { + return result.address; +} +- (MPBanList_BanEntry_Builder*) setAddress:(NSData*) value { + result.hasAddress = YES; + result.address = value; + return self; +} +- (MPBanList_BanEntry_Builder*) clearAddress { + result.hasAddress = NO; + result.address = [NSData data]; + return self; +} +- (BOOL) hasMask { + return result.hasMask; +} +- (int32_t) mask { + return result.mask; +} +- (MPBanList_BanEntry_Builder*) setMask:(int32_t) value { + result.hasMask = YES; + result.mask = value; + return self; +} +- (MPBanList_BanEntry_Builder*) clearMask { + result.hasMask = NO; + result.mask = 0; + return self; +} +- (BOOL) hasName { + return result.hasName; +} +- (NSString*) name { + return result.name; +} +- (MPBanList_BanEntry_Builder*) setName:(NSString*) value { + result.hasName = YES; + result.name = value; + return self; +} +- (MPBanList_BanEntry_Builder*) clearName { + result.hasName = NO; + result.name = @""; + return self; +} +- (BOOL) hasHash { + return result.hasHash; +} +- (NSString*) hash { + return result.hash; +} +- (MPBanList_BanEntry_Builder*) setHash:(NSString*) value { + result.hasHash = YES; + result.hash = value; + return self; +} +- (MPBanList_BanEntry_Builder*) clearHash { + result.hasHash = NO; + result.hash = @""; + return self; +} +- (BOOL) hasReason { + return result.hasReason; +} +- (NSString*) reason { + return result.reason; +} +- (MPBanList_BanEntry_Builder*) setReason:(NSString*) value { + result.hasReason = YES; + result.reason = value; + return self; +} +- (MPBanList_BanEntry_Builder*) clearReason { + result.hasReason = NO; + result.reason = @""; + return self; +} +- (BOOL) hasStart { + return result.hasStart; +} +- (NSString*) start { + return result.start; +} +- (MPBanList_BanEntry_Builder*) setStart:(NSString*) value { + result.hasStart = YES; + result.start = value; + return self; +} +- (MPBanList_BanEntry_Builder*) clearStart { + result.hasStart = NO; + result.start = @""; + return self; +} +- (BOOL) hasDuration { + return result.hasDuration; +} +- (int32_t) duration { + return result.duration; +} +- (MPBanList_BanEntry_Builder*) setDuration:(int32_t) value { + result.hasDuration = YES; + result.duration = value; + return self; +} +- (MPBanList_BanEntry_Builder*) clearDuration { + result.hasDuration = NO; + result.duration = 0; + return self; +} +@end + +@interface MPBanList_Builder() +@property (retain) MPBanList* result; +@end + +@implementation MPBanList_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[MPBanList alloc] init] autorelease]; + } + return self; +} +- (PBGeneratedMessage*) internalGetResult { + return result; +} +- (MPBanList_Builder*) clear { + self.result = [[[MPBanList alloc] init] autorelease]; + return self; +} +- (MPBanList_Builder*) clone { + return [MPBanList builderWithPrototype:result]; +} +- (MPBanList*) defaultInstance { + return [MPBanList defaultInstance]; +} +- (MPBanList*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (MPBanList*) buildPartial { + MPBanList* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (MPBanList_Builder*) mergeFrom:(MPBanList*) other { + if (other == [MPBanList defaultInstance]) { + return self; + } + if (other.mutableBansList.count > 0) { + if (result.mutableBansList == nil) { + result.mutableBansList = [NSMutableArray array]; + } + [result.mutableBansList addObjectsFromArray:other.mutableBansList]; + } + if (other.hasQuery) { + [self setQuery:other.query]; + } + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (MPBanList_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (MPBanList_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 10: { + MPBanList_BanEntry_Builder* subBuilder = [MPBanList_BanEntry builder]; + [input readMessage:subBuilder extensionRegistry:extensionRegistry]; + [self addBans:[subBuilder buildPartial]]; + break; + } + case 16: { + [self setQuery:[input readBool]]; + break; + } + } + } +} +- (NSArray*) bansList { + if (result.mutableBansList == nil) { return [NSArray array]; } + return result.mutableBansList; +} +- (MPBanList_BanEntry*) bansAtIndex:(int32_t) index { + return [result bansAtIndex:index]; +} +- (MPBanList_Builder*) replaceBansAtIndex:(int32_t) index with:(MPBanList_BanEntry*) value { + [result.mutableBansList replaceObjectAtIndex:index withObject:value]; + return self; +} +- (MPBanList_Builder*) addAllBans:(NSArray*) values { + if (result.mutableBansList == nil) { + result.mutableBansList = [NSMutableArray array]; + } + [result.mutableBansList addObjectsFromArray:values]; + return self; +} +- (MPBanList_Builder*) clearBansList { + result.mutableBansList = nil; + return self; +} +- (MPBanList_Builder*) addBans:(MPBanList_BanEntry*) value { + if (result.mutableBansList == nil) { + result.mutableBansList = [NSMutableArray array]; + } + [result.mutableBansList addObject:value]; + return self; +} +- (BOOL) hasQuery { + return result.hasQuery; +} +- (BOOL) query { + return result.query; +} +- (MPBanList_Builder*) setQuery:(BOOL) value { + result.hasQuery = YES; + result.query = value; + return self; +} +- (MPBanList_Builder*) clearQuery { + result.hasQuery = NO; + result.query = NO; + return self; +} +@end + +@interface MPTextMessage () +@property int32_t actor; +@property (retain) NSMutableArray* mutableSessionList; +@property (retain) NSMutableArray* mutableChannelIdList; +@property (retain) NSMutableArray* mutableTreeIdList; +@property (retain) NSString* message; +@end + +@implementation MPTextMessage + +- (BOOL) hasActor { + return !!hasActor_; +} +- (void) setHasActor:(BOOL) value { + hasActor_ = !!value; +} +@synthesize actor; +@synthesize mutableSessionList; +@synthesize mutableChannelIdList; +@synthesize mutableTreeIdList; +- (BOOL) hasMessage { + return !!hasMessage_; +} +- (void) setHasMessage:(BOOL) value { + hasMessage_ = !!value; +} +@synthesize message; +- (void) dealloc { + self.mutableSessionList = nil; + self.mutableChannelIdList = nil; + self.mutableTreeIdList = nil; + self.message = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.actor = 0; + self.message = @""; + } + return self; +} +static MPTextMessage* defaultMPTextMessageInstance = nil; ++ (void) initialize { + if (self == [MPTextMessage class]) { + defaultMPTextMessageInstance = [[MPTextMessage alloc] init]; + } +} ++ (MPTextMessage*) defaultInstance { + return defaultMPTextMessageInstance; +} +- (MPTextMessage*) defaultInstance { + return defaultMPTextMessageInstance; +} +- (NSArray*) sessionList { + return mutableSessionList; +} +- (int32_t) sessionAtIndex:(int32_t) index { + id value = [mutableSessionList objectAtIndex:index]; + return [value intValue]; +} +- (NSArray*) channelIdList { + return mutableChannelIdList; +} +- (int32_t) channelIdAtIndex:(int32_t) index { + id value = [mutableChannelIdList objectAtIndex:index]; + return [value intValue]; +} +- (NSArray*) treeIdList { + return mutableTreeIdList; +} +- (int32_t) treeIdAtIndex:(int32_t) index { + id value = [mutableTreeIdList objectAtIndex:index]; + return [value intValue]; +} +- (BOOL) isInitialized { + if (!self.hasMessage) { + return NO; + } + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + if (self.hasActor) { + [output writeUInt32:1 value:self.actor]; + } + for (NSNumber* value in self.mutableSessionList) { + [output writeUInt32:2 value:[value intValue]]; + } + for (NSNumber* value in self.mutableChannelIdList) { + [output writeUInt32:3 value:[value intValue]]; + } + for (NSNumber* value in self.mutableTreeIdList) { + [output writeUInt32:4 value:[value intValue]]; + } + if (self.hasMessage) { + [output writeString:5 value:self.message]; + } + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + if (self.hasActor) { + size += computeUInt32Size(1, self.actor); + } + { + int32_t dataSize = 0; + for (NSNumber* value in self.mutableSessionList) { + dataSize += computeUInt32SizeNoTag([value intValue]); + } + size += dataSize; + size += 1 * self.mutableSessionList.count; + } + { + int32_t dataSize = 0; + for (NSNumber* value in self.mutableChannelIdList) { + dataSize += computeUInt32SizeNoTag([value intValue]); + } + size += dataSize; + size += 1 * self.mutableChannelIdList.count; + } + { + int32_t dataSize = 0; + for (NSNumber* value in self.mutableTreeIdList) { + dataSize += computeUInt32SizeNoTag([value intValue]); + } + size += dataSize; + size += 1 * self.mutableTreeIdList.count; + } + if (self.hasMessage) { + size += computeStringSize(5, self.message); + } + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (MPTextMessage*) parseFromData:(NSData*) data { + return (MPTextMessage*)[[[MPTextMessage builder] mergeFromData:data] build]; +} ++ (MPTextMessage*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPTextMessage*)[[[MPTextMessage builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (MPTextMessage*) parseFromInputStream:(NSInputStream*) input { + return (MPTextMessage*)[[[MPTextMessage builder] mergeFromInputStream:input] build]; +} ++ (MPTextMessage*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPTextMessage*)[[[MPTextMessage builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPTextMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (MPTextMessage*)[[[MPTextMessage builder] mergeFromCodedInputStream:input] build]; +} ++ (MPTextMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPTextMessage*)[[[MPTextMessage builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPTextMessage_Builder*) builder { + return [[[MPTextMessage_Builder alloc] init] autorelease]; +} ++ (MPTextMessage_Builder*) builderWithPrototype:(MPTextMessage*) prototype { + return [[MPTextMessage builder] mergeFrom:prototype]; +} +- (MPTextMessage_Builder*) builder { + return [MPTextMessage builder]; +} +@end + +@interface MPTextMessage_Builder() +@property (retain) MPTextMessage* result; +@end + +@implementation MPTextMessage_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[MPTextMessage alloc] init] autorelease]; + } + return self; +} +- (PBGeneratedMessage*) internalGetResult { + return result; +} +- (MPTextMessage_Builder*) clear { + self.result = [[[MPTextMessage alloc] init] autorelease]; + return self; +} +- (MPTextMessage_Builder*) clone { + return [MPTextMessage builderWithPrototype:result]; +} +- (MPTextMessage*) defaultInstance { + return [MPTextMessage defaultInstance]; +} +- (MPTextMessage*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (MPTextMessage*) buildPartial { + MPTextMessage* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (MPTextMessage_Builder*) mergeFrom:(MPTextMessage*) other { + if (other == [MPTextMessage defaultInstance]) { + return self; + } + if (other.hasActor) { + [self setActor:other.actor]; + } + if (other.mutableSessionList.count > 0) { + if (result.mutableSessionList == nil) { + result.mutableSessionList = [NSMutableArray array]; + } + [result.mutableSessionList addObjectsFromArray:other.mutableSessionList]; + } + if (other.mutableChannelIdList.count > 0) { + if (result.mutableChannelIdList == nil) { + result.mutableChannelIdList = [NSMutableArray array]; + } + [result.mutableChannelIdList addObjectsFromArray:other.mutableChannelIdList]; + } + if (other.mutableTreeIdList.count > 0) { + if (result.mutableTreeIdList == nil) { + result.mutableTreeIdList = [NSMutableArray array]; + } + [result.mutableTreeIdList addObjectsFromArray:other.mutableTreeIdList]; + } + if (other.hasMessage) { + [self setMessage:other.message]; + } + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (MPTextMessage_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (MPTextMessage_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 8: { + [self setActor:[input readUInt32]]; + break; + } + case 16: { + [self addSession:[input readUInt32]]; + break; + } + case 24: { + [self addChannelId:[input readUInt32]]; + break; + } + case 32: { + [self addTreeId:[input readUInt32]]; + break; + } + case 42: { + [self setMessage:[input readString]]; + break; + } + } + } +} +- (BOOL) hasActor { + return result.hasActor; +} +- (int32_t) actor { + return result.actor; +} +- (MPTextMessage_Builder*) setActor:(int32_t) value { + result.hasActor = YES; + result.actor = value; + return self; +} +- (MPTextMessage_Builder*) clearActor { + result.hasActor = NO; + result.actor = 0; + return self; +} +- (NSArray*) sessionList { + if (result.mutableSessionList == nil) { + return [NSArray array]; + } + return result.mutableSessionList; +} +- (int32_t) sessionAtIndex:(int32_t) index { + return [result sessionAtIndex:index]; +} +- (MPTextMessage_Builder*) replaceSessionAtIndex:(int32_t) index with:(int32_t) value { + [result.mutableSessionList replaceObjectAtIndex:index withObject:[NSNumber numberWithInt:value]]; + return self; +} +- (MPTextMessage_Builder*) addSession:(int32_t) value { + if (result.mutableSessionList == nil) { + result.mutableSessionList = [NSMutableArray array]; + } + [result.mutableSessionList addObject:[NSNumber numberWithInt:value]]; + return self; +} +- (MPTextMessage_Builder*) addAllSession:(NSArray*) values { + if (result.mutableSessionList == nil) { + result.mutableSessionList = [NSMutableArray array]; + } + [result.mutableSessionList addObjectsFromArray:values]; + return self; +} +- (MPTextMessage_Builder*) clearSessionList { + result.mutableSessionList = nil; + return self; +} +- (NSArray*) channelIdList { + if (result.mutableChannelIdList == nil) { + return [NSArray array]; + } + return result.mutableChannelIdList; +} +- (int32_t) channelIdAtIndex:(int32_t) index { + return [result channelIdAtIndex:index]; +} +- (MPTextMessage_Builder*) replaceChannelIdAtIndex:(int32_t) index with:(int32_t) value { + [result.mutableChannelIdList replaceObjectAtIndex:index withObject:[NSNumber numberWithInt:value]]; + return self; +} +- (MPTextMessage_Builder*) addChannelId:(int32_t) value { + if (result.mutableChannelIdList == nil) { + result.mutableChannelIdList = [NSMutableArray array]; + } + [result.mutableChannelIdList addObject:[NSNumber numberWithInt:value]]; + return self; +} +- (MPTextMessage_Builder*) addAllChannelId:(NSArray*) values { + if (result.mutableChannelIdList == nil) { + result.mutableChannelIdList = [NSMutableArray array]; + } + [result.mutableChannelIdList addObjectsFromArray:values]; + return self; +} +- (MPTextMessage_Builder*) clearChannelIdList { + result.mutableChannelIdList = nil; + return self; +} +- (NSArray*) treeIdList { + if (result.mutableTreeIdList == nil) { + return [NSArray array]; + } + return result.mutableTreeIdList; +} +- (int32_t) treeIdAtIndex:(int32_t) index { + return [result treeIdAtIndex:index]; +} +- (MPTextMessage_Builder*) replaceTreeIdAtIndex:(int32_t) index with:(int32_t) value { + [result.mutableTreeIdList replaceObjectAtIndex:index withObject:[NSNumber numberWithInt:value]]; + return self; +} +- (MPTextMessage_Builder*) addTreeId:(int32_t) value { + if (result.mutableTreeIdList == nil) { + result.mutableTreeIdList = [NSMutableArray array]; + } + [result.mutableTreeIdList addObject:[NSNumber numberWithInt:value]]; + return self; +} +- (MPTextMessage_Builder*) addAllTreeId:(NSArray*) values { + if (result.mutableTreeIdList == nil) { + result.mutableTreeIdList = [NSMutableArray array]; + } + [result.mutableTreeIdList addObjectsFromArray:values]; + return self; +} +- (MPTextMessage_Builder*) clearTreeIdList { + result.mutableTreeIdList = nil; + return self; +} +- (BOOL) hasMessage { + return result.hasMessage; +} +- (NSString*) message { + return result.message; +} +- (MPTextMessage_Builder*) setMessage:(NSString*) value { + result.hasMessage = YES; + result.message = value; + return self; +} +- (MPTextMessage_Builder*) clearMessage { + result.hasMessage = NO; + result.message = @""; + return self; +} +@end + +@interface MPPermissionDenied () +@property int32_t permission; +@property int32_t channelId; +@property int32_t session; +@property (retain) NSString* reason; +@property MPPermissionDenied_DenyType type; +@property (retain) NSString* name; +@end + +@implementation MPPermissionDenied + +- (BOOL) hasPermission { + return !!hasPermission_; +} +- (void) setHasPermission:(BOOL) value { + hasPermission_ = !!value; +} +@synthesize permission; +- (BOOL) hasChannelId { + return !!hasChannelId_; +} +- (void) setHasChannelId:(BOOL) value { + hasChannelId_ = !!value; +} +@synthesize channelId; +- (BOOL) hasSession { + return !!hasSession_; +} +- (void) setHasSession:(BOOL) value { + hasSession_ = !!value; +} +@synthesize session; +- (BOOL) hasReason { + return !!hasReason_; +} +- (void) setHasReason:(BOOL) value { + hasReason_ = !!value; +} +@synthesize reason; +- (BOOL) hasType { + return !!hasType_; +} +- (void) setHasType:(BOOL) value { + hasType_ = !!value; +} +@synthesize type; +- (BOOL) hasName { + return !!hasName_; +} +- (void) setHasName:(BOOL) value { + hasName_ = !!value; +} +@synthesize name; +- (void) dealloc { + self.reason = nil; + self.name = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.permission = 0; + self.channelId = 0; + self.session = 0; + self.reason = @""; + self.type = MPPermissionDenied_DenyTypeText; + self.name = @""; + } + return self; +} +static MPPermissionDenied* defaultMPPermissionDeniedInstance = nil; ++ (void) initialize { + if (self == [MPPermissionDenied class]) { + defaultMPPermissionDeniedInstance = [[MPPermissionDenied alloc] init]; + } +} ++ (MPPermissionDenied*) defaultInstance { + return defaultMPPermissionDeniedInstance; +} +- (MPPermissionDenied*) defaultInstance { + return defaultMPPermissionDeniedInstance; +} +- (BOOL) isInitialized { + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + if (self.hasPermission) { + [output writeUInt32:1 value:self.permission]; + } + if (self.hasChannelId) { + [output writeUInt32:2 value:self.channelId]; + } + if (self.hasSession) { + [output writeUInt32:3 value:self.session]; + } + if (self.hasReason) { + [output writeString:4 value:self.reason]; + } + if (self.hasType) { + [output writeEnum:5 value:self.type]; + } + if (self.hasName) { + [output writeString:6 value:self.name]; + } + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + if (self.hasPermission) { + size += computeUInt32Size(1, self.permission); + } + if (self.hasChannelId) { + size += computeUInt32Size(2, self.channelId); + } + if (self.hasSession) { + size += computeUInt32Size(3, self.session); + } + if (self.hasReason) { + size += computeStringSize(4, self.reason); + } + if (self.hasType) { + size += computeEnumSize(5, self.type); + } + if (self.hasName) { + size += computeStringSize(6, self.name); + } + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (MPPermissionDenied*) parseFromData:(NSData*) data { + return (MPPermissionDenied*)[[[MPPermissionDenied builder] mergeFromData:data] build]; +} ++ (MPPermissionDenied*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPPermissionDenied*)[[[MPPermissionDenied builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (MPPermissionDenied*) parseFromInputStream:(NSInputStream*) input { + return (MPPermissionDenied*)[[[MPPermissionDenied builder] mergeFromInputStream:input] build]; +} ++ (MPPermissionDenied*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPPermissionDenied*)[[[MPPermissionDenied builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPPermissionDenied*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (MPPermissionDenied*)[[[MPPermissionDenied builder] mergeFromCodedInputStream:input] build]; +} ++ (MPPermissionDenied*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPPermissionDenied*)[[[MPPermissionDenied builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPPermissionDenied_Builder*) builder { + return [[[MPPermissionDenied_Builder alloc] init] autorelease]; +} ++ (MPPermissionDenied_Builder*) builderWithPrototype:(MPPermissionDenied*) prototype { + return [[MPPermissionDenied builder] mergeFrom:prototype]; +} +- (MPPermissionDenied_Builder*) builder { + return [MPPermissionDenied builder]; +} +@end + +BOOL MPPermissionDenied_DenyTypeIsValidValue(MPPermissionDenied_DenyType value) { + switch (value) { + case MPPermissionDenied_DenyTypeText: + case MPPermissionDenied_DenyTypePermission: + case MPPermissionDenied_DenyTypeSuperUser: + case MPPermissionDenied_DenyTypeChannelName: + case MPPermissionDenied_DenyTypeTextTooLong: + case MPPermissionDenied_DenyTypeH9K: + case MPPermissionDenied_DenyTypeTemporaryChannel: + case MPPermissionDenied_DenyTypeMissingCertificate: + case MPPermissionDenied_DenyTypeUserName: + case MPPermissionDenied_DenyTypeChannelFull: + return YES; + default: + return NO; + } +} +@interface MPPermissionDenied_Builder() +@property (retain) MPPermissionDenied* result; +@end + +@implementation MPPermissionDenied_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[MPPermissionDenied alloc] init] autorelease]; + } + return self; +} +- (PBGeneratedMessage*) internalGetResult { + return result; +} +- (MPPermissionDenied_Builder*) clear { + self.result = [[[MPPermissionDenied alloc] init] autorelease]; + return self; +} +- (MPPermissionDenied_Builder*) clone { + return [MPPermissionDenied builderWithPrototype:result]; +} +- (MPPermissionDenied*) defaultInstance { + return [MPPermissionDenied defaultInstance]; +} +- (MPPermissionDenied*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (MPPermissionDenied*) buildPartial { + MPPermissionDenied* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (MPPermissionDenied_Builder*) mergeFrom:(MPPermissionDenied*) other { + if (other == [MPPermissionDenied defaultInstance]) { + return self; + } + if (other.hasPermission) { + [self setPermission:other.permission]; + } + if (other.hasChannelId) { + [self setChannelId:other.channelId]; + } + if (other.hasSession) { + [self setSession:other.session]; + } + if (other.hasReason) { + [self setReason:other.reason]; + } + if (other.hasType) { + [self setType:other.type]; + } + if (other.hasName) { + [self setName:other.name]; + } + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (MPPermissionDenied_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (MPPermissionDenied_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 8: { + [self setPermission:[input readUInt32]]; + break; + } + case 16: { + [self setChannelId:[input readUInt32]]; + break; + } + case 24: { + [self setSession:[input readUInt32]]; + break; + } + case 34: { + [self setReason:[input readString]]; + break; + } + case 40: { + int32_t value = [input readEnum]; + if (MPPermissionDenied_DenyTypeIsValidValue(value)) { + [self setType:value]; + } else { + [unknownFields mergeVarintField:5 value:value]; + } + break; + } + case 50: { + [self setName:[input readString]]; + break; + } + } + } +} +- (BOOL) hasPermission { + return result.hasPermission; +} +- (int32_t) permission { + return result.permission; +} +- (MPPermissionDenied_Builder*) setPermission:(int32_t) value { + result.hasPermission = YES; + result.permission = value; + return self; +} +- (MPPermissionDenied_Builder*) clearPermission { + result.hasPermission = NO; + result.permission = 0; + return self; +} +- (BOOL) hasChannelId { + return result.hasChannelId; +} +- (int32_t) channelId { + return result.channelId; +} +- (MPPermissionDenied_Builder*) setChannelId:(int32_t) value { + result.hasChannelId = YES; + result.channelId = value; + return self; +} +- (MPPermissionDenied_Builder*) clearChannelId { + result.hasChannelId = NO; + result.channelId = 0; + return self; +} +- (BOOL) hasSession { + return result.hasSession; +} +- (int32_t) session { + return result.session; +} +- (MPPermissionDenied_Builder*) setSession:(int32_t) value { + result.hasSession = YES; + result.session = value; + return self; +} +- (MPPermissionDenied_Builder*) clearSession { + result.hasSession = NO; + result.session = 0; + return self; +} +- (BOOL) hasReason { + return result.hasReason; +} +- (NSString*) reason { + return result.reason; +} +- (MPPermissionDenied_Builder*) setReason:(NSString*) value { + result.hasReason = YES; + result.reason = value; + return self; +} +- (MPPermissionDenied_Builder*) clearReason { + result.hasReason = NO; + result.reason = @""; + return self; +} +- (BOOL) hasType { + return result.hasType; +} +- (MPPermissionDenied_DenyType) type { + return result.type; +} +- (MPPermissionDenied_Builder*) setType:(MPPermissionDenied_DenyType) value { + result.hasType = YES; + result.type = value; + return self; +} +- (MPPermissionDenied_Builder*) clearType { + result.hasType = NO; + result.type = MPPermissionDenied_DenyTypeText; + return self; +} +- (BOOL) hasName { + return result.hasName; +} +- (NSString*) name { + return result.name; +} +- (MPPermissionDenied_Builder*) setName:(NSString*) value { + result.hasName = YES; + result.name = value; + return self; +} +- (MPPermissionDenied_Builder*) clearName { + result.hasName = NO; + result.name = @""; + return self; +} +@end + +@interface MPACL () +@property int32_t channelId; +@property BOOL inheritAcls; +@property (retain) NSMutableArray* mutableGroupsList; +@property (retain) NSMutableArray* mutableAclsList; +@property BOOL query; +@end + +@implementation MPACL + +- (BOOL) hasChannelId { + return !!hasChannelId_; +} +- (void) setHasChannelId:(BOOL) value { + hasChannelId_ = !!value; +} +@synthesize channelId; +- (BOOL) hasInheritAcls { + return !!hasInheritAcls_; +} +- (void) setHasInheritAcls:(BOOL) value { + hasInheritAcls_ = !!value; +} +- (BOOL) inheritAcls { + return !!inheritAcls_; +} +- (void) setInheritAcls:(BOOL) value { + inheritAcls_ = !!value; +} +@synthesize mutableGroupsList; +@synthesize mutableAclsList; +- (BOOL) hasQuery { + return !!hasQuery_; +} +- (void) setHasQuery:(BOOL) value { + hasQuery_ = !!value; +} +- (BOOL) query { + return !!query_; +} +- (void) setQuery:(BOOL) value { + query_ = !!value; +} +- (void) dealloc { + self.mutableGroupsList = nil; + self.mutableAclsList = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.channelId = 0; + self.inheritAcls = YES; + self.query = NO; + } + return self; +} +static MPACL* defaultMPACLInstance = nil; ++ (void) initialize { + if (self == [MPACL class]) { + defaultMPACLInstance = [[MPACL alloc] init]; + } +} ++ (MPACL*) defaultInstance { + return defaultMPACLInstance; +} +- (MPACL*) defaultInstance { + return defaultMPACLInstance; +} +- (NSArray*) groupsList { + return mutableGroupsList; +} +- (MPACL_ChanGroup*) groupsAtIndex:(int32_t) index { + id value = [mutableGroupsList objectAtIndex:index]; + return value; +} +- (NSArray*) aclsList { + return mutableAclsList; +} +- (MPACL_ChanACL*) aclsAtIndex:(int32_t) index { + id value = [mutableAclsList objectAtIndex:index]; + return value; +} +- (BOOL) isInitialized { + if (!self.hasChannelId) { + return NO; + } + for (MPACL_ChanGroup* element in self.groupsList) { + if (!element.isInitialized) { + return NO; + } + } + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + if (self.hasChannelId) { + [output writeUInt32:1 value:self.channelId]; + } + if (self.hasInheritAcls) { + [output writeBool:2 value:self.inheritAcls]; + } + for (MPACL_ChanGroup* element in self.groupsList) { + [output writeMessage:3 value:element]; + } + for (MPACL_ChanACL* element in self.aclsList) { + [output writeMessage:4 value:element]; + } + if (self.hasQuery) { + [output writeBool:5 value:self.query]; + } + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + if (self.hasChannelId) { + size += computeUInt32Size(1, self.channelId); + } + if (self.hasInheritAcls) { + size += computeBoolSize(2, self.inheritAcls); + } + for (MPACL_ChanGroup* element in self.groupsList) { + size += computeMessageSize(3, element); + } + for (MPACL_ChanACL* element in self.aclsList) { + size += computeMessageSize(4, element); + } + if (self.hasQuery) { + size += computeBoolSize(5, self.query); + } + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (MPACL*) parseFromData:(NSData*) data { + return (MPACL*)[[[MPACL builder] mergeFromData:data] build]; +} ++ (MPACL*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPACL*)[[[MPACL builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (MPACL*) parseFromInputStream:(NSInputStream*) input { + return (MPACL*)[[[MPACL builder] mergeFromInputStream:input] build]; +} ++ (MPACL*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPACL*)[[[MPACL builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPACL*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (MPACL*)[[[MPACL builder] mergeFromCodedInputStream:input] build]; +} ++ (MPACL*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPACL*)[[[MPACL builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPACL_Builder*) builder { + return [[[MPACL_Builder alloc] init] autorelease]; +} ++ (MPACL_Builder*) builderWithPrototype:(MPACL*) prototype { + return [[MPACL builder] mergeFrom:prototype]; +} +- (MPACL_Builder*) builder { + return [MPACL builder]; +} +@end + +@interface MPACL_ChanGroup () +@property (retain) NSString* name; +@property BOOL inherited; +@property BOOL inherit; +@property BOOL inheritable; +@property (retain) NSMutableArray* mutableAddList; +@property (retain) NSMutableArray* mutableRemoveList; +@property (retain) NSMutableArray* mutableInheritedMembersList; +@end + +@implementation MPACL_ChanGroup + +- (BOOL) hasName { + return !!hasName_; +} +- (void) setHasName:(BOOL) value { + hasName_ = !!value; +} +@synthesize name; +- (BOOL) hasInherited { + return !!hasInherited_; +} +- (void) setHasInherited:(BOOL) value { + hasInherited_ = !!value; +} +- (BOOL) inherited { + return !!inherited_; +} +- (void) setInherited:(BOOL) value { + inherited_ = !!value; +} +- (BOOL) hasInherit { + return !!hasInherit_; +} +- (void) setHasInherit:(BOOL) value { + hasInherit_ = !!value; +} +- (BOOL) inherit { + return !!inherit_; +} +- (void) setInherit:(BOOL) value { + inherit_ = !!value; +} +- (BOOL) hasInheritable { + return !!hasInheritable_; +} +- (void) setHasInheritable:(BOOL) value { + hasInheritable_ = !!value; +} +- (BOOL) inheritable { + return !!inheritable_; +} +- (void) setInheritable:(BOOL) value { + inheritable_ = !!value; +} +@synthesize mutableAddList; +@synthesize mutableRemoveList; +@synthesize mutableInheritedMembersList; +- (void) dealloc { + self.name = nil; + self.mutableAddList = nil; + self.mutableRemoveList = nil; + self.mutableInheritedMembersList = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.name = @""; + self.inherited = YES; + self.inherit = YES; + self.inheritable = YES; + } + return self; +} +static MPACL_ChanGroup* defaultMPACL_ChanGroupInstance = nil; ++ (void) initialize { + if (self == [MPACL_ChanGroup class]) { + defaultMPACL_ChanGroupInstance = [[MPACL_ChanGroup alloc] init]; + } +} ++ (MPACL_ChanGroup*) defaultInstance { + return defaultMPACL_ChanGroupInstance; +} +- (MPACL_ChanGroup*) defaultInstance { + return defaultMPACL_ChanGroupInstance; +} +- (NSArray*) addList { + return mutableAddList; +} +- (int32_t) addAtIndex:(int32_t) index { + id value = [mutableAddList objectAtIndex:index]; + return [value intValue]; +} +- (NSArray*) removeList { + return mutableRemoveList; +} +- (int32_t) removeAtIndex:(int32_t) index { + id value = [mutableRemoveList objectAtIndex:index]; + return [value intValue]; +} +- (NSArray*) inheritedMembersList { + return mutableInheritedMembersList; +} +- (int32_t) inheritedMembersAtIndex:(int32_t) index { + id value = [mutableInheritedMembersList objectAtIndex:index]; + return [value intValue]; +} +- (BOOL) isInitialized { + if (!self.hasName) { + return NO; + } + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + if (self.hasName) { + [output writeString:1 value:self.name]; + } + if (self.hasInherited) { + [output writeBool:2 value:self.inherited]; + } + if (self.hasInherit) { + [output writeBool:3 value:self.inherit]; + } + if (self.hasInheritable) { + [output writeBool:4 value:self.inheritable]; + } + for (NSNumber* value in self.mutableAddList) { + [output writeUInt32:5 value:[value intValue]]; + } + for (NSNumber* value in self.mutableRemoveList) { + [output writeUInt32:6 value:[value intValue]]; + } + for (NSNumber* value in self.mutableInheritedMembersList) { + [output writeUInt32:7 value:[value intValue]]; + } + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + if (self.hasName) { + size += computeStringSize(1, self.name); + } + if (self.hasInherited) { + size += computeBoolSize(2, self.inherited); + } + if (self.hasInherit) { + size += computeBoolSize(3, self.inherit); + } + if (self.hasInheritable) { + size += computeBoolSize(4, self.inheritable); + } + { + int32_t dataSize = 0; + for (NSNumber* value in self.mutableAddList) { + dataSize += computeUInt32SizeNoTag([value intValue]); + } + size += dataSize; + size += 1 * self.mutableAddList.count; + } + { + int32_t dataSize = 0; + for (NSNumber* value in self.mutableRemoveList) { + dataSize += computeUInt32SizeNoTag([value intValue]); + } + size += dataSize; + size += 1 * self.mutableRemoveList.count; + } + { + int32_t dataSize = 0; + for (NSNumber* value in self.mutableInheritedMembersList) { + dataSize += computeUInt32SizeNoTag([value intValue]); + } + size += dataSize; + size += 1 * self.mutableInheritedMembersList.count; + } + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (MPACL_ChanGroup*) parseFromData:(NSData*) data { + return (MPACL_ChanGroup*)[[[MPACL_ChanGroup builder] mergeFromData:data] build]; +} ++ (MPACL_ChanGroup*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPACL_ChanGroup*)[[[MPACL_ChanGroup builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (MPACL_ChanGroup*) parseFromInputStream:(NSInputStream*) input { + return (MPACL_ChanGroup*)[[[MPACL_ChanGroup builder] mergeFromInputStream:input] build]; +} ++ (MPACL_ChanGroup*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPACL_ChanGroup*)[[[MPACL_ChanGroup builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPACL_ChanGroup*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (MPACL_ChanGroup*)[[[MPACL_ChanGroup builder] mergeFromCodedInputStream:input] build]; +} ++ (MPACL_ChanGroup*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPACL_ChanGroup*)[[[MPACL_ChanGroup builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPACL_ChanGroup_Builder*) builder { + return [[[MPACL_ChanGroup_Builder alloc] init] autorelease]; +} ++ (MPACL_ChanGroup_Builder*) builderWithPrototype:(MPACL_ChanGroup*) prototype { + return [[MPACL_ChanGroup builder] mergeFrom:prototype]; +} +- (MPACL_ChanGroup_Builder*) builder { + return [MPACL_ChanGroup builder]; +} +@end + +@interface MPACL_ChanGroup_Builder() +@property (retain) MPACL_ChanGroup* result; +@end + +@implementation MPACL_ChanGroup_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[MPACL_ChanGroup alloc] init] autorelease]; + } + return self; +} +- (PBGeneratedMessage*) internalGetResult { + return result; +} +- (MPACL_ChanGroup_Builder*) clear { + self.result = [[[MPACL_ChanGroup alloc] init] autorelease]; + return self; +} +- (MPACL_ChanGroup_Builder*) clone { + return [MPACL_ChanGroup builderWithPrototype:result]; +} +- (MPACL_ChanGroup*) defaultInstance { + return [MPACL_ChanGroup defaultInstance]; +} +- (MPACL_ChanGroup*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (MPACL_ChanGroup*) buildPartial { + MPACL_ChanGroup* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (MPACL_ChanGroup_Builder*) mergeFrom:(MPACL_ChanGroup*) other { + if (other == [MPACL_ChanGroup defaultInstance]) { + return self; + } + if (other.hasName) { + [self setName:other.name]; + } + if (other.hasInherited) { + [self setInherited:other.inherited]; + } + if (other.hasInherit) { + [self setInherit:other.inherit]; + } + if (other.hasInheritable) { + [self setInheritable:other.inheritable]; + } + if (other.mutableAddList.count > 0) { + if (result.mutableAddList == nil) { + result.mutableAddList = [NSMutableArray array]; + } + [result.mutableAddList addObjectsFromArray:other.mutableAddList]; + } + if (other.mutableRemoveList.count > 0) { + if (result.mutableRemoveList == nil) { + result.mutableRemoveList = [NSMutableArray array]; + } + [result.mutableRemoveList addObjectsFromArray:other.mutableRemoveList]; + } + if (other.mutableInheritedMembersList.count > 0) { + if (result.mutableInheritedMembersList == nil) { + result.mutableInheritedMembersList = [NSMutableArray array]; + } + [result.mutableInheritedMembersList addObjectsFromArray:other.mutableInheritedMembersList]; + } + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (MPACL_ChanGroup_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (MPACL_ChanGroup_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 10: { + [self setName:[input readString]]; + break; + } + case 16: { + [self setInherited:[input readBool]]; + break; + } + case 24: { + [self setInherit:[input readBool]]; + break; + } + case 32: { + [self setInheritable:[input readBool]]; + break; + } + case 40: { + [self addAdd:[input readUInt32]]; + break; + } + case 48: { + [self addRemove:[input readUInt32]]; + break; + } + case 56: { + [self addInheritedMembers:[input readUInt32]]; + break; + } + } + } +} +- (BOOL) hasName { + return result.hasName; +} +- (NSString*) name { + return result.name; +} +- (MPACL_ChanGroup_Builder*) setName:(NSString*) value { + result.hasName = YES; + result.name = value; + return self; +} +- (MPACL_ChanGroup_Builder*) clearName { + result.hasName = NO; + result.name = @""; + return self; +} +- (BOOL) hasInherited { + return result.hasInherited; +} +- (BOOL) inherited { + return result.inherited; +} +- (MPACL_ChanGroup_Builder*) setInherited:(BOOL) value { + result.hasInherited = YES; + result.inherited = value; + return self; +} +- (MPACL_ChanGroup_Builder*) clearInherited { + result.hasInherited = NO; + result.inherited = YES; + return self; +} +- (BOOL) hasInherit { + return result.hasInherit; +} +- (BOOL) inherit { + return result.inherit; +} +- (MPACL_ChanGroup_Builder*) setInherit:(BOOL) value { + result.hasInherit = YES; + result.inherit = value; + return self; +} +- (MPACL_ChanGroup_Builder*) clearInherit { + result.hasInherit = NO; + result.inherit = YES; + return self; +} +- (BOOL) hasInheritable { + return result.hasInheritable; +} +- (BOOL) inheritable { + return result.inheritable; +} +- (MPACL_ChanGroup_Builder*) setInheritable:(BOOL) value { + result.hasInheritable = YES; + result.inheritable = value; + return self; +} +- (MPACL_ChanGroup_Builder*) clearInheritable { + result.hasInheritable = NO; + result.inheritable = YES; + return self; +} +- (NSArray*) addList { + if (result.mutableAddList == nil) { + return [NSArray array]; + } + return result.mutableAddList; +} +- (int32_t) addAtIndex:(int32_t) index { + return [result addAtIndex:index]; +} +- (MPACL_ChanGroup_Builder*) replaceAddAtIndex:(int32_t) index with:(int32_t) value { + [result.mutableAddList replaceObjectAtIndex:index withObject:[NSNumber numberWithInt:value]]; + return self; +} +- (MPACL_ChanGroup_Builder*) addAdd:(int32_t) value { + if (result.mutableAddList == nil) { + result.mutableAddList = [NSMutableArray array]; + } + [result.mutableAddList addObject:[NSNumber numberWithInt:value]]; + return self; +} +- (MPACL_ChanGroup_Builder*) addAllAdd:(NSArray*) values { + if (result.mutableAddList == nil) { + result.mutableAddList = [NSMutableArray array]; + } + [result.mutableAddList addObjectsFromArray:values]; + return self; +} +- (MPACL_ChanGroup_Builder*) clearAddList { + result.mutableAddList = nil; + return self; +} +- (NSArray*) removeList { + if (result.mutableRemoveList == nil) { + return [NSArray array]; + } + return result.mutableRemoveList; +} +- (int32_t) removeAtIndex:(int32_t) index { + return [result removeAtIndex:index]; +} +- (MPACL_ChanGroup_Builder*) replaceRemoveAtIndex:(int32_t) index with:(int32_t) value { + [result.mutableRemoveList replaceObjectAtIndex:index withObject:[NSNumber numberWithInt:value]]; + return self; +} +- (MPACL_ChanGroup_Builder*) addRemove:(int32_t) value { + if (result.mutableRemoveList == nil) { + result.mutableRemoveList = [NSMutableArray array]; + } + [result.mutableRemoveList addObject:[NSNumber numberWithInt:value]]; + return self; +} +- (MPACL_ChanGroup_Builder*) addAllRemove:(NSArray*) values { + if (result.mutableRemoveList == nil) { + result.mutableRemoveList = [NSMutableArray array]; + } + [result.mutableRemoveList addObjectsFromArray:values]; + return self; +} +- (MPACL_ChanGroup_Builder*) clearRemoveList { + result.mutableRemoveList = nil; + return self; +} +- (NSArray*) inheritedMembersList { + if (result.mutableInheritedMembersList == nil) { + return [NSArray array]; + } + return result.mutableInheritedMembersList; +} +- (int32_t) inheritedMembersAtIndex:(int32_t) index { + return [result inheritedMembersAtIndex:index]; +} +- (MPACL_ChanGroup_Builder*) replaceInheritedMembersAtIndex:(int32_t) index with:(int32_t) value { + [result.mutableInheritedMembersList replaceObjectAtIndex:index withObject:[NSNumber numberWithInt:value]]; + return self; +} +- (MPACL_ChanGroup_Builder*) addInheritedMembers:(int32_t) value { + if (result.mutableInheritedMembersList == nil) { + result.mutableInheritedMembersList = [NSMutableArray array]; + } + [result.mutableInheritedMembersList addObject:[NSNumber numberWithInt:value]]; + return self; +} +- (MPACL_ChanGroup_Builder*) addAllInheritedMembers:(NSArray*) values { + if (result.mutableInheritedMembersList == nil) { + result.mutableInheritedMembersList = [NSMutableArray array]; + } + [result.mutableInheritedMembersList addObjectsFromArray:values]; + return self; +} +- (MPACL_ChanGroup_Builder*) clearInheritedMembersList { + result.mutableInheritedMembersList = nil; + return self; +} +@end + +@interface MPACL_ChanACL () +@property BOOL applyHere; +@property BOOL applySubs; +@property BOOL inherited; +@property int32_t userId; +@property (retain) NSString* group; +@property int32_t grant; +@property int32_t deny; +@end + +@implementation MPACL_ChanACL + +- (BOOL) hasApplyHere { + return !!hasApplyHere_; +} +- (void) setHasApplyHere:(BOOL) value { + hasApplyHere_ = !!value; +} +- (BOOL) applyHere { + return !!applyHere_; +} +- (void) setApplyHere:(BOOL) value { + applyHere_ = !!value; +} +- (BOOL) hasApplySubs { + return !!hasApplySubs_; +} +- (void) setHasApplySubs:(BOOL) value { + hasApplySubs_ = !!value; +} +- (BOOL) applySubs { + return !!applySubs_; +} +- (void) setApplySubs:(BOOL) value { + applySubs_ = !!value; +} +- (BOOL) hasInherited { + return !!hasInherited_; +} +- (void) setHasInherited:(BOOL) value { + hasInherited_ = !!value; +} +- (BOOL) inherited { + return !!inherited_; +} +- (void) setInherited:(BOOL) value { + inherited_ = !!value; +} +- (BOOL) hasUserId { + return !!hasUserId_; +} +- (void) setHasUserId:(BOOL) value { + hasUserId_ = !!value; +} +@synthesize userId; +- (BOOL) hasGroup { + return !!hasGroup_; +} +- (void) setHasGroup:(BOOL) value { + hasGroup_ = !!value; +} +@synthesize group; +- (BOOL) hasGrant { + return !!hasGrant_; +} +- (void) setHasGrant:(BOOL) value { + hasGrant_ = !!value; +} +@synthesize grant; +- (BOOL) hasDeny { + return !!hasDeny_; +} +- (void) setHasDeny:(BOOL) value { + hasDeny_ = !!value; +} +@synthesize deny; +- (void) dealloc { + self.group = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.applyHere = YES; + self.applySubs = YES; + self.inherited = YES; + self.userId = 0; + self.group = @""; + self.grant = 0; + self.deny = 0; + } + return self; +} +static MPACL_ChanACL* defaultMPACL_ChanACLInstance = nil; ++ (void) initialize { + if (self == [MPACL_ChanACL class]) { + defaultMPACL_ChanACLInstance = [[MPACL_ChanACL alloc] init]; + } +} ++ (MPACL_ChanACL*) defaultInstance { + return defaultMPACL_ChanACLInstance; +} +- (MPACL_ChanACL*) defaultInstance { + return defaultMPACL_ChanACLInstance; +} +- (BOOL) isInitialized { + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + if (self.hasApplyHere) { + [output writeBool:1 value:self.applyHere]; + } + if (self.hasApplySubs) { + [output writeBool:2 value:self.applySubs]; + } + if (self.hasInherited) { + [output writeBool:3 value:self.inherited]; + } + if (self.hasUserId) { + [output writeUInt32:4 value:self.userId]; + } + if (self.hasGroup) { + [output writeString:5 value:self.group]; + } + if (self.hasGrant) { + [output writeUInt32:6 value:self.grant]; + } + if (self.hasDeny) { + [output writeUInt32:7 value:self.deny]; + } + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + if (self.hasApplyHere) { + size += computeBoolSize(1, self.applyHere); + } + if (self.hasApplySubs) { + size += computeBoolSize(2, self.applySubs); + } + if (self.hasInherited) { + size += computeBoolSize(3, self.inherited); + } + if (self.hasUserId) { + size += computeUInt32Size(4, self.userId); + } + if (self.hasGroup) { + size += computeStringSize(5, self.group); + } + if (self.hasGrant) { + size += computeUInt32Size(6, self.grant); + } + if (self.hasDeny) { + size += computeUInt32Size(7, self.deny); + } + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (MPACL_ChanACL*) parseFromData:(NSData*) data { + return (MPACL_ChanACL*)[[[MPACL_ChanACL builder] mergeFromData:data] build]; +} ++ (MPACL_ChanACL*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPACL_ChanACL*)[[[MPACL_ChanACL builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (MPACL_ChanACL*) parseFromInputStream:(NSInputStream*) input { + return (MPACL_ChanACL*)[[[MPACL_ChanACL builder] mergeFromInputStream:input] build]; +} ++ (MPACL_ChanACL*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPACL_ChanACL*)[[[MPACL_ChanACL builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPACL_ChanACL*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (MPACL_ChanACL*)[[[MPACL_ChanACL builder] mergeFromCodedInputStream:input] build]; +} ++ (MPACL_ChanACL*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPACL_ChanACL*)[[[MPACL_ChanACL builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPACL_ChanACL_Builder*) builder { + return [[[MPACL_ChanACL_Builder alloc] init] autorelease]; +} ++ (MPACL_ChanACL_Builder*) builderWithPrototype:(MPACL_ChanACL*) prototype { + return [[MPACL_ChanACL builder] mergeFrom:prototype]; +} +- (MPACL_ChanACL_Builder*) builder { + return [MPACL_ChanACL builder]; +} +@end + +@interface MPACL_ChanACL_Builder() +@property (retain) MPACL_ChanACL* result; +@end + +@implementation MPACL_ChanACL_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[MPACL_ChanACL alloc] init] autorelease]; + } + return self; +} +- (PBGeneratedMessage*) internalGetResult { + return result; +} +- (MPACL_ChanACL_Builder*) clear { + self.result = [[[MPACL_ChanACL alloc] init] autorelease]; + return self; +} +- (MPACL_ChanACL_Builder*) clone { + return [MPACL_ChanACL builderWithPrototype:result]; +} +- (MPACL_ChanACL*) defaultInstance { + return [MPACL_ChanACL defaultInstance]; +} +- (MPACL_ChanACL*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (MPACL_ChanACL*) buildPartial { + MPACL_ChanACL* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (MPACL_ChanACL_Builder*) mergeFrom:(MPACL_ChanACL*) other { + if (other == [MPACL_ChanACL defaultInstance]) { + return self; + } + if (other.hasApplyHere) { + [self setApplyHere:other.applyHere]; + } + if (other.hasApplySubs) { + [self setApplySubs:other.applySubs]; + } + if (other.hasInherited) { + [self setInherited:other.inherited]; + } + if (other.hasUserId) { + [self setUserId:other.userId]; + } + if (other.hasGroup) { + [self setGroup:other.group]; + } + if (other.hasGrant) { + [self setGrant:other.grant]; + } + if (other.hasDeny) { + [self setDeny:other.deny]; + } + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (MPACL_ChanACL_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (MPACL_ChanACL_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 8: { + [self setApplyHere:[input readBool]]; + break; + } + case 16: { + [self setApplySubs:[input readBool]]; + break; + } + case 24: { + [self setInherited:[input readBool]]; + break; + } + case 32: { + [self setUserId:[input readUInt32]]; + break; + } + case 42: { + [self setGroup:[input readString]]; + break; + } + case 48: { + [self setGrant:[input readUInt32]]; + break; + } + case 56: { + [self setDeny:[input readUInt32]]; + break; + } + } + } +} +- (BOOL) hasApplyHere { + return result.hasApplyHere; +} +- (BOOL) applyHere { + return result.applyHere; +} +- (MPACL_ChanACL_Builder*) setApplyHere:(BOOL) value { + result.hasApplyHere = YES; + result.applyHere = value; + return self; +} +- (MPACL_ChanACL_Builder*) clearApplyHere { + result.hasApplyHere = NO; + result.applyHere = YES; + return self; +} +- (BOOL) hasApplySubs { + return result.hasApplySubs; +} +- (BOOL) applySubs { + return result.applySubs; +} +- (MPACL_ChanACL_Builder*) setApplySubs:(BOOL) value { + result.hasApplySubs = YES; + result.applySubs = value; + return self; +} +- (MPACL_ChanACL_Builder*) clearApplySubs { + result.hasApplySubs = NO; + result.applySubs = YES; + return self; +} +- (BOOL) hasInherited { + return result.hasInherited; +} +- (BOOL) inherited { + return result.inherited; +} +- (MPACL_ChanACL_Builder*) setInherited:(BOOL) value { + result.hasInherited = YES; + result.inherited = value; + return self; +} +- (MPACL_ChanACL_Builder*) clearInherited { + result.hasInherited = NO; + result.inherited = YES; + return self; +} +- (BOOL) hasUserId { + return result.hasUserId; +} +- (int32_t) userId { + return result.userId; +} +- (MPACL_ChanACL_Builder*) setUserId:(int32_t) value { + result.hasUserId = YES; + result.userId = value; + return self; +} +- (MPACL_ChanACL_Builder*) clearUserId { + result.hasUserId = NO; + result.userId = 0; + return self; +} +- (BOOL) hasGroup { + return result.hasGroup; +} +- (NSString*) group { + return result.group; +} +- (MPACL_ChanACL_Builder*) setGroup:(NSString*) value { + result.hasGroup = YES; + result.group = value; + return self; +} +- (MPACL_ChanACL_Builder*) clearGroup { + result.hasGroup = NO; + result.group = @""; + return self; +} +- (BOOL) hasGrant { + return result.hasGrant; +} +- (int32_t) grant { + return result.grant; +} +- (MPACL_ChanACL_Builder*) setGrant:(int32_t) value { + result.hasGrant = YES; + result.grant = value; + return self; +} +- (MPACL_ChanACL_Builder*) clearGrant { + result.hasGrant = NO; + result.grant = 0; + return self; +} +- (BOOL) hasDeny { + return result.hasDeny; +} +- (int32_t) deny { + return result.deny; +} +- (MPACL_ChanACL_Builder*) setDeny:(int32_t) value { + result.hasDeny = YES; + result.deny = value; + return self; +} +- (MPACL_ChanACL_Builder*) clearDeny { + result.hasDeny = NO; + result.deny = 0; + return self; +} +@end + +@interface MPACL_Builder() +@property (retain) MPACL* result; +@end + +@implementation MPACL_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[MPACL alloc] init] autorelease]; + } + return self; +} +- (PBGeneratedMessage*) internalGetResult { + return result; +} +- (MPACL_Builder*) clear { + self.result = [[[MPACL alloc] init] autorelease]; + return self; +} +- (MPACL_Builder*) clone { + return [MPACL builderWithPrototype:result]; +} +- (MPACL*) defaultInstance { + return [MPACL defaultInstance]; +} +- (MPACL*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (MPACL*) buildPartial { + MPACL* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (MPACL_Builder*) mergeFrom:(MPACL*) other { + if (other == [MPACL defaultInstance]) { + return self; + } + if (other.hasChannelId) { + [self setChannelId:other.channelId]; + } + if (other.hasInheritAcls) { + [self setInheritAcls:other.inheritAcls]; + } + if (other.mutableGroupsList.count > 0) { + if (result.mutableGroupsList == nil) { + result.mutableGroupsList = [NSMutableArray array]; + } + [result.mutableGroupsList addObjectsFromArray:other.mutableGroupsList]; + } + if (other.mutableAclsList.count > 0) { + if (result.mutableAclsList == nil) { + result.mutableAclsList = [NSMutableArray array]; + } + [result.mutableAclsList addObjectsFromArray:other.mutableAclsList]; + } + if (other.hasQuery) { + [self setQuery:other.query]; + } + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (MPACL_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (MPACL_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 8: { + [self setChannelId:[input readUInt32]]; + break; + } + case 16: { + [self setInheritAcls:[input readBool]]; + break; + } + case 26: { + MPACL_ChanGroup_Builder* subBuilder = [MPACL_ChanGroup builder]; + [input readMessage:subBuilder extensionRegistry:extensionRegistry]; + [self addGroups:[subBuilder buildPartial]]; + break; + } + case 34: { + MPACL_ChanACL_Builder* subBuilder = [MPACL_ChanACL builder]; + [input readMessage:subBuilder extensionRegistry:extensionRegistry]; + [self addAcls:[subBuilder buildPartial]]; + break; + } + case 40: { + [self setQuery:[input readBool]]; + break; + } + } + } +} +- (BOOL) hasChannelId { + return result.hasChannelId; +} +- (int32_t) channelId { + return result.channelId; +} +- (MPACL_Builder*) setChannelId:(int32_t) value { + result.hasChannelId = YES; + result.channelId = value; + return self; +} +- (MPACL_Builder*) clearChannelId { + result.hasChannelId = NO; + result.channelId = 0; + return self; +} +- (BOOL) hasInheritAcls { + return result.hasInheritAcls; +} +- (BOOL) inheritAcls { + return result.inheritAcls; +} +- (MPACL_Builder*) setInheritAcls:(BOOL) value { + result.hasInheritAcls = YES; + result.inheritAcls = value; + return self; +} +- (MPACL_Builder*) clearInheritAcls { + result.hasInheritAcls = NO; + result.inheritAcls = YES; + return self; +} +- (NSArray*) groupsList { + if (result.mutableGroupsList == nil) { return [NSArray array]; } + return result.mutableGroupsList; +} +- (MPACL_ChanGroup*) groupsAtIndex:(int32_t) index { + return [result groupsAtIndex:index]; +} +- (MPACL_Builder*) replaceGroupsAtIndex:(int32_t) index with:(MPACL_ChanGroup*) value { + [result.mutableGroupsList replaceObjectAtIndex:index withObject:value]; + return self; +} +- (MPACL_Builder*) addAllGroups:(NSArray*) values { + if (result.mutableGroupsList == nil) { + result.mutableGroupsList = [NSMutableArray array]; + } + [result.mutableGroupsList addObjectsFromArray:values]; + return self; +} +- (MPACL_Builder*) clearGroupsList { + result.mutableGroupsList = nil; + return self; +} +- (MPACL_Builder*) addGroups:(MPACL_ChanGroup*) value { + if (result.mutableGroupsList == nil) { + result.mutableGroupsList = [NSMutableArray array]; + } + [result.mutableGroupsList addObject:value]; + return self; +} +- (NSArray*) aclsList { + if (result.mutableAclsList == nil) { return [NSArray array]; } + return result.mutableAclsList; +} +- (MPACL_ChanACL*) aclsAtIndex:(int32_t) index { + return [result aclsAtIndex:index]; +} +- (MPACL_Builder*) replaceAclsAtIndex:(int32_t) index with:(MPACL_ChanACL*) value { + [result.mutableAclsList replaceObjectAtIndex:index withObject:value]; + return self; +} +- (MPACL_Builder*) addAllAcls:(NSArray*) values { + if (result.mutableAclsList == nil) { + result.mutableAclsList = [NSMutableArray array]; + } + [result.mutableAclsList addObjectsFromArray:values]; + return self; +} +- (MPACL_Builder*) clearAclsList { + result.mutableAclsList = nil; + return self; +} +- (MPACL_Builder*) addAcls:(MPACL_ChanACL*) value { + if (result.mutableAclsList == nil) { + result.mutableAclsList = [NSMutableArray array]; + } + [result.mutableAclsList addObject:value]; + return self; +} +- (BOOL) hasQuery { + return result.hasQuery; +} +- (BOOL) query { + return result.query; +} +- (MPACL_Builder*) setQuery:(BOOL) value { + result.hasQuery = YES; + result.query = value; + return self; +} +- (MPACL_Builder*) clearQuery { + result.hasQuery = NO; + result.query = NO; + return self; +} +@end + +@interface MPQueryUsers () +@property (retain) NSMutableArray* mutableIdsList; +@property (retain) NSMutableArray* mutableNamesList; +@end + +@implementation MPQueryUsers + +@synthesize mutableIdsList; +@synthesize mutableNamesList; +- (void) dealloc { + self.mutableIdsList = nil; + self.mutableNamesList = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + } + return self; +} +static MPQueryUsers* defaultMPQueryUsersInstance = nil; ++ (void) initialize { + if (self == [MPQueryUsers class]) { + defaultMPQueryUsersInstance = [[MPQueryUsers alloc] init]; + } +} ++ (MPQueryUsers*) defaultInstance { + return defaultMPQueryUsersInstance; +} +- (MPQueryUsers*) defaultInstance { + return defaultMPQueryUsersInstance; +} +- (NSArray*) idsList { + return mutableIdsList; +} +- (int32_t) idsAtIndex:(int32_t) index { + id value = [mutableIdsList objectAtIndex:index]; + return [value intValue]; +} +- (NSArray*) namesList { + return mutableNamesList; +} +- (NSString*) namesAtIndex:(int32_t) index { + id value = [mutableNamesList objectAtIndex:index]; + return value; +} +- (BOOL) isInitialized { + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + for (NSNumber* value in self.mutableIdsList) { + [output writeUInt32:1 value:[value intValue]]; + } + for (NSString* element in self.mutableNamesList) { + [output writeString:2 value:element]; + } + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + { + int32_t dataSize = 0; + for (NSNumber* value in self.mutableIdsList) { + dataSize += computeUInt32SizeNoTag([value intValue]); + } + size += dataSize; + size += 1 * self.mutableIdsList.count; + } + { + int32_t dataSize = 0; + for (NSString* element in self.mutableNamesList) { + dataSize += computeStringSizeNoTag(element); + } + size += dataSize; + size += 1 * self.mutableNamesList.count; + } + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (MPQueryUsers*) parseFromData:(NSData*) data { + return (MPQueryUsers*)[[[MPQueryUsers builder] mergeFromData:data] build]; +} ++ (MPQueryUsers*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPQueryUsers*)[[[MPQueryUsers builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (MPQueryUsers*) parseFromInputStream:(NSInputStream*) input { + return (MPQueryUsers*)[[[MPQueryUsers builder] mergeFromInputStream:input] build]; +} ++ (MPQueryUsers*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPQueryUsers*)[[[MPQueryUsers builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPQueryUsers*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (MPQueryUsers*)[[[MPQueryUsers builder] mergeFromCodedInputStream:input] build]; +} ++ (MPQueryUsers*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPQueryUsers*)[[[MPQueryUsers builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPQueryUsers_Builder*) builder { + return [[[MPQueryUsers_Builder alloc] init] autorelease]; +} ++ (MPQueryUsers_Builder*) builderWithPrototype:(MPQueryUsers*) prototype { + return [[MPQueryUsers builder] mergeFrom:prototype]; +} +- (MPQueryUsers_Builder*) builder { + return [MPQueryUsers builder]; +} +@end + +@interface MPQueryUsers_Builder() +@property (retain) MPQueryUsers* result; +@end + +@implementation MPQueryUsers_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[MPQueryUsers alloc] init] autorelease]; + } + return self; +} +- (PBGeneratedMessage*) internalGetResult { + return result; +} +- (MPQueryUsers_Builder*) clear { + self.result = [[[MPQueryUsers alloc] init] autorelease]; + return self; +} +- (MPQueryUsers_Builder*) clone { + return [MPQueryUsers builderWithPrototype:result]; +} +- (MPQueryUsers*) defaultInstance { + return [MPQueryUsers defaultInstance]; +} +- (MPQueryUsers*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (MPQueryUsers*) buildPartial { + MPQueryUsers* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (MPQueryUsers_Builder*) mergeFrom:(MPQueryUsers*) other { + if (other == [MPQueryUsers defaultInstance]) { + return self; + } + if (other.mutableIdsList.count > 0) { + if (result.mutableIdsList == nil) { + result.mutableIdsList = [NSMutableArray array]; + } + [result.mutableIdsList addObjectsFromArray:other.mutableIdsList]; + } + if (other.mutableNamesList.count > 0) { + if (result.mutableNamesList == nil) { + result.mutableNamesList = [NSMutableArray array]; + } + [result.mutableNamesList addObjectsFromArray:other.mutableNamesList]; + } + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (MPQueryUsers_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (MPQueryUsers_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 8: { + [self addIds:[input readUInt32]]; + break; + } + case 18: { + [self addNames:[input readString]]; + break; + } + } + } +} +- (NSArray*) idsList { + if (result.mutableIdsList == nil) { + return [NSArray array]; + } + return result.mutableIdsList; +} +- (int32_t) idsAtIndex:(int32_t) index { + return [result idsAtIndex:index]; +} +- (MPQueryUsers_Builder*) replaceIdsAtIndex:(int32_t) index with:(int32_t) value { + [result.mutableIdsList replaceObjectAtIndex:index withObject:[NSNumber numberWithInt:value]]; + return self; +} +- (MPQueryUsers_Builder*) addIds:(int32_t) value { + if (result.mutableIdsList == nil) { + result.mutableIdsList = [NSMutableArray array]; + } + [result.mutableIdsList addObject:[NSNumber numberWithInt:value]]; + return self; +} +- (MPQueryUsers_Builder*) addAllIds:(NSArray*) values { + if (result.mutableIdsList == nil) { + result.mutableIdsList = [NSMutableArray array]; + } + [result.mutableIdsList addObjectsFromArray:values]; + return self; +} +- (MPQueryUsers_Builder*) clearIdsList { + result.mutableIdsList = nil; + return self; +} +- (NSArray*) namesList { + if (result.mutableNamesList == nil) { + return [NSArray array]; + } + return result.mutableNamesList; +} +- (NSString*) namesAtIndex:(int32_t) index { + return [result namesAtIndex:index]; +} +- (MPQueryUsers_Builder*) replaceNamesAtIndex:(int32_t) index with:(NSString*) value { + [result.mutableNamesList replaceObjectAtIndex:index withObject:value]; + return self; +} +- (MPQueryUsers_Builder*) addNames:(NSString*) value { + if (result.mutableNamesList == nil) { + result.mutableNamesList = [NSMutableArray array]; + } + [result.mutableNamesList addObject:value]; + return self; +} +- (MPQueryUsers_Builder*) addAllNames:(NSArray*) values { + if (result.mutableNamesList == nil) { + result.mutableNamesList = [NSMutableArray array]; + } + [result.mutableNamesList addObjectsFromArray:values]; + return self; +} +- (MPQueryUsers_Builder*) clearNamesList { + result.mutableNamesList = nil; + return self; +} +@end + +@interface MPCryptSetup () +@property (retain) NSData* key; +@property (retain) NSData* clientNonce; +@property (retain) NSData* serverNonce; +@end + +@implementation MPCryptSetup + +- (BOOL) hasKey { + return !!hasKey_; +} +- (void) setHasKey:(BOOL) value { + hasKey_ = !!value; +} +@synthesize key; +- (BOOL) hasClientNonce { + return !!hasClientNonce_; +} +- (void) setHasClientNonce:(BOOL) value { + hasClientNonce_ = !!value; +} +@synthesize clientNonce; +- (BOOL) hasServerNonce { + return !!hasServerNonce_; +} +- (void) setHasServerNonce:(BOOL) value { + hasServerNonce_ = !!value; +} +@synthesize serverNonce; +- (void) dealloc { + self.key = nil; + self.clientNonce = nil; + self.serverNonce = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.key = [NSData data]; + self.clientNonce = [NSData data]; + self.serverNonce = [NSData data]; + } + return self; +} +static MPCryptSetup* defaultMPCryptSetupInstance = nil; ++ (void) initialize { + if (self == [MPCryptSetup class]) { + defaultMPCryptSetupInstance = [[MPCryptSetup alloc] init]; + } +} ++ (MPCryptSetup*) defaultInstance { + return defaultMPCryptSetupInstance; +} +- (MPCryptSetup*) defaultInstance { + return defaultMPCryptSetupInstance; +} +- (BOOL) isInitialized { + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + if (self.hasKey) { + [output writeData:1 value:self.key]; + } + if (self.hasClientNonce) { + [output writeData:2 value:self.clientNonce]; + } + if (self.hasServerNonce) { + [output writeData:3 value:self.serverNonce]; + } + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + if (self.hasKey) { + size += computeDataSize(1, self.key); + } + if (self.hasClientNonce) { + size += computeDataSize(2, self.clientNonce); + } + if (self.hasServerNonce) { + size += computeDataSize(3, self.serverNonce); + } + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (MPCryptSetup*) parseFromData:(NSData*) data { + return (MPCryptSetup*)[[[MPCryptSetup builder] mergeFromData:data] build]; +} ++ (MPCryptSetup*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPCryptSetup*)[[[MPCryptSetup builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (MPCryptSetup*) parseFromInputStream:(NSInputStream*) input { + return (MPCryptSetup*)[[[MPCryptSetup builder] mergeFromInputStream:input] build]; +} ++ (MPCryptSetup*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPCryptSetup*)[[[MPCryptSetup builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPCryptSetup*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (MPCryptSetup*)[[[MPCryptSetup builder] mergeFromCodedInputStream:input] build]; +} ++ (MPCryptSetup*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPCryptSetup*)[[[MPCryptSetup builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPCryptSetup_Builder*) builder { + return [[[MPCryptSetup_Builder alloc] init] autorelease]; +} ++ (MPCryptSetup_Builder*) builderWithPrototype:(MPCryptSetup*) prototype { + return [[MPCryptSetup builder] mergeFrom:prototype]; +} +- (MPCryptSetup_Builder*) builder { + return [MPCryptSetup builder]; +} +@end + +@interface MPCryptSetup_Builder() +@property (retain) MPCryptSetup* result; +@end + +@implementation MPCryptSetup_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[MPCryptSetup alloc] init] autorelease]; + } + return self; +} +- (PBGeneratedMessage*) internalGetResult { + return result; +} +- (MPCryptSetup_Builder*) clear { + self.result = [[[MPCryptSetup alloc] init] autorelease]; + return self; +} +- (MPCryptSetup_Builder*) clone { + return [MPCryptSetup builderWithPrototype:result]; +} +- (MPCryptSetup*) defaultInstance { + return [MPCryptSetup defaultInstance]; +} +- (MPCryptSetup*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (MPCryptSetup*) buildPartial { + MPCryptSetup* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (MPCryptSetup_Builder*) mergeFrom:(MPCryptSetup*) other { + if (other == [MPCryptSetup defaultInstance]) { + return self; + } + if (other.hasKey) { + [self setKey:other.key]; + } + if (other.hasClientNonce) { + [self setClientNonce:other.clientNonce]; + } + if (other.hasServerNonce) { + [self setServerNonce:other.serverNonce]; + } + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (MPCryptSetup_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (MPCryptSetup_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 10: { + [self setKey:[input readData]]; + break; + } + case 18: { + [self setClientNonce:[input readData]]; + break; + } + case 26: { + [self setServerNonce:[input readData]]; + break; + } + } + } +} +- (BOOL) hasKey { + return result.hasKey; +} +- (NSData*) key { + return result.key; +} +- (MPCryptSetup_Builder*) setKey:(NSData*) value { + result.hasKey = YES; + result.key = value; + return self; +} +- (MPCryptSetup_Builder*) clearKey { + result.hasKey = NO; + result.key = [NSData data]; + return self; +} +- (BOOL) hasClientNonce { + return result.hasClientNonce; +} +- (NSData*) clientNonce { + return result.clientNonce; +} +- (MPCryptSetup_Builder*) setClientNonce:(NSData*) value { + result.hasClientNonce = YES; + result.clientNonce = value; + return self; +} +- (MPCryptSetup_Builder*) clearClientNonce { + result.hasClientNonce = NO; + result.clientNonce = [NSData data]; + return self; +} +- (BOOL) hasServerNonce { + return result.hasServerNonce; +} +- (NSData*) serverNonce { + return result.serverNonce; +} +- (MPCryptSetup_Builder*) setServerNonce:(NSData*) value { + result.hasServerNonce = YES; + result.serverNonce = value; + return self; +} +- (MPCryptSetup_Builder*) clearServerNonce { + result.hasServerNonce = NO; + result.serverNonce = [NSData data]; + return self; +} +@end + +@interface MPContextActionAdd () +@property (retain) NSString* action; +@property (retain) NSString* text; +@property int32_t context; +@end + +@implementation MPContextActionAdd + +- (BOOL) hasAction { + return !!hasAction_; +} +- (void) setHasAction:(BOOL) value { + hasAction_ = !!value; +} +@synthesize action; +- (BOOL) hasText { + return !!hasText_; +} +- (void) setHasText:(BOOL) value { + hasText_ = !!value; +} +@synthesize text; +- (BOOL) hasContext { + return !!hasContext_; +} +- (void) setHasContext:(BOOL) value { + hasContext_ = !!value; +} +@synthesize context; +- (void) dealloc { + self.action = nil; + self.text = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.action = @""; + self.text = @""; + self.context = 0; + } + return self; +} +static MPContextActionAdd* defaultMPContextActionAddInstance = nil; ++ (void) initialize { + if (self == [MPContextActionAdd class]) { + defaultMPContextActionAddInstance = [[MPContextActionAdd alloc] init]; + } +} ++ (MPContextActionAdd*) defaultInstance { + return defaultMPContextActionAddInstance; +} +- (MPContextActionAdd*) defaultInstance { + return defaultMPContextActionAddInstance; +} +- (BOOL) isInitialized { + if (!self.hasAction) { + return NO; + } + if (!self.hasText) { + return NO; + } + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + if (self.hasAction) { + [output writeString:1 value:self.action]; + } + if (self.hasText) { + [output writeString:2 value:self.text]; + } + if (self.hasContext) { + [output writeUInt32:3 value:self.context]; + } + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + if (self.hasAction) { + size += computeStringSize(1, self.action); + } + if (self.hasText) { + size += computeStringSize(2, self.text); + } + if (self.hasContext) { + size += computeUInt32Size(3, self.context); + } + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (MPContextActionAdd*) parseFromData:(NSData*) data { + return (MPContextActionAdd*)[[[MPContextActionAdd builder] mergeFromData:data] build]; +} ++ (MPContextActionAdd*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPContextActionAdd*)[[[MPContextActionAdd builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (MPContextActionAdd*) parseFromInputStream:(NSInputStream*) input { + return (MPContextActionAdd*)[[[MPContextActionAdd builder] mergeFromInputStream:input] build]; +} ++ (MPContextActionAdd*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPContextActionAdd*)[[[MPContextActionAdd builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPContextActionAdd*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (MPContextActionAdd*)[[[MPContextActionAdd builder] mergeFromCodedInputStream:input] build]; +} ++ (MPContextActionAdd*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPContextActionAdd*)[[[MPContextActionAdd builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPContextActionAdd_Builder*) builder { + return [[[MPContextActionAdd_Builder alloc] init] autorelease]; +} ++ (MPContextActionAdd_Builder*) builderWithPrototype:(MPContextActionAdd*) prototype { + return [[MPContextActionAdd builder] mergeFrom:prototype]; +} +- (MPContextActionAdd_Builder*) builder { + return [MPContextActionAdd builder]; +} +@end + +BOOL MPContextActionAdd_ContextIsValidValue(MPContextActionAdd_Context value) { + switch (value) { + case MPContextActionAdd_ContextServer: + case MPContextActionAdd_ContextChannel: + case MPContextActionAdd_ContextUser: + return YES; + default: + return NO; + } +} +@interface MPContextActionAdd_Builder() +@property (retain) MPContextActionAdd* result; +@end + +@implementation MPContextActionAdd_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[MPContextActionAdd alloc] init] autorelease]; + } + return self; +} +- (PBGeneratedMessage*) internalGetResult { + return result; +} +- (MPContextActionAdd_Builder*) clear { + self.result = [[[MPContextActionAdd alloc] init] autorelease]; + return self; +} +- (MPContextActionAdd_Builder*) clone { + return [MPContextActionAdd builderWithPrototype:result]; +} +- (MPContextActionAdd*) defaultInstance { + return [MPContextActionAdd defaultInstance]; +} +- (MPContextActionAdd*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (MPContextActionAdd*) buildPartial { + MPContextActionAdd* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (MPContextActionAdd_Builder*) mergeFrom:(MPContextActionAdd*) other { + if (other == [MPContextActionAdd defaultInstance]) { + return self; + } + if (other.hasAction) { + [self setAction:other.action]; + } + if (other.hasText) { + [self setText:other.text]; + } + if (other.hasContext) { + [self setContext:other.context]; + } + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (MPContextActionAdd_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (MPContextActionAdd_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 10: { + [self setAction:[input readString]]; + break; + } + case 18: { + [self setText:[input readString]]; + break; + } + case 24: { + [self setContext:[input readUInt32]]; + break; + } + } + } +} +- (BOOL) hasAction { + return result.hasAction; +} +- (NSString*) action { + return result.action; +} +- (MPContextActionAdd_Builder*) setAction:(NSString*) value { + result.hasAction = YES; + result.action = value; + return self; +} +- (MPContextActionAdd_Builder*) clearAction { + result.hasAction = NO; + result.action = @""; + return self; +} +- (BOOL) hasText { + return result.hasText; +} +- (NSString*) text { + return result.text; +} +- (MPContextActionAdd_Builder*) setText:(NSString*) value { + result.hasText = YES; + result.text = value; + return self; +} +- (MPContextActionAdd_Builder*) clearText { + result.hasText = NO; + result.text = @""; + return self; +} +- (BOOL) hasContext { + return result.hasContext; +} +- (int32_t) context { + return result.context; +} +- (MPContextActionAdd_Builder*) setContext:(int32_t) value { + result.hasContext = YES; + result.context = value; + return self; +} +- (MPContextActionAdd_Builder*) clearContext { + result.hasContext = NO; + result.context = 0; + return self; +} +@end + +@interface MPContextAction () +@property int32_t session; +@property int32_t channelId; +@property (retain) NSString* action; +@end + +@implementation MPContextAction + +- (BOOL) hasSession { + return !!hasSession_; +} +- (void) setHasSession:(BOOL) value { + hasSession_ = !!value; +} +@synthesize session; +- (BOOL) hasChannelId { + return !!hasChannelId_; +} +- (void) setHasChannelId:(BOOL) value { + hasChannelId_ = !!value; +} +@synthesize channelId; +- (BOOL) hasAction { + return !!hasAction_; +} +- (void) setHasAction:(BOOL) value { + hasAction_ = !!value; +} +@synthesize action; +- (void) dealloc { + self.action = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.session = 0; + self.channelId = 0; + self.action = @""; + } + return self; +} +static MPContextAction* defaultMPContextActionInstance = nil; ++ (void) initialize { + if (self == [MPContextAction class]) { + defaultMPContextActionInstance = [[MPContextAction alloc] init]; + } +} ++ (MPContextAction*) defaultInstance { + return defaultMPContextActionInstance; +} +- (MPContextAction*) defaultInstance { + return defaultMPContextActionInstance; +} +- (BOOL) isInitialized { + if (!self.hasAction) { + return NO; + } + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + if (self.hasSession) { + [output writeUInt32:1 value:self.session]; + } + if (self.hasChannelId) { + [output writeUInt32:2 value:self.channelId]; + } + if (self.hasAction) { + [output writeString:3 value:self.action]; + } + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + if (self.hasSession) { + size += computeUInt32Size(1, self.session); + } + if (self.hasChannelId) { + size += computeUInt32Size(2, self.channelId); + } + if (self.hasAction) { + size += computeStringSize(3, self.action); + } + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (MPContextAction*) parseFromData:(NSData*) data { + return (MPContextAction*)[[[MPContextAction builder] mergeFromData:data] build]; +} ++ (MPContextAction*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPContextAction*)[[[MPContextAction builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (MPContextAction*) parseFromInputStream:(NSInputStream*) input { + return (MPContextAction*)[[[MPContextAction builder] mergeFromInputStream:input] build]; +} ++ (MPContextAction*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPContextAction*)[[[MPContextAction builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPContextAction*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (MPContextAction*)[[[MPContextAction builder] mergeFromCodedInputStream:input] build]; +} ++ (MPContextAction*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPContextAction*)[[[MPContextAction builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPContextAction_Builder*) builder { + return [[[MPContextAction_Builder alloc] init] autorelease]; +} ++ (MPContextAction_Builder*) builderWithPrototype:(MPContextAction*) prototype { + return [[MPContextAction builder] mergeFrom:prototype]; +} +- (MPContextAction_Builder*) builder { + return [MPContextAction builder]; +} +@end + +@interface MPContextAction_Builder() +@property (retain) MPContextAction* result; +@end + +@implementation MPContextAction_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[MPContextAction alloc] init] autorelease]; + } + return self; +} +- (PBGeneratedMessage*) internalGetResult { + return result; +} +- (MPContextAction_Builder*) clear { + self.result = [[[MPContextAction alloc] init] autorelease]; + return self; +} +- (MPContextAction_Builder*) clone { + return [MPContextAction builderWithPrototype:result]; +} +- (MPContextAction*) defaultInstance { + return [MPContextAction defaultInstance]; +} +- (MPContextAction*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (MPContextAction*) buildPartial { + MPContextAction* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (MPContextAction_Builder*) mergeFrom:(MPContextAction*) other { + if (other == [MPContextAction defaultInstance]) { + return self; + } + if (other.hasSession) { + [self setSession:other.session]; + } + if (other.hasChannelId) { + [self setChannelId:other.channelId]; + } + if (other.hasAction) { + [self setAction:other.action]; + } + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (MPContextAction_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (MPContextAction_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 8: { + [self setSession:[input readUInt32]]; + break; + } + case 16: { + [self setChannelId:[input readUInt32]]; + break; + } + case 26: { + [self setAction:[input readString]]; + break; + } + } + } +} +- (BOOL) hasSession { + return result.hasSession; +} +- (int32_t) session { + return result.session; +} +- (MPContextAction_Builder*) setSession:(int32_t) value { + result.hasSession = YES; + result.session = value; + return self; +} +- (MPContextAction_Builder*) clearSession { + result.hasSession = NO; + result.session = 0; + return self; +} +- (BOOL) hasChannelId { + return result.hasChannelId; +} +- (int32_t) channelId { + return result.channelId; +} +- (MPContextAction_Builder*) setChannelId:(int32_t) value { + result.hasChannelId = YES; + result.channelId = value; + return self; +} +- (MPContextAction_Builder*) clearChannelId { + result.hasChannelId = NO; + result.channelId = 0; + return self; +} +- (BOOL) hasAction { + return result.hasAction; +} +- (NSString*) action { + return result.action; +} +- (MPContextAction_Builder*) setAction:(NSString*) value { + result.hasAction = YES; + result.action = value; + return self; +} +- (MPContextAction_Builder*) clearAction { + result.hasAction = NO; + result.action = @""; + return self; +} +@end + +@interface MPUserList () +@property (retain) NSMutableArray* mutableUsersList; +@end + +@implementation MPUserList + +@synthesize mutableUsersList; +- (void) dealloc { + self.mutableUsersList = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + } + return self; +} +static MPUserList* defaultMPUserListInstance = nil; ++ (void) initialize { + if (self == [MPUserList class]) { + defaultMPUserListInstance = [[MPUserList alloc] init]; + } +} ++ (MPUserList*) defaultInstance { + return defaultMPUserListInstance; +} +- (MPUserList*) defaultInstance { + return defaultMPUserListInstance; +} +- (NSArray*) usersList { + return mutableUsersList; +} +- (MPUserList_User*) usersAtIndex:(int32_t) index { + id value = [mutableUsersList objectAtIndex:index]; + return value; +} +- (BOOL) isInitialized { + for (MPUserList_User* element in self.usersList) { + if (!element.isInitialized) { + return NO; + } + } + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + for (MPUserList_User* element in self.usersList) { + [output writeMessage:1 value:element]; + } + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + for (MPUserList_User* element in self.usersList) { + size += computeMessageSize(1, element); + } + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (MPUserList*) parseFromData:(NSData*) data { + return (MPUserList*)[[[MPUserList builder] mergeFromData:data] build]; +} ++ (MPUserList*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPUserList*)[[[MPUserList builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (MPUserList*) parseFromInputStream:(NSInputStream*) input { + return (MPUserList*)[[[MPUserList builder] mergeFromInputStream:input] build]; +} ++ (MPUserList*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPUserList*)[[[MPUserList builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPUserList*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (MPUserList*)[[[MPUserList builder] mergeFromCodedInputStream:input] build]; +} ++ (MPUserList*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPUserList*)[[[MPUserList builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPUserList_Builder*) builder { + return [[[MPUserList_Builder alloc] init] autorelease]; +} ++ (MPUserList_Builder*) builderWithPrototype:(MPUserList*) prototype { + return [[MPUserList builder] mergeFrom:prototype]; +} +- (MPUserList_Builder*) builder { + return [MPUserList builder]; +} +@end + +@interface MPUserList_User () +@property int32_t userId; +@property (retain) NSString* name; +@end + +@implementation MPUserList_User + +- (BOOL) hasUserId { + return !!hasUserId_; +} +- (void) setHasUserId:(BOOL) value { + hasUserId_ = !!value; +} +@synthesize userId; +- (BOOL) hasName { + return !!hasName_; +} +- (void) setHasName:(BOOL) value { + hasName_ = !!value; +} +@synthesize name; +- (void) dealloc { + self.name = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.userId = 0; + self.name = @""; + } + return self; +} +static MPUserList_User* defaultMPUserList_UserInstance = nil; ++ (void) initialize { + if (self == [MPUserList_User class]) { + defaultMPUserList_UserInstance = [[MPUserList_User alloc] init]; + } +} ++ (MPUserList_User*) defaultInstance { + return defaultMPUserList_UserInstance; +} +- (MPUserList_User*) defaultInstance { + return defaultMPUserList_UserInstance; +} +- (BOOL) isInitialized { + if (!self.hasUserId) { + return NO; + } + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + if (self.hasUserId) { + [output writeUInt32:1 value:self.userId]; + } + if (self.hasName) { + [output writeString:2 value:self.name]; + } + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + if (self.hasUserId) { + size += computeUInt32Size(1, self.userId); + } + if (self.hasName) { + size += computeStringSize(2, self.name); + } + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (MPUserList_User*) parseFromData:(NSData*) data { + return (MPUserList_User*)[[[MPUserList_User builder] mergeFromData:data] build]; +} ++ (MPUserList_User*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPUserList_User*)[[[MPUserList_User builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (MPUserList_User*) parseFromInputStream:(NSInputStream*) input { + return (MPUserList_User*)[[[MPUserList_User builder] mergeFromInputStream:input] build]; +} ++ (MPUserList_User*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPUserList_User*)[[[MPUserList_User builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPUserList_User*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (MPUserList_User*)[[[MPUserList_User builder] mergeFromCodedInputStream:input] build]; +} ++ (MPUserList_User*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPUserList_User*)[[[MPUserList_User builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPUserList_User_Builder*) builder { + return [[[MPUserList_User_Builder alloc] init] autorelease]; +} ++ (MPUserList_User_Builder*) builderWithPrototype:(MPUserList_User*) prototype { + return [[MPUserList_User builder] mergeFrom:prototype]; +} +- (MPUserList_User_Builder*) builder { + return [MPUserList_User builder]; +} +@end + +@interface MPUserList_User_Builder() +@property (retain) MPUserList_User* result; +@end + +@implementation MPUserList_User_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[MPUserList_User alloc] init] autorelease]; + } + return self; +} +- (PBGeneratedMessage*) internalGetResult { + return result; +} +- (MPUserList_User_Builder*) clear { + self.result = [[[MPUserList_User alloc] init] autorelease]; + return self; +} +- (MPUserList_User_Builder*) clone { + return [MPUserList_User builderWithPrototype:result]; +} +- (MPUserList_User*) defaultInstance { + return [MPUserList_User defaultInstance]; +} +- (MPUserList_User*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (MPUserList_User*) buildPartial { + MPUserList_User* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (MPUserList_User_Builder*) mergeFrom:(MPUserList_User*) other { + if (other == [MPUserList_User defaultInstance]) { + return self; + } + if (other.hasUserId) { + [self setUserId:other.userId]; + } + if (other.hasName) { + [self setName:other.name]; + } + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (MPUserList_User_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (MPUserList_User_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 8: { + [self setUserId:[input readUInt32]]; + break; + } + case 18: { + [self setName:[input readString]]; + break; + } + } + } +} +- (BOOL) hasUserId { + return result.hasUserId; +} +- (int32_t) userId { + return result.userId; +} +- (MPUserList_User_Builder*) setUserId:(int32_t) value { + result.hasUserId = YES; + result.userId = value; + return self; +} +- (MPUserList_User_Builder*) clearUserId { + result.hasUserId = NO; + result.userId = 0; + return self; +} +- (BOOL) hasName { + return result.hasName; +} +- (NSString*) name { + return result.name; +} +- (MPUserList_User_Builder*) setName:(NSString*) value { + result.hasName = YES; + result.name = value; + return self; +} +- (MPUserList_User_Builder*) clearName { + result.hasName = NO; + result.name = @""; + return self; +} +@end + +@interface MPUserList_Builder() +@property (retain) MPUserList* result; +@end + +@implementation MPUserList_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[MPUserList alloc] init] autorelease]; + } + return self; +} +- (PBGeneratedMessage*) internalGetResult { + return result; +} +- (MPUserList_Builder*) clear { + self.result = [[[MPUserList alloc] init] autorelease]; + return self; +} +- (MPUserList_Builder*) clone { + return [MPUserList builderWithPrototype:result]; +} +- (MPUserList*) defaultInstance { + return [MPUserList defaultInstance]; +} +- (MPUserList*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (MPUserList*) buildPartial { + MPUserList* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (MPUserList_Builder*) mergeFrom:(MPUserList*) other { + if (other == [MPUserList defaultInstance]) { + return self; + } + if (other.mutableUsersList.count > 0) { + if (result.mutableUsersList == nil) { + result.mutableUsersList = [NSMutableArray array]; + } + [result.mutableUsersList addObjectsFromArray:other.mutableUsersList]; + } + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (MPUserList_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (MPUserList_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 10: { + MPUserList_User_Builder* subBuilder = [MPUserList_User builder]; + [input readMessage:subBuilder extensionRegistry:extensionRegistry]; + [self addUsers:[subBuilder buildPartial]]; + break; + } + } + } +} +- (NSArray*) usersList { + if (result.mutableUsersList == nil) { return [NSArray array]; } + return result.mutableUsersList; +} +- (MPUserList_User*) usersAtIndex:(int32_t) index { + return [result usersAtIndex:index]; +} +- (MPUserList_Builder*) replaceUsersAtIndex:(int32_t) index with:(MPUserList_User*) value { + [result.mutableUsersList replaceObjectAtIndex:index withObject:value]; + return self; +} +- (MPUserList_Builder*) addAllUsers:(NSArray*) values { + if (result.mutableUsersList == nil) { + result.mutableUsersList = [NSMutableArray array]; + } + [result.mutableUsersList addObjectsFromArray:values]; + return self; +} +- (MPUserList_Builder*) clearUsersList { + result.mutableUsersList = nil; + return self; +} +- (MPUserList_Builder*) addUsers:(MPUserList_User*) value { + if (result.mutableUsersList == nil) { + result.mutableUsersList = [NSMutableArray array]; + } + [result.mutableUsersList addObject:value]; + return self; +} +@end + +@interface MPVoiceTarget () +@property int32_t id; +@property (retain) NSMutableArray* mutableTargetsList; +@end + +@implementation MPVoiceTarget + +- (BOOL) hasId { + return !!hasId_; +} +- (void) setHasId:(BOOL) value { + hasId_ = !!value; +} +@synthesize id; +@synthesize mutableTargetsList; +- (void) dealloc { + self.mutableTargetsList = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.id = 0; + } + return self; +} +static MPVoiceTarget* defaultMPVoiceTargetInstance = nil; ++ (void) initialize { + if (self == [MPVoiceTarget class]) { + defaultMPVoiceTargetInstance = [[MPVoiceTarget alloc] init]; + } +} ++ (MPVoiceTarget*) defaultInstance { + return defaultMPVoiceTargetInstance; +} +- (MPVoiceTarget*) defaultInstance { + return defaultMPVoiceTargetInstance; +} +- (NSArray*) targetsList { + return mutableTargetsList; +} +- (MPVoiceTarget_Target*) targetsAtIndex:(int32_t) index { + id value = [mutableTargetsList objectAtIndex:index]; + return value; +} +- (BOOL) isInitialized { + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + if (self.hasId) { + [output writeUInt32:1 value:self.id]; + } + for (MPVoiceTarget_Target* element in self.targetsList) { + [output writeMessage:2 value:element]; + } + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + if (self.hasId) { + size += computeUInt32Size(1, self.id); + } + for (MPVoiceTarget_Target* element in self.targetsList) { + size += computeMessageSize(2, element); + } + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (MPVoiceTarget*) parseFromData:(NSData*) data { + return (MPVoiceTarget*)[[[MPVoiceTarget builder] mergeFromData:data] build]; +} ++ (MPVoiceTarget*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPVoiceTarget*)[[[MPVoiceTarget builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (MPVoiceTarget*) parseFromInputStream:(NSInputStream*) input { + return (MPVoiceTarget*)[[[MPVoiceTarget builder] mergeFromInputStream:input] build]; +} ++ (MPVoiceTarget*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPVoiceTarget*)[[[MPVoiceTarget builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPVoiceTarget*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (MPVoiceTarget*)[[[MPVoiceTarget builder] mergeFromCodedInputStream:input] build]; +} ++ (MPVoiceTarget*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPVoiceTarget*)[[[MPVoiceTarget builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPVoiceTarget_Builder*) builder { + return [[[MPVoiceTarget_Builder alloc] init] autorelease]; +} ++ (MPVoiceTarget_Builder*) builderWithPrototype:(MPVoiceTarget*) prototype { + return [[MPVoiceTarget builder] mergeFrom:prototype]; +} +- (MPVoiceTarget_Builder*) builder { + return [MPVoiceTarget builder]; +} +@end + +@interface MPVoiceTarget_Target () +@property (retain) NSMutableArray* mutableSessionList; +@property int32_t channelId; +@property (retain) NSString* group; +@property BOOL links; +@property BOOL children; +@end + +@implementation MPVoiceTarget_Target + +@synthesize mutableSessionList; +- (BOOL) hasChannelId { + return !!hasChannelId_; +} +- (void) setHasChannelId:(BOOL) value { + hasChannelId_ = !!value; +} +@synthesize channelId; +- (BOOL) hasGroup { + return !!hasGroup_; +} +- (void) setHasGroup:(BOOL) value { + hasGroup_ = !!value; +} +@synthesize group; +- (BOOL) hasLinks { + return !!hasLinks_; +} +- (void) setHasLinks:(BOOL) value { + hasLinks_ = !!value; +} +- (BOOL) links { + return !!links_; +} +- (void) setLinks:(BOOL) value { + links_ = !!value; +} +- (BOOL) hasChildren { + return !!hasChildren_; +} +- (void) setHasChildren:(BOOL) value { + hasChildren_ = !!value; +} +- (BOOL) children { + return !!children_; +} +- (void) setChildren:(BOOL) value { + children_ = !!value; +} +- (void) dealloc { + self.mutableSessionList = nil; + self.group = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.channelId = 0; + self.group = @""; + self.links = NO; + self.children = NO; + } + return self; +} +static MPVoiceTarget_Target* defaultMPVoiceTarget_TargetInstance = nil; ++ (void) initialize { + if (self == [MPVoiceTarget_Target class]) { + defaultMPVoiceTarget_TargetInstance = [[MPVoiceTarget_Target alloc] init]; + } +} ++ (MPVoiceTarget_Target*) defaultInstance { + return defaultMPVoiceTarget_TargetInstance; +} +- (MPVoiceTarget_Target*) defaultInstance { + return defaultMPVoiceTarget_TargetInstance; +} +- (NSArray*) sessionList { + return mutableSessionList; +} +- (int32_t) sessionAtIndex:(int32_t) index { + id value = [mutableSessionList objectAtIndex:index]; + return [value intValue]; +} +- (BOOL) isInitialized { + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + for (NSNumber* value in self.mutableSessionList) { + [output writeUInt32:1 value:[value intValue]]; + } + if (self.hasChannelId) { + [output writeUInt32:2 value:self.channelId]; + } + if (self.hasGroup) { + [output writeString:3 value:self.group]; + } + if (self.hasLinks) { + [output writeBool:4 value:self.links]; + } + if (self.hasChildren) { + [output writeBool:5 value:self.children]; + } + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + { + int32_t dataSize = 0; + for (NSNumber* value in self.mutableSessionList) { + dataSize += computeUInt32SizeNoTag([value intValue]); + } + size += dataSize; + size += 1 * self.mutableSessionList.count; + } + if (self.hasChannelId) { + size += computeUInt32Size(2, self.channelId); + } + if (self.hasGroup) { + size += computeStringSize(3, self.group); + } + if (self.hasLinks) { + size += computeBoolSize(4, self.links); + } + if (self.hasChildren) { + size += computeBoolSize(5, self.children); + } + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (MPVoiceTarget_Target*) parseFromData:(NSData*) data { + return (MPVoiceTarget_Target*)[[[MPVoiceTarget_Target builder] mergeFromData:data] build]; +} ++ (MPVoiceTarget_Target*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPVoiceTarget_Target*)[[[MPVoiceTarget_Target builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (MPVoiceTarget_Target*) parseFromInputStream:(NSInputStream*) input { + return (MPVoiceTarget_Target*)[[[MPVoiceTarget_Target builder] mergeFromInputStream:input] build]; +} ++ (MPVoiceTarget_Target*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPVoiceTarget_Target*)[[[MPVoiceTarget_Target builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPVoiceTarget_Target*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (MPVoiceTarget_Target*)[[[MPVoiceTarget_Target builder] mergeFromCodedInputStream:input] build]; +} ++ (MPVoiceTarget_Target*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPVoiceTarget_Target*)[[[MPVoiceTarget_Target builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPVoiceTarget_Target_Builder*) builder { + return [[[MPVoiceTarget_Target_Builder alloc] init] autorelease]; +} ++ (MPVoiceTarget_Target_Builder*) builderWithPrototype:(MPVoiceTarget_Target*) prototype { + return [[MPVoiceTarget_Target builder] mergeFrom:prototype]; +} +- (MPVoiceTarget_Target_Builder*) builder { + return [MPVoiceTarget_Target builder]; +} +@end + +@interface MPVoiceTarget_Target_Builder() +@property (retain) MPVoiceTarget_Target* result; +@end + +@implementation MPVoiceTarget_Target_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[MPVoiceTarget_Target alloc] init] autorelease]; + } + return self; +} +- (PBGeneratedMessage*) internalGetResult { + return result; +} +- (MPVoiceTarget_Target_Builder*) clear { + self.result = [[[MPVoiceTarget_Target alloc] init] autorelease]; + return self; +} +- (MPVoiceTarget_Target_Builder*) clone { + return [MPVoiceTarget_Target builderWithPrototype:result]; +} +- (MPVoiceTarget_Target*) defaultInstance { + return [MPVoiceTarget_Target defaultInstance]; +} +- (MPVoiceTarget_Target*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (MPVoiceTarget_Target*) buildPartial { + MPVoiceTarget_Target* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (MPVoiceTarget_Target_Builder*) mergeFrom:(MPVoiceTarget_Target*) other { + if (other == [MPVoiceTarget_Target defaultInstance]) { + return self; + } + if (other.mutableSessionList.count > 0) { + if (result.mutableSessionList == nil) { + result.mutableSessionList = [NSMutableArray array]; + } + [result.mutableSessionList addObjectsFromArray:other.mutableSessionList]; + } + if (other.hasChannelId) { + [self setChannelId:other.channelId]; + } + if (other.hasGroup) { + [self setGroup:other.group]; + } + if (other.hasLinks) { + [self setLinks:other.links]; + } + if (other.hasChildren) { + [self setChildren:other.children]; + } + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (MPVoiceTarget_Target_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (MPVoiceTarget_Target_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 8: { + [self addSession:[input readUInt32]]; + break; + } + case 16: { + [self setChannelId:[input readUInt32]]; + break; + } + case 26: { + [self setGroup:[input readString]]; + break; + } + case 32: { + [self setLinks:[input readBool]]; + break; + } + case 40: { + [self setChildren:[input readBool]]; + break; + } + } + } +} +- (NSArray*) sessionList { + if (result.mutableSessionList == nil) { + return [NSArray array]; + } + return result.mutableSessionList; +} +- (int32_t) sessionAtIndex:(int32_t) index { + return [result sessionAtIndex:index]; +} +- (MPVoiceTarget_Target_Builder*) replaceSessionAtIndex:(int32_t) index with:(int32_t) value { + [result.mutableSessionList replaceObjectAtIndex:index withObject:[NSNumber numberWithInt:value]]; + return self; +} +- (MPVoiceTarget_Target_Builder*) addSession:(int32_t) value { + if (result.mutableSessionList == nil) { + result.mutableSessionList = [NSMutableArray array]; + } + [result.mutableSessionList addObject:[NSNumber numberWithInt:value]]; + return self; +} +- (MPVoiceTarget_Target_Builder*) addAllSession:(NSArray*) values { + if (result.mutableSessionList == nil) { + result.mutableSessionList = [NSMutableArray array]; + } + [result.mutableSessionList addObjectsFromArray:values]; + return self; +} +- (MPVoiceTarget_Target_Builder*) clearSessionList { + result.mutableSessionList = nil; + return self; +} +- (BOOL) hasChannelId { + return result.hasChannelId; +} +- (int32_t) channelId { + return result.channelId; +} +- (MPVoiceTarget_Target_Builder*) setChannelId:(int32_t) value { + result.hasChannelId = YES; + result.channelId = value; + return self; +} +- (MPVoiceTarget_Target_Builder*) clearChannelId { + result.hasChannelId = NO; + result.channelId = 0; + return self; +} +- (BOOL) hasGroup { + return result.hasGroup; +} +- (NSString*) group { + return result.group; +} +- (MPVoiceTarget_Target_Builder*) setGroup:(NSString*) value { + result.hasGroup = YES; + result.group = value; + return self; +} +- (MPVoiceTarget_Target_Builder*) clearGroup { + result.hasGroup = NO; + result.group = @""; + return self; +} +- (BOOL) hasLinks { + return result.hasLinks; +} +- (BOOL) links { + return result.links; +} +- (MPVoiceTarget_Target_Builder*) setLinks:(BOOL) value { + result.hasLinks = YES; + result.links = value; + return self; +} +- (MPVoiceTarget_Target_Builder*) clearLinks { + result.hasLinks = NO; + result.links = NO; + return self; +} +- (BOOL) hasChildren { + return result.hasChildren; +} +- (BOOL) children { + return result.children; +} +- (MPVoiceTarget_Target_Builder*) setChildren:(BOOL) value { + result.hasChildren = YES; + result.children = value; + return self; +} +- (MPVoiceTarget_Target_Builder*) clearChildren { + result.hasChildren = NO; + result.children = NO; + return self; +} +@end + +@interface MPVoiceTarget_Builder() +@property (retain) MPVoiceTarget* result; +@end + +@implementation MPVoiceTarget_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[MPVoiceTarget alloc] init] autorelease]; + } + return self; +} +- (PBGeneratedMessage*) internalGetResult { + return result; +} +- (MPVoiceTarget_Builder*) clear { + self.result = [[[MPVoiceTarget alloc] init] autorelease]; + return self; +} +- (MPVoiceTarget_Builder*) clone { + return [MPVoiceTarget builderWithPrototype:result]; +} +- (MPVoiceTarget*) defaultInstance { + return [MPVoiceTarget defaultInstance]; +} +- (MPVoiceTarget*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (MPVoiceTarget*) buildPartial { + MPVoiceTarget* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (MPVoiceTarget_Builder*) mergeFrom:(MPVoiceTarget*) other { + if (other == [MPVoiceTarget defaultInstance]) { + return self; + } + if (other.hasId) { + [self setId:other.id]; + } + if (other.mutableTargetsList.count > 0) { + if (result.mutableTargetsList == nil) { + result.mutableTargetsList = [NSMutableArray array]; + } + [result.mutableTargetsList addObjectsFromArray:other.mutableTargetsList]; + } + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (MPVoiceTarget_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (MPVoiceTarget_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 8: { + [self setId:[input readUInt32]]; + break; + } + case 18: { + MPVoiceTarget_Target_Builder* subBuilder = [MPVoiceTarget_Target builder]; + [input readMessage:subBuilder extensionRegistry:extensionRegistry]; + [self addTargets:[subBuilder buildPartial]]; + break; + } + } + } +} +- (BOOL) hasId { + return result.hasId; +} +- (int32_t) id { + return result.id; +} +- (MPVoiceTarget_Builder*) setId:(int32_t) value { + result.hasId = YES; + result.id = value; + return self; +} +- (MPVoiceTarget_Builder*) clearId { + result.hasId = NO; + result.id = 0; + return self; +} +- (NSArray*) targetsList { + if (result.mutableTargetsList == nil) { return [NSArray array]; } + return result.mutableTargetsList; +} +- (MPVoiceTarget_Target*) targetsAtIndex:(int32_t) index { + return [result targetsAtIndex:index]; +} +- (MPVoiceTarget_Builder*) replaceTargetsAtIndex:(int32_t) index with:(MPVoiceTarget_Target*) value { + [result.mutableTargetsList replaceObjectAtIndex:index withObject:value]; + return self; +} +- (MPVoiceTarget_Builder*) addAllTargets:(NSArray*) values { + if (result.mutableTargetsList == nil) { + result.mutableTargetsList = [NSMutableArray array]; + } + [result.mutableTargetsList addObjectsFromArray:values]; + return self; +} +- (MPVoiceTarget_Builder*) clearTargetsList { + result.mutableTargetsList = nil; + return self; +} +- (MPVoiceTarget_Builder*) addTargets:(MPVoiceTarget_Target*) value { + if (result.mutableTargetsList == nil) { + result.mutableTargetsList = [NSMutableArray array]; + } + [result.mutableTargetsList addObject:value]; + return self; +} +@end + +@interface MPPermissionQuery () +@property int32_t channelId; +@property int32_t permissions; +@property BOOL flush; +@end + +@implementation MPPermissionQuery + +- (BOOL) hasChannelId { + return !!hasChannelId_; +} +- (void) setHasChannelId:(BOOL) value { + hasChannelId_ = !!value; +} +@synthesize channelId; +- (BOOL) hasPermissions { + return !!hasPermissions_; +} +- (void) setHasPermissions:(BOOL) value { + hasPermissions_ = !!value; +} +@synthesize permissions; +- (BOOL) hasFlush { + return !!hasFlush_; +} +- (void) setHasFlush:(BOOL) value { + hasFlush_ = !!value; +} +- (BOOL) flush { + return !!flush_; +} +- (void) setFlush:(BOOL) value { + flush_ = !!value; +} +- (void) dealloc { + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.channelId = 0; + self.permissions = 0; + self.flush = NO; + } + return self; +} +static MPPermissionQuery* defaultMPPermissionQueryInstance = nil; ++ (void) initialize { + if (self == [MPPermissionQuery class]) { + defaultMPPermissionQueryInstance = [[MPPermissionQuery alloc] init]; + } +} ++ (MPPermissionQuery*) defaultInstance { + return defaultMPPermissionQueryInstance; +} +- (MPPermissionQuery*) defaultInstance { + return defaultMPPermissionQueryInstance; +} +- (BOOL) isInitialized { + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + if (self.hasChannelId) { + [output writeUInt32:1 value:self.channelId]; + } + if (self.hasPermissions) { + [output writeUInt32:2 value:self.permissions]; + } + if (self.hasFlush) { + [output writeBool:3 value:self.flush]; + } + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + if (self.hasChannelId) { + size += computeUInt32Size(1, self.channelId); + } + if (self.hasPermissions) { + size += computeUInt32Size(2, self.permissions); + } + if (self.hasFlush) { + size += computeBoolSize(3, self.flush); + } + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (MPPermissionQuery*) parseFromData:(NSData*) data { + return (MPPermissionQuery*)[[[MPPermissionQuery builder] mergeFromData:data] build]; +} ++ (MPPermissionQuery*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPPermissionQuery*)[[[MPPermissionQuery builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (MPPermissionQuery*) parseFromInputStream:(NSInputStream*) input { + return (MPPermissionQuery*)[[[MPPermissionQuery builder] mergeFromInputStream:input] build]; +} ++ (MPPermissionQuery*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPPermissionQuery*)[[[MPPermissionQuery builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPPermissionQuery*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (MPPermissionQuery*)[[[MPPermissionQuery builder] mergeFromCodedInputStream:input] build]; +} ++ (MPPermissionQuery*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPPermissionQuery*)[[[MPPermissionQuery builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPPermissionQuery_Builder*) builder { + return [[[MPPermissionQuery_Builder alloc] init] autorelease]; +} ++ (MPPermissionQuery_Builder*) builderWithPrototype:(MPPermissionQuery*) prototype { + return [[MPPermissionQuery builder] mergeFrom:prototype]; +} +- (MPPermissionQuery_Builder*) builder { + return [MPPermissionQuery builder]; +} +@end + +@interface MPPermissionQuery_Builder() +@property (retain) MPPermissionQuery* result; +@end + +@implementation MPPermissionQuery_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[MPPermissionQuery alloc] init] autorelease]; + } + return self; +} +- (PBGeneratedMessage*) internalGetResult { + return result; +} +- (MPPermissionQuery_Builder*) clear { + self.result = [[[MPPermissionQuery alloc] init] autorelease]; + return self; +} +- (MPPermissionQuery_Builder*) clone { + return [MPPermissionQuery builderWithPrototype:result]; +} +- (MPPermissionQuery*) defaultInstance { + return [MPPermissionQuery defaultInstance]; +} +- (MPPermissionQuery*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (MPPermissionQuery*) buildPartial { + MPPermissionQuery* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (MPPermissionQuery_Builder*) mergeFrom:(MPPermissionQuery*) other { + if (other == [MPPermissionQuery defaultInstance]) { + return self; + } + if (other.hasChannelId) { + [self setChannelId:other.channelId]; + } + if (other.hasPermissions) { + [self setPermissions:other.permissions]; + } + if (other.hasFlush) { + [self setFlush:other.flush]; + } + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (MPPermissionQuery_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (MPPermissionQuery_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 8: { + [self setChannelId:[input readUInt32]]; + break; + } + case 16: { + [self setPermissions:[input readUInt32]]; + break; + } + case 24: { + [self setFlush:[input readBool]]; + break; + } + } + } +} +- (BOOL) hasChannelId { + return result.hasChannelId; +} +- (int32_t) channelId { + return result.channelId; +} +- (MPPermissionQuery_Builder*) setChannelId:(int32_t) value { + result.hasChannelId = YES; + result.channelId = value; + return self; +} +- (MPPermissionQuery_Builder*) clearChannelId { + result.hasChannelId = NO; + result.channelId = 0; + return self; +} +- (BOOL) hasPermissions { + return result.hasPermissions; +} +- (int32_t) permissions { + return result.permissions; +} +- (MPPermissionQuery_Builder*) setPermissions:(int32_t) value { + result.hasPermissions = YES; + result.permissions = value; + return self; +} +- (MPPermissionQuery_Builder*) clearPermissions { + result.hasPermissions = NO; + result.permissions = 0; + return self; +} +- (BOOL) hasFlush { + return result.hasFlush; +} +- (BOOL) flush { + return result.flush; +} +- (MPPermissionQuery_Builder*) setFlush:(BOOL) value { + result.hasFlush = YES; + result.flush = value; + return self; +} +- (MPPermissionQuery_Builder*) clearFlush { + result.hasFlush = NO; + result.flush = NO; + return self; +} +@end + +@interface MPCodecVersion () +@property int32_t alpha; +@property int32_t beta; +@property BOOL preferAlpha; +@end + +@implementation MPCodecVersion + +- (BOOL) hasAlpha { + return !!hasAlpha_; +} +- (void) setHasAlpha:(BOOL) value { + hasAlpha_ = !!value; +} +@synthesize alpha; +- (BOOL) hasBeta { + return !!hasBeta_; +} +- (void) setHasBeta:(BOOL) value { + hasBeta_ = !!value; +} +@synthesize beta; +- (BOOL) hasPreferAlpha { + return !!hasPreferAlpha_; +} +- (void) setHasPreferAlpha:(BOOL) value { + hasPreferAlpha_ = !!value; +} +- (BOOL) preferAlpha { + return !!preferAlpha_; +} +- (void) setPreferAlpha:(BOOL) value { + preferAlpha_ = !!value; +} +- (void) dealloc { + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.alpha = 0; + self.beta = 0; + self.preferAlpha = YES; + } + return self; +} +static MPCodecVersion* defaultMPCodecVersionInstance = nil; ++ (void) initialize { + if (self == [MPCodecVersion class]) { + defaultMPCodecVersionInstance = [[MPCodecVersion alloc] init]; + } +} ++ (MPCodecVersion*) defaultInstance { + return defaultMPCodecVersionInstance; +} +- (MPCodecVersion*) defaultInstance { + return defaultMPCodecVersionInstance; +} +- (BOOL) isInitialized { + if (!self.hasAlpha) { + return NO; + } + if (!self.hasBeta) { + return NO; + } + if (!self.hasPreferAlpha) { + return NO; + } + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + if (self.hasAlpha) { + [output writeInt32:1 value:self.alpha]; + } + if (self.hasBeta) { + [output writeInt32:2 value:self.beta]; + } + if (self.hasPreferAlpha) { + [output writeBool:3 value:self.preferAlpha]; + } + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + if (self.hasAlpha) { + size += computeInt32Size(1, self.alpha); + } + if (self.hasBeta) { + size += computeInt32Size(2, self.beta); + } + if (self.hasPreferAlpha) { + size += computeBoolSize(3, self.preferAlpha); + } + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (MPCodecVersion*) parseFromData:(NSData*) data { + return (MPCodecVersion*)[[[MPCodecVersion builder] mergeFromData:data] build]; +} ++ (MPCodecVersion*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPCodecVersion*)[[[MPCodecVersion builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (MPCodecVersion*) parseFromInputStream:(NSInputStream*) input { + return (MPCodecVersion*)[[[MPCodecVersion builder] mergeFromInputStream:input] build]; +} ++ (MPCodecVersion*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPCodecVersion*)[[[MPCodecVersion builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPCodecVersion*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (MPCodecVersion*)[[[MPCodecVersion builder] mergeFromCodedInputStream:input] build]; +} ++ (MPCodecVersion*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPCodecVersion*)[[[MPCodecVersion builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPCodecVersion_Builder*) builder { + return [[[MPCodecVersion_Builder alloc] init] autorelease]; +} ++ (MPCodecVersion_Builder*) builderWithPrototype:(MPCodecVersion*) prototype { + return [[MPCodecVersion builder] mergeFrom:prototype]; +} +- (MPCodecVersion_Builder*) builder { + return [MPCodecVersion builder]; +} +@end + +@interface MPCodecVersion_Builder() +@property (retain) MPCodecVersion* result; +@end + +@implementation MPCodecVersion_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[MPCodecVersion alloc] init] autorelease]; + } + return self; +} +- (PBGeneratedMessage*) internalGetResult { + return result; +} +- (MPCodecVersion_Builder*) clear { + self.result = [[[MPCodecVersion alloc] init] autorelease]; + return self; +} +- (MPCodecVersion_Builder*) clone { + return [MPCodecVersion builderWithPrototype:result]; +} +- (MPCodecVersion*) defaultInstance { + return [MPCodecVersion defaultInstance]; +} +- (MPCodecVersion*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (MPCodecVersion*) buildPartial { + MPCodecVersion* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (MPCodecVersion_Builder*) mergeFrom:(MPCodecVersion*) other { + if (other == [MPCodecVersion defaultInstance]) { + return self; + } + if (other.hasAlpha) { + [self setAlpha:other.alpha]; + } + if (other.hasBeta) { + [self setBeta:other.beta]; + } + if (other.hasPreferAlpha) { + [self setPreferAlpha:other.preferAlpha]; + } + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (MPCodecVersion_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (MPCodecVersion_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 8: { + [self setAlpha:[input readInt32]]; + break; + } + case 16: { + [self setBeta:[input readInt32]]; + break; + } + case 24: { + [self setPreferAlpha:[input readBool]]; + break; + } + } + } +} +- (BOOL) hasAlpha { + return result.hasAlpha; +} +- (int32_t) alpha { + return result.alpha; +} +- (MPCodecVersion_Builder*) setAlpha:(int32_t) value { + result.hasAlpha = YES; + result.alpha = value; + return self; +} +- (MPCodecVersion_Builder*) clearAlpha { + result.hasAlpha = NO; + result.alpha = 0; + return self; +} +- (BOOL) hasBeta { + return result.hasBeta; +} +- (int32_t) beta { + return result.beta; +} +- (MPCodecVersion_Builder*) setBeta:(int32_t) value { + result.hasBeta = YES; + result.beta = value; + return self; +} +- (MPCodecVersion_Builder*) clearBeta { + result.hasBeta = NO; + result.beta = 0; + return self; +} +- (BOOL) hasPreferAlpha { + return result.hasPreferAlpha; +} +- (BOOL) preferAlpha { + return result.preferAlpha; +} +- (MPCodecVersion_Builder*) setPreferAlpha:(BOOL) value { + result.hasPreferAlpha = YES; + result.preferAlpha = value; + return self; +} +- (MPCodecVersion_Builder*) clearPreferAlpha { + result.hasPreferAlpha = NO; + result.preferAlpha = YES; + return self; +} +@end + +@interface MPUserStats () +@property int32_t session; +@property BOOL statsOnly; +@property (retain) NSMutableArray* mutableCertificatesList; +@property (retain) MPUserStats_Stats* fromClient; +@property (retain) MPUserStats_Stats* fromServer; +@property int32_t udpPackets; +@property int32_t tcpPackets; +@property Float32 udpPingAvg; +@property Float32 udpPingVar; +@property Float32 tcpPingAvg; +@property Float32 tcpPingVar; +@property (retain) MPVersion* version; +@property (retain) NSMutableArray* mutableCeltVersionsList; +@property (retain) NSData* address; +@property int32_t bandwidth; +@property int32_t onlinesecs; +@property int32_t idlesecs; +@property BOOL strongCertificate; +@end + +@implementation MPUserStats + +- (BOOL) hasSession { + return !!hasSession_; +} +- (void) setHasSession:(BOOL) value { + hasSession_ = !!value; +} +@synthesize session; +- (BOOL) hasStatsOnly { + return !!hasStatsOnly_; +} +- (void) setHasStatsOnly:(BOOL) value { + hasStatsOnly_ = !!value; +} +- (BOOL) statsOnly { + return !!statsOnly_; +} +- (void) setStatsOnly:(BOOL) value { + statsOnly_ = !!value; +} +@synthesize mutableCertificatesList; +- (BOOL) hasFromClient { + return !!hasFromClient_; +} +- (void) setHasFromClient:(BOOL) value { + hasFromClient_ = !!value; +} +@synthesize fromClient; +- (BOOL) hasFromServer { + return !!hasFromServer_; +} +- (void) setHasFromServer:(BOOL) value { + hasFromServer_ = !!value; +} +@synthesize fromServer; +- (BOOL) hasUdpPackets { + return !!hasUdpPackets_; +} +- (void) setHasUdpPackets:(BOOL) value { + hasUdpPackets_ = !!value; +} +@synthesize udpPackets; +- (BOOL) hasTcpPackets { + return !!hasTcpPackets_; +} +- (void) setHasTcpPackets:(BOOL) value { + hasTcpPackets_ = !!value; +} +@synthesize tcpPackets; +- (BOOL) hasUdpPingAvg { + return !!hasUdpPingAvg_; +} +- (void) setHasUdpPingAvg:(BOOL) value { + hasUdpPingAvg_ = !!value; +} +@synthesize udpPingAvg; +- (BOOL) hasUdpPingVar { + return !!hasUdpPingVar_; +} +- (void) setHasUdpPingVar:(BOOL) value { + hasUdpPingVar_ = !!value; +} +@synthesize udpPingVar; +- (BOOL) hasTcpPingAvg { + return !!hasTcpPingAvg_; +} +- (void) setHasTcpPingAvg:(BOOL) value { + hasTcpPingAvg_ = !!value; +} +@synthesize tcpPingAvg; +- (BOOL) hasTcpPingVar { + return !!hasTcpPingVar_; +} +- (void) setHasTcpPingVar:(BOOL) value { + hasTcpPingVar_ = !!value; +} +@synthesize tcpPingVar; +- (BOOL) hasVersion { + return !!hasVersion_; +} +- (void) setHasVersion:(BOOL) value { + hasVersion_ = !!value; +} +@synthesize version; +@synthesize mutableCeltVersionsList; +- (BOOL) hasAddress { + return !!hasAddress_; +} +- (void) setHasAddress:(BOOL) value { + hasAddress_ = !!value; +} +@synthesize address; +- (BOOL) hasBandwidth { + return !!hasBandwidth_; +} +- (void) setHasBandwidth:(BOOL) value { + hasBandwidth_ = !!value; +} +@synthesize bandwidth; +- (BOOL) hasOnlinesecs { + return !!hasOnlinesecs_; +} +- (void) setHasOnlinesecs:(BOOL) value { + hasOnlinesecs_ = !!value; +} +@synthesize onlinesecs; +- (BOOL) hasIdlesecs { + return !!hasIdlesecs_; +} +- (void) setHasIdlesecs:(BOOL) value { + hasIdlesecs_ = !!value; +} +@synthesize idlesecs; +- (BOOL) hasStrongCertificate { + return !!hasStrongCertificate_; +} +- (void) setHasStrongCertificate:(BOOL) value { + hasStrongCertificate_ = !!value; +} +- (BOOL) strongCertificate { + return !!strongCertificate_; +} +- (void) setStrongCertificate:(BOOL) value { + strongCertificate_ = !!value; +} +- (void) dealloc { + self.mutableCertificatesList = nil; + self.fromClient = nil; + self.fromServer = nil; + self.version = nil; + self.mutableCeltVersionsList = nil; + self.address = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.session = 0; + self.statsOnly = NO; + self.fromClient = [MPUserStats_Stats defaultInstance]; + self.fromServer = [MPUserStats_Stats defaultInstance]; + self.udpPackets = 0; + self.tcpPackets = 0; + self.udpPingAvg = 0; + self.udpPingVar = 0; + self.tcpPingAvg = 0; + self.tcpPingVar = 0; + self.version = [MPVersion defaultInstance]; + self.address = [NSData data]; + self.bandwidth = 0; + self.onlinesecs = 0; + self.idlesecs = 0; + self.strongCertificate = NO; + } + return self; +} +static MPUserStats* defaultMPUserStatsInstance = nil; ++ (void) initialize { + if (self == [MPUserStats class]) { + defaultMPUserStatsInstance = [[MPUserStats alloc] init]; + } +} ++ (MPUserStats*) defaultInstance { + return defaultMPUserStatsInstance; +} +- (MPUserStats*) defaultInstance { + return defaultMPUserStatsInstance; +} +- (NSArray*) certificatesList { + return mutableCertificatesList; +} +- (NSData*) certificatesAtIndex:(int32_t) index { + id value = [mutableCertificatesList objectAtIndex:index]; + return value; +} +- (NSArray*) celtVersionsList { + return mutableCeltVersionsList; +} +- (int32_t) celtVersionsAtIndex:(int32_t) index { + id value = [mutableCeltVersionsList objectAtIndex:index]; + return [value intValue]; +} +- (BOOL) isInitialized { + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + if (self.hasSession) { + [output writeUInt32:1 value:self.session]; + } + if (self.hasStatsOnly) { + [output writeBool:2 value:self.statsOnly]; + } + for (NSData* element in self.mutableCertificatesList) { + [output writeData:3 value:element]; + } + if (self.hasFromClient) { + [output writeMessage:4 value:self.fromClient]; + } + if (self.hasFromServer) { + [output writeMessage:5 value:self.fromServer]; + } + if (self.hasUdpPackets) { + [output writeUInt32:6 value:self.udpPackets]; + } + if (self.hasTcpPackets) { + [output writeUInt32:7 value:self.tcpPackets]; + } + if (self.hasUdpPingAvg) { + [output writeFloat:8 value:self.udpPingAvg]; + } + if (self.hasUdpPingVar) { + [output writeFloat:9 value:self.udpPingVar]; + } + if (self.hasTcpPingAvg) { + [output writeFloat:10 value:self.tcpPingAvg]; + } + if (self.hasTcpPingVar) { + [output writeFloat:11 value:self.tcpPingVar]; + } + if (self.hasVersion) { + [output writeMessage:12 value:self.version]; + } + for (NSNumber* value in self.mutableCeltVersionsList) { + [output writeInt32:13 value:[value intValue]]; + } + if (self.hasAddress) { + [output writeData:14 value:self.address]; + } + if (self.hasBandwidth) { + [output writeUInt32:15 value:self.bandwidth]; + } + if (self.hasOnlinesecs) { + [output writeUInt32:16 value:self.onlinesecs]; + } + if (self.hasIdlesecs) { + [output writeUInt32:17 value:self.idlesecs]; + } + if (self.hasStrongCertificate) { + [output writeBool:18 value:self.strongCertificate]; + } + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + if (self.hasSession) { + size += computeUInt32Size(1, self.session); + } + if (self.hasStatsOnly) { + size += computeBoolSize(2, self.statsOnly); + } + { + int32_t dataSize = 0; + for (NSData* element in self.mutableCertificatesList) { + dataSize += computeDataSizeNoTag(element); + } + size += dataSize; + size += 1 * self.mutableCertificatesList.count; + } + if (self.hasFromClient) { + size += computeMessageSize(4, self.fromClient); + } + if (self.hasFromServer) { + size += computeMessageSize(5, self.fromServer); + } + if (self.hasUdpPackets) { + size += computeUInt32Size(6, self.udpPackets); + } + if (self.hasTcpPackets) { + size += computeUInt32Size(7, self.tcpPackets); + } + if (self.hasUdpPingAvg) { + size += computeFloatSize(8, self.udpPingAvg); + } + if (self.hasUdpPingVar) { + size += computeFloatSize(9, self.udpPingVar); + } + if (self.hasTcpPingAvg) { + size += computeFloatSize(10, self.tcpPingAvg); + } + if (self.hasTcpPingVar) { + size += computeFloatSize(11, self.tcpPingVar); + } + if (self.hasVersion) { + size += computeMessageSize(12, self.version); + } + { + int32_t dataSize = 0; + for (NSNumber* value in self.mutableCeltVersionsList) { + dataSize += computeInt32SizeNoTag([value intValue]); + } + size += dataSize; + size += 1 * self.mutableCeltVersionsList.count; + } + if (self.hasAddress) { + size += computeDataSize(14, self.address); + } + if (self.hasBandwidth) { + size += computeUInt32Size(15, self.bandwidth); + } + if (self.hasOnlinesecs) { + size += computeUInt32Size(16, self.onlinesecs); + } + if (self.hasIdlesecs) { + size += computeUInt32Size(17, self.idlesecs); + } + if (self.hasStrongCertificate) { + size += computeBoolSize(18, self.strongCertificate); + } + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (MPUserStats*) parseFromData:(NSData*) data { + return (MPUserStats*)[[[MPUserStats builder] mergeFromData:data] build]; +} ++ (MPUserStats*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPUserStats*)[[[MPUserStats builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (MPUserStats*) parseFromInputStream:(NSInputStream*) input { + return (MPUserStats*)[[[MPUserStats builder] mergeFromInputStream:input] build]; +} ++ (MPUserStats*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPUserStats*)[[[MPUserStats builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPUserStats*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (MPUserStats*)[[[MPUserStats builder] mergeFromCodedInputStream:input] build]; +} ++ (MPUserStats*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPUserStats*)[[[MPUserStats builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPUserStats_Builder*) builder { + return [[[MPUserStats_Builder alloc] init] autorelease]; +} ++ (MPUserStats_Builder*) builderWithPrototype:(MPUserStats*) prototype { + return [[MPUserStats builder] mergeFrom:prototype]; +} +- (MPUserStats_Builder*) builder { + return [MPUserStats builder]; +} +@end + +@interface MPUserStats_Stats () +@property int32_t good; +@property int32_t late; +@property int32_t lost; +@property int32_t resync; +@end + +@implementation MPUserStats_Stats + +- (BOOL) hasGood { + return !!hasGood_; +} +- (void) setHasGood:(BOOL) value { + hasGood_ = !!value; +} +@synthesize good; +- (BOOL) hasLate { + return !!hasLate_; +} +- (void) setHasLate:(BOOL) value { + hasLate_ = !!value; +} +@synthesize late; +- (BOOL) hasLost { + return !!hasLost_; +} +- (void) setHasLost:(BOOL) value { + hasLost_ = !!value; +} +@synthesize lost; +- (BOOL) hasResync { + return !!hasResync_; +} +- (void) setHasResync:(BOOL) value { + hasResync_ = !!value; +} +@synthesize resync; +- (void) dealloc { + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.good = 0; + self.late = 0; + self.lost = 0; + self.resync = 0; + } + return self; +} +static MPUserStats_Stats* defaultMPUserStats_StatsInstance = nil; ++ (void) initialize { + if (self == [MPUserStats_Stats class]) { + defaultMPUserStats_StatsInstance = [[MPUserStats_Stats alloc] init]; + } +} ++ (MPUserStats_Stats*) defaultInstance { + return defaultMPUserStats_StatsInstance; +} +- (MPUserStats_Stats*) defaultInstance { + return defaultMPUserStats_StatsInstance; +} +- (BOOL) isInitialized { + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + if (self.hasGood) { + [output writeUInt32:1 value:self.good]; + } + if (self.hasLate) { + [output writeUInt32:2 value:self.late]; + } + if (self.hasLost) { + [output writeUInt32:3 value:self.lost]; + } + if (self.hasResync) { + [output writeUInt32:4 value:self.resync]; + } + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + if (self.hasGood) { + size += computeUInt32Size(1, self.good); + } + if (self.hasLate) { + size += computeUInt32Size(2, self.late); + } + if (self.hasLost) { + size += computeUInt32Size(3, self.lost); + } + if (self.hasResync) { + size += computeUInt32Size(4, self.resync); + } + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (MPUserStats_Stats*) parseFromData:(NSData*) data { + return (MPUserStats_Stats*)[[[MPUserStats_Stats builder] mergeFromData:data] build]; +} ++ (MPUserStats_Stats*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPUserStats_Stats*)[[[MPUserStats_Stats builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (MPUserStats_Stats*) parseFromInputStream:(NSInputStream*) input { + return (MPUserStats_Stats*)[[[MPUserStats_Stats builder] mergeFromInputStream:input] build]; +} ++ (MPUserStats_Stats*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPUserStats_Stats*)[[[MPUserStats_Stats builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPUserStats_Stats*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (MPUserStats_Stats*)[[[MPUserStats_Stats builder] mergeFromCodedInputStream:input] build]; +} ++ (MPUserStats_Stats*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPUserStats_Stats*)[[[MPUserStats_Stats builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPUserStats_Stats_Builder*) builder { + return [[[MPUserStats_Stats_Builder alloc] init] autorelease]; +} ++ (MPUserStats_Stats_Builder*) builderWithPrototype:(MPUserStats_Stats*) prototype { + return [[MPUserStats_Stats builder] mergeFrom:prototype]; +} +- (MPUserStats_Stats_Builder*) builder { + return [MPUserStats_Stats builder]; +} +@end + +@interface MPUserStats_Stats_Builder() +@property (retain) MPUserStats_Stats* result; +@end + +@implementation MPUserStats_Stats_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[MPUserStats_Stats alloc] init] autorelease]; + } + return self; +} +- (PBGeneratedMessage*) internalGetResult { + return result; +} +- (MPUserStats_Stats_Builder*) clear { + self.result = [[[MPUserStats_Stats alloc] init] autorelease]; + return self; +} +- (MPUserStats_Stats_Builder*) clone { + return [MPUserStats_Stats builderWithPrototype:result]; +} +- (MPUserStats_Stats*) defaultInstance { + return [MPUserStats_Stats defaultInstance]; +} +- (MPUserStats_Stats*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (MPUserStats_Stats*) buildPartial { + MPUserStats_Stats* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (MPUserStats_Stats_Builder*) mergeFrom:(MPUserStats_Stats*) other { + if (other == [MPUserStats_Stats defaultInstance]) { + return self; + } + if (other.hasGood) { + [self setGood:other.good]; + } + if (other.hasLate) { + [self setLate:other.late]; + } + if (other.hasLost) { + [self setLost:other.lost]; + } + if (other.hasResync) { + [self setResync:other.resync]; + } + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (MPUserStats_Stats_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (MPUserStats_Stats_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 8: { + [self setGood:[input readUInt32]]; + break; + } + case 16: { + [self setLate:[input readUInt32]]; + break; + } + case 24: { + [self setLost:[input readUInt32]]; + break; + } + case 32: { + [self setResync:[input readUInt32]]; + break; + } + } + } +} +- (BOOL) hasGood { + return result.hasGood; +} +- (int32_t) good { + return result.good; +} +- (MPUserStats_Stats_Builder*) setGood:(int32_t) value { + result.hasGood = YES; + result.good = value; + return self; +} +- (MPUserStats_Stats_Builder*) clearGood { + result.hasGood = NO; + result.good = 0; + return self; +} +- (BOOL) hasLate { + return result.hasLate; +} +- (int32_t) late { + return result.late; +} +- (MPUserStats_Stats_Builder*) setLate:(int32_t) value { + result.hasLate = YES; + result.late = value; + return self; +} +- (MPUserStats_Stats_Builder*) clearLate { + result.hasLate = NO; + result.late = 0; + return self; +} +- (BOOL) hasLost { + return result.hasLost; +} +- (int32_t) lost { + return result.lost; +} +- (MPUserStats_Stats_Builder*) setLost:(int32_t) value { + result.hasLost = YES; + result.lost = value; + return self; +} +- (MPUserStats_Stats_Builder*) clearLost { + result.hasLost = NO; + result.lost = 0; + return self; +} +- (BOOL) hasResync { + return result.hasResync; +} +- (int32_t) resync { + return result.resync; +} +- (MPUserStats_Stats_Builder*) setResync:(int32_t) value { + result.hasResync = YES; + result.resync = value; + return self; +} +- (MPUserStats_Stats_Builder*) clearResync { + result.hasResync = NO; + result.resync = 0; + return self; +} +@end + +@interface MPUserStats_Builder() +@property (retain) MPUserStats* result; +@end + +@implementation MPUserStats_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[MPUserStats alloc] init] autorelease]; + } + return self; +} +- (PBGeneratedMessage*) internalGetResult { + return result; +} +- (MPUserStats_Builder*) clear { + self.result = [[[MPUserStats alloc] init] autorelease]; + return self; +} +- (MPUserStats_Builder*) clone { + return [MPUserStats builderWithPrototype:result]; +} +- (MPUserStats*) defaultInstance { + return [MPUserStats defaultInstance]; +} +- (MPUserStats*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (MPUserStats*) buildPartial { + MPUserStats* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (MPUserStats_Builder*) mergeFrom:(MPUserStats*) other { + if (other == [MPUserStats defaultInstance]) { + return self; + } + if (other.hasSession) { + [self setSession:other.session]; + } + if (other.hasStatsOnly) { + [self setStatsOnly:other.statsOnly]; + } + if (other.mutableCertificatesList.count > 0) { + if (result.mutableCertificatesList == nil) { + result.mutableCertificatesList = [NSMutableArray array]; + } + [result.mutableCertificatesList addObjectsFromArray:other.mutableCertificatesList]; + } + if (other.hasFromClient) { + [self mergeFromClient:other.fromClient]; + } + if (other.hasFromServer) { + [self mergeFromServer:other.fromServer]; + } + if (other.hasUdpPackets) { + [self setUdpPackets:other.udpPackets]; + } + if (other.hasTcpPackets) { + [self setTcpPackets:other.tcpPackets]; + } + if (other.hasUdpPingAvg) { + [self setUdpPingAvg:other.udpPingAvg]; + } + if (other.hasUdpPingVar) { + [self setUdpPingVar:other.udpPingVar]; + } + if (other.hasTcpPingAvg) { + [self setTcpPingAvg:other.tcpPingAvg]; + } + if (other.hasTcpPingVar) { + [self setTcpPingVar:other.tcpPingVar]; + } + if (other.hasVersion) { + [self mergeVersion:other.version]; + } + if (other.mutableCeltVersionsList.count > 0) { + if (result.mutableCeltVersionsList == nil) { + result.mutableCeltVersionsList = [NSMutableArray array]; + } + [result.mutableCeltVersionsList addObjectsFromArray:other.mutableCeltVersionsList]; + } + if (other.hasAddress) { + [self setAddress:other.address]; + } + if (other.hasBandwidth) { + [self setBandwidth:other.bandwidth]; + } + if (other.hasOnlinesecs) { + [self setOnlinesecs:other.onlinesecs]; + } + if (other.hasIdlesecs) { + [self setIdlesecs:other.idlesecs]; + } + if (other.hasStrongCertificate) { + [self setStrongCertificate:other.strongCertificate]; + } + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (MPUserStats_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (MPUserStats_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 8: { + [self setSession:[input readUInt32]]; + break; + } + case 16: { + [self setStatsOnly:[input readBool]]; + break; + } + case 26: { + [self addCertificates:[input readData]]; + break; + } + case 34: { + MPUserStats_Stats_Builder* subBuilder = [MPUserStats_Stats builder]; + if (self.hasFromClient) { + [subBuilder mergeFrom:self.fromClient]; + } + [input readMessage:subBuilder extensionRegistry:extensionRegistry]; + [self setFromClient:[subBuilder buildPartial]]; + break; + } + case 42: { + MPUserStats_Stats_Builder* subBuilder = [MPUserStats_Stats builder]; + if (self.hasFromServer) { + [subBuilder mergeFrom:self.fromServer]; + } + [input readMessage:subBuilder extensionRegistry:extensionRegistry]; + [self setFromServer:[subBuilder buildPartial]]; + break; + } + case 48: { + [self setUdpPackets:[input readUInt32]]; + break; + } + case 56: { + [self setTcpPackets:[input readUInt32]]; + break; + } + case 69: { + [self setUdpPingAvg:[input readFloat]]; + break; + } + case 77: { + [self setUdpPingVar:[input readFloat]]; + break; + } + case 85: { + [self setTcpPingAvg:[input readFloat]]; + break; + } + case 93: { + [self setTcpPingVar:[input readFloat]]; + break; + } + case 98: { + MPVersion_Builder* subBuilder = [MPVersion builder]; + if (self.hasVersion) { + [subBuilder mergeFrom:self.version]; + } + [input readMessage:subBuilder extensionRegistry:extensionRegistry]; + [self setVersion:[subBuilder buildPartial]]; + break; + } + case 104: { + [self addCeltVersions:[input readInt32]]; + break; + } + case 114: { + [self setAddress:[input readData]]; + break; + } + case 120: { + [self setBandwidth:[input readUInt32]]; + break; + } + case 128: { + [self setOnlinesecs:[input readUInt32]]; + break; + } + case 136: { + [self setIdlesecs:[input readUInt32]]; + break; + } + case 144: { + [self setStrongCertificate:[input readBool]]; + break; + } + } + } +} +- (BOOL) hasSession { + return result.hasSession; +} +- (int32_t) session { + return result.session; +} +- (MPUserStats_Builder*) setSession:(int32_t) value { + result.hasSession = YES; + result.session = value; + return self; +} +- (MPUserStats_Builder*) clearSession { + result.hasSession = NO; + result.session = 0; + return self; +} +- (BOOL) hasStatsOnly { + return result.hasStatsOnly; +} +- (BOOL) statsOnly { + return result.statsOnly; +} +- (MPUserStats_Builder*) setStatsOnly:(BOOL) value { + result.hasStatsOnly = YES; + result.statsOnly = value; + return self; +} +- (MPUserStats_Builder*) clearStatsOnly { + result.hasStatsOnly = NO; + result.statsOnly = NO; + return self; +} +- (NSArray*) certificatesList { + if (result.mutableCertificatesList == nil) { + return [NSArray array]; + } + return result.mutableCertificatesList; +} +- (NSData*) certificatesAtIndex:(int32_t) index { + return [result certificatesAtIndex:index]; +} +- (MPUserStats_Builder*) replaceCertificatesAtIndex:(int32_t) index with:(NSData*) value { + [result.mutableCertificatesList replaceObjectAtIndex:index withObject:value]; + return self; +} +- (MPUserStats_Builder*) addCertificates:(NSData*) value { + if (result.mutableCertificatesList == nil) { + result.mutableCertificatesList = [NSMutableArray array]; + } + [result.mutableCertificatesList addObject:value]; + return self; +} +- (MPUserStats_Builder*) addAllCertificates:(NSArray*) values { + if (result.mutableCertificatesList == nil) { + result.mutableCertificatesList = [NSMutableArray array]; + } + [result.mutableCertificatesList addObjectsFromArray:values]; + return self; +} +- (MPUserStats_Builder*) clearCertificatesList { + result.mutableCertificatesList = nil; + return self; +} +- (BOOL) hasFromClient { + return result.hasFromClient; +} +- (MPUserStats_Stats*) fromClient { + return result.fromClient; +} +- (MPUserStats_Builder*) setFromClient:(MPUserStats_Stats*) value { + result.hasFromClient = YES; + result.fromClient = value; + return self; +} +- (MPUserStats_Builder*) setFromClientBuilder:(MPUserStats_Stats_Builder*) builderForValue { + return [self setFromClient:[builderForValue build]]; +} +- (MPUserStats_Builder*) mergeFromClient:(MPUserStats_Stats*) value { + if (result.hasFromClient && + result.fromClient != [MPUserStats_Stats defaultInstance]) { + result.fromClient = + [[[MPUserStats_Stats builderWithPrototype:result.fromClient] mergeFrom:value] buildPartial]; + } else { + result.fromClient = value; + } + result.hasFromClient = YES; + return self; +} +- (MPUserStats_Builder*) clearFromClient { + result.hasFromClient = NO; + result.fromClient = [MPUserStats_Stats defaultInstance]; + return self; +} +- (BOOL) hasFromServer { + return result.hasFromServer; +} +- (MPUserStats_Stats*) fromServer { + return result.fromServer; +} +- (MPUserStats_Builder*) setFromServer:(MPUserStats_Stats*) value { + result.hasFromServer = YES; + result.fromServer = value; + return self; +} +- (MPUserStats_Builder*) setFromServerBuilder:(MPUserStats_Stats_Builder*) builderForValue { + return [self setFromServer:[builderForValue build]]; +} +- (MPUserStats_Builder*) mergeFromServer:(MPUserStats_Stats*) value { + if (result.hasFromServer && + result.fromServer != [MPUserStats_Stats defaultInstance]) { + result.fromServer = + [[[MPUserStats_Stats builderWithPrototype:result.fromServer] mergeFrom:value] buildPartial]; + } else { + result.fromServer = value; + } + result.hasFromServer = YES; + return self; +} +- (MPUserStats_Builder*) clearFromServer { + result.hasFromServer = NO; + result.fromServer = [MPUserStats_Stats defaultInstance]; + return self; +} +- (BOOL) hasUdpPackets { + return result.hasUdpPackets; +} +- (int32_t) udpPackets { + return result.udpPackets; +} +- (MPUserStats_Builder*) setUdpPackets:(int32_t) value { + result.hasUdpPackets = YES; + result.udpPackets = value; + return self; +} +- (MPUserStats_Builder*) clearUdpPackets { + result.hasUdpPackets = NO; + result.udpPackets = 0; + return self; +} +- (BOOL) hasTcpPackets { + return result.hasTcpPackets; +} +- (int32_t) tcpPackets { + return result.tcpPackets; +} +- (MPUserStats_Builder*) setTcpPackets:(int32_t) value { + result.hasTcpPackets = YES; + result.tcpPackets = value; + return self; +} +- (MPUserStats_Builder*) clearTcpPackets { + result.hasTcpPackets = NO; + result.tcpPackets = 0; + return self; +} +- (BOOL) hasUdpPingAvg { + return result.hasUdpPingAvg; +} +- (Float32) udpPingAvg { + return result.udpPingAvg; +} +- (MPUserStats_Builder*) setUdpPingAvg:(Float32) value { + result.hasUdpPingAvg = YES; + result.udpPingAvg = value; + return self; +} +- (MPUserStats_Builder*) clearUdpPingAvg { + result.hasUdpPingAvg = NO; + result.udpPingAvg = 0; + return self; +} +- (BOOL) hasUdpPingVar { + return result.hasUdpPingVar; +} +- (Float32) udpPingVar { + return result.udpPingVar; +} +- (MPUserStats_Builder*) setUdpPingVar:(Float32) value { + result.hasUdpPingVar = YES; + result.udpPingVar = value; + return self; +} +- (MPUserStats_Builder*) clearUdpPingVar { + result.hasUdpPingVar = NO; + result.udpPingVar = 0; + return self; +} +- (BOOL) hasTcpPingAvg { + return result.hasTcpPingAvg; +} +- (Float32) tcpPingAvg { + return result.tcpPingAvg; +} +- (MPUserStats_Builder*) setTcpPingAvg:(Float32) value { + result.hasTcpPingAvg = YES; + result.tcpPingAvg = value; + return self; +} +- (MPUserStats_Builder*) clearTcpPingAvg { + result.hasTcpPingAvg = NO; + result.tcpPingAvg = 0; + return self; +} +- (BOOL) hasTcpPingVar { + return result.hasTcpPingVar; +} +- (Float32) tcpPingVar { + return result.tcpPingVar; +} +- (MPUserStats_Builder*) setTcpPingVar:(Float32) value { + result.hasTcpPingVar = YES; + result.tcpPingVar = value; + return self; +} +- (MPUserStats_Builder*) clearTcpPingVar { + result.hasTcpPingVar = NO; + result.tcpPingVar = 0; + return self; +} +- (BOOL) hasVersion { + return result.hasVersion; +} +- (MPVersion*) version { + return result.version; +} +- (MPUserStats_Builder*) setVersion:(MPVersion*) value { + result.hasVersion = YES; + result.version = value; + return self; +} +- (MPUserStats_Builder*) setVersionBuilder:(MPVersion_Builder*) builderForValue { + return [self setVersion:[builderForValue build]]; +} +- (MPUserStats_Builder*) mergeVersion:(MPVersion*) value { + if (result.hasVersion && + result.version != [MPVersion defaultInstance]) { + result.version = + [[[MPVersion builderWithPrototype:result.version] mergeFrom:value] buildPartial]; + } else { + result.version = value; + } + result.hasVersion = YES; + return self; +} +- (MPUserStats_Builder*) clearVersion { + result.hasVersion = NO; + result.version = [MPVersion defaultInstance]; + return self; +} +- (NSArray*) celtVersionsList { + if (result.mutableCeltVersionsList == nil) { + return [NSArray array]; + } + return result.mutableCeltVersionsList; +} +- (int32_t) celtVersionsAtIndex:(int32_t) index { + return [result celtVersionsAtIndex:index]; +} +- (MPUserStats_Builder*) replaceCeltVersionsAtIndex:(int32_t) index with:(int32_t) value { + [result.mutableCeltVersionsList replaceObjectAtIndex:index withObject:[NSNumber numberWithInt:value]]; + return self; +} +- (MPUserStats_Builder*) addCeltVersions:(int32_t) value { + if (result.mutableCeltVersionsList == nil) { + result.mutableCeltVersionsList = [NSMutableArray array]; + } + [result.mutableCeltVersionsList addObject:[NSNumber numberWithInt:value]]; + return self; +} +- (MPUserStats_Builder*) addAllCeltVersions:(NSArray*) values { + if (result.mutableCeltVersionsList == nil) { + result.mutableCeltVersionsList = [NSMutableArray array]; + } + [result.mutableCeltVersionsList addObjectsFromArray:values]; + return self; +} +- (MPUserStats_Builder*) clearCeltVersionsList { + result.mutableCeltVersionsList = nil; + return self; +} +- (BOOL) hasAddress { + return result.hasAddress; +} +- (NSData*) address { + return result.address; +} +- (MPUserStats_Builder*) setAddress:(NSData*) value { + result.hasAddress = YES; + result.address = value; + return self; +} +- (MPUserStats_Builder*) clearAddress { + result.hasAddress = NO; + result.address = [NSData data]; + return self; +} +- (BOOL) hasBandwidth { + return result.hasBandwidth; +} +- (int32_t) bandwidth { + return result.bandwidth; +} +- (MPUserStats_Builder*) setBandwidth:(int32_t) value { + result.hasBandwidth = YES; + result.bandwidth = value; + return self; +} +- (MPUserStats_Builder*) clearBandwidth { + result.hasBandwidth = NO; + result.bandwidth = 0; + return self; +} +- (BOOL) hasOnlinesecs { + return result.hasOnlinesecs; +} +- (int32_t) onlinesecs { + return result.onlinesecs; +} +- (MPUserStats_Builder*) setOnlinesecs:(int32_t) value { + result.hasOnlinesecs = YES; + result.onlinesecs = value; + return self; +} +- (MPUserStats_Builder*) clearOnlinesecs { + result.hasOnlinesecs = NO; + result.onlinesecs = 0; + return self; +} +- (BOOL) hasIdlesecs { + return result.hasIdlesecs; +} +- (int32_t) idlesecs { + return result.idlesecs; +} +- (MPUserStats_Builder*) setIdlesecs:(int32_t) value { + result.hasIdlesecs = YES; + result.idlesecs = value; + return self; +} +- (MPUserStats_Builder*) clearIdlesecs { + result.hasIdlesecs = NO; + result.idlesecs = 0; + return self; +} +- (BOOL) hasStrongCertificate { + return result.hasStrongCertificate; +} +- (BOOL) strongCertificate { + return result.strongCertificate; +} +- (MPUserStats_Builder*) setStrongCertificate:(BOOL) value { + result.hasStrongCertificate = YES; + result.strongCertificate = value; + return self; +} +- (MPUserStats_Builder*) clearStrongCertificate { + result.hasStrongCertificate = NO; + result.strongCertificate = NO; + return self; +} +@end + +@interface MPRequestBlob () +@property (retain) NSMutableArray* mutableSessionTextureList; +@property (retain) NSMutableArray* mutableSessionCommentList; +@property (retain) NSMutableArray* mutableChannelDescriptionList; +@end + +@implementation MPRequestBlob + +@synthesize mutableSessionTextureList; +@synthesize mutableSessionCommentList; +@synthesize mutableChannelDescriptionList; +- (void) dealloc { + self.mutableSessionTextureList = nil; + self.mutableSessionCommentList = nil; + self.mutableChannelDescriptionList = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + } + return self; +} +static MPRequestBlob* defaultMPRequestBlobInstance = nil; ++ (void) initialize { + if (self == [MPRequestBlob class]) { + defaultMPRequestBlobInstance = [[MPRequestBlob alloc] init]; + } +} ++ (MPRequestBlob*) defaultInstance { + return defaultMPRequestBlobInstance; +} +- (MPRequestBlob*) defaultInstance { + return defaultMPRequestBlobInstance; +} +- (NSArray*) sessionTextureList { + return mutableSessionTextureList; +} +- (int32_t) sessionTextureAtIndex:(int32_t) index { + id value = [mutableSessionTextureList objectAtIndex:index]; + return [value intValue]; +} +- (NSArray*) sessionCommentList { + return mutableSessionCommentList; +} +- (int32_t) sessionCommentAtIndex:(int32_t) index { + id value = [mutableSessionCommentList objectAtIndex:index]; + return [value intValue]; +} +- (NSArray*) channelDescriptionList { + return mutableChannelDescriptionList; +} +- (int32_t) channelDescriptionAtIndex:(int32_t) index { + id value = [mutableChannelDescriptionList objectAtIndex:index]; + return [value intValue]; +} +- (BOOL) isInitialized { + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + for (NSNumber* value in self.mutableSessionTextureList) { + [output writeUInt32:1 value:[value intValue]]; + } + for (NSNumber* value in self.mutableSessionCommentList) { + [output writeUInt32:2 value:[value intValue]]; + } + for (NSNumber* value in self.mutableChannelDescriptionList) { + [output writeUInt32:3 value:[value intValue]]; + } + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + { + int32_t dataSize = 0; + for (NSNumber* value in self.mutableSessionTextureList) { + dataSize += computeUInt32SizeNoTag([value intValue]); + } + size += dataSize; + size += 1 * self.mutableSessionTextureList.count; + } + { + int32_t dataSize = 0; + for (NSNumber* value in self.mutableSessionCommentList) { + dataSize += computeUInt32SizeNoTag([value intValue]); + } + size += dataSize; + size += 1 * self.mutableSessionCommentList.count; + } + { + int32_t dataSize = 0; + for (NSNumber* value in self.mutableChannelDescriptionList) { + dataSize += computeUInt32SizeNoTag([value intValue]); + } + size += dataSize; + size += 1 * self.mutableChannelDescriptionList.count; + } + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (MPRequestBlob*) parseFromData:(NSData*) data { + return (MPRequestBlob*)[[[MPRequestBlob builder] mergeFromData:data] build]; +} ++ (MPRequestBlob*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPRequestBlob*)[[[MPRequestBlob builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (MPRequestBlob*) parseFromInputStream:(NSInputStream*) input { + return (MPRequestBlob*)[[[MPRequestBlob builder] mergeFromInputStream:input] build]; +} ++ (MPRequestBlob*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPRequestBlob*)[[[MPRequestBlob builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPRequestBlob*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (MPRequestBlob*)[[[MPRequestBlob builder] mergeFromCodedInputStream:input] build]; +} ++ (MPRequestBlob*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (MPRequestBlob*)[[[MPRequestBlob builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (MPRequestBlob_Builder*) builder { + return [[[MPRequestBlob_Builder alloc] init] autorelease]; +} ++ (MPRequestBlob_Builder*) builderWithPrototype:(MPRequestBlob*) prototype { + return [[MPRequestBlob builder] mergeFrom:prototype]; +} +- (MPRequestBlob_Builder*) builder { + return [MPRequestBlob builder]; +} +@end + +@interface MPRequestBlob_Builder() +@property (retain) MPRequestBlob* result; +@end + +@implementation MPRequestBlob_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[MPRequestBlob alloc] init] autorelease]; + } + return self; +} +- (PBGeneratedMessage*) internalGetResult { + return result; +} +- (MPRequestBlob_Builder*) clear { + self.result = [[[MPRequestBlob alloc] init] autorelease]; + return self; +} +- (MPRequestBlob_Builder*) clone { + return [MPRequestBlob builderWithPrototype:result]; +} +- (MPRequestBlob*) defaultInstance { + return [MPRequestBlob defaultInstance]; +} +- (MPRequestBlob*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (MPRequestBlob*) buildPartial { + MPRequestBlob* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (MPRequestBlob_Builder*) mergeFrom:(MPRequestBlob*) other { + if (other == [MPRequestBlob defaultInstance]) { + return self; + } + if (other.mutableSessionTextureList.count > 0) { + if (result.mutableSessionTextureList == nil) { + result.mutableSessionTextureList = [NSMutableArray array]; + } + [result.mutableSessionTextureList addObjectsFromArray:other.mutableSessionTextureList]; + } + if (other.mutableSessionCommentList.count > 0) { + if (result.mutableSessionCommentList == nil) { + result.mutableSessionCommentList = [NSMutableArray array]; + } + [result.mutableSessionCommentList addObjectsFromArray:other.mutableSessionCommentList]; + } + if (other.mutableChannelDescriptionList.count > 0) { + if (result.mutableChannelDescriptionList == nil) { + result.mutableChannelDescriptionList = [NSMutableArray array]; + } + [result.mutableChannelDescriptionList addObjectsFromArray:other.mutableChannelDescriptionList]; + } + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (MPRequestBlob_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (MPRequestBlob_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 8: { + [self addSessionTexture:[input readUInt32]]; + break; + } + case 16: { + [self addSessionComment:[input readUInt32]]; + break; + } + case 24: { + [self addChannelDescription:[input readUInt32]]; + break; + } + } + } +} +- (NSArray*) sessionTextureList { + if (result.mutableSessionTextureList == nil) { + return [NSArray array]; + } + return result.mutableSessionTextureList; +} +- (int32_t) sessionTextureAtIndex:(int32_t) index { + return [result sessionTextureAtIndex:index]; +} +- (MPRequestBlob_Builder*) replaceSessionTextureAtIndex:(int32_t) index with:(int32_t) value { + [result.mutableSessionTextureList replaceObjectAtIndex:index withObject:[NSNumber numberWithInt:value]]; + return self; +} +- (MPRequestBlob_Builder*) addSessionTexture:(int32_t) value { + if (result.mutableSessionTextureList == nil) { + result.mutableSessionTextureList = [NSMutableArray array]; + } + [result.mutableSessionTextureList addObject:[NSNumber numberWithInt:value]]; + return self; +} +- (MPRequestBlob_Builder*) addAllSessionTexture:(NSArray*) values { + if (result.mutableSessionTextureList == nil) { + result.mutableSessionTextureList = [NSMutableArray array]; + } + [result.mutableSessionTextureList addObjectsFromArray:values]; + return self; +} +- (MPRequestBlob_Builder*) clearSessionTextureList { + result.mutableSessionTextureList = nil; + return self; +} +- (NSArray*) sessionCommentList { + if (result.mutableSessionCommentList == nil) { + return [NSArray array]; + } + return result.mutableSessionCommentList; +} +- (int32_t) sessionCommentAtIndex:(int32_t) index { + return [result sessionCommentAtIndex:index]; +} +- (MPRequestBlob_Builder*) replaceSessionCommentAtIndex:(int32_t) index with:(int32_t) value { + [result.mutableSessionCommentList replaceObjectAtIndex:index withObject:[NSNumber numberWithInt:value]]; + return self; +} +- (MPRequestBlob_Builder*) addSessionComment:(int32_t) value { + if (result.mutableSessionCommentList == nil) { + result.mutableSessionCommentList = [NSMutableArray array]; + } + [result.mutableSessionCommentList addObject:[NSNumber numberWithInt:value]]; + return self; +} +- (MPRequestBlob_Builder*) addAllSessionComment:(NSArray*) values { + if (result.mutableSessionCommentList == nil) { + result.mutableSessionCommentList = [NSMutableArray array]; + } + [result.mutableSessionCommentList addObjectsFromArray:values]; + return self; +} +- (MPRequestBlob_Builder*) clearSessionCommentList { + result.mutableSessionCommentList = nil; + return self; +} +- (NSArray*) channelDescriptionList { + if (result.mutableChannelDescriptionList == nil) { + return [NSArray array]; + } + return result.mutableChannelDescriptionList; +} +- (int32_t) channelDescriptionAtIndex:(int32_t) index { + return [result channelDescriptionAtIndex:index]; +} +- (MPRequestBlob_Builder*) replaceChannelDescriptionAtIndex:(int32_t) index with:(int32_t) value { + [result.mutableChannelDescriptionList replaceObjectAtIndex:index withObject:[NSNumber numberWithInt:value]]; + return self; +} +- (MPRequestBlob_Builder*) addChannelDescription:(int32_t) value { + if (result.mutableChannelDescriptionList == nil) { + result.mutableChannelDescriptionList = [NSMutableArray array]; + } + [result.mutableChannelDescriptionList addObject:[NSNumber numberWithInt:value]]; + return self; +} +- (MPRequestBlob_Builder*) addAllChannelDescription:(NSArray*) values { + if (result.mutableChannelDescriptionList == nil) { + result.mutableChannelDescriptionList = [NSMutableArray array]; + } + [result.mutableChannelDescriptionList addObjectsFromArray:values]; + return self; +} +- (MPRequestBlob_Builder*) clearChannelDescriptionList { + result.mutableChannelDescriptionList = nil; + return self; +} +@end + diff --git a/proto/Mumble.proto b/proto/Mumble.proto new file mode 100644 index 0000000..3e55331 --- /dev/null +++ b/proto/Mumble.proto @@ -0,0 +1,276 @@ +import "google/protobuf/objectivec-descriptor.proto"; +option (google.protobuf.objectivec_file_options).class_prefix = "MP"; +package MumbleProto; + +option optimize_for = SPEED; + +message Version { + optional uint32 version = 1; + optional string release = 2; + optional string os = 3; + optional string os_version = 4; +} + +message UDPTunnel { + required bytes packet = 1; +} + +message Authenticate { + optional string username = 1; + optional string password = 2; + repeated string tokens = 3; + repeated int32 celt_versions = 4; +} + +message Ping { + optional uint64 timestamp = 1; + optional uint32 good = 2; + optional uint32 late = 3; + optional uint32 lost = 4; + optional uint32 resync = 5; + optional uint32 udp_packets = 6; + optional uint32 tcp_packets = 7; + optional float udp_ping_avg = 8; + optional float udp_ping_var = 9; + optional float tcp_ping_avg = 10; + optional float tcp_ping_var = 11; +} + +message Reject { + enum RejectType { + None = 0; + WrongVersion = 1; + InvalidUsername = 2; + WrongUserPW = 3; + WrongServerPW = 4; + UsernameInUse = 5; + ServerFull = 6; + NoCertificate = 7; + } + optional RejectType type = 1; + optional string reason = 2; +} + +message ServerConfig { + optional uint32 max_bandwidth = 1; + optional string welcome_text = 2; + optional bool allow_html = 3; + optional uint32 message_length = 4; + optional uint32 image_message_length = 5; +} + +message ServerSync { + optional uint32 session = 1; + optional uint32 max_bandwidth = 2; + optional string welcome_text = 3; + optional uint64 permissions = 4; +} + +message ChannelRemove { + required uint32 channel_id = 1; +} + +message ChannelState { + optional uint32 channel_id = 1; + optional uint32 parent = 2; + optional string name = 3; + repeated uint32 links = 4; + optional string description = 5; + repeated uint32 links_add = 6; + repeated uint32 links_remove = 7; + optional bool temporary = 8 [default = false]; + optional int32 position = 9 [default = 0]; + optional bytes description_hash = 10; +} + +message UserRemove { + required uint32 session = 1; + optional uint32 actor = 2; + optional string reason = 3; + optional bool ban = 4; +} + +message UserState { + optional uint32 session = 1; + optional uint32 actor = 2; + optional string name = 3; + optional uint32 user_id = 4; + optional uint32 channel_id = 5; + optional bool mute = 6; + optional bool deaf = 7; + optional bool suppress = 8; + optional bool self_mute = 9; + optional bool self_deaf = 10; + optional bytes texture = 11; + optional bytes plugin_context = 12; + optional string plugin_identity = 13; + optional string comment = 14; + optional string hash = 15; + optional bytes comment_hash = 16; + optional bytes texture_hash = 17; +} + +message BanList { + message BanEntry { + required bytes address = 1; + required uint32 mask = 2; + optional string name = 3; + optional string hash = 4; + optional string reason = 5; + optional string start = 6; + optional uint32 duration = 7; + } + repeated BanEntry bans = 1; + optional bool query = 2 [default = false]; +} + +message TextMessage { + optional uint32 actor = 1; + repeated uint32 session = 2; + repeated uint32 channel_id = 3; + repeated uint32 tree_id = 4; + required string message = 5; +} + +message PermissionDenied { + enum DenyType { + Text = 0; + Permission = 1; + SuperUser = 2; + ChannelName = 3; + TextTooLong = 4; + H9K = 5; + TemporaryChannel = 6; + MissingCertificate = 7; + UserName = 8; + ChannelFull = 9; + } + optional uint32 permission = 1; + optional uint32 channel_id = 2; + optional uint32 session = 3; + optional string reason = 4; + optional DenyType type = 5; + optional string name = 6; +} + +message ACL { + message ChanGroup { + required string name = 1; + optional bool inherited = 2 [default = true]; + optional bool inherit = 3 [default = true]; + optional bool inheritable = 4 [default = true]; + repeated uint32 add = 5; + repeated uint32 remove = 6; + repeated uint32 inherited_members = 7; + } + message ChanACL { + optional bool apply_here = 1 [default = true]; + optional bool apply_subs = 2 [default = true]; + optional bool inherited = 3 [default = true]; + optional uint32 user_id = 4; + optional string group = 5; + optional uint32 grant = 6; + optional uint32 deny = 7; + } + required uint32 channel_id = 1; + optional bool inherit_acls = 2 [default = true]; + repeated ChanGroup groups = 3; + repeated ChanACL acls = 4; + optional bool query = 5 [default = false]; +} + +message QueryUsers { + repeated uint32 ids = 1; + repeated string names = 2; +} + +message CryptSetup { + optional bytes key = 1; + optional bytes client_nonce = 2; + optional bytes server_nonce = 3; +} + +message ContextActionAdd { + enum Context { + Server = 0x01; + Channel = 0x02; + User = 0x04; + } + required string action = 1; + required string text = 2; + optional uint32 context = 3; +} + +message ContextAction { + optional uint32 session = 1; + optional uint32 channel_id = 2; + required string action = 3; +} + +message UserList { + message User { + required uint32 user_id = 1; + optional string name = 2; + } + repeated User users = 1; +} + +message VoiceTarget { + message Target { + repeated uint32 session = 1; + optional uint32 channel_id = 2; + optional string group = 3; + optional bool links = 4 [default = false]; + optional bool children = 5 [default = false]; + } + optional uint32 id = 1; + repeated Target targets = 2; +} + +message PermissionQuery { + optional uint32 channel_id = 1; + optional uint32 permissions = 2; + optional bool flush = 3 [default = false]; +} + +message CodecVersion { + required int32 alpha = 1; + required int32 beta = 2; + required bool prefer_alpha = 3 [default = true]; +} + +message UserStats { + message Stats { + optional uint32 good = 1; + optional uint32 late = 2; + optional uint32 lost = 3; + optional uint32 resync = 4; + } + + optional uint32 session = 1; + optional bool stats_only = 2 [default = false]; + repeated bytes certificates = 3; + optional Stats from_client = 4; + optional Stats from_server = 5; + + optional uint32 udp_packets = 6; + optional uint32 tcp_packets = 7; + optional float udp_ping_avg = 8; + optional float udp_ping_var = 9; + optional float tcp_ping_avg = 10; + optional float tcp_ping_var = 11; + + optional Version version = 12; + repeated int32 celt_versions = 13; + optional bytes address = 14; + optional uint32 bandwidth = 15; + optional uint32 onlinesecs = 16; + optional uint32 idlesecs = 17; + optional bool strong_certificate = 18 [default = false]; +} + +message RequestBlob { + repeated uint32 session_texture = 1; + repeated uint32 session_comment = 2; + repeated uint32 channel_description = 3; +} diff --git a/proto/Mumble.proto.objc b/proto/Mumble.proto.objc new file mode 100644 index 0000000..bfa263d --- /dev/null +++ b/proto/Mumble.proto.objc @@ -0,0 +1,2 @@ +import "google/protobuf/objectivec-descriptor.proto"; +option (google.protobuf.objectivec_file_options).class_prefix = "MP"; diff --git a/proto/ObjectivecDescriptor.pb.h b/proto/ObjectivecDescriptor.pb.h new file mode 100644 index 0000000..9d31db9 --- /dev/null +++ b/proto/ObjectivecDescriptor.pb.h @@ -0,0 +1,109 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! + +#import "ProtocolBuffers.h" + +#import "Descriptor.pb.h" + +@class ObjectiveCFileOptions; +@class ObjectiveCFileOptions_Builder; +@class PBDescriptorProto; +@class PBDescriptorProto_Builder; +@class PBDescriptorProto_ExtensionRange; +@class PBDescriptorProto_ExtensionRange_Builder; +@class PBEnumDescriptorProto; +@class PBEnumDescriptorProto_Builder; +@class PBEnumOptions; +@class PBEnumOptions_Builder; +@class PBEnumValueDescriptorProto; +@class PBEnumValueDescriptorProto_Builder; +@class PBEnumValueOptions; +@class PBEnumValueOptions_Builder; +@class PBFieldDescriptorProto; +@class PBFieldDescriptorProto_Builder; +@class PBFieldOptions; +@class PBFieldOptions_Builder; +@class PBFileDescriptorProto; +@class PBFileDescriptorProto_Builder; +@class PBFileDescriptorSet; +@class PBFileDescriptorSet_Builder; +@class PBFileOptions; +@class PBFileOptions_Builder; +@class PBMessageOptions; +@class PBMessageOptions_Builder; +@class PBMethodDescriptorProto; +@class PBMethodDescriptorProto_Builder; +@class PBMethodOptions; +@class PBMethodOptions_Builder; +@class PBServiceDescriptorProto; +@class PBServiceDescriptorProto_Builder; +@class PBServiceOptions; +@class PBServiceOptions_Builder; +@class PBUninterpretedOption; +@class PBUninterpretedOption_Builder; +@class PBUninterpretedOption_NamePart; +@class PBUninterpretedOption_NamePart_Builder; + +@interface ObjectivecDescriptorRoot : NSObject { +} ++ (PBExtensionRegistry*) extensionRegistry; ++ (void) registerAllExtensions:(PBMutableExtensionRegistry*) registry; ++ (id<PBExtensionField>) objectivecFileOptions; +@end + +@interface ObjectiveCFileOptions : PBGeneratedMessage { +@private + BOOL hasPackage_:1; + BOOL hasClassPrefix_:1; + NSString* package; + NSString* classPrefix; +} +- (BOOL) hasPackage; +- (BOOL) hasClassPrefix; +@property (readonly, retain) NSString* package; +@property (readonly, retain) NSString* classPrefix; + ++ (ObjectiveCFileOptions*) defaultInstance; +- (ObjectiveCFileOptions*) defaultInstance; + +- (BOOL) isInitialized; +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output; +- (ObjectiveCFileOptions_Builder*) builder; ++ (ObjectiveCFileOptions_Builder*) builder; ++ (ObjectiveCFileOptions_Builder*) builderWithPrototype:(ObjectiveCFileOptions*) prototype; + ++ (ObjectiveCFileOptions*) parseFromData:(NSData*) data; ++ (ObjectiveCFileOptions*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (ObjectiveCFileOptions*) parseFromInputStream:(NSInputStream*) input; ++ (ObjectiveCFileOptions*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; ++ (ObjectiveCFileOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input; ++ (ObjectiveCFileOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; +@end + +@interface ObjectiveCFileOptions_Builder : PBGeneratedMessage_Builder { +@private + ObjectiveCFileOptions* result; +} + +- (ObjectiveCFileOptions*) defaultInstance; + +- (ObjectiveCFileOptions_Builder*) clear; +- (ObjectiveCFileOptions_Builder*) clone; + +- (ObjectiveCFileOptions*) build; +- (ObjectiveCFileOptions*) buildPartial; + +- (ObjectiveCFileOptions_Builder*) mergeFrom:(ObjectiveCFileOptions*) other; +- (ObjectiveCFileOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input; +- (ObjectiveCFileOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; + +- (BOOL) hasPackage; +- (NSString*) package; +- (ObjectiveCFileOptions_Builder*) setPackage:(NSString*) value; +- (ObjectiveCFileOptions_Builder*) clearPackage; + +- (BOOL) hasClassPrefix; +- (NSString*) classPrefix; +- (ObjectiveCFileOptions_Builder*) setClassPrefix:(NSString*) value; +- (ObjectiveCFileOptions_Builder*) clearClassPrefix; +@end + diff --git a/proto/ObjectivecDescriptor.pb.m b/proto/ObjectivecDescriptor.pb.m new file mode 100644 index 0000000..35127bc --- /dev/null +++ b/proto/ObjectivecDescriptor.pb.m @@ -0,0 +1,253 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! + +#import "ObjectivecDescriptor.pb.h" + +@implementation ObjectivecDescriptorRoot +static id<PBExtensionField> ObjectivecDescriptorRoot_objectivecFileOptions = nil; +static PBExtensionRegistry* extensionRegistry = nil; ++ (PBExtensionRegistry*) extensionRegistry { + return extensionRegistry; +} + ++ (void) initialize { + if (self == [ObjectivecDescriptorRoot class]) { + ObjectivecDescriptorRoot_objectivecFileOptions = + [[PBConcreteExtensionField extensionWithType:PBExtensionTypeMessage + extendedClass:[PBFileOptions class] + fieldNumber:1002 + defaultValue:[ObjectiveCFileOptions defaultInstance] + messageOrGroupClass:[ObjectiveCFileOptions class] + isRepeated:NO + isPacked:NO + isMessageSetWireFormat:NO] retain]; + PBMutableExtensionRegistry* registry = [PBMutableExtensionRegistry registry]; + [self registerAllExtensions:registry]; + [PBDescriptorRoot registerAllExtensions:registry]; + extensionRegistry = [registry retain]; + } +} ++ (void) registerAllExtensions:(PBMutableExtensionRegistry*) registry { + [registry addExtension:ObjectivecDescriptorRoot_objectivecFileOptions]; +} ++ (id<PBExtensionField>) objectivecFileOptions { + return ObjectivecDescriptorRoot_objectivecFileOptions; +} +@end + +@interface ObjectiveCFileOptions () +@property (retain) NSString* package; +@property (retain) NSString* classPrefix; +@end + +@implementation ObjectiveCFileOptions + +- (BOOL) hasPackage { + return !!hasPackage_; +} +- (void) setHasPackage:(BOOL) value { + hasPackage_ = !!value; +} +@synthesize package; +- (BOOL) hasClassPrefix { + return !!hasClassPrefix_; +} +- (void) setHasClassPrefix:(BOOL) value { + hasClassPrefix_ = !!value; +} +@synthesize classPrefix; +- (void) dealloc { + self.package = nil; + self.classPrefix = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.package = @""; + self.classPrefix = @""; + } + return self; +} +static ObjectiveCFileOptions* defaultObjectiveCFileOptionsInstance = nil; ++ (void) initialize { + if (self == [ObjectiveCFileOptions class]) { + defaultObjectiveCFileOptionsInstance = [[ObjectiveCFileOptions alloc] init]; + } +} ++ (ObjectiveCFileOptions*) defaultInstance { + return defaultObjectiveCFileOptionsInstance; +} +- (ObjectiveCFileOptions*) defaultInstance { + return defaultObjectiveCFileOptionsInstance; +} +- (BOOL) isInitialized { + return YES; +} +- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output { + if (self.hasPackage) { + [output writeString:1 value:self.package]; + } + if (self.hasClassPrefix) { + [output writeString:2 value:self.classPrefix]; + } + [self.unknownFields writeToCodedOutputStream:output]; +} +- (int32_t) serializedSize { + int32_t size = memoizedSerializedSize; + if (size != -1) { + return size; + } + + size = 0; + if (self.hasPackage) { + size += computeStringSize(1, self.package); + } + if (self.hasClassPrefix) { + size += computeStringSize(2, self.classPrefix); + } + size += self.unknownFields.serializedSize; + memoizedSerializedSize = size; + return size; +} ++ (ObjectiveCFileOptions*) parseFromData:(NSData*) data { + return (ObjectiveCFileOptions*)[[[ObjectiveCFileOptions builder] mergeFromData:data] build]; +} ++ (ObjectiveCFileOptions*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (ObjectiveCFileOptions*)[[[ObjectiveCFileOptions builder] mergeFromData:data extensionRegistry:extensionRegistry] build]; +} ++ (ObjectiveCFileOptions*) parseFromInputStream:(NSInputStream*) input { + return (ObjectiveCFileOptions*)[[[ObjectiveCFileOptions builder] mergeFromInputStream:input] build]; +} ++ (ObjectiveCFileOptions*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (ObjectiveCFileOptions*)[[[ObjectiveCFileOptions builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (ObjectiveCFileOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input { + return (ObjectiveCFileOptions*)[[[ObjectiveCFileOptions builder] mergeFromCodedInputStream:input] build]; +} ++ (ObjectiveCFileOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + return (ObjectiveCFileOptions*)[[[ObjectiveCFileOptions builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build]; +} ++ (ObjectiveCFileOptions_Builder*) builder { + return [[[ObjectiveCFileOptions_Builder alloc] init] autorelease]; +} ++ (ObjectiveCFileOptions_Builder*) builderWithPrototype:(ObjectiveCFileOptions*) prototype { + return [[ObjectiveCFileOptions builder] mergeFrom:prototype]; +} +- (ObjectiveCFileOptions_Builder*) builder { + return [ObjectiveCFileOptions builder]; +} +@end + +@interface ObjectiveCFileOptions_Builder() +@property (retain) ObjectiveCFileOptions* result; +@end + +@implementation ObjectiveCFileOptions_Builder +@synthesize result; +- (void) dealloc { + self.result = nil; + [super dealloc]; +} +- (id) init { + if ((self = [super init])) { + self.result = [[[ObjectiveCFileOptions alloc] init] autorelease]; + } + return self; +} +- (PBGeneratedMessage*) internalGetResult { + return result; +} +- (ObjectiveCFileOptions_Builder*) clear { + self.result = [[[ObjectiveCFileOptions alloc] init] autorelease]; + return self; +} +- (ObjectiveCFileOptions_Builder*) clone { + return [ObjectiveCFileOptions builderWithPrototype:result]; +} +- (ObjectiveCFileOptions*) defaultInstance { + return [ObjectiveCFileOptions defaultInstance]; +} +- (ObjectiveCFileOptions*) build { + [self checkInitialized]; + return [self buildPartial]; +} +- (ObjectiveCFileOptions*) buildPartial { + ObjectiveCFileOptions* returnMe = [[result retain] autorelease]; + self.result = nil; + return returnMe; +} +- (ObjectiveCFileOptions_Builder*) mergeFrom:(ObjectiveCFileOptions*) other { + if (other == [ObjectiveCFileOptions defaultInstance]) { + return self; + } + if (other.hasPackage) { + [self setPackage:other.package]; + } + if (other.hasClassPrefix) { + [self setClassPrefix:other.classPrefix]; + } + [self mergeUnknownFields:other.unknownFields]; + return self; +} +- (ObjectiveCFileOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input { + return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]]; +} +- (ObjectiveCFileOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry { + PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields]; + while (YES) { + int32_t tag = [input readTag]; + switch (tag) { + case 0: + [self setUnknownFields:[unknownFields build]]; + return self; + default: { + if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) { + [self setUnknownFields:[unknownFields build]]; + return self; + } + break; + } + case 10: { + [self setPackage:[input readString]]; + break; + } + case 18: { + [self setClassPrefix:[input readString]]; + break; + } + } + } +} +- (BOOL) hasPackage { + return result.hasPackage; +} +- (NSString*) package { + return result.package; +} +- (ObjectiveCFileOptions_Builder*) setPackage:(NSString*) value { + result.hasPackage = YES; + result.package = value; + return self; +} +- (ObjectiveCFileOptions_Builder*) clearPackage { + result.hasPackage = NO; + result.package = @""; + return self; +} +- (BOOL) hasClassPrefix { + return result.hasClassPrefix; +} +- (NSString*) classPrefix { + return result.classPrefix; +} +- (ObjectiveCFileOptions_Builder*) setClassPrefix:(NSString*) value { + result.hasClassPrefix = YES; + result.classPrefix = value; + return self; +} +- (ObjectiveCFileOptions_Builder*) clearClassPrefix { + result.hasClassPrefix = NO; + result.classPrefix = @""; + return self; +} +@end + diff --git a/proto/README b/proto/README new file mode 100644 index 0000000..6076f34 --- /dev/null +++ b/proto/README @@ -0,0 +1,39 @@ +(Last-Updated: Jan 5 2010) + +The Mumble protobuf protocol +============================ + +Mumble uses Protocol Buffers for its command-channel communication +in version 1.2 and greater. + +This directory contains the ObjC-output from the protobuf compiler, +and a Mumble.proto protocol description fetched from the desktop +Mumble client's git repository. + + +Updating the protocol decription +================================ + +Simply run the `update-proto.sh' script in this directory to update +the protocol description. Note however that you need a protoc exe- +cutable that can output Objective-C. + +Please refer to the next section of this document if you don't have +a Obj-C capable protoc. + + +Generating the Objective-C from Mumble.proto +============================================ + +To get a protobuf compiler that can output Objective-C, it is +recommended that you build the one found in the protobuf submodule: + + 3rdparty/protobuf/ + +To build a working protobuf compiler, simply execute: + + $ ./build-protoc.sh + +And you should have a working protoc executable in + + 3rdparty/protobuf/src/protoc diff --git a/proto/build-protoc.sh b/proto/build-protoc.sh new file mode 100755 index 0000000..40c67e5 --- /dev/null +++ b/proto/build-protoc.sh @@ -0,0 +1,4 @@ +#!/bin/bash +cd ../3rdparty/protobuf/ +./configure +make -j5 diff --git a/proto/update-proto.sh b/proto/update-proto.sh new file mode 100755 index 0000000..97f950e --- /dev/null +++ b/proto/update-proto.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +# +# Grab the latest Mumble.proto file from desktop Mumble. +# +curl "http://mumble.git.sourceforge.net/git/gitweb.cgi?p=mumble/mumble;a=blob_plain;f=src/Mumble.proto;hb=HEAD" > Mumble.proto.clean +cat Mumble.proto.objc Mumble.proto.clean > Mumble.proto +../3rdparty/protobuf/src/protoc --objc_out=. \ + -I../3rdparty/protobuf/src/ \ + -I. \ + Mumble.proto \ + ../3rdparty/protobuf/src/google/protobuf/descriptor.proto \ + ../3rdparty/protobuf/src/google/protobuf/objectivec-descriptor.proto +rm Mumble.proto.clean + +# +# Patch the generated Descriptor.pb.m if needed. +# +if [ "`grep ProtocolBuffers.h Descriptor.pb.m`" != "" ]; then exit; fi +cat >Descriptor.pb.m.patch <<EOF +--- ./Descriptor.pb.m ++++ ./Descriptor.pb.m +@@ -1,3 +1,4 @@ + // Generated by the protocol buffer compiler. DO NOT EDIT! + ++#include "ProtocolBuffers.h" + #import "Descriptor.pb.h" + +EOF +patch --no-backup-if-mismatch -p0 < Descriptor.pb.m.patch +rm Descriptor.pb.m.patch diff --git a/src/MKAudio.m b/src/MKAudio.m new file mode 100644 index 0000000..19c1d3f --- /dev/null +++ b/src/MKAudio.m @@ -0,0 +1,199 @@ +/* Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk> + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + - Neither the name of the Mumble Developers nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#import <MumbleKit/MKUtils.h> +#import <MumbleKit/MKAudio.h> +#import <MumbleKit/MKAudioInput.h> +#import <MumbleKit/MKAudioOutput.h> + +static MKAudio *audioSingleton = nil; + +static void AudioInterruptionListenerCallback(void *udata, UInt32 interruptionState) { + MK_UNUSED MKAudio *audio = (MKAudio *) udata; + NSLog(@"Audio: Interruption state callback called."); +} + +static void AudioSessionPropertyListenerCallback(void *udata, AudioSessionPropertyID property, UInt32 len, void *data) { + MK_UNUSED MKAudio *audio = (MKAudio *) udata; + BOOL audioInputAvailable; + UInt32 *u32; + + switch (property) { + case kAudioSessionProperty_AudioInputAvailable: { + u32 = data; + audioInputAvailable = (BOOL)*u32; + if (audioInputAvailable == NO) { + NSLog(@"Audio: Audio Input now unavailable."); + } else { + NSLog(@"Audio: Audio Input now available."); + } + + NSLog(@"Audio: AudioInputAvailable changed..."); + break; + } + } +} + +@implementation MKAudio + ++ (void) initializeAudio { + NSLog(@"Audio: Initializing..."); + audioSingleton = [[MKAudio alloc] init]; + [[MKAudio audioOutput] setupDevice]; + [[MKAudio audioInput] setupDevice]; +} + ++ (MKAudioInput *) audioInput { + return [audioSingleton audioInput]; +} + ++ (MKAudioOutput *) audioOutput { + return [audioSingleton audioOutput]; +} + ++ (MKAudio *) audio { + return audioSingleton; +} + +- (id) init { + OSStatus err; + UInt32 val; + Float64 fval; + UInt32 valSize; + BOOL audioInputAvailable; + + self = [super init]; + if (self == nil) + return nil; + + /* + * Initialize Audio Session. + */ + err = AudioSessionInitialize(CFRunLoopGetMain(), kCFRunLoopDefaultMode, AudioInterruptionListenerCallback, self); + if (err != kAudioSessionNoError) { + NSLog(@"Audio: Unable to initialize AudioSession."); + return nil; + } + + /* + * To properly determine the right category property (at this time), we need to check + * whether we have a microphone available. This will always be the case on an iPhone, + * but for the iPod touch, we need the headphones plugged in. + */ + valSize = sizeof(UInt32); + err = AudioSessionGetProperty(kAudioSessionProperty_AudioInputAvailable, &valSize, &val); + if (err != kAudioSessionNoError || valSize != sizeof(UInt32)) { + NSLog(@"Audio: Unable to query for input availability."); + } + + audioInputAvailable = (BOOL) val; + if (audioInputAvailable == NO) { + NSLog(@"Audio: Audio Input not available."); + val = kAudioSessionCategory_MediaPlayback; + } else { + NSLog(@"Audio: Audio Input available."); + val = kAudioSessionCategory_PlayAndRecord; + } + + err = AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(val), &val); + if (err != kAudioSessionNoError) { + NSLog(@"Audio: Unable to set AudioCategory property."); + return nil; + } + + /* + * Override whether we want to allow to be mixed with other applications. We want this to be + * a user choice. Some users may want their iPod app to play in the background. + */ + val = TRUE; + err = AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryMixWithOthers, sizeof(val), &val); + if (err != kAudioSessionNoError) { + NSLog(@"Audio: Unable to set MixWithOthers property."); + return nil; + } + + /* + * Set the preferred hardware sample rate. + * fixme(mkrautz): The AudioSession *can* reject this, in which case we need + * to be able to handle whatever input sampling rate is chosen + * for us. This is apparently 8KHz on a 1st gen iPhone. + */ + fval = SAMPLE_RATE; + err = AudioSessionSetProperty(kAudioSessionProperty_PreferredHardwareSampleRate, sizeof(Float64), &fval); + if (err != kAudioSessionNoError) { + NSLog(@"Audio: Unable to set preferred hardware sample rate."); + return nil; + } + + /* + * Activate our Audio Session. + */ + err = AudioSessionSetActive(TRUE); + if (err != kAudioSessionNoError) { + NSLog(@"Audio: Unable to set session as active."); + return nil; + } + + /* + * Query for the actual sample rate we are to cope with. + */ + valSize = sizeof(Float64); + err = AudioSessionGetProperty(kAudioSessionProperty_CurrentHardwareSampleRate, &valSize, &fval); + if (err != kAudioSessionNoError) { + NSLog(@"Audio: Unable to query for current hardware sample rate."); + return nil; + } + + NSLog(@"Audio: Current hardware sample rate = %.2fHz.", fval); + + if (audioInputAvailable) { + ai = [[MKAudioInput alloc] init]; + } + + ao = [[MKAudioOutput alloc] init]; + + return self; +} + +- (void) dealloc { + [super dealloc]; + [ai release]; + [ao release]; +} + +- (MKAudioInput *) audioInput { + return ai; +} + +- (MKAudioOutput *) audioOutput { + return ao; +} + +@end diff --git a/src/MKAudioInput.m b/src/MKAudioInput.m new file mode 100644 index 0000000..a2a1cdb --- /dev/null +++ b/src/MKAudioInput.m @@ -0,0 +1,396 @@ +/* Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk> + Copyright (C) 2005-2010 Thorvald Natvig <thorvald@natvig.com> + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + - Neither the name of the Mumble Developers nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#import <MumbleKit/MKAudioInput.h> +#import <MumbleKit/MKPacketDataStream.h> + +static OSStatus inputCallback(void *udata, AudioUnitRenderActionFlags *flags, const AudioTimeStamp *ts, + UInt32 busnum, UInt32 nframes, AudioBufferList *buflist) { + MKAudioInput *i = (MKAudioInput *)udata; + OSStatus err; + + if (! i->buflist.mBuffers->mData) { + NSLog(@"AudioInput: No buffer allocated."); + i->buflist.mNumberBuffers = 1; + AudioBuffer *b = i->buflist.mBuffers; + b->mNumberChannels = i->numMicChannels; + b->mDataByteSize = i->micSampleSize * nframes; + b->mData = calloc(1, b->mDataByteSize); + } + + if (i->buflist.mBuffers->mDataByteSize < (nframes/i->micSampleSize)) { + NSLog(@"AudioInput: Buffer too small. Allocating more space."); + AudioBuffer *b = i->buflist.mBuffers; + free(b->mData); + b->mDataByteSize = i->micSampleSize * nframes; + b->mData = calloc(1, b->mDataByteSize); + } + + err = AudioUnitRender(i->audioUnit, flags, ts, busnum, nframes, &i->buflist); + if (err != noErr) { +#if 0 + NSLog(@"AudioInput: AudioUnitRender failed. err = %i", err); +#endif + return err; + } + + short *buf = (short *)i->buflist.mBuffers->mData; + [i addMicrophoneDataWithBuffer:buf amount:nframes]; + + return noErr; +} + +@implementation MKAudioInput + +- (id) init { + self = [super init]; + if (self == nil) + return nil; + + frameCounter = 0; + preprocessorState = NULL; + + /* + * Adjust bandwidth: + * Depending on the max quality the client has set, determine iAudioQuality and iAudioFrames. + */ + cfType = CELT; + + numAudioFrames = 10; + if (cfType == CELT) { + sampleRate = SAMPLE_RATE; + frameSize = SAMPLE_RATE / 100; + NSLog(@"AudioInput: %i bits/s, %d Hz, %d sample CELT", audioQuality, sampleRate, frameSize); + } else { + sampleRate = 32000; + /* Speex. */ + NSLog(@"AudioInput: Speex input support not yet implemented."); + return self; + } + + doResetPreprocessor = YES; + previousVoice = NO; + + preprocessorState = NULL; + + psMic = malloc(sizeof(short) * frameSize); + + numMicChannels = 0; + bitrate = 0; + + /* + if (g.uiSession) + setMaxBandwidth(g.iMaxBandwidth); + */ + + /* Allocate buffer list. */ + frameList = [[NSMutableArray alloc] initWithCapacity: 20]; /* should be iAudioFrames. */ + + udpMessageType = UDPVoiceCELTAlphaMessage; + + return self; +} + +- (void) dealloc { + [frameList release]; + + if (psMic) + free(psMic); + + [super dealloc]; +} + +- (void) initializeMixer { + NSLog(@"AudioInput: initializeMixer -- iMicFreq=%u, iSampleRate=%u", micFrequency, sampleRate); + + micLength = (frameSize * micFrequency) / sampleRate; + + if (psMic) + free(psMic); + + psMic = malloc(micLength * sizeof(short)); + micSampleSize = numMicChannels * sizeof(short); + doResetPreprocessor = YES; + + NSLog(@"AudioInput: Initialized mixer for %i channel %i Hz and %i channel %i Hz echo", numMicChannels, micFrequency, 0, 0); +} + +- (BOOL) setupDevice { + UInt32 len; + UInt32 val; + OSStatus err; + AudioComponent comp; + AudioComponentDescription desc; + AudioStreamBasicDescription fmt; + + desc.componentType = kAudioUnitType_Output; + desc.componentSubType = kAudioUnitSubType_RemoteIO; + desc.componentManufacturer = kAudioUnitManufacturer_Apple; + desc.componentFlags = 0; + desc.componentFlagsMask = 0; + + comp = AudioComponentFindNext(NULL, &desc); + if (! comp) { + NSLog(@"AudioInput: Unable to find AudioUnit."); + return NO; + } + + err = AudioComponentInstanceNew(comp, (AudioComponentInstance *) &audioUnit); + if (err != noErr) { + NSLog(@"AudioInput: Unable to instantiate new AudioUnit."); + return NO; + } + + /* fixme(mkrautz): Backport some of this to the desktop CoreAudio backend? */ + + val = 1; + err = AudioUnitSetProperty(audioUnit, kAudioOutputUnitProperty_EnableIO, kAudioUnitScope_Input, 1, &val, sizeof(UInt32)); + if (err != noErr) { + NSLog(@"AudioInput: Unable to configure input scope on AudioUnit."); + return NO; + } + + val = 0; + err = AudioUnitSetProperty(audioUnit, kAudioOutputUnitProperty_EnableIO, kAudioUnitScope_Output, 0, &val, sizeof(UInt32)); + if (err != noErr) { + NSLog(@"AudioInput: Unable to configure output scope on AudioUnit."); + return NO; + } + + AURenderCallbackStruct cb; + cb.inputProc = inputCallback; + cb.inputProcRefCon = self; + len = sizeof(AURenderCallbackStruct); + err = AudioUnitSetProperty(audioUnit, kAudioOutputUnitProperty_SetInputCallback, kAudioUnitScope_Global, 0, &cb, len); + if (err != noErr) { + NSLog(@"AudioInput: Unable to setup callback."); + return NO; + } + + err = AudioUnitInitialize(audioUnit); + if (err != noErr) { + NSLog(@"AudioInput: Unable to initialize AudioUnit."); + return NO; + } + + len = sizeof(AudioStreamBasicDescription); + err = AudioUnitGetProperty(audioUnit, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Input, 1, &fmt, &len); + if (err != noErr) { + NSLog(@"CoreAudioInput: Unable to query device for stream info."); + return NO; + } + + if (fmt.mChannelsPerFrame > 1) { + NSLog(@"AudioInput: Input device with more than one channel detected. Defaulting to 1."); + } + + micFrequency = (int) 48000; + numMicChannels = 1; + [self initializeMixer]; + + fmt.mFormatFlags = kAudioFormatFlagIsSignedInteger | kAudioFormatFlagIsPacked; + fmt.mBitsPerChannel = sizeof(short) * 8; + fmt.mFormatID = kAudioFormatLinearPCM; + fmt.mSampleRate = micFrequency; + fmt.mChannelsPerFrame = numMicChannels; + fmt.mBytesPerFrame = micSampleSize; + fmt.mBytesPerPacket = micSampleSize; + fmt.mFramesPerPacket = 1; + + len = sizeof(AudioStreamBasicDescription); + err = AudioUnitSetProperty(audioUnit, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Output, 1, &fmt, len); + if (err != noErr) { + NSLog(@"AudioInput: Unable to set stream format for output device. (output scope)"); + return NO; + } + + len = sizeof(AudioStreamBasicDescription); + err = AudioUnitSetProperty(audioUnit, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Input, 0, &fmt, len); + if (err != noErr) { + NSLog(@"AudioInput: Unable to set stream format for output device. (input scope)"); + return NO; + } + + err = AudioOutputUnitStart(audioUnit); + if (err != noErr) { + NSLog(@"AudioInput: Unable to start AudioUnit."); + return NO; + } + + return YES; +} + +- (void) addMicrophoneDataWithBuffer:(short *)input amount:(NSUInteger)nsamp { + int i; + + while (nsamp > 0) { + unsigned int left = MIN(nsamp, micLength - micFilled); + + short *output = psMic + micFilled; + + for (i = 0; i < left; i++) { + output[i] = input[i]; + } + + input += left; + micFilled += left; + nsamp -= left; + + if (micFilled == micLength) { + micFilled = 0; + [self encodeAudioFrame]; + } + } +} + +- (void) resetPreprocessor { + int iArg; + + if (preprocessorState) + speex_preprocess_state_destroy(preprocessorState); + + preprocessorState = speex_preprocess_state_init(frameSize, sampleRate); + + iArg = 1; + speex_preprocess_ctl(preprocessorState, SPEEX_PREPROCESS_SET_VAD, &iArg); + speex_preprocess_ctl(preprocessorState, SPEEX_PREPROCESS_SET_AGC, &iArg); + speex_preprocess_ctl(preprocessorState, SPEEX_PREPROCESS_SET_DENOISE, &iArg); + speex_preprocess_ctl(preprocessorState, SPEEX_PREPROCESS_SET_DEREVERB, &iArg); + + iArg = 30000; + speex_preprocess_ctl(preprocessorState, SPEEX_PREPROCESS_SET_AGC_TARGET, &iArg); + +// float v = 30000.0f / (float) 0.0f; // iMinLoudness +// iArg = iroundf(floorf(20.0f * log10f(v))); +// speex_preprocess_ctl(preprocessorState, SPEEX_PREPROCESS_SET_AGC_MAX_GAIN, &iArg); + +// iArg = 0;//g.s.iNoiseSuppress; +// speex_preprocess_ctl(preprocessorState, SPEEX_PREPROCESS_SET_NOISE_SUPPRESS, &iArg); +} + +- (void) encodeAudioFrame { + + frameCounter++; + + if (doResetPreprocessor) { + [self resetPreprocessor]; + doResetPreprocessor = NO; + } + + int isSpeech = speex_preprocess_run(preprocessorState, psMic); + + { + unsigned char buffer[1024]; + int len = 0; + + if (celtEncoder == nil) { + CELTMode *mode = celt_mode_create(SAMPLE_RATE, SAMPLE_RATE / 100, NULL); + celtEncoder = celt_encoder_create(mode, 1, NULL); + } + + audioQuality = 24000; + + if (!previousVoice) { + celt_encoder_ctl(celtEncoder, CELT_RESET_STATE); + NSLog(@"AudioInput: Reset CELT state."); + } + + celt_encoder_ctl(celtEncoder, CELT_SET_PREDICTION(0)); + celt_encoder_ctl(celtEncoder, CELT_SET_VBR_RATE(audioQuality)); + len = celt_encode(celtEncoder, psMic, NULL, buffer, MIN(audioQuality / 800, 127)); + + bitrate = len * 100 * 8; + + NSData *outputBuffer = [[NSData alloc] initWithBytes:buffer length:len]; + [self flushCheck:outputBuffer terminator:NO]; + [outputBuffer release]; + + previousVoice = YES; + } +} + +/* + * Flush check. + * + * Queue up frames, and send them to the server when enough frames have been + * queued up. + */ +- (void) flushCheck:(NSData *)codedSpeech terminator:(BOOL)terminator { + [frameList addObject:codedSpeech]; + + if (! terminator && [frameList count] < numAudioFrames) { + return; + } + + int flags = 0; + if (terminator) + flags = 0; /* g.iPrevTarget. */ + + /* + * Server loopback: + * flags = 0x1f; + */ + flags |= (udpMessageType << 5); + + unsigned char data[1024]; + data[0] = (unsigned char )(flags & 0xff); + + MKPacketDataStream *pds = [[MKPacketDataStream alloc] initWithBuffer:(data+1) length:1023]; + [pds addVarint:(frameCounter - [frameList count])]; + + /* fix terminator stuff here. */ + + int i, nframes = [frameList count]; + for (i = 0; i < nframes; i++) { + NSData *frame = [frameList objectAtIndex:i]; + unsigned char head = (unsigned char)[frame length]; + if (i < nframes-1) + head |= 0x80; + [pds appendValue:head]; + [pds appendBytes:(unsigned char *)[frame bytes] length:[frame length]]; + } + [frameList removeAllObjects]; + + NSUInteger len = [pds size] + 1; + [pds release]; + +#if 0 + Connection *conn = [[[UIApplication sharedApplication] delegate] connection]; + + if ([conn connected]) { + NSData *msgData = [[NSData alloc] initWithBytes:data length:len]; + [conn sendMessageWithType:UDPTunnelMessage data:msgData]; + [msgData release]; + } +#endif +} + +@end diff --git a/src/MKAudioOutput.m b/src/MKAudioOutput.m new file mode 100644 index 0000000..fdab150 --- /dev/null +++ b/src/MKAudioOutput.m @@ -0,0 +1,280 @@ +/* Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk> + Copyright (C) 2005-2010 Thorvald Natvig <thorvald@natvig.com> + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + - Neither the name of the Mumble Developers nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#import <MumbleKit/MKUtils.h> +#import <MumbleKit/MKAudioOutput.h> +#import <MumbleKit/MKAudioOutputSpeech.h> + +/* + * Output callback. + */ +static OSStatus outputCallback(void *udata, AudioUnitRenderActionFlags *flags, const AudioTimeStamp *ts, + UInt32 busnum, UInt32 nframes, AudioBufferList *buflist) { + MKAudioOutput *ao = (MKAudioOutput *) udata; + AudioBuffer *buf = buflist->mBuffers; + MK_UNUSED OSStatus err; + BOOL done; + + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + + done = [ao mixFrames:buf->mData amount:nframes]; + if (! done) { + /* + * Not very obvious from the documentation, but CoreAudio simply wants you to set your buffer + * size to 0, and return a non-zero value when you don't have anything to feed it. It will call + * you back later. + */ + buf->mDataByteSize = 0; + return -1; + } + + [pool release]; + + return noErr; +} + +@implementation MKAudioOutput + +- (id) init { + self = [super init]; + if (self == nil) + return nil; + + sampleSize = 0; + frameSize = SAMPLE_RATE / 100; + mixerFrequency = 0; + + outputLock = [[MKReadWriteLock alloc] init]; + outputs = [[NSMutableDictionary alloc] init]; + + return self; +} + +- (void) dealloc { + [super dealloc]; + [outputLock release]; + [outputs release]; +} + +- (BOOL) setupDevice { + UInt32 len; + OSStatus err; + AudioComponent comp; + AudioComponentDescription desc; + AudioStreamBasicDescription fmt; + + desc.componentType = kAudioUnitType_Output; + desc.componentSubType = kAudioUnitSubType_RemoteIO; + desc.componentManufacturer = kAudioUnitManufacturer_Apple; + desc.componentFlags = 0; + desc.componentFlagsMask = 0; + + comp = AudioComponentFindNext(NULL, &desc); + if (! comp) { + NSLog(@"AudioOutput: Unable to find AudioUnit."); + return NO; + } + + err = AudioComponentInstanceNew(comp, (AudioComponentInstance *) &audioUnit); + if (err != noErr) { + NSLog(@"AudioOutput: Unable to instantiate new AudioUnit."); + return NO; + } + + err = AudioUnitInitialize(audioUnit); + if (err != noErr) { + NSLog(@"AudioOutput: Unable to initialize AudioUnit."); + return NO; + } + + len = sizeof(AudioStreamBasicDescription); + err = AudioUnitGetProperty(audioUnit, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Output, 0, &fmt, &len); + if (err != noErr) { + NSLog(@"AudioOuptut: Unable to get output stream format from AudioUnit."); + return NO; + } + + mixerFrequency = (int) 48000; + numChannels = (int) fmt.mChannelsPerFrame; + sampleSize = numChannels * sizeof(short); + + if (speakerVolume) { + free(speakerVolume); + } + speakerVolume = malloc(sizeof(float)*numChannels); + + int i; + for (i = 0; i < numChannels; ++i) { + speakerVolume[i] = 1.0f; + } + + fmt.mFormatFlags = kAudioFormatFlagIsSignedInteger | kAudioFormatFlagIsPacked; + fmt.mBitsPerChannel = sizeof(short) * 8; + + NSLog(@"AudioOutput: Output device currently configured as %iHz sample rate, %i channels, %i sample size", mixerFrequency, numChannels, sampleSize); + + fmt.mFormatID = kAudioFormatLinearPCM; + fmt.mSampleRate = mixerFrequency; + fmt.mBytesPerFrame = sampleSize; + fmt.mBytesPerPacket = sampleSize; + fmt.mFramesPerPacket = 1; + + len = sizeof(AudioStreamBasicDescription); + err = AudioUnitSetProperty(audioUnit, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Input, 0, &fmt, len); + if (err != noErr) { + NSLog(@"AudioOutput: Unable to set stream format for output device."); + return NO; + } + + AURenderCallbackStruct cb; + cb.inputProc = outputCallback; + cb.inputProcRefCon = self; + len = sizeof(AURenderCallbackStruct); + err = AudioUnitSetProperty(audioUnit, kAudioUnitProperty_SetRenderCallback, kAudioUnitScope_Global, 0, &cb, len); + if (err != noErr) { + NSLog(@"AudioOutput: Could not set render callback."); + return NO; + } + + /* On desktop we call AudioDeviceSetProperty() with kAudioDevicePropertyBufferFrameSize to set our frame size up. */ + + err = AudioOutputUnitStart(audioUnit); + if (err != noErr) { + NSLog(@"AudioOutput: Unable to start AudioUnit"); + return NO; + } + + return YES; +} + +- (BOOL) mixFrames:(void *)frames amount:(unsigned int)nsamp { + unsigned int i, s; + BOOL retVal = NO; + + /* + * The real mixer: + */ + NSMutableArray *mix = [[NSMutableArray alloc] init]; + NSMutableArray *del = [[NSMutableArray alloc] init]; + unsigned int nchan = numChannels; + + /* if volume is too low, skip. */ + + [outputLock readLock]; + for (NSNumber *sessionKey in outputs) { + MKAudioOutputUser *ou = [outputs objectForKey:sessionKey]; + if (! [ou needSamples:nsamp]) { + [del addObject:ou]; + } else { + [mix addObject:ou]; + } + } + + float *mixBuffer = alloca(sizeof(float)*numChannels*nsamp); + memset(mixBuffer, 0, sizeof(float)*numChannels*nsamp); + + if ([mix count] > 0) { + for (MKAudioOutputUser *ou in mix) { + const float * restrict userBuffer = [ou buffer]; + for (s = 0; s < nchan; ++s) { + const float str = speakerVolume[s]; + float * restrict o = (float *)mixBuffer + s; + for (i = 0; i < nsamp; ++i) { + o[i*nchan] += userBuffer[i] * str; + } + } + } + + short *outputBuffer = (short *)frames; + for (i = 0; i < nsamp * numChannels; ++i) { + if (mixBuffer[i] > 1.0f) { + outputBuffer[i] = 32768; + } else if (mixBuffer[i] < -1.0f) { + outputBuffer[i] = -32768; + } else { + outputBuffer[i] = mixBuffer[i] * 32768.0f; + } + } + } else { + memset((short *)frames, 0, nsamp * numChannels); + } + + [outputLock unlock]; + + for (MKAudioOutputUser *ou in del) { + [self removeBuffer:ou]; + } + + retVal = [mix count] > 0; + + [mix release]; + [del release]; + + return retVal; +} + +- (void) removeBuffer:(MKAudioOutputUser *)u { + [outputLock writeLock]; + + MKUser *user = [u user]; + NSUInteger session = [user session]; + [outputs removeObjectForKey:[NSNumber numberWithUnsignedInt:session]]; + + [outputLock unlock]; +} + +- (void) addFrameToBufferWithUser:(MKUser *)user data:(NSData *)data sequence:(NSUInteger)seq type:(MKMessageType)msgType { + if (numChannels == 0) + return; + + [outputLock readLock]; + NSInteger session = [user session]; + MKAudioOutputSpeech *outputUser = [outputs objectForKey:[NSNumber numberWithUnsignedInt:session]]; + if (outputUser == nil || [outputUser messageType] != msgType) { + [outputLock unlock]; + + if (outputUser != nil) { + [self removeBuffer:outputUser]; + } + + NSLog(@"AudioOutput: No AudioOutputSpeech for user, allocating."); + + [outputLock writeLock]; + outputUser = [[MKAudioOutputSpeech alloc] initWithUser:user sampleRate:mixerFrequency messageType:msgType]; + [outputs setObject:outputUser forKey:[NSNumber numberWithUnsignedInt:session]]; + [outputUser release]; + } + + [outputUser addFrame:data forSequence:seq]; + [outputLock unlock]; +} + +@end diff --git a/src/MKAudioOutputSpeech.m b/src/MKAudioOutputSpeech.m new file mode 100644 index 0000000..fba6481 --- /dev/null +++ b/src/MKAudioOutputSpeech.m @@ -0,0 +1,339 @@ +/* Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk> + Copyright (C) 2005-2010 Thorvald Natvig <thorvald@natvig.com> + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + - Neither the name of the Mumble Developers nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#import <MumbleKit/MKAudioOutputSpeech.h> +#import <MumbleKit/MKPacketDataStream.h> + +#include <pthread.h> + +@implementation MKAudioOutputSpeech + +- (id) initWithUser:(MKUser *)u sampleRate:(NSUInteger)freq messageType:(MKMessageType)type { + self = [super init]; + if (self == nil) + return nil; + + user = u; + messageType = type; + + NSUInteger sampleRate; + + if (type != UDPVoiceSpeexMessage) { + sampleRate = SAMPLE_RATE; + frameSize = sampleRate / 100; + } else { + sampleRate = 32000; + NSLog(@"AudioOutputSpeech: No Speex support (yet)."); + } + + if (freq != sampleRate) { + NSLog(@"AudioOutputSpeech: freq != sampleRate"); + } + + outputSize = frameSize; + bufferOffset = bufferFilled = lastConsume = 0; + + lastAlive = TRUE; + + missCount = 0; + missedFrames = 0; + + flags = 0xff; + + jitter = jitter_buffer_init(frameSize); + int margin = /* g.s.iJitterBufferSize */ 10 * frameSize; + jitter_buffer_ctl(jitter, JITTER_BUFFER_SET_MARGIN, &margin); + + fadeIn = malloc(sizeof(float)*frameSize); + fadeOut = malloc(sizeof(float)*frameSize); + + float mul = (float)(M_PI / (2.0 * (float)frameSize)); + NSUInteger i; + for (i = 0; i < frameSize; ++i) { + fadeIn[i] = fadeOut[frameSize-i-1] = sinf((float)i * mul); + } + + frames = [[NSMutableArray alloc] init]; + celtMode = celt_mode_create(SAMPLE_RATE, SAMPLE_RATE/100, NULL); + celtDecoder = celt_decoder_create(celtMode, 1, NULL); + + int err = pthread_mutex_init(&jitterMutex, NULL); + if (err != 0) { + NSLog(@"AudioOutputSpeech: pthread_mutex_init() failed."); + return nil; + } + + return self; +} + +- (void) dealloc { + [super dealloc]; + + if (celtDecoder) + celt_decoder_destroy(celtDecoder); + if (celtMode) + celt_mode_destroy(celtMode); +} + +- (MKUser *) user { + return user; +} + +- (MKMessageType) messageType { + return messageType; +} + +- (void) addFrame:(NSData *)data forSequence:(NSUInteger)seq { + int err = pthread_mutex_lock(&jitterMutex); + if (err != 0) { + NSLog(@"AudioOutputSpeech: pthread_mutex_lock() failed."); + return; + } + + if ([data length] < 2) { + pthread_mutex_unlock(&jitterMutex); + return; + } + + MKPacketDataStream *pds = [[MKPacketDataStream alloc] initWithData:data]; + [pds next]; + + int nframes = 0; + unsigned int header = 0; + do { + header = (unsigned int)[pds next]; + ++nframes; + [pds skip:(header & 0x7f)]; + } while ((header & 0x80) && [pds valid]); + + if (! [pds valid]) { + [pds release]; + NSLog(@"addFrame:: Invalid pds."); + pthread_mutex_unlock(&jitterMutex); + return; + } + + JitterBufferPacket jbp; + jbp.data = (char *)[data bytes]; + jbp.len = [data length]; + jbp.span = frameSize * nframes; + jbp.timestamp = frameSize * seq; + + jitter_buffer_put(jitter, &jbp); + + [pds release]; + + err = pthread_mutex_unlock(&jitterMutex); + if (err != 0) { + NSLog(@"AudioOutputSpeech: Unable to unlock() jitter mutex."); + return; + } +} + +- (BOOL) needSamples:(NSUInteger)nsamples { + NSUInteger i; + + for (i = lastConsume; i < bufferFilled; ++i) { + buffer[i-lastConsume] = buffer[i]; + } + bufferFilled -= lastConsume; + + lastConsume = nsamples; + + if (bufferFilled >= nsamples) { + NSLog(@"AudioOutputSpeech: bufferFilled >= nsamples... returning lastAlive."); + return lastAlive; + } + + float *output = NULL; + BOOL nextAlive = lastAlive; + + while (bufferFilled < nsamples) { + [self resizeBuffer:(bufferFilled + outputSize)]; + output = buffer + bufferFilled; + + if (! lastAlive) { + memset(output, 0, frameSize * sizeof(float)); + } else { + int avail = 0; + int ts = jitter_buffer_get_pointer_timestamp(jitter); + jitter_buffer_ctl(jitter, JITTER_BUFFER_GET_AVAILABLE_COUNT, &avail); + + if (user && (ts == 0)) { + int want = (int)averageAvailable; // fixme(mkrautz): Was iroundf. + if (avail < want) { + ++missCount; + if (missCount < 20) { + memset(output, 0, frameSize * sizeof(float)); + goto nextframe; + } + } + } + + if ([frames count] == 0) { + int err = pthread_mutex_lock(&jitterMutex); + if (err != 0) { + NSLog(@"AudioOutputSpeech: unable to lock() mutex."); + } + + // lock jitter mutex + char data[4096]; + + JitterBufferPacket jbp; + jbp.data = data; + jbp.len = 4096; + + spx_int32_t startofs = 0; + + if (jitter_buffer_get(jitter, &jbp, frameSize, &startofs) == JITTER_BUFFER_OK) { + MKPacketDataStream *pds = [[MKPacketDataStream alloc] initWithBuffer:(unsigned char *)jbp.data length:jbp.len]; + + missCount = 0; + flags = (unsigned char)[pds next]; + hasTerminator = NO; + + unsigned int header = 0; + do { + header = (unsigned int)[pds next]; + if (header) { + NSData *block = [pds copyDataBlock:(header & 0x7f)]; + [frames addObject:block]; + [block release]; + } else { + hasTerminator = YES; + } + } while ((header & 0x80) && [pds valid]); + + if ([pds left]) { + pos[0] = [pds getFloat]; + pos[1] = [pds getFloat]; + pos[2] = [pds getFloat]; + } else { + pos[0] = pos[1] = pos[2] = 0.0f; + } + + [pds release]; + + float a = (float) avail; + if (a >= averageAvailable) { + averageAvailable = a; + } else { + averageAvailable *= 0.99f; + } + } else { + NSLog(@"AudioOutputSpeech: Nothing in jitter buffer..."); + jitter_buffer_update_delay(jitter, &jbp, NULL); + + ++missCount; + if (missCount > 10) { + nextAlive = NO; + } + } + + err = pthread_mutex_unlock(&jitterMutex); + if (err != 0) { + NSLog(@"AudioOutputSpeech: Unable to unlock mutex."); + } + } + + if ([frames count] > 0) { + NSData *frameData = [frames objectAtIndex:0]; + + if (messageType != UDPVoiceSpeexMessage) { + if ([frameData length] != 0) { + celt_decode_float(celtDecoder, [frameData bytes], [frameData length], output); + } else { + celt_decode_float(celtDecoder, NULL, 0, output); + } + } else { + NSLog(@"AudioOutputSpeech: Don't know how to decode Speex."); + } + + [frames removeObjectAtIndex:0]; + + BOOL update = YES; + + float pow = 0.0f; + for (i = 0; i < frameSize; ++i) { + pow += output[i] * output[i]; + } + pow = sqrtf(pow / frameSize); + if (pow > powerMax) { + powerMax = pow; + } else { + if (pow <= powerMin) { + powerMin = pow; + } else { + powerMax = 0.99f * powerMax; + powerMin += 0.0001f * pow; + } + } + + update = (pow < (powerMin + 0.01f * (powerMax - powerMin))); + + if ([frames count] == 0 && update) { + jitter_buffer_update_delay(jitter, NULL, NULL); + } + + if ([frames count] == 0 && hasTerminator) { + nextAlive = NO; + } + } else { + if (messageType != UDPVoiceSpeexMessage) { + celt_decode_float(celtDecoder, NULL, 0, output); + } else { + NSLog(@"AudioOutputSpeech: I don't handle Speex."); + } + } + + if (! nextAlive) { + for (i = 0; i < frameSize; i++) { + output[i] *= fadeOut[i]; + } + } else if (ts == 0) { + for (i = 0; i < frameSize; i++) { + output[i] *= fadeIn[i]; + } + } + + jitter_buffer_tick(jitter); + } + +nextframe: + bufferFilled += outputSize; + } + + BOOL tmp = lastAlive; + lastAlive = nextAlive; + return tmp; +} + +@end diff --git a/src/MKAudioOutputUser.m b/src/MKAudioOutputUser.m new file mode 100644 index 0000000..672d7a0 --- /dev/null +++ b/src/MKAudioOutputUser.m @@ -0,0 +1,87 @@ +/* Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk> + Copyright (C) 2005-2010 Thorvald Natvig <thorvald@natvig.com> + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + - Neither the name of the Mumble Developers nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#import <MumbleKit/MKAudioOutputUser.h> + +@implementation MKAudioOutputUser + +- (id) init { + self = [super init]; + if (self == nil) + return nil; + + bufferSize = 0; + buffer = NULL; + volume = NULL; + + pos[0] = pos[1] = pos[2] = 0.0f; + + return self; +} + +- (void) dealloc { + [super dealloc]; + + if (buffer) + free(buffer); + if (volume) + free(volume); +} + +- (MKUser *) user { + return nil; +} + +- (float *) buffer { + return buffer; +} + +- (NSUInteger) bufferLength { + return bufferSize; +} + +- (void) resizeBuffer:(NSUInteger)newSize { + if (newSize > bufferSize) { + float *n = malloc(sizeof(float)*newSize); + if (buffer) { + memcpy(n, buffer, sizeof(float)*bufferSize); + free(buffer); + } + buffer = n; + bufferSize = newSize; + } +} + +- (BOOL) needSamples:(NSUInteger)nsamples { + return NO; +} + +@end diff --git a/src/MKChannel.m b/src/MKChannel.m new file mode 100644 index 0000000..e9faca4 --- /dev/null +++ b/src/MKChannel.m @@ -0,0 +1,173 @@ +/* Copyright (C) 2010 Mikkel Krautz <mikkel@krautz.dk> + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + - Neither the name of the Mumble Developers nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#import <MumbleKit/MKChannel.h> +#import <MumbleKit/MKUser.h> + +@implementation MKChannel + +- (id) init { + self = [super init]; + if (self == nil) + return nil; + + inheritACL = YES; + channelList = [[NSMutableArray alloc] init]; + userList = [[NSMutableArray alloc] init]; + ACLList = [[NSMutableArray alloc] init]; + + return self; +} + +- (void) dealloc { + [channelName release]; + + [userList release]; + [channelList release]; + [ACLList release]; + + [super dealloc]; +} + +#pragma mark - + +- (NSUInteger) treeDepth { + return depth; +} + +- (void) setTreeDepth:(NSUInteger)treeDepth { + depth = treeDepth; +} + +#pragma mark - + +- (void) addChannel:(MKChannel *)chan { + [chan setParent:self]; + [channelList addObject:chan]; +} + +- (void) removeChannel:(MKChannel *)chan { + [chan setParent:nil]; + [channelList removeObject:chan]; +} + +- (void) addUser:(MKUser *)user { + MKChannel *chan = [user channel]; + [chan removeUser:user]; + [user setChannel:self]; + [userList addObject:user]; +} + +- (void) removeUser:(MKUser *)user { + [userList removeObject:user]; +} + +- (NSUInteger) numChildren { + NSUInteger count = 0; + for (MKChannel *c in channelList) { + count += 1 + [c numChildren]; + } + return count + [userList count]; +} + +#pragma mark - + +- (BOOL) linkedToChannel:(MKChannel *)chan { + for (MKChannel *c in linkedList) { + if (c == chan) { + return YES; + } + } + return NO; +} + +- (void) linkToChannel:(MKChannel *)chan { + if ([self linkedToChannel:chan]) + return; + + [linkedList addObject:chan]; + [chan->linkedList addObject:self]; +} + +- (void) unlinkFromChannel:(MKChannel *)chan { + [linkedList removeObject:chan]; + [chan->linkedList removeObject:self]; +} + +- (void) unlinkAll { + for (MKChannel *chan in linkedList) { + [self unlinkFromChannel:chan]; + } +} + +#pragma mark - + +- (void) setChannelName:(NSString *)name { + [channelName release]; + channelName = [name copy]; +} + +- (NSString *) channelName { + return channelName; +} + +- (void) setParent:(MKChannel *)chan { + channelParent = chan; +} + +- (MKChannel *) parent { + return channelParent; +} + +- (void) setChannelId:(NSUInteger)chanId { + channelId = chanId; +} + +- (NSUInteger) channelId { + return channelId; +} + +- (void) setTemporary:(BOOL)flag { + temporary = flag; +} + +- (BOOL) temporary { + return temporary; +} + +- (NSInteger) position { + return position; +} + +- (void) setPosition:(NSInteger)pos { + position = pos; +} + +@end diff --git a/src/MKConnection.m b/src/MKConnection.m new file mode 100644 index 0000000..001841d --- /dev/null +++ b/src/MKConnection.m @@ -0,0 +1,599 @@ +/* Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk> + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + - Neither the name of the Mumble Developers nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#import <MumbleKit/MKUtils.h> +#import <MumbleKit/MKConnection.h> +#import <MumbleKit/MKPacketDataStream.h> +#import <MumbleKit/MKUser.h> +#import <MumbleKit/MKAudioOutput.h> + +#import <CFNetwork/CFNetwork.h> + +#import "NSInvocation(MumbleKitAdditions).h" + +#include <sys/socket.h> +#include <sys/types.h> +#include <netinet/in.h> +#include <netinet/tcp.h> + +/* + * The SecureTransport.h header is not available on the iPhone, so + * these constants are lifted from the Mac OS X version of the header. + */ +#define errSSLProtocol -9800 +#define errSSLXCertChainInvalid -9807 +#define errSSLLast -9849 + +@implementation MKConnection + +- (id) init { + self = [super init]; + if (self == nil) + return nil; + + packetLength = -1; + _connectionEstablished = NO; + _socket = -1; + _ignoreSSLVerification = NO; + + return self; +} + +- (void) dealloc { + [self closeStreams]; + + [super dealloc]; +} + +- (void) connectToHost:(NSString *)hostName port:(NSUInteger)portNumber { + + packetLength = -1; + _connectionEstablished = NO; + + hostname = hostName; + port = portNumber; + + CFStreamCreatePairWithSocketToHost(kCFAllocatorDefault, + (CFStringRef)hostname, port, + (CFReadStreamRef *) &_inputStream, + (CFWriteStreamRef *) &_outputStream); + + if (_inputStream == nil || _outputStream == nil) { + NSLog(@"MKConnection: Unable to create stream pair."); + return; + } + + [_inputStream setDelegate:self]; + [_outputStream setDelegate:self]; + + [_inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; + [_outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; + + [self _setupSsl]; + + [_inputStream open]; + [_outputStream open]; +} + +- (void) closeStreams { + NSLog(@"MKConnection: Closing streams."); + + if (_inputStream) { + [_inputStream close]; + [_inputStream release]; + _inputStream = nil; + } + + if (_outputStream) { + [_outputStream close]; + [_outputStream release]; + _outputStream = nil; + } + + [_pingTimer invalidate]; + _pingTimer = nil; +} + +- (void) reconnect { + [self closeStreams]; + + NSLog(@"MKConnection: Reconnecting..."); + [self connectToHost:hostname port:port]; +} + +- (BOOL) connected { + return _connectionEstablished; +} + +#pragma mark NSStream event handlers + +- (void) stream:(NSStream *)stream handleEvent:(NSStreamEvent)eventCode { + + if (stream == _inputStream) { + if (eventCode == NSStreamEventHasBytesAvailable) + [self dataReady]; + return; + } + + switch (eventCode) { + case NSStreamEventOpenCompleted: { + /* + * The OpenCompleted is a bad indicator of 'ready to use' for a + * TLS socket, since it will fire even before the TLS handshake + * has even begun. Instead, we rely on the first CanAcceptBytes + * event we receive to determine that a connection was established. + * + * We only use this event to extract our underlying socket. + */ + CFDataRef nativeHandle = CFWriteStreamCopyProperty((CFWriteStreamRef) _outputStream, kCFStreamPropertySocketNativeHandle); + if (nativeHandle) { + _socket = *(int *)CFDataGetBytePtr(nativeHandle); + CFRelease(nativeHandle); + } else { + NSLog(@"MKConnection: Unable to get socket file descriptor from stream. Breakage may occur."); + } + + if (_socket != -1) { + int val = 1; + setsockopt(_socket, IPPROTO_TCP, TCP_NODELAY, &val, sizeof(val)); + NSLog(@"MKConnection: TCP_NODELAY=1"); + } + break; + } + + case NSStreamEventHasSpaceAvailable: { + if (! _connectionEstablished) { + _connectionEstablished = YES; + + /* First, schedule our ping timer. */ + NSInvocation *timerInvocation = [NSInvocation invocationWithTarget:self selector:@selector(_pingTimerFired)]; + _pingTimer = [NSTimer timerWithTimeInterval:MKConnectionPingInterval invocation:timerInvocation repeats:YES]; + [[NSRunLoop currentRunLoop] addTimer:_pingTimer forMode:NSRunLoopCommonModes]; + + /* Invoke connectionOpened: on our delegate. */ + NSInvocation *delegateInvoker = [NSInvocation invocationWithTarget:_delegate selector:@selector(connectionOpened:)]; + [delegateInvoker setArgument:&self atIndex:2]; + [delegateInvoker invokeOnMainThread]; + } + break; + } + + case NSStreamEventErrorOccurred: { + NSLog(@"MKConnection: ErrorOccurred"); + NSError *err = [_outputStream streamError]; + [self handleError:err]; + break; + } + + case NSStreamEventEndEncountered: + NSLog(@"MKConnection: EndEncountered"); + break; + + default: + NSLog(@"MKConnection: Unknown event (%u)", eventCode); + break; + } +} + +#pragma mark - + +- (void) setDelegate:(id<MKConnectionDelegate>)delegate { + _delegate = delegate; +} + +- (id<MKConnectionDelegate>) delegate { + return _delegate; +} + +- (void) setMessageHandler:(id<MKMessageHandler>)messageHandler { + _msgHandler = messageHandler; +} + +- (id<MKMessageHandler>) messageHandler { + return _msgHandler; +} + +#pragma mark - + +/* + * Setup our CFStreams for SSL. + */ +- (void) _setupSsl { + CFMutableDictionaryRef sslDictionary = CFDictionaryCreateMutable(kCFAllocatorDefault, 0, + &kCFTypeDictionaryKeyCallBacks, + &kCFTypeDictionaryValueCallBacks); + + if (sslDictionary) { + CFDictionaryAddValue(sslDictionary, kCFStreamSSLLevel, kCFStreamSocketSecurityLevelTLSv1); + /* + * The CFNetwork headers dictates that using the following properties: + * + * - kCFStreamSSLAllowsExpiredCertificates + * - kCFStreamSSLAllowsExpiredRoots + * - kCFSTreamSSLAllowsAnyRoot + * + * has been deprecated in favor of using kCFStreamSSLValidatesCertificateChain. + */ + CFDictionaryAddValue(sslDictionary, kCFStreamSSLValidatesCertificateChain, _ignoreSSLVerification ? kCFBooleanFalse : kCFBooleanTrue); + } + + CFWriteStreamSetProperty((CFWriteStreamRef) _outputStream, kCFStreamPropertySSLSettings, sslDictionary); + CFReadStreamSetProperty((CFReadStreamRef) _inputStream, kCFStreamPropertySSLSettings, sslDictionary); + + CFRelease(sslDictionary); +} + +- (void) setIgnoreSSLVerification:(BOOL)flag { + _ignoreSSLVerification = flag; +} + +- (NSArray *) certificates { + NSArray *certs = (NSArray *) CFWriteStreamCopyProperty((CFWriteStreamRef) _outputStream, kCFStreamPropertySSLPeerCertificates); + return [certs autorelease]; +} + +- (void) sendMessageWithType:(MKMessageType)messageType buffer:(unsigned char *)buf length:(NSUInteger)len { + UInt16 type = CFSwapInt16HostToBig((UInt16)messageType); + UInt32 length = CFSwapInt32HostToBig(len); + + [_outputStream write:(unsigned char *)&type maxLength:sizeof(UInt16)]; + [_outputStream write:(unsigned char *)&length maxLength:sizeof(UInt32)]; + [_outputStream write:buf maxLength:len]; +} + +- (void) sendMessageWithType:(MKMessageType)messageType data:(NSData *)data { + [self sendMessageWithType:messageType buffer:(unsigned char *)[data bytes] length:[data length]]; +} + +-(void) dataReady { + unsigned char buffer[6]; + + if (! packetBuffer) { + packetBuffer = [[NSMutableData alloc] initWithLength:0]; + } + + /* We aren't currently retrieveing a packet. */ + if (packetLength == -1) { + NSInteger availableBytes = [_inputStream read:&buffer[0] maxLength:6]; + if (availableBytes < 6) { + return; + } + + packetType = (MKMessageType) CFSwapInt16BigToHost(*(UInt16 *)(&buffer[0])); + packetLength = (int) CFSwapInt32BigToHost(*(UInt32 *)(&buffer[2])); + + packetBufferOffset = 0; + [packetBuffer setLength:packetLength]; + } + + /* We're recv'ing a packet. */ + if (packetLength > 0) { + UInt8 *packetBytes = [packetBuffer mutableBytes]; + if (! packetBytes) { + NSLog(@"MKConnection: NSMutableData is stubborn."); + return; + } + + NSInteger availableBytes = [_inputStream read:packetBytes + packetBufferOffset maxLength:packetLength]; + packetLength -= availableBytes; + packetBufferOffset += availableBytes; + } + + /* Done! */ + if (packetLength == 0) { + [self messageRecieved:packetBuffer]; + [packetBuffer setLength:0]; // fixme(mkrautz): Is this one needed? + packetLength = -1; + } +} + +/* + * Ping timer fired. + */ +- (void) _pingTimerFired { + NSData *data; + MPPing_Builder *ping = [MPPing builder]; + + [ping setTimestamp:0]; + [ping setGood:0]; + [ping setLate:0]; + [ping setLost:0]; + [ping setResync:0]; + + [ping setUdpPingAvg:0.0f]; + [ping setUdpPingVar:0.0f]; + [ping setUdpPackets:0]; + [ping setTcpPingAvg:0.0f]; + [ping setTcpPingVar:0.0f]; + [ping setTcpPackets:0]; + + data = [[ping build] data]; + [self sendMessageWithType:PingMessage data:data]; + + NSLog(@"MKConnection: Sent ping message."); +} + +- (void) _pingResponseFromServer:(MPPing *)pingMessage { + NSLog(@"MKConnection: pingResponseFromServer"); +} + +- (void) handleError:(NSError *)streamError { + NSInteger errorCode = [streamError code]; + + /* Is the error an SSL-related error? (OSStatus errors are negative, so the + * greater than and less than signs are sort-of reversed here. */ + if (errorCode <= errSSLProtocol && errorCode > errSSLLast) { + [self handleSslError:streamError]; + } + + NSLog(@"MKConnection: Error: %@", streamError); +} + +- (void) handleSslError:(NSError *)streamError { + + if ([streamError code] == errSSLXCertChainInvalid) { + SecTrustRef trust = (SecTrustRef) CFWriteStreamCopyProperty((CFWriteStreamRef) _outputStream, kCFStreamPropertySSLPeerTrust); + SecTrustResultType trustResult; + if (SecTrustEvaluate(trust, &trustResult) != noErr) { + /* Unable to evaluate trust. */ + } + + switch (trustResult) { + /* Invalid setting or result. Indicates the SecTrustEvaluate() did not finish completely. */ + case kSecTrustResultInvalid: + /* May be trusted for the purposes designated. ('Always Trust' in Keychain) */ + case kSecTrustResultProceed: + /* User confirmation is required before proceeding. ('Ask Permission' in Keychain) */ + case kSecTrustResultConfirm: + /* This certificate is not trusted. ('Never Trust' in Keychain) */ + case kSecTrustResultDeny: + /* No trust setting specified. ('Use System Policy' in Keychain) */ + case kSecTrustResultUnspecified: + /* Fatal trust failure. Trust cannot be established without replacing the certificate. + * This error is thrown when the certificate is corrupt. */ + case kSecTrustResultFatalTrustFailure: + /* A non-trust related error. Possibly internal error in SecTrustEvaluate(). */ + case kSecTrustResultOtherError: + break; + + /* A recoverable trust failure. */ + case kSecTrustResultRecoverableTrustFailure: { + NSArray *certificates = [self certificates]; + NSInvocation *invocation = [NSInvocation invocationWithTarget:_delegate selector:@selector(connection:trustFailureInCertificateChain:)]; + [invocation setArgument:&self atIndex:2]; + [invocation setArgument:&certificates atIndex:3]; + [invocation invokeOnMainThread]; + break; + } + } + + CFRelease(trust); + } +} + +- (void) messageRecieved: (NSData *)data { + NSInvocation *invocation; + + /* No message handler has been assigned. Don't propagate. */ + if (! _msgHandler) + return; + + switch (packetType) { + case VersionMessage: { + MPVersion *v = [MPVersion parseFromData:data]; + invocation = [NSInvocation invocationWithTarget:_msgHandler selector:@selector(handleVersionMessage:)]; + [invocation setArgument:&v atIndex:2]; + [invocation invokeOnMainThread]; + break; + } + case AuthenticateMessage: { + MPAuthenticate *a = [MPAuthenticate parseFromData:data]; + invocation = [NSInvocation invocationWithTarget:_msgHandler selector:@selector(handleAuthenticateMessage:)]; + [invocation setArgument:&a atIndex:2]; + [invocation invokeOnMainThread]; + break; + } + case RejectMessage: { + MPReject *r = [MPReject parseFromData:data]; + invocation = [NSInvocation invocationWithTarget:_msgHandler selector:@selector(handleRejectMessage:)]; + [invocation setArgument:&r atIndex:2]; + [invocation invokeOnMainThread]; + break; + } + case ServerSyncMessage: { + MPServerSync *ss = [MPServerSync parseFromData:data]; + invocation = [NSInvocation invocationWithTarget:_msgHandler selector:@selector(handleServerSyncMessage:)]; + [invocation setArgument:&ss atIndex:2]; + [invocation invokeOnMainThread]; + break; + } + case ChannelRemoveMessage: { + MPChannelRemove *chrm = [MPChannelRemove parseFromData:data]; + invocation = [NSInvocation invocationWithTarget:_msgHandler selector:@selector(handleChannelRemoveMessage:)]; + [invocation setArgument:&chrm atIndex:2]; + [invocation invokeOnMainThread]; + break; + } + case ChannelStateMessage: { + MPChannelState *chs = [MPChannelState parseFromData:data]; + invocation = [NSInvocation invocationWithTarget:_msgHandler selector:@selector(handleChannelStateMessage:)]; + [invocation setArgument:&chs atIndex:2]; + [invocation invokeOnMainThread]; + break; + } + case UserRemoveMessage: { + MPUserRemove *urm = [MPUserRemove parseFromData:data]; + invocation = [NSInvocation invocationWithTarget:_msgHandler selector:@selector(handleUserRemoveMessage:)]; + [invocation setArgument:&urm atIndex:2]; + [invocation invokeOnMainThread]; + break; + } + case UserStateMessage: { + MPUserState *us = [MPUserState parseFromData:data]; + invocation = [NSInvocation invocationWithTarget:_msgHandler selector:@selector(handleUserStateMessage:)]; + [invocation setArgument:&us atIndex:2]; + [invocation invokeOnMainThread]; + break; + } + case BanListMessage: { + MPBanList *bl = [MPBanList parseFromData:data]; + invocation = [NSInvocation invocationWithTarget:_msgHandler selector:@selector(handleBanListMessage:)]; + [invocation setArgument:&bl atIndex:2]; + [invocation invokeOnMainThread]; + break; + } + case TextMessageMessage: { + MPTextMessage *tm = [MPTextMessage parseFromData:data]; + invocation = [NSInvocation invocationWithTarget:_msgHandler selector:@selector(handleTextMessageMessage:)]; + [invocation setArgument:&tm atIndex:2]; + [invocation invokeOnMainThread]; + break; + } + case PermissionDeniedMessage: { + MPPermissionDenied *pm = [MPPermissionDenied parseFromData:data]; + invocation = [NSInvocation invocationWithTarget:_msgHandler selector:@selector(handlePermissionDeniedMessage:)]; + [invocation setArgument:&pm atIndex:2]; + [invocation invokeOnMainThread]; + break; + } + case ACLMessage: { + MPACL *acl = [MPACL parseFromData:data]; + invocation = [NSInvocation invocationWithTarget:_msgHandler selector:@selector(handleACLMessage:)]; + [invocation setArgument:&acl atIndex:2]; + [invocation invokeOnMainThread]; + break; + } + case QueryUsersMessage: { + MPQueryUsers *qu = [MPQueryUsers parseFromData:data]; + invocation = [NSInvocation invocationWithTarget:_msgHandler selector:@selector(handleQueryUsersMessage:)]; + [invocation setArgument:&qu atIndex:2]; + [invocation invokeOnMainThread]; + break; + } + case CryptSetupMessage: { + MPCryptSetup *cs = [MPCryptSetup parseFromData:data]; + invocation = [NSInvocation invocationWithTarget:_msgHandler selector:@selector(handleCryptSetupMessage:)]; + [invocation setArgument:&cs atIndex:2]; + [invocation invokeOnMainThread]; + break; + } + case ContextActionAddMessage: { + MPContextActionAdd *caa = [MPContextActionAdd parseFromData:data]; + invocation = [NSInvocation invocationWithTarget:_msgHandler selector:@selector(handleContextActionAddMessage:)]; + [invocation setArgument:&caa atIndex:2]; + [invocation invokeOnMainThread]; + break; + } + case ContextActionMessage: { + MPContextAction *ca = [MPContextAction parseFromData:data]; + invocation = [NSInvocation invocationWithTarget:_msgHandler selector:@selector(handleContextActionMessage:)]; + [invocation setArgument:&ca atIndex:2]; + [invocation invokeOnMainThread]; + break; + } + case UserListMessage: { + MPUserList *ul = [MPUserList parseFromData:data]; + invocation = [NSInvocation invocationWithTarget:_msgHandler selector:@selector(handleUserListMessage:)]; + [invocation setArgument:&ul atIndex:2]; + [invocation invokeOnMainThread]; + break; + } + case VoiceTargetMessage: { + MPVoiceTarget *vt = [MPVoiceTarget parseFromData:data]; + invocation = [NSInvocation invocationWithTarget:_msgHandler selector:@selector(handleVoiceTargetMessage:)]; + [invocation setArgument:&vt atIndex:2]; + [invocation invokeOnMainThread]; + break; + } + case PermissionQueryMessage: { + MPPermissionQuery *pq = [MPPermissionQuery parseFromData:data]; + invocation = [NSInvocation invocationWithTarget:_msgHandler selector:@selector(handlePermissionQueryMessage:)]; + [invocation setArgument:&pq atIndex:2]; + [invocation invokeOnMainThread]; + break; + } + case CodecVersionMessage: { + MPCodecVersion *cvm = [MPCodecVersion parseFromData:data]; + invocation = [NSInvocation invocationWithTarget:_msgHandler selector:@selector(handleCodecVersionMessage:)]; + [invocation setArgument:&cvm atIndex:2]; + [invocation invokeOnMainThread]; + break; + } + case UDPTunnelMessage: { + unsigned char *buf = (unsigned char *)[data bytes]; + MKUDPMessageType messageType = ((buf[0] >> 5) & 0x7); + unsigned int messageFlags = buf[0] & 0x1f; + MKPacketDataStream *pds = [[MKPacketDataStream alloc] initWithBuffer:buf+1 length:[data length]-1]; // fixme(-1)? + + switch (messageType) { + case UDPVoiceCELTAlphaMessage: + case UDPVoiceCELTBetaMessage: + case UDPVoiceSpeexMessage: + [self handleVoicePacketOfType:messageType flags:messageFlags datastream:pds]; + break; + default: + NSLog(@"MKConnection: Unknown UDPTunnel packet received. Discarding..."); + break; + } + + [pds release]; + break; + } + case PingMessage: { + MPPing *p = [MPPing parseFromData:data]; + [self _pingResponseFromServer:p]; + break; + } + default: { + NSLog(@"MKConnection: Unknown packet type recieved. Discarding."); + break; + } + } +} + +- (void) handleVoicePacketOfType:(MKUDPMessageType)msgType flags:(NSUInteger)msgflags datastream:(MKPacketDataStream *)pds { + MK_UNUSED NSUInteger session = [pds getUnsignedInt]; + NSUInteger seq = [pds getUnsignedInt]; + + NSMutableData *voicePacketData = [[NSMutableData alloc] initWithCapacity:[pds left]+1]; + [voicePacketData setLength:[pds left]+1]; + + unsigned char *bytes = [voicePacketData mutableBytes]; + bytes[0] = (unsigned char)msgflags; + memcpy(bytes+1, [pds dataPtr], [pds left]); + + MKUser *user = nil;//[User lookupBySession:session]; + MKAudioOutput *ao = [MKAudio audioOutput]; + [ao addFrameToBufferWithUser:user data:voicePacketData sequence:seq type:msgType]; + + [voicePacketData release]; +} + +@end diff --git a/src/MKCryptState.m b/src/MKCryptState.m new file mode 100644 index 0000000..fabb190 --- /dev/null +++ b/src/MKCryptState.m @@ -0,0 +1,87 @@ +/* Copyright (C) 2005-2009, Thorvald Natvig <thorvald@natvig.com> + Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk> + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + - Neither the name of the Mumble Developers nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/* + * This code implements OCB-AES128. + * In the US, OCB is covered by patents. The inventor has given a license + * to all programs distributed under the GPL. + * Mumble is BSD (revised) licensed, meaning you can use the code in a + * closed-source program. If you do, you'll have to either replace + * OCB with something else or get yourself a license. + */ + +#import <MumbleKit/MKCryptState.h> + +@implementation MKCryptState + +- (id) init { + int i; + + self = [super init]; + if (self == nil) + return nil; + + for (i = 0; i < 0x100; i++) + decryptHistory[i] = 0; + + initialized = NO; + numGood = numLost = numResync = 0; + + return self; +} + +- (void) dealloc { + [super dealloc]; + NSLog(@"CryptState: Dealloc."); +} + +- (BOOL) valid { + return initialized; +} + +- (void) generateKey { +} + +- (void) setKey:(NSData *)key eiv:(NSData *)enc div:(NSData *)dec { +} + +- (void) setDecryptIV:(NSData *)dec { +} + +- (NSData *) encryptData:(NSData *)data { + return nil; +} + +- (NSData *) decryptData:(NSData *)data { + return nil; +} + +@end diff --git a/src/MKPacketDataStream.m b/src/MKPacketDataStream.m new file mode 100644 index 0000000..ee36faa --- /dev/null +++ b/src/MKPacketDataStream.m @@ -0,0 +1,325 @@ +/* Copyright (C) 2005-2010 Thorvald Natvig <thorvald@natvig.com> + Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk> + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + - Neither the name of the Mumble Developers nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#import <MumbleKit/MKPacketDataStream.h> + +@implementation MKPacketDataStream + +- (id) initWithData:(NSData *)ourContainer { + self = [super init]; + if (self == nil) + return nil; + + immutableData = ourContainer; + [immutableData retain]; + + data = (unsigned char *)[immutableData bytes]; + offset = 0; + overshoot = 0; + maxSize = [immutableData length]; + ok = YES; + + return self; +} + +- (id) initWithMutableData:(NSMutableData *)ourContainer { + self = [super init]; + if (self == nil) + return nil; + + mutableData = ourContainer; + [mutableData retain]; + + data = [mutableData mutableBytes]; + offset = 0; + overshoot = 0; + maxSize = [mutableData capactiy]; // fixme(mkrautz) + ok = YES; + + return self; +} + +- (id) initWithBuffer:(unsigned char *)buffer length:(NSUInteger)len { + self = [super init]; + if (self == nil) + return nil; + + mutableData = nil; + data = buffer; + offset = 0; + overshoot = 0; + maxSize = len; + ok = YES; + + return self; +} + +- (void) dealloc { + [super dealloc]; + [mutableData release]; + [immutableData release]; +} + +- (NSUInteger) size { + return offset; +} + +- (NSUInteger) capactiy { + return maxSize; +} + +- (NSUInteger) left { + return maxSize - offset; +} + +- (BOOL) valid { + return ok; +} + +- (void) appendValue:(uint64_t)value { + assert(value <= 0xff); + + if (offset < maxSize) + data[offset++] = (unsigned char)value; + else { + ok = NO; + overshoot++; + } +} + +- (void) appendBytes:(unsigned char *)buffer length:(NSUInteger)len { + if ([self left] >= len) { + memcpy(&data[offset], buffer, len); + offset += len; + } else { + int l = [self left]; + memset(&data[offset], 0, l); + overshoot += len - l; + ok = NO; + } +} + +- (void) skip:(NSUInteger)amount { + if ([self left] >= amount) { + offset += amount; + } else + ok = NO; +} + +- (uint64_t) next { + if (offset < maxSize) { + return data[offset++]; + } else { + ok = NO; + return 0; + } +} + +- (uint8_t) next8 { + if (offset < maxSize) { + return data[offset++]; + } else { + ok = NO; + return 0; + } +} + +- (void) rewind { + offset = 0; +} + +- (void) truncate { + maxSize = offset; +} + +- (unsigned char *) dataPtr { + return (unsigned char *)&data[offset]; +} + +- (char *) charPtr { + return (char *)&data[offset]; +} + +- (NSData *) data { + return (NSData *)mutableData; +} + +- (NSMutableData *) mutableData { + return mutableData; +} + +- (void) addVarint:(uint64_t)value { + uint64_t i = value; + + if ((i & 0x8000000000000000LL) && (~i < 0x100000000LL)) { + // Signed number. + i = ~i; + if (i <= 0x3) { + // Shortcase for -1 to -4 + [self appendValue:(0xFC | i)]; + } else { + [self appendValue:(0xF8)]; + } + } + if (i < 0x80) { + // Need top bit clear + [self appendValue:i]; + } else if (i < 0x4000) { + // Need top two bits clear + [self appendValue:((i >> 8) | 0x80)]; + [self appendValue:(i & 0xFF)]; + } else if (i < 0x200000) { + // Need top three bits clear + [self appendValue:((i >> 16) | 0xC0)]; + [self appendValue:((i >> 8) & 0xFF)]; + [self appendValue:(i & 0xFF)]; + } else if (i < 0x10000000) { + // Need top four bits clear + [self appendValue:((i >> 24) | 0xE0)]; + [self appendValue:((i >> 16) & 0xFF)]; + [self appendValue:((i >> 8) & 0xFF)]; + [self appendValue:(i & 0xFF)]; + } else if (i < 0x100000000LL) { + // It's a full 32-bit integer. + [self appendValue:(0xF0)]; + [self appendValue:((i >> 24) & 0xFF)]; + [self appendValue:((i >> 16) & 0xFF)]; + [self appendValue:((i >> 8) & 0xFF)]; + [self appendValue:(i & 0xFF)]; + } else { + // It's a 64-bit value. + [self appendValue:(0xF4)]; + [self appendValue:((i >> 56) & 0xFF)]; + [self appendValue:((i >> 48) & 0xFF)]; + [self appendValue:((i >> 40) & 0xFF)]; + [self appendValue:((i >> 32) & 0xFF)]; + [self appendValue:((i >> 24) & 0xFF)]; + [self appendValue:((i >> 16) & 0xFF)]; + [self appendValue:((i >> 8) & 0xFF)]; + [self appendValue:(i & 0xFF)]; + } +} + +- (uint64_t) getVarint { + uint64_t i = 0; + uint64_t v = [self next]; + + if ((v & 0x80) == 0x00) { + i = (v & 0x7F); + } else if ((v & 0xC0) == 0x80) { + i = (v & 0x3F) << 8 | [self next]; + } else if ((v & 0xF0) == 0xF0) { + switch (v & 0xFC) { + case 0xF0: + i=[self next] << 24 | [self next] << 16 | [self next] << 8 | [self next]; + break; + case 0xF4: + i = [self next] << 56 | [self next] << 48 | [self next] << 40 | [self next] << 32 | [self next] << 24 | [self next] << 16 | [self next] << 8 | [self next]; + break; + case 0xF8: + i = [self getVarint]; + i = ~i; + break; + case 0xFC: + i = v & 0x03; + i = ~i; + break; + default: + ok = NO; + i = 0; + break; + } + } else if ((v & 0xF0) == 0xE0) { + i = (v & 0x0F) << 24 | [self next] << 16 | [self next] << 8 | [self next]; + } else if ((v & 0xE0) == 0xC0) { + i = (v & 0x1F) << 16 | [self next] << 8 | [self next]; + } + return i; +} + +- (unsigned int) getUnsignedInt { + return (unsigned int) [self getVarint]; +} + +- (int) getInt { + return (int) [self getVarint]; +} + +- (short) getShort { + return (short) [self getVarint]; +} + +- (unsigned short) getUnsignedShort { + return (unsigned short) [self getVarint]; +} + +- (char) getChar { + return (char) [self getVarint]; +} + +- (unsigned char) getUnsignedChar { + return (unsigned char) [self getVarint]; +} + +- (float) getFloat { + float32u u; + + if ([self left] < 4) { + ok = NO; + return 0.0f; + } + + u.b[0] = [self next8]; + u.b[1] = [self next8]; + u.b[2] = [self next8]; + u.b[3] = [self next8]; + + return u.f; +} + +- (double) getDouble { + NSLog(@"PacketDataStream: getDouble not implemented yet."); + return 0.0f; +} + +- (NSData *) copyDataBlock:(NSUInteger)len { + if ([self left] >= len) { + NSData *db = [[NSData alloc] initWithBytes:[self dataPtr] length:len]; + offset += len; + return db; + } else { + NSLog(@"PacketDataStream: Unable to copyDataBlock. Requsted=%u, avail=%u", len, [self left]); + ok = NO; + return nil; + } +} + +@end diff --git a/src/MKReadWriteLock.m b/src/MKReadWriteLock.m new file mode 100644 index 0000000..38a4044 --- /dev/null +++ b/src/MKReadWriteLock.m @@ -0,0 +1,129 @@ +/* Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk> + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + - Neither the name of the Mumble Developers nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/* + * MKReadWriteLock - Simple ObjC wrapper around the pthreads read/write lock. + */ + +#import <MumbleKit/MKReadWriteLock.h> + +@implementation MKReadWriteLock + +- (id) init { + int err; + + self = [super init]; + if (self == nil) + return nil; + + err = pthread_rwlock_init(&rwlock, NULL); + if (err != 0) { + NSLog(@"RWLock: Unable to initialize rwlock. Error=%i", err); + return nil; + } + + return self; +} + +- (void) dealloc { + int err; + + [super dealloc]; + + err = pthread_rwlock_destroy(&rwlock); + if (err != 0) { + NSLog(@"RWLock: Unable to destroy rwlock."); + } +} + +/* + * Try to acquire a write lock. Returns immediately. + */ +- (BOOL) tryWriteLock { + int err; + + err = pthread_rwlock_trywrlock(&rwlock); + if (err != 0) { + NSLog(@"RWLock: tryWriteLock failed: %i (%s).", err, strerror(err)); + return NO; + } + + return YES; +} + +/* + * Acquire a write lock. Block until we can get it. + */ +- (void) writeLock { + int err; + + err = pthread_rwlock_wrlock(&rwlock); + if (err != 0) { + NSLog(@"writeLock failed: %i (%s)", err, strerror(err)); + } + + assert(err == 0); +} + +/* + * Try to acquire a read lock. Returns immediately. + */ +- (BOOL) tryReadLock { + int err; + + err = pthread_rwlock_tryrdlock(&rwlock); + if (err != 0) { + return NO; + } + + return YES; +} + +/* + * Acquire a read lock. Block until it succeeds. + */ +- (void) readLock { + int err; + + err = pthread_rwlock_rdlock(&rwlock); + assert(err == 0); +} + +/* + * Unlock. + */ +- (void) unlock { + int err; + + err = pthread_rwlock_unlock(&rwlock); + assert(err == 0); +} + +@end diff --git a/src/MKServerModel.m b/src/MKServerModel.m new file mode 100644 index 0000000..7aa3cc2 --- /dev/null +++ b/src/MKServerModel.m @@ -0,0 +1,253 @@ +/* Copyright (C) 2010 Mikkel Krautz <mikkel@krautz.dk> + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + - Neither the name of the Mumble Developers nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#import <MumbleKit/MKServerModel.h> + +#define STUB \ + NSLog(@"%@: %s", [self class], __FUNCTION__) + +static NSInteger stringSort(NSString *str1, NSString *str2, void *reverse) { + if (reverse) + return [str2 compare:str1]; + else + return [str1 compare:str2]; +} + +static NSInteger channelSort(MKChannel *chan1, MKChannel *chan2, void *reverse) { + if ([chan1 position] != [chan2 position]) { + return reverse ? ([chan1 position] > [chan2 position]) : ([chan2 position] > [chan1 position]); + } else { + return stringSort([chan1 channelName], [chan2 channelName], reverse); + } +} + +@implementation MKServerModel + +- (id) init { + self = [super init]; + if (self == nil) + return nil; + + userMapLock = [[MKReadWriteLock alloc] init]; + userMap = [[NSMutableDictionary alloc] init]; + + channelMapLock = [[MKReadWriteLock alloc] init]; + channelMap = [[NSMutableDictionary alloc] init]; + + array = [[NSMutableArray alloc] init]; + + root = [[MKChannel alloc] init]; + [root setChannelId:0]; + [root setChannelName:@"Root"]; + [channelMap setObject:root forKey:[NSNumber numberWithUnsignedInt:0]]; + + return self; +} + +- (void) dealloc { + /* dealloc all. */ + [super dealloc]; +} + +- (void) updateModelArray { + [array removeAllObjects]; + [self addChannelTreeToArray:root depth:0]; +} + +- (void) addChannelTreeToArray:(MKChannel *)tree depth:(NSUInteger)currentDepth { + [array addObject:tree]; + + for (MKChannel *c in tree->channelList) { + [c setTreeDepth:currentDepth+1]; + [array addObject:c]; + [self addChannelTreeToArray:c depth:currentDepth+1]; + } + for (MKUser *u in tree->userList) { + [array addObject:u]; + [u setTreeDepth:currentDepth+1]; + } +} + +- (NSUInteger) count { + return [array count]; +} + +- (id) objectAtIndex:(NSUInteger)idx { + return [array objectAtIndex:idx]; +} + +#pragma mark - + +/* + * Add a new user. + * + * @param userSession The session of the new user. + * @param userName The username of the new user. + * + * @return + * Returns the allocated User on success. Returns nil on failure. The returned User + * is owned by the User module itself, and should not be retained or otherwise fiddled + * with. + */ +- (MKUser *) addUserWithSession:(NSUInteger)userSession name:(NSString *)userName { + MKUser *user = [[MKUser alloc] init]; + [user setSession:userSession]; + [user setUserName:userName]; + + [userMapLock writeLock]; + [userMap setObject:user forKey:[NSNumber numberWithUnsignedInt:userSession]]; + [userMapLock unlock]; + [root addUser:user]; + + [self updateModelArray]; + + return user; +} + +- (MKUser *) userWithSession:(NSUInteger)session { + [userMapLock readLock]; + MKUser *u = [userMap objectForKey:[NSNumber numberWithUnsignedInt:session]]; + [userMapLock unlock]; + return u; +} + +- (MKUser *) userWithHash:(NSString *)hash { + NSLog(@"userWithHash: notimpl."); + return nil; +} + +- (void) renameUser:(MKUser *)user to:(NSString *)newName { + STUB; +} + +- (void) setIdForUser:(MKUser *)user to:(NSUInteger)newId { + STUB; +} + +- (void) setHashForUser:(MKUser *)user to:(NSString *)newHash { + STUB; +} + +- (void) setFriendNameForUser:(MKUser *)user to:(NSString *)newFriendName { + STUB; +} + +- (void) setCommentForUser:(MKUser *) to:(NSString *)newComment { + STUB; +} + +- (void) setSeenCommentForUser:(MKUser *)user { + STUB; +} + +/* + * Move a user to a channel. + * + * @param user The user to move. + * @param chan The channel to move the user to. + */ +- (void) moveUser:(MKUser *)user toChannel:(MKChannel *)chan { + STUB; +} + +/* + * Remove a user from the model (in case a user leaves). + * This cleans up all references of the user in the model. + */ +- (void) removeUser:(MKUser *)user { + STUB; +} + +#pragma mark - + +- (MKChannel *) rootChannel { + return root; +} + +/* + * Add a channel. + */ +- (MKChannel *) addChannelWithId:(NSUInteger)chanId name:(NSString *)chanName parent:(MKChannel *)parent { + MKChannel *chan = [[MKChannel alloc] init]; + [chan setChannelId:chanId]; + [chan setChannelName:chanName]; + [chan setParent:parent]; + + [channelMapLock writeLock]; + [channelMap setObject:chan forKey:[NSNumber numberWithUnsignedInt:chanId]]; + [channelMapLock unlock]; + + [parent addChannel:chan]; + + [self updateModelArray]; + + return chan; +} + +- (MKChannel *) channelWithId:(NSUInteger)chanId { + [channelMapLock readLock]; + MKChannel *c = [channelMap objectForKey:[NSNumber numberWithUnsignedInt:chanId]]; + [channelMapLock unlock]; + return c; +} + +- (void) renameChannel:(MKChannel *)chan to:(NSString *)newName { + STUB; +} + +- (void) repositionChannel:(MKChannel *)chan to:(NSInteger)pos { + STUB; +} + +- (void) setCommentForChannel:(MKChannel *)chan to:(NSString *)newComment { + STUB; +} + +- (void) moveChannel:(MKChannel *)chan toChannel:(MKChannel *)newParent { + STUB; +} + +- (void) removeChannel:(MKChannel *)chan { + STUB; +} + +- (void) linkChannel:(MKChannel *)chan withChannels:(NSArray *)channelLinks { + STUB; +} + +- (void) unlinkChannel:(MKChannel *)chan fromChannels:(NSArray *)channelLinks { + STUB; +} + +- (void) unlinkAllFromChannel:(MKChannel *)chan { + STUB; +} + +@end diff --git a/src/MKServices.m b/src/MKServices.m new file mode 100644 index 0000000..bbb35eb --- /dev/null +++ b/src/MKServices.m @@ -0,0 +1,54 @@ +/* Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk> + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + - Neither the name of the Mumble Developers nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#import <MumbleKit/MKServices.h> + +@implementation MKServices + ++ (NSString *) regionalServicesHost { + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + NSArray *languages = [defaults objectForKey:@"AppleLanguages"]; + NSString *locale = [languages objectAtIndex:0]; + return [NSString stringWithFormat:@"http://%@.mumble.info", locale]; +} + +/* + * Public server list + */ + ++ (NSString *) regionalServerList { + return [NSString stringWithFormat:@"%@/list2.cgi", [MKServices regionalServicesHost]]; +} + ++ (NSURL *) regionalServerListURL { + return [NSURL URLWithString:[MKServices regionalServerList]]; +} + +@end diff --git a/src/MKUser.m b/src/MKUser.m new file mode 100644 index 0000000..4691988 --- /dev/null +++ b/src/MKUser.m @@ -0,0 +1,138 @@ +/* Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk> + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + - Neither the name of the Mumble Developers nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#import <MumbleKit/MKUser.h> +#import <MumbleKit/MKReadWriteLock.h> +#import <MumbleKit/MKChannel.h> + +@implementation MKUser + +- (void) dealloc { + if (userName) + [userName release]; + [super dealloc]; +} + +#pragma mark - + +- (NSUInteger) treeDepth { + return depth; +} + +- (void) setTreeDepth:(NSUInteger)treeDepth { + depth = treeDepth; +} + +#pragma mark - + +- (void) setSession:(NSUInteger)session { + userSession = session; +} + +- (NSUInteger) session { + return userSession; +} + +- (void) setUserName:(NSString *)name { + if (userName) + [userName release]; + userName = [name copy]; +} + +- (NSString *) userName { + return userName; +} + +- (void) setTalking:(MKTalkingState)flag { + talkState = flag; +} + +- (MKTalkingState) talkingState { + return talkState; +} + +- (void) setMute:(BOOL)flag { + muteState = flag; +} + +- (BOOL) muted { + return muteState; +} + +- (void) setDeaf:(BOOL)flag { + deafState = flag; +} + +- (BOOL) deafened { + return deafState; +} + +- (void) setSuppress:(BOOL)flag { + suppressState = flag; +} + +- (BOOL) suppressed { + return suppressState; +} + +- (void) setLocalMute:(BOOL)flag { + localMuteState = flag; +} + +- (BOOL) localMuted { + return localMuteState; +} + +- (void) setSelfMute:(BOOL)flag { + selfMuteState = flag; +} + +- (BOOL) selfMuted { + return selfMuteState; +} + +- (void) setSelfDeaf:(BOOL)flag { + selfDeafState = flag; +} + +- (BOOL) selfDeafened { + return selfDeafState; +} + +- (void) setChannel:(MKChannel *)chan { + channel = chan; +} + +- (MKChannel *) channel { + return channel; +} + + +@end diff --git a/src/MumbleKit.pch b/src/MumbleKit.pch new file mode 100644 index 0000000..bfb7394 --- /dev/null +++ b/src/MumbleKit.pch @@ -0,0 +1,7 @@ +// +// Prefix header for all source files of the 'CocoaTouchStaticLibrary' target in the 'CocoaTouchStaticLibrary' project. +// + +#ifdef __OBJC__ + #import <Foundation/Foundation.h> +#endif diff --git a/src/MumbleKit/MKAudio.h b/src/MumbleKit/MKAudio.h new file mode 100644 index 0000000..2896621 --- /dev/null +++ b/src/MumbleKit/MKAudio.h @@ -0,0 +1,57 @@ +/* Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk> + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + - Neither the name of the Mumble Developers nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +@class MKAudioInput; +@class MKAudioOutput; + +#define SAMPLE_RATE 48000 + +typedef enum { + Speex, + CELT, +} MKCodecFormat; + +@interface MKAudio : NSObject { + MKAudioInput *ai; + MKAudioOutput *ao; +} + ++ (void) initializeAudio; ++ (MKAudioInput *) audioInput; ++ (MKAudioOutput *) audioOutput; ++ (MKAudio *) audio; + +/* 'private' methods. */ +- (id) init; +- (void) dealloc; +- (MKAudioInput *) audioInput; +- (MKAudioOutput *) audioOutput; + +@end diff --git a/src/MumbleKit/MKAudioInput.h b/src/MumbleKit/MKAudioInput.h new file mode 100644 index 0000000..c5465f8 --- /dev/null +++ b/src/MumbleKit/MKAudioInput.h @@ -0,0 +1,90 @@ +/* Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk> + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + - Neither the name of the Mumble Developers nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#import <MumbleKit/MKAudio.h> +#import <MumbleKit/MKConnection.h> +#import <AudioUnit/AudioUnit.h> +#import <AudioUnit/AUComponent.h> +#import <AudioToolbox/AudioToolbox.h> + +#include <MumbleKit/speex/speex.h> +#include <MumbleKit/speex/speex_preprocess.h> +#include <MumbleKit/speex/speex_echo.h> +#include <MumbleKit/speex/speex_resampler.h> +#include <MumbleKit/speex/speex_jitter.h> +#include <MumbleKit/speex/speex_types.h> +#include <MumbleKit/celt/celt.h> + +@interface MKAudioInput : NSObject { + + @public + AudioUnit audioUnit; + AudioBufferList buflist; + int micSampleSize; + int numMicChannels; + + @protected + int frameSize; + int micFrequency; + int sampleRate; + + int micFilled; + int micLength; + BOOL previousVoice; + SpeexPreprocessState *preprocessorState; + int audioQuality; + int numAudioFrames; + int bitrate; + int frameCounter; + + BOOL doResetPreprocessor; + + short *psMic; + + MKCodecFormat cfType; + + MKUDPMessageType udpMessageType; + CELTEncoder *celtEncoder; + NSMutableArray *frameList; +} + +- (id) init; +- (void) dealloc; + +- (BOOL) setupDevice; +- (void) initializeMixer; + +- (void) resetPreprocessor; +- (void) addMicrophoneDataWithBuffer:(short *)input amount:(NSUInteger)nsamp; +- (void) encodeAudioFrame; +- (void) flushCheck:(NSData *)outputBuffer terminator:(BOOL)terminator; + + +@end diff --git a/src/MumbleKit/MKAudioOutput.h b/src/MumbleKit/MKAudioOutput.h new file mode 100644 index 0000000..7420e8f --- /dev/null +++ b/src/MumbleKit/MKAudioOutput.h @@ -0,0 +1,65 @@ +/* Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk> + Copyright (C) 2005-2010 Thorvald Natvig <thorvald@natvig.com> + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + - Neither the name of the Mumble Developers nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#import <MumbleKit/MKAudio.h> +#import <MumbleKit/MKAudioOutputUser.h> +#import <MumbleKit/MKReadWriteLock.h> +#import <MumbleKit/MKUser.h> +#import <MumbleKit/MKConnection.h> + +#import <AudioUnit/AudioUnit.h> +#import <AudioUnit/AUComponent.h> +#import <AudioToolbox/AudioToolbox.h> + +@class MKUser; + +@interface MKAudioOutput : NSObject { + AudioUnit audioUnit; + int sampleSize; + int frameSize; + int mixerFrequency; + int numChannels; + float *speakerVolume; + + MKReadWriteLock *outputLock; + NSMutableDictionary *outputs; +} + +- (id) init; +- (void) dealloc; + +- (BOOL) setupDevice; + +- (void) removeBuffer:(MKAudioOutputUser *)u; +- (BOOL) mixFrames: (void *)frames amount:(unsigned int)nframes; +- (void) addFrameToBufferWithUser:(MKUser *)user data:(NSData *)data sequence:(NSUInteger)seq type:(MKMessageType)msgType; + +@end diff --git a/src/MumbleKit/MKAudioOutputSpeech.h b/src/MumbleKit/MKAudioOutputSpeech.h new file mode 100644 index 0000000..e76eac9 --- /dev/null +++ b/src/MumbleKit/MKAudioOutputSpeech.h @@ -0,0 +1,83 @@ +/* Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk> + Copyright (C) 2005-2010 Thorvald Natvig <thorvald@natvig.com> + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + - Neither the name of the Mumble Developers nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#import <MumbleKit/MKConnection.h> +#import <MumbleKit/MKAudio.h> +#import <MumbleKit/MKUser.h> +#import <MumbleKit/MKAudioOutputUser.h> + +#include <MumbleKit/speex/speex.h> +#include <MumbleKit/speex/speex_preprocess.h> +#include <MumbleKit/speex/speex_echo.h> +#include <MumbleKit/speex/speex_resampler.h> +#include <MumbleKit/speex/speex_jitter.h> +#include <MumbleKit/speex/speex_types.h> +#include <MumbleKit/celt/celt.h> + +@interface MKAudioOutputSpeech : MKAudioOutputUser { + MKUDPMessageType messageType; + NSUInteger bufferOffset; + NSUInteger bufferFilled; + NSUInteger outputSize; + NSUInteger lastConsume; + NSUInteger frameSize; + BOOL lastAlive; + BOOL hasTerminator; + + float *fadeIn; + float *fadeOut; + + JitterBuffer *jitter; + NSInteger missCount; + NSInteger missedFrames; + + NSMutableArray *frames; + unsigned char flags; + + MKUser *user; + float powerMin, powerMax; + float averageAvailable; + + CELTMode *celtMode; + CELTDecoder *celtDecoder; + + pthread_mutex_t jitterMutex; +} + +- (id) initWithUser:(MKUser *)user sampleRate:(NSUInteger)freq messageType:(MKMessageType)type; +- (void) dealloc; + +- (MKUser *) user; +- (MKMessageType) messageType; + +- (void) addFrame:(NSData *)data forSequence:(NSUInteger)seq; + +@end diff --git a/src/MumbleKit/MKAudioOutputUser.h b/src/MumbleKit/MKAudioOutputUser.h new file mode 100644 index 0000000..376a222 --- /dev/null +++ b/src/MumbleKit/MKAudioOutputUser.h @@ -0,0 +1,54 @@ +/* Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk> + Copyright (C) 2005-2010 Thorvald Natvig <thorvald@natvig.com> + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + - Neither the name of the Mumble Developers nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#import <MumbleKit/MKUser.h> +#import <MumbleKit/MKAudioOutputUser.h> + +@interface MKAudioOutputUser : NSObject { + NSString *name; + NSUInteger bufferSize; + float *buffer; + float *volume; + float pos[3]; +} + +- (id) init; +- (void) dealloc; + +- (MKUser *) user; +- (float *) buffer; +- (NSUInteger) bufferLength; + + +- (BOOL) needSamples:(NSUInteger)nsamples; +- (void) resizeBuffer:(NSUInteger)newSize; + +@end diff --git a/src/MumbleKit/MKChannel.h b/src/MumbleKit/MKChannel.h new file mode 100644 index 0000000..0b51f17 --- /dev/null +++ b/src/MumbleKit/MKChannel.h @@ -0,0 +1,91 @@ +/* Copyright (C) 2010 Mikkel Krautz <mikkel@krautz.dk> + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + - Neither the name of the Mumble Developers nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +@class MKUser; + +@interface MKChannel : NSObject { + MKChannel *channelParent; + + NSUInteger channelId; + NSString *channelName; + NSInteger position; + + BOOL inheritACL; + BOOL temporary; + + @public + NSMutableArray *channelList; + NSMutableArray *userList; + NSMutableArray *ACLList; + NSMutableArray *linkedList; + NSUInteger depth; +} + +- (id) init; +- (void) dealloc; + +#pragma mark - + +- (void) addChannel:(MKChannel *)chan; +- (void) removeChannel:(MKChannel *)chan; +- (void) addUser:(MKUser *)user; +- (void) removeUser:(MKUser *)user; +- (NSUInteger) numChildren; + +#pragma mark - + +- (NSUInteger) treeDepth; +- (void) setTreeDepth:(NSUInteger)depth; + +#pragma mark - + +- (BOOL) linkedToChannel:(MKChannel *)chan; +- (void) linkToChannel:(MKChannel *)chan; +- (void) unlinkFromChannel:(MKChannel *)chan; +- (void) unlinkAll; + +#pragma mark - + +- (NSString *) channelName; +- (void) setChannelName:(NSString *)name; + +- (void) setParent:(MKChannel *)chan; +- (MKChannel *) parent; + +- (void) setChannelId:(NSUInteger)chanId; +- (NSUInteger) channelId; + +- (void) setTemporary:(BOOL)flag; +- (BOOL) temporary; + +- (NSInteger) position; +- (void) setPosition:(NSInteger)pos; + +@end diff --git a/src/MumbleKit/MKConnection.h b/src/MumbleKit/MKConnection.h new file mode 100644 index 0000000..0816430 --- /dev/null +++ b/src/MumbleKit/MKConnection.h @@ -0,0 +1,156 @@ +/* Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk> + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + - Neither the name of the Mumble Developers nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#import "Mumble.pb.h" + +#define MKConnectionPingInterval 5.0f + +@class MKConnection; +@class MKPacketDataStream; + +typedef enum { + UDPVoiceCELTAlphaMessage = 0, + UDPPingMessage, + UDPVoiceSpeexMessage, + UDPVoiceCELTBetaMessage +} MKUDPMessageType; + +typedef enum { + VersionMessage = 0, + UDPTunnelMessage, + AuthenticateMessage, + PingMessage, + RejectMessage, + ServerSyncMessage, + ChannelRemoveMessage, + ChannelStateMessage, + UserRemoveMessage, + UserStateMessage, + BanListMessage, + TextMessageMessage, + PermissionDeniedMessage, + ACLMessage, + QueryUsersMessage, + CryptSetupMessage, + ContextActionAddMessage, + ContextActionMessage, + UserListMessage, + VoiceTargetMessage, + PermissionQueryMessage, + CodecVersionMessage +} MKMessageType; + +/* + * MKConnectionDelegate + */ +@protocol MKConnectionDelegate +- (void) connectionOpened:(MKConnection *)conn; +- (void) connectionClosed:(MKConnection *)conn; +- (void) connection:(MKConnection *)conn trustFailureInCertificateChain:(NSArray *)chain; +@end + +/* + * MKMessageHandler + */ +@protocol MKMessageHandler +- (void) handleAuthenticateMessage: (MPAuthenticate *)msg; +- (void) handleBanListMessage: (MPBanList *)msg; +- (void) handleRejectMessage: (MPReject *)msg; +- (void) handleServerSyncMessage: (MPServerSync *)msg; +- (void) handlePermissionDeniedMessage: (MPPermissionDenied *)msg; +- (void) handleUserStateMessage: (MPUserState *)msg; +- (void) handleUserRemoveMessage: (MPUserRemove *)msg; +- (void) handleChannelStateMessage: (MPChannelState *)msg; +- (void) handleChannelRemoveMessage: (MPChannelRemove *)msg; +- (void) handleTextMessageMessage: (MPTextMessage *)msg; +- (void) handleACLMessage: (MPACL *)msg; +- (void) handleQueryUsersMessage: (MPQueryUsers *)msg; +- (void) handleCryptSetupMessage: (MPCryptSetup *)msg; +- (void) handleContextActionMessage: (MPContextAction *)msg; +- (void) handleContextActionAddMessage: (MPContextActionAdd *)add; +- (void) handleVersionMessage: (MPVersion *)msg; +- (void) handleUserListMessage: (MPUserList *)msg; +- (void) handleVoiceTargetMessage: (MPVoiceTarget *)msg; +- (void) handlePermissionQueryMessage: (MPPermissionQuery *)msg; +- (void) handleCodecVersionMessage: (MPCodecVersion *)msg; +@end + +@interface MKConnection : NSObject { + MKMessageType packetType; + int packetLength; + int packetBufferOffset; + NSMutableData *packetBuffer; + NSString *hostname; + NSUInteger port; + + NSTimer *_pingTimer; + NSOutputStream *_outputStream; + NSInputStream *_inputStream; + BOOL _connectionEstablished; + BOOL _ignoreSSLVerification; + id _msgHandler; + id _delegate; + int _socket; +} + +- (id) init; +- (void) dealloc; + +- (void) connectToHost:(NSString *)hostName port:(NSUInteger)port; +- (void) reconnect; +- (void) closeStreams; +- (BOOL) connected; + +- (void) setMessageHandler: (id<MKMessageHandler>)messageHandler; +- (id) messageHandler; +- (void) setDelegate: (id<MKConnectionDelegate>)delegate; +- (id) delegate; + +- (void) setIgnoreSSLVerification:(BOOL)flag; +- (NSArray *) certificates; + +- (void) sendMessageWithType:(MKMessageType)messageType buffer:(unsigned char *)buf length:(NSUInteger)len; +- (void) sendMessageWithType:(MKMessageType)messageType data:(NSData *)data; + +- (void) dataReady; +- (void) messageRecieved: (NSData *)data; + +- (void) _setupSsl; + +- (void) _pingTimerFired; +- (void) _pingResponseFromServer:(MPPing *)pingMessage; + + +- (void) handleError: (NSError *)streamError; +- (void) handleSslError: (NSError *)streamError; + +- (void) handleVoicePacketOfType:(MKUDPMessageType)messageType flags:(NSUInteger)messageFlags datastream:(MKPacketDataStream *)pds; + +@end diff --git a/src/MumbleKit/MKCryptState.h b/src/MumbleKit/MKCryptState.h new file mode 100644 index 0000000..03ece4e --- /dev/null +++ b/src/MumbleKit/MKCryptState.h @@ -0,0 +1,55 @@ +/* Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk> + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + - Neither the name of the Mumble Developers nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +@interface MKCryptState : NSObject { + NSUInteger numGood; + NSUInteger numLate; + NSUInteger numLost; + NSUInteger numResync; + NSUInteger numRemoteGood; + NSUInteger numRemoteLate; + NSUInteger numRemoteLost; + NSUInteger numRemoteResync; + unsigned char decryptHistory[0x100]; + + BOOL initialized; +} + +- (id) init; +- (void) dealloc; + +- (BOOL) valid; +- (void) generateKey; +- (void) setKey:(NSData *)key eiv:(NSData *)enc div:(NSData *)dec; +- (void) setDecryptIV:(NSData *)dec; +- (NSData *) encryptData:(NSData *)data; +- (NSData *) decryptData:(NSData *)data; + +@end diff --git a/src/MumbleKit/MKPacketDataStream.h b/src/MumbleKit/MKPacketDataStream.h new file mode 100644 index 0000000..aad085e --- /dev/null +++ b/src/MumbleKit/MKPacketDataStream.h @@ -0,0 +1,88 @@ +/* Copyright (C) 2005-2010 Thorvald Natvig <thorvald@natvig.com> + Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk> + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + - Neither the name of the Mumble Developers nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +typedef union _float32u { + uint8_t b[4]; + float f; +} float32u; + +@interface MKPacketDataStream : NSObject { + NSMutableData *mutableData; + NSData *immutableData; + unsigned char *data; + NSUInteger maxSize; + NSUInteger offset; + NSUInteger overshoot; + BOOL ok; +} + +- (id) initWithData:(NSData *)data; +- (id) initWithMutableData:(NSMutableData *)data; +- (id) initWithBuffer:(unsigned char *)buffer length:(NSUInteger)len; +- (void) dealloc; + +- (NSUInteger) size; +- (NSUInteger) capactiy; +- (NSUInteger) left; +- (BOOL) valid; + +- (void) rewind; +- (void) truncate; + +- (unsigned char *) dataPtr; +- (char *) charPtr; +- (NSData *) data; +- (NSMutableData *) mutableData; + +- (void) appendValue:(uint64_t)value; +- (void) appendBytes:(unsigned char *)buffer length:(NSUInteger)len; + +- (void) skip:(NSUInteger)amount; +- (uint64_t) next; +- (uint8_t) next8; + +/* Adders. */ +- (void) addVarint:(uint64_t)value; + +/* Getters. */ +- (uint64_t) getVarint; +- (int) getInt; +- (unsigned int) getUnsignedInt; +- (short) getShort; +- (unsigned short) getUnsignedShort; +- (char) getChar; +- (unsigned char) getUnsignedChar; +- (float) getFloat; +- (double) getDouble; + +- (NSData *) copyDataBlock:(NSUInteger)len; + +@end diff --git a/src/MumbleKit/MKReadWriteLock.h b/src/MumbleKit/MKReadWriteLock.h new file mode 100644 index 0000000..d316d65 --- /dev/null +++ b/src/MumbleKit/MKReadWriteLock.h @@ -0,0 +1,48 @@ +/* Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk> + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + - Neither the name of the Mumble Developers nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#include <pthread.h> + +@interface MKReadWriteLock : NSObject { + pthread_rwlock_t rwlock; +} + +- (id) init; +- (void) dealloc; + +- (BOOL) tryWriteLock; +- (void) writeLock; + +- (BOOL) tryReadLock; +- (void) readLock; + +- (void) unlock; + +@end diff --git a/src/MumbleKit/MKServerModel.h b/src/MumbleKit/MKServerModel.h new file mode 100644 index 0000000..7ac58ee --- /dev/null +++ b/src/MumbleKit/MKServerModel.h @@ -0,0 +1,83 @@ +/* Copyright (C) 2010 Mikkel Krautz <mikkel@krautz.dk> + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + - Neither the name of the Mumble Developers nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#import <MumbleKit/MKUser.h> +#import <MumbleKit/MKChannel.h> +#import <MumbleKit/MKReadWriteLock.h> + +@interface MKServerModel : NSObject { + MKChannel *root; + NSMutableArray *array; + + MKReadWriteLock *userMapLock; + NSMutableDictionary *userMap; + + MKReadWriteLock *channelMapLock; + NSMutableDictionary *channelMap; +} + +- (id) init; +- (void) dealloc; + +- (void) updateModelArray; +- (void) addChannelTreeToArray:(MKChannel *)tree depth:(NSUInteger)currentDepth; + +- (NSUInteger) count; +- (id) objectAtIndex:(NSUInteger)idx; + +#pragma mark - + +- (MKUser *) addUserWithSession:(NSUInteger)userSession name:(NSString *)userName; +- (MKUser *) userWithSession:(NSUInteger)session; +- (MKUser *) userWithHash:(NSString *)hash; +- (void) renameUser:(MKUser *)user to:(NSString *)newName; +- (void) setIdForUser:(MKUser *)user to:(NSUInteger)newId; +- (void) setHashForUser:(MKUser *)user to:(NSString *)newHash; +- (void) setFriendNameForUser:(MKUser *)user to:(NSString *)newFriendName; +- (void) setCommentForUser:(MKUser *) to:(NSString *)newComment; +- (void) setSeenCommentForUser:(MKUser *)user; +- (void) moveUser:(MKUser *)user toChannel:(MKChannel *)chan; +- (void) removeUser:(MKUser *)user; + +#pragma mark - + +- (MKChannel *) rootChannel; +- (MKChannel *) addChannelWithId:(NSUInteger)chanId name:(NSString *)chanName parent:(MKChannel *)p; +- (MKChannel *) channelWithId:(NSUInteger)chanId; +- (void) renameChannel:(MKChannel *)chan to:(NSString *)newName; +- (void) repositionChannel:(MKChannel *)chan to:(NSInteger)pos; +- (void) setCommentForChannel:(MKChannel *)chan to:(NSString *)newComment; +- (void) moveChannel:(MKChannel *)chan toChannel:(MKChannel *)newParent; +- (void) removeChannel:(MKChannel *)chan; +- (void) linkChannel:(MKChannel *)chan withChannels:(NSArray *)channelLinks; +- (void) unlinkChannel:(MKChannel *)chan fromChannels:(NSArray *)channelLinks; +- (void) unlinkAllFromChannel:(MKChannel *)chan; + +@end diff --git a/src/MumbleKit/MKServices.h b/src/MumbleKit/MKServices.h new file mode 100644 index 0000000..765c748 --- /dev/null +++ b/src/MumbleKit/MKServices.h @@ -0,0 +1,35 @@ +/* Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk> + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + - Neither the name of the Mumble Developers nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +@interface MKServices : NSObject ++ (NSString *) regionalServicesHost; ++ (NSString *) regionalServerList; ++ (NSURL *) regionalServerListURL; +@end diff --git a/src/MumbleKit/MKUser.h b/src/MumbleKit/MKUser.h new file mode 100644 index 0000000..81666d5 --- /dev/null +++ b/src/MumbleKit/MKUser.h @@ -0,0 +1,98 @@ +/* Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk> + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + - Neither the name of the Mumble Developers nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +@class MKChannel; + +typedef enum _TalkingState { + TalkingStateOff = 0, + TalkingStateTalking, + TalkingStateWhisperChannel, + TalkingStateWhisperTalk, +} MKTalkingState; + +@interface MKUser : NSObject { + @protected + BOOL muteState; + BOOL deafState; + BOOL suppressState; + BOOL localMuteState; + BOOL selfMuteState; + BOOL selfDeafState; + MKTalkingState talkState; + NSUInteger userSession; + NSString *userName; + NSUInteger depth; + MKChannel *channel; + + @public + int sequence; + int frames; +} + +- (void) dealloc; + +#pragma mark - + +- (NSUInteger) treeDepth; +- (void) setTreeDepth:(NSUInteger)depth; + +#pragma mark - + +- (void) setSession:(NSUInteger)session; +- (NSUInteger) session; + +- (void) setUserName:(NSString *)name; +- (NSString *) userName; + +- (void) setTalking:(MKTalkingState)flag; +- (MKTalkingState) talkingState; + +- (void) setMute:(BOOL)flag; +- (BOOL) muted; + +- (void) setDeaf:(BOOL)flag; +- (BOOL) deafened; + +- (void) setSuppress:(BOOL)flag; +- (BOOL) suppressed; + +- (void) setLocalMute:(BOOL)flag; +- (BOOL) localMuted; + +- (void) setSelfMute:(BOOL)flag; +- (BOOL) selfMuted; + +- (void) setSelfDeaf:(BOOL)flag; +- (BOOL) selfDeafened; + +- (void) setChannel:(MKChannel *)chan; +- (MKChannel *) channel; + +@end diff --git a/src/MumbleKit/MKUtils.h b/src/MumbleKit/MKUtils.h new file mode 100644 index 0000000..da18465 --- /dev/null +++ b/src/MumbleKit/MKUtils.h @@ -0,0 +1,31 @@ +/* Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk> + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + - Neither the name of the Mumble Developers nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#define MK_UNUSED __attribute__((unused)) diff --git a/src/NSInvocation(MumbleKitAdditions).h b/src/NSInvocation(MumbleKitAdditions).h new file mode 100644 index 0000000..286a58f --- /dev/null +++ b/src/NSInvocation(MumbleKitAdditions).h @@ -0,0 +1,37 @@ +/* Copyright (C) 2010 Mikkel Krautz <mikkel@krautz.dk> + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + - Neither the name of the Mumble Developers nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#import <Foundation/Foundation.h> + +@interface NSInvocation (MumbleKitAdditions) ++ (NSInvocation *) invocationWithTarget:(id)target selector:(SEL)selector; ++ (void **) nilPointerLocation; +- (void) invokeOnMainThread; +@end
\ No newline at end of file diff --git a/src/NSInvocation(MumbleKitAdditions).m b/src/NSInvocation(MumbleKitAdditions).m new file mode 100644 index 0000000..19b5142 --- /dev/null +++ b/src/NSInvocation(MumbleKitAdditions).m @@ -0,0 +1,61 @@ +/* Copyright (C) 2010 Mikkel Krautz <mikkel@krautz.dk> + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + - Neither the name of the Mumble Developers nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#import "NSInvocation(MumbleKitAdditions).h" + +@implementation NSInvocation (MumbleKitAdditions) + +static void *_nilPointerLocation = nil; + ++ (NSInvocation *) invocationWithTarget:(id)target selector:(SEL)selector { + NSInvocation *invocation = nil; + + if ([target respondsToSelector:selector]) { + NSMethodSignature *ms = [target methodSignatureForSelector:selector]; + invocation = [NSInvocation invocationWithMethodSignature:ms]; + [invocation setTarget:target]; + [invocation setSelector:selector]; + } else { + NSLog(@"NSInvocation(MumbleKitAdditions): Target %@ (%p) does not respond to selector %@. Returning nil.", + NSStringFromClass(target), target, NSStringFromSelector(selector)); + } + + return invocation; +} + ++ (void **) nilPointerLocation { + return &_nilPointerLocation; +} + +- (void) invokeOnMainThread { + [self performSelectorOnMainThread:@selector(invoke) withObject:nil waitUntilDone:NO]; +} + +@end |