13c5df37a2df7368eb274eb097e9cfa2ccc7fffb6Dan Bornstein/* 23c5df37a2df7368eb274eb097e9cfa2ccc7fffb6Dan Bornstein * Copyright (C) 2011 The Android Open Source Project 33c5df37a2df7368eb274eb097e9cfa2ccc7fffb6Dan Bornstein * 43c5df37a2df7368eb274eb097e9cfa2ccc7fffb6Dan Bornstein * Licensed under the Apache License, Version 2.0 (the "License"); 53c5df37a2df7368eb274eb097e9cfa2ccc7fffb6Dan Bornstein * you may not use this file except in compliance with the License. 63c5df37a2df7368eb274eb097e9cfa2ccc7fffb6Dan Bornstein * You may obtain a copy of the License at 73c5df37a2df7368eb274eb097e9cfa2ccc7fffb6Dan Bornstein * 83c5df37a2df7368eb274eb097e9cfa2ccc7fffb6Dan Bornstein * http://www.apache.org/licenses/LICENSE-2.0 93c5df37a2df7368eb274eb097e9cfa2ccc7fffb6Dan Bornstein * 103c5df37a2df7368eb274eb097e9cfa2ccc7fffb6Dan Bornstein * Unless required by applicable law or agreed to in writing, software 113c5df37a2df7368eb274eb097e9cfa2ccc7fffb6Dan Bornstein * distributed under the License is distributed on an "AS IS" BASIS, 123c5df37a2df7368eb274eb097e9cfa2ccc7fffb6Dan Bornstein * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 133c5df37a2df7368eb274eb097e9cfa2ccc7fffb6Dan Bornstein * See the License for the specific language governing permissions and 143c5df37a2df7368eb274eb097e9cfa2ccc7fffb6Dan Bornstein * limitations under the License. 153c5df37a2df7368eb274eb097e9cfa2ccc7fffb6Dan Bornstein */ 163c5df37a2df7368eb274eb097e9cfa2ccc7fffb6Dan Bornstein 17537939ca06a47668f719ee06159303bcd3175c69Dan Bornsteinpackage com.android.dx.io.instructions; 183c5df37a2df7368eb274eb097e9cfa2ccc7fffb6Dan Bornstein 193c5df37a2df7368eb274eb097e9cfa2ccc7fffb6Dan Bornstein/** 203c5df37a2df7368eb274eb097e9cfa2ccc7fffb6Dan Bornstein * Output stream of code units, for writing out Dalvik bytecode. 213c5df37a2df7368eb274eb097e9cfa2ccc7fffb6Dan Bornstein */ 22d63837a6a16a19e3ae943cdfad52b6f6c8d04a22Dan Bornsteinpublic interface CodeOutput extends CodeCursor { 233c5df37a2df7368eb274eb097e9cfa2ccc7fffb6Dan Bornstein /** 2419cefdcde26ea31d06cef031032b2ef78013d976Dan Bornstein * Writes a code unit. 253c5df37a2df7368eb274eb097e9cfa2ccc7fffb6Dan Bornstein */ 263c5df37a2df7368eb274eb097e9cfa2ccc7fffb6Dan Bornstein public void write(short codeUnit); 273c5df37a2df7368eb274eb097e9cfa2ccc7fffb6Dan Bornstein 283c5df37a2df7368eb274eb097e9cfa2ccc7fffb6Dan Bornstein /** 2919cefdcde26ea31d06cef031032b2ef78013d976Dan Bornstein * Writes two code units. 303c5df37a2df7368eb274eb097e9cfa2ccc7fffb6Dan Bornstein */ 313c5df37a2df7368eb274eb097e9cfa2ccc7fffb6Dan Bornstein public void write(short u0, short u1); 323c5df37a2df7368eb274eb097e9cfa2ccc7fffb6Dan Bornstein 333c5df37a2df7368eb274eb097e9cfa2ccc7fffb6Dan Bornstein /** 3419cefdcde26ea31d06cef031032b2ef78013d976Dan Bornstein * Writes three code units. 353c5df37a2df7368eb274eb097e9cfa2ccc7fffb6Dan Bornstein */ 363c5df37a2df7368eb274eb097e9cfa2ccc7fffb6Dan Bornstein public void write(short u0, short u1, short u2); 373c5df37a2df7368eb274eb097e9cfa2ccc7fffb6Dan Bornstein 383c5df37a2df7368eb274eb097e9cfa2ccc7fffb6Dan Bornstein /** 3919cefdcde26ea31d06cef031032b2ef78013d976Dan Bornstein * Writes four code units. 403c5df37a2df7368eb274eb097e9cfa2ccc7fffb6Dan Bornstein */ 413c5df37a2df7368eb274eb097e9cfa2ccc7fffb6Dan Bornstein public void write(short u0, short u1, short u2, short u3); 423c5df37a2df7368eb274eb097e9cfa2ccc7fffb6Dan Bornstein 433c5df37a2df7368eb274eb097e9cfa2ccc7fffb6Dan Bornstein /** 4419cefdcde26ea31d06cef031032b2ef78013d976Dan Bornstein * Writes five code units. 453c5df37a2df7368eb274eb097e9cfa2ccc7fffb6Dan Bornstein */ 463c5df37a2df7368eb274eb097e9cfa2ccc7fffb6Dan Bornstein public void write(short u0, short u1, short u2, short u3, short u4); 4732dd826ad1742993cf0627448cd083a5021d71bbDan Bornstein 4832dd826ad1742993cf0627448cd083a5021d71bbDan Bornstein /** 49d63837a6a16a19e3ae943cdfad52b6f6c8d04a22Dan Bornstein * Writes an {@code int}, little-endian. 50d63837a6a16a19e3ae943cdfad52b6f6c8d04a22Dan Bornstein */ 51d63837a6a16a19e3ae943cdfad52b6f6c8d04a22Dan Bornstein public void writeInt(int value); 52d63837a6a16a19e3ae943cdfad52b6f6c8d04a22Dan Bornstein 53d63837a6a16a19e3ae943cdfad52b6f6c8d04a22Dan Bornstein /** 54d63837a6a16a19e3ae943cdfad52b6f6c8d04a22Dan Bornstein * Writes a {@code long}, little-endian. 55d63837a6a16a19e3ae943cdfad52b6f6c8d04a22Dan Bornstein */ 56d63837a6a16a19e3ae943cdfad52b6f6c8d04a22Dan Bornstein public void writeLong(long value); 57d63837a6a16a19e3ae943cdfad52b6f6c8d04a22Dan Bornstein 58d63837a6a16a19e3ae943cdfad52b6f6c8d04a22Dan Bornstein /** 59d63837a6a16a19e3ae943cdfad52b6f6c8d04a22Dan Bornstein * Writes the contents of the given array. 60d63837a6a16a19e3ae943cdfad52b6f6c8d04a22Dan Bornstein */ 61d63837a6a16a19e3ae943cdfad52b6f6c8d04a22Dan Bornstein public void write(byte[] data); 62d63837a6a16a19e3ae943cdfad52b6f6c8d04a22Dan Bornstein 63d63837a6a16a19e3ae943cdfad52b6f6c8d04a22Dan Bornstein /** 6432dd826ad1742993cf0627448cd083a5021d71bbDan Bornstein * Writes the contents of the given array. 6532dd826ad1742993cf0627448cd083a5021d71bbDan Bornstein */ 6632dd826ad1742993cf0627448cd083a5021d71bbDan Bornstein public void write(short[] data); 67d63837a6a16a19e3ae943cdfad52b6f6c8d04a22Dan Bornstein 68d63837a6a16a19e3ae943cdfad52b6f6c8d04a22Dan Bornstein /** 69d63837a6a16a19e3ae943cdfad52b6f6c8d04a22Dan Bornstein * Writes the contents of the given array. 70d63837a6a16a19e3ae943cdfad52b6f6c8d04a22Dan Bornstein */ 71d63837a6a16a19e3ae943cdfad52b6f6c8d04a22Dan Bornstein public void write(int[] data); 72d63837a6a16a19e3ae943cdfad52b6f6c8d04a22Dan Bornstein 73d63837a6a16a19e3ae943cdfad52b6f6c8d04a22Dan Bornstein /** 74d63837a6a16a19e3ae943cdfad52b6f6c8d04a22Dan Bornstein * Writes the contents of the given array. 75d63837a6a16a19e3ae943cdfad52b6f6c8d04a22Dan Bornstein */ 76d63837a6a16a19e3ae943cdfad52b6f6c8d04a22Dan Bornstein public void write(long[] data); 773c5df37a2df7368eb274eb097e9cfa2ccc7fffb6Dan Bornstein} 78