blob: f27f2bd8f3c30babb735a983a91bbda389f2e49a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
// **********************************************************************
//
// Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
//
// This copy of Ice is licensed to you under the terms described in
// the ICE_LICENSE file included in this distribution.
//
// **********************************************************************
#import <SlicedDataI.h>
#import <Util.h>
#import <Ice/SlicedData.h>
@implementation ICESlicedData
-(id) initWithSlicedData:(Ice::SlicedData*)slicedData
{
self = [super init];
if(!self)
{
return nil;
}
self->slicedData_ = slicedData;
self->slicedData_->__incRef();
return self;
}
-(void) dealloc
{
self->slicedData_->__decRef();
[super dealloc];
}
-(Ice::SlicedData*) slicedData
{
return slicedData_;
}
@end
@implementation ICEUnknownSlicedValue
-(id) init
{
self = [super init];
if(!self)
{
return nil;
}
self->unknownTypeId_ = nil;
self->slicedData_ = nil;
return self;
}
-(void) dealloc
{
[slicedData_ release];
[unknownTypeId_ release];
[super dealloc];
}
-(NSString*) getUnknownTypeId
{
return [[unknownTypeId_ retain] autorelease];
}
-(ICESlicedData*) getSlicedData
{
return [[slicedData_ retain] autorelease];
}
-(void) iceWrite:(id<ICEOutputStream>)os
{
[os startValue:slicedData_];
[os endValue];
}
-(void) iceRead:(id<ICEInputStream>)is
{
[is startValue];
slicedData_ = [is endValue:YES];
// Initialize unknown type ID to type ID of first slice.
Ice::SlicedData* slicedData = [((ICESlicedData*)slicedData_) slicedData];
assert(!slicedData->slices.empty());
unknownTypeId_ = toNSString(slicedData->slices[0]->typeId);
}
@end
|