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
|
%
% Copyright (c) ZeroC, Inc. All rights reserved.
%
classdef (Abstract) EncapsEncoder < handle
methods
function obj = EncapsEncoder(os, encaps)
obj.os = os;
obj.encaps = encaps;
obj.typeIdMap = containers.Map('KeyType', 'char', 'ValueType', 'int32');
obj.typeIdIndex = 0;
end
function r = writeOptional(~, ~, ~)
r = false;
end
function writePendingValues(~)
%
% Overridden for the 1.0 encoding, not necessary for subsequent encodings.
%
end
end
methods(Abstract)
writeValue(obj, v)
startInstance(obj, sliceType, slicedData)
endInstance(obj)
startSlice(obj, typeId, compactId, last)
endSlice(obj)
end
methods(Access=protected)
function r = registerTypeId(obj, typeId)
if isKey(obj.typeIdMap, typeId)
r = obj.typeIdMap(typeId);
else
obj.typeIdIndex = obj.typeIdIndex + 1;
obj.typeIdMap(typeId) = obj.typeIdIndex;
r = -1;
end
end
end
properties(Access=protected)
os
encaps
end
properties(Access=private)
typeIdMap
typeIdIndex
end
end
|