LinJieXiao-XLJ commented on code in PR #365:
URL: https://github.com/apache/tsfile/pull/365#discussion_r1903796962


##########
docs/src/UserGuide/latest/QuickStart/Interface-Definitions.md:
##########
@@ -0,0 +1,240 @@
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+    
+        http://www.apache.org/licenses/LICENSE-2.0
+    
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+# Interface Definitions
+
+## Write Interface
+
+### ITsFileWriter
+
+Used to write data to tsfile
+
+```shell
+interface ITsFileWriter extends AutoCloseable {
+  // Write data
+  void write(Tablet tablet);
+  
+  // Close Write
+  void close();
+}
+```
+
+### TsFileWriterBuilder
+
+Used to construct ITsFileWriter
+
+```shell
+class TsFileWriterBuilder {
+  // Build ITsFileWriter object
+  public ITsFileWriter build();
+  
+  // target file
+  public TsFileWriterBuilder file(File file);
+  
+  // Used to construct table structures
+  public TsFileWriterBuilder tableSchema(TableSchema schema);
+  
+  // Used to limit the memory size of objects
+  public TsFileWriterBuilder memoryThreshold(long memoryThreshold);
+}
+```
+
+### TableSchema
+
+Describe the data structure of the table schema
+
+```shell
+class TableSchema {
+  // Constructor function
+  public TableSchema(String tableName, List<ColumnSchema> columnSchemaList);
+}
+
+class ColumnSchema {
+  // Constructor function
+  public ColumnSchema(String columnName, TSDataType dataType, ColumnCategory 
columnCategory);
+  
+  // Get column names
+  public String getColumnName();
+  
+  // Get the data type of the column
+  public TSDataType getDataType();
+  
+  // Get column category
+  public Tablet.ColumnCategory getColumnCategory();
+}
+
+class ColumnSchemaBuilder {
+  // Build ColumnSchema object
+  public ColumnSchema build();
+  
+  // Column Name
+  public ColumnSchemaBuilder name(String columnName);
+  
+  // The data category of the column
+  public ColumnSchemaBuilder dataType(TSDataType columnType);
+  
+  // Column category
+  public ColumnSchemaBuilder category(ColumnCategory columnCategory);
+  
+  // Supported types
+  enum TSDataType {    
+    BOOLEAN,    
+    INT32,
+    INT64,    
+    FLOAT,    
+    DOUBLE,    
+    TIMESTAMP,   
+    TEXT,    
+    DATE,    
+    BLOB,   
+    STRING;  
+  }
+  
+  // Supported column categories
+  enum ColumnCategory {    
+    TAG,   
+    FIELD 
+  }
+}
+```
+
+### Tablet
+
+Write column memory structure
+
+```shell
+class Tablet {
+  // Constructor function
+  public Tablet(List<String> columnNameList, List<TSDataType> dataTypeList);
+  public Tablet(List<String> columnNameList, List<TSDataType> dataTypeList, 
int maxRowNum);
+  
+  // Interface for adding timestamps
+  void addTimestamp(int rowIndex, long timestamp)
+  
+  // Interface for adding values
+  // Add values based on column names
+  void addValue(int rowIndex, String columnName, int val)  
+  void addValue(int rowIndex, String columnName, long val)  
+  void addValue(int rowIndex, String columnName, float val)  
+  void addValue(int rowIndex, String columnName, double val)  
+  void addValue(int rowIndex, String columnName, boolean val)  
+  void addValue(int rowIndex, String columnName, String val)  
+  void addValue(int rowIndex, String columnName, byte[] val)  
+  void addValue(int rowIndex, String columnName, LocalDate val) 
+  // Add values based on index position
+  void addValue(int rowIndex, int columnIndex, int val)  
+  void addValue(int rowIndex, int columnIndex, long val)  
+  void addValue(int rowIndex, int columnIndex, float val)  
+  void addValue(int rowIndex, int columnIndex, double val)  
+  void addValue(int rowIndex, int columnIndex, boolean val) 
+  void addValue(int rowIndex, int columnIndex, String val)  
+  void addValue(int rowIndex, int columnIndex, byte[] val)  
+  void addValue(int rowIndex, int columnIndex, LocalDate val)
+}
+```
+
+## Read Interface
+
+### ITsFileReader
+
+Used to query data in tsfile
+
+```shell
+interface ITsFileReader extends AutoCloseable {
+  // Used to execute queries and return results
+  ResultSet query(String tableName, List<String> columnNames, long startTime, 
long endTime);
+  
+  // Return the schema of the table named tableName in tsfile
+  Optional<TableSchema> getTableSchemas(String tableName);
+  
+  // Retrieve schema information for all tables in the tsfile
+  List<TableSchema> getAllTableSchema();
+  
+  // Close query
+  void close();
+}
+```
+
+### TsFileReaderBuilder
+
+Used to construct ITsFileWriter
+
+```shell
+class TsFileReaderBuilder {
+  // Build ITsFileReader object
+  public ITsFileReader build();
+  
+  // target file
+  public TsFileReaderBuilder file(File file);
+}
+```
+
+### ResultSet
+
+The result set of the query
+
+```shell
+interface ResultSet extends AutoCloseable {  
+  // Move the cursor to the next line and return whether there is still data
+  boolean next();  

Review Comment:
   ok,done



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to