forked from CS739-Distributed-Systems/AFS-on-FUSE
-
Notifications
You must be signed in to change notification settings - Fork 0
/
afs.proto
132 lines (111 loc) · 3.21 KB
/
afs.proto
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
// Copyright 2015 gRPC authors.
//
// Licensed 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.
syntax = "proto3";
option java_multiple_files = true;
option java_package = "io.grpc.examples.afs";
option java_outer_classname = "AFSProto";
option objc_class_prefix = "AFS";
package afs;
service AFS {
rpc GetAttr (GetAttrRequest) returns (GetAttrReply) {}
rpc Open (OpenRequest) returns (OpenReply) {}
rpc OpenStream (OpenRequest) returns (stream OpenReply) {}
rpc Create (CreateRequest) returns (CreateReply) {}
rpc Close (CloseRequest) returns (CloseReply) {}
rpc CloseStream (stream CloseRequest) returns (CloseReply) {}
rpc DeleteFile (DeleteFileRequest) returns (DeleteFileReply) {}
rpc MakeDir (MakeDirRequest) returns (MakeDirReply) {}
rpc DeleteDir (DeleteDirRequest) returns (DeleteDirReply) {}
rpc ReadDir (ReadDirRequest) returns (stream ReadDirReply) {}
}
// TODO: LOW: Allow write only when client has called open previously?
// The request message containing the user's name.
message GetAttrRequest {
string path = 1;
}
message ReadDirRequest {
string path = 1;
}
message OpenRequest {
string path = 1;
int32 mode = 2;
int32 flags = 3;
}
message CreateRequest {
string path = 1;
int32 mode = 2;
int32 flags = 3;
}
message CloseRequest {
string path = 1;
bytes buffer = 2;
int32 size = 3;
int32 offset = 4;
}
message MakeFileRequest {
string path = 1;
}
message MakeDirRequest {
string path = 1;
int32 mode = 2;
}
message DeleteFileRequest {
string path = 1;
}
message DeleteDirRequest {
string path = 1;
}
// The response messages
message GetAttrReply {
uint32 error = 1; // error code
uint32 inode = 2; //inode number
int32 mode = 3; // protection
uint32 num_hlinks = 4; // number of hard links
uint32 user_id = 5; // user ID of owner
uint32 groud_id = 6; // group ID of owner
uint64 size = 7; // total size, in bytes
uint64 block_size = 8; // blocksize for file system I/O
uint64 blocks = 9; // number of 512B blocks allocated
int32 last_acess_time = 10; // time of last access
int32 last_mod_time = 11; // time of last modification
int32 last_stat_change_time = 12; // time of last status change
}
message OpenReply {
uint32 error = 1;
bytes buffer = 2;
uint32 size = 3;
}
message ReadDirReply{
uint32 dino =1;
string dname = 2;
uint32 dtype = 3;
int32 error = 4;
}
message CreateReply {
uint32 error = 1;
}
message CloseReply {
uint32 error = 1;
uint32 lastModTime = 2;
}
message MakeDirReply {
uint32 error = 1;
uint32 lastModTime = 2;
}
message DeleteFileReply {
uint32 error = 1;
}
message DeleteDirReply {
uint32 error = 1;
}