1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one
3  * or more contributor license agreements. See the NOTICE file
4  * distributed with this work for additional information
5  * regarding copyright ownership. The ASF licenses this file
6  * to you under the Apache License, Version 2.0 (the
7  * "License"); you may not use this file except in compliance
8  * with the License. You may obtain a copy of the License at
9  *
10  *   http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing,
13  * software distributed under the License is distributed on an
14  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15  * KIND, either express or implied. See the License for the
16  * specific language governing permissions and limitations
17  * under the License.
18  */
19 
20 package org.apache.thrift.test;
21 
22 import java.io.BufferedOutputStream;
23 import java.io.FileOutputStream;
24 
25 import org.apache.thrift.Fixtures;
26 import org.apache.thrift.protocol.TProtocol;
27 import org.apache.thrift.protocol.TProtocolFactory;
28 import org.apache.thrift.transport.TIOStreamTransport;
29 import org.apache.thrift.transport.TTransport;
30 
31 public class WriteStruct {
main(String[] args)32   public static void main(String[] args) throws Exception {
33     if (args.length != 2) {
34       System.out.println("usage: java -cp build/classes org.apache.thrift.test.WriteStruct filename proto_factory_class");
35       System.out.println("Write out an instance of Fixtures.compactProtocolTestStruct to 'file'. Use a protocol from 'proto_factory_class'.");
36     }
37 
38     TTransport trans = new TIOStreamTransport(new BufferedOutputStream(new FileOutputStream(args[0])));
39 
40     TProtocolFactory factory = (TProtocolFactory)Class.forName(args[1]).newInstance();
41 
42     TProtocol proto = factory.getProtocol(trans);
43 
44     Fixtures.compactProtoTestStruct.write(proto);
45     trans.flush();
46   }
47 
48 }
49