Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitde3874e

Browse files
authored
Merge pull requestFirebaseExtended#330 from kotl/master
Add bi-directional (stream + get/set) support and refactoring of the internal classes
2 parents96eab42 +a7bf160 commitde3874e

24 files changed

+272
-499
lines changed

‎contrib/src/modem/command.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#ifndef MODEM_COMMAND_H
22
#defineMODEM_COMMAND_H
33

4-
#include"Firebase.h"
4+
#include"FirebaseArduino.h"
55
#include"modem/output-stream.h"
66
#include"modem/input-stream.h"
77

@@ -10,19 +10,19 @@ namespace modem {
1010

1111
classCommand {
1212
public:
13-
Command(Firebase* fbase) : fbase_(fbase) {}
13+
Command(FirebaseArduino* fbase) : fbase_(fbase) {}
1414

1515
// Execute command, reading any additional data needed from stream.
1616
// Return false if execution failed.
1717
virtualboolexecute(const String& command,
1818
InputStream* in, OutputStream* out) = 0;
1919
protected:
20-
Firebase&fbase() {
20+
FirebaseArduino&fbase() {
2121
return *fbase_;
2222
}
2323

2424
private:
25-
Firebase* fbase_;
25+
FirebaseArduino* fbase_;
2626
};
2727

2828
}// modem

‎contrib/src/modem/db/DatabaseProtocol.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ void DatabaseProtocol::Execute(const String& command_name, InputStream* in,
4242
}
4343

4444
std::unique_ptr<Command>DatabaseProtocol::CreateCommand(const String& text,
45-
Firebase* fbase) {
45+
FirebaseArduino* fbase) {
4646
std::unique_ptr<Command> command;
4747
if (text =="GET") {
4848
command.reset(newGetCommand(fbase));

‎contrib/src/modem/db/DatabaseProtocol.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ class DatabaseProtocol : public SerialProtocol {
1313
const std::vector<String>&commands()constoverride;
1414
voidExecute(const String& command, InputStream* in, OutputStream* out)override;
1515
private:
16-
std::unique_ptr<Command>CreateCommand(const String& text,Firebase* fbase);
16+
std::unique_ptr<Command>CreateCommand(const String& text,FirebaseArduino* fbase);
1717

18-
std::unique_ptr<Firebase> fbase_;
18+
std::unique_ptr<FirebaseArduino> fbase_;
1919
};
2020

2121

‎contrib/src/modem/db/begin-command.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,14 @@ bool BeginCommand::execute(const String& command,
3333
returnfalse;
3434
}
3535

36-
new_firebase_.reset(newFirebase(host.c_str(), auth.c_str()));
36+
new_firebase_.reset(newFirebaseArduino());
37+
new_firebase_.get()->begin(host.c_str(), auth.c_str());
3738

3839
out->println("+OK");
3940
returntrue;
4041
}
4142

42-
std::unique_ptr<Firebase>BeginCommand::firebase() {
43+
std::unique_ptr<FirebaseArduino>BeginCommand::firebase() {
4344
returnstd::move(new_firebase_);
4445
}
4546

‎contrib/src/modem/db/commands.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#ifndef MODEM_DB_COMMANDS_H
22
#defineMODEM_DB_COMMANDS_H
33

4-
#include"Firebase.h"
4+
#include"FirebaseArduino.h"
55
#include"modem/command.h"
66
#include"modem/output-stream.h"
77
#include"modem/input-stream.h"
@@ -11,28 +11,28 @@ namespace modem {
1111

1212
classGetCommand :publicCommand {
1313
public:
14-
GetCommand(Firebase* fbase) : Command(fbase) {}
14+
GetCommand(FirebaseArduino* fbase) : Command(fbase) {}
1515

1616
boolexecute(const String& command, InputStream* in, OutputStream* out);
1717
};
1818

1919
classSetCommand :publicCommand {
2020
public:
21-
SetCommand(Firebase* fbase) : Command(fbase) {}
21+
SetCommand(FirebaseArduino* fbase) : Command(fbase) {}
2222

2323
boolexecute(const String& command, InputStream* in, OutputStream* out);
2424
};
2525

2626
classRemoveCommand :publicCommand {
2727
public:
28-
RemoveCommand(Firebase* fbase) : Command(fbase) {}
28+
RemoveCommand(FirebaseArduino* fbase) : Command(fbase) {}
2929

3030
boolexecute(const String& command, InputStream* in, OutputStream* out);
3131
};
3232

3333
classPushCommand :publicCommand {
3434
public:
35-
PushCommand(Firebase* fbase) : Command(fbase) {}
35+
PushCommand(FirebaseArduino* fbase) : Command(fbase) {}
3636

3737
boolexecute(const String& command, InputStream* in, OutputStream* out);
3838
};
@@ -44,15 +44,15 @@ class BeginCommand : public Command {
4444
boolexecute(const String& command, InputStream* in, OutputStream* out);
4545

4646
// This can only be called once.
47-
std::unique_ptr<Firebase>firebase();
47+
std::unique_ptr<FirebaseArduino>firebase();
4848

4949
private:
50-
std::unique_ptr<Firebase> new_firebase_;
50+
std::unique_ptr<FirebaseArduino> new_firebase_;
5151
};
5252

5353
classStreamCommand :publicCommand {
5454
public:
55-
StreamCommand(Firebase* fbase) : Command(fbase) {}
55+
StreamCommand(FirebaseArduino* fbase) : Command(fbase) {}
5656

5757
boolexecute(const String& command, InputStream* in, OutputStream* out);
5858
};

‎contrib/src/modem/db/get-command.cpp

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,14 @@ bool GetCommand::execute(const String& command,
1313
returnfalse;
1414
}
1515

16-
std::string path = in->readLine().c_str();
17-
std::unique_ptr<FirebaseGet>get(fbase().getPtr(path));
18-
19-
if (get->error()) {
16+
String path = in->readLine();
17+
String value =fbase().getString(path);
18+
if (fbase().error().length() !=0) {
2019
out->print("-FAIL");
21-
out->println(get->error().message().c_str());
20+
out->println(fbase().error().c_str());
2221
returnfalse;
2322
}
2423

25-
Stringvalue(get->response().c_str());
2624
// TODO implement json parsing to pull and process value.
2725
out->print("+");
2826
out->println(value);

‎contrib/src/modem/db/push-command.cpp

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,14 @@ bool PushCommand::execute(const String& command,
1414
returnfalse;
1515
}
1616

17-
std::stringpath(in->readStringUntil('').c_str());
18-
std::stringdata(in->readLine().c_str());
17+
String path =in->readStringUntil('');
18+
String data =in->readLine();
1919

20-
std::unique_ptr<FirebasePush>push(
21-
fbase().pushPtr(path,EncodeForJson(data)));
20+
fbase().pushString(path, data);
2221

23-
if (push->error()) {
22+
if (fbase().error().length() !=0) {
2423
out->print("-FAIL");
25-
out->println(push->error().message().c_str());
24+
out->println(fbase().error().c_str());
2625
returnfalse;
2726
}else {
2827
out->println("+OK");

‎contrib/src/modem/db/remove-command.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ bool RemoveCommand::execute(const String& command,
1414
}
1515

1616
String path = in->readLine();
17-
std::unique_ptr<FirebaseRemove>get(fbase().removePtr(path.c_str()));
17+
fbase().remove(path);
1818

19-
if (get->error()) {
19+
if (fbase().error().length() !=0) {
2020
out->print("-FAIL");
21-
out->println(get->error().message().c_str());
21+
out->println(fbase().error().c_str());
2222
returnfalse;
2323
}
2424

‎contrib/src/modem/db/set-command.cpp

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,14 @@ bool SetCommand::execute(const String& command,
1414
returnfalse;
1515
}
1616

17-
std::stringpath(in->readStringUntil('').c_str());
18-
std::stringdata(in->readLine().c_str());
17+
String path =in->readStringUntil('');
18+
String data =in->readLine();
1919

20-
std::unique_ptr<FirebaseSet>set(fbase().setPtr(path,
21-
EncodeForJson(data)));
20+
fbase().setString(path, data);
2221

23-
if (set->error()) {
22+
if (fbase().error().length() !=0) {
2423
out->print("-FAIL");
25-
out->println(set->error().message().c_str());
24+
out->println(fbase().error().c_str());
2625
returnfalse;
2726
}else {
2827
out->println("+OK");

‎contrib/src/modem/db/stream-command.cpp

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,27 +13,24 @@ bool StreamCommand::execute(const String& command,
1313
returnfalse;
1414
}
1515

16-
std::string path = in->readLine().c_str();
17-
std::unique_ptr<FirebaseStream>stream(fbase().streamPtr(path));
16+
String path = in->readLine().c_str();
17+
fbase().stream(path);
1818

19-
if (stream->error()) {
19+
if (fbase().error().length() !=0) {
2020
out->print("-FAIL");
21-
out->println(stream->error().message().c_str());
21+
out->println(fbase().error().c_str());
2222
returnfalse;
2323
}
24-
2524
bool running =true;
2625
DynamicJsonBuffer buffer;
2726
while(running) {
28-
if (stream->available()) {
29-
std::string json;
30-
FirebaseStream::Event event = stream->read(json);
27+
if (fbase().available()) {
28+
FirebaseObject event =fbase().readEvent();
3129
out->print("+");
32-
out->print(FirebaseStream::EventToName(event).c_str());
30+
out->print(event.getString("type").c_str());
3331
out->print("");
34-
constauto& object = buffer.parseObject(json.c_str());
35-
String data = object["data"].asString();
36-
out->println(object["path"].asString());
32+
String data = event.getString("data");
33+
out->println(event.getString("path"));
3734
out->println(data.length());
3835
out->println(data);
3936
}elseif (in->available()) {

‎contrib/test/mock-firebase.h

Lines changed: 11 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -3,48 +3,22 @@
33

44
#include<memory>
55
#include"gtest/gtest.h"
6-
#include"Firebase.h"
6+
#include"FirebaseArduino.h"
77

88
namespacefirebase {
99
namespacemodem {
1010

11-
classMockFirebase :publicFirebase {
11+
classMockFirebase :publicFirebaseArduino {
1212
public:
13-
MOCK_METHOD1(getPtr, std::unique_ptr<FirebaseGet>(const std::string&));
14-
MOCK_METHOD2(setPtr, std::unique_ptr<FirebaseSet>(const std::string&,const std::string&));
15-
MOCK_METHOD2(pushPtr, std::unique_ptr<FirebasePush>(const std::string&,const std::string&));
16-
MOCK_METHOD1(removePtr, std::unique_ptr<FirebaseRemove>(const std::string&));
17-
MOCK_METHOD1(streamPtr, std::unique_ptr<FirebaseStream>(const std::string&));
18-
};
19-
20-
classMockFirebaseGet :publicFirebaseGet {
21-
public:
22-
MOCK_CONST_METHOD0(response,const std::string&());
23-
MOCK_CONST_METHOD0(error,const FirebaseError&());
24-
};
25-
26-
classMockFirebaseSet :publicFirebaseSet {
27-
public:
28-
MOCK_CONST_METHOD0(json,const std::string&());
29-
MOCK_CONST_METHOD0(error,const FirebaseError&());
30-
};
31-
32-
classMockFirebasePush :publicFirebasePush {
33-
public:
34-
MOCK_CONST_METHOD0(name,const std::string&());
35-
MOCK_CONST_METHOD0(error,const FirebaseError&());
36-
};
37-
38-
classMockFirebaseRemove :publicFirebaseRemove {
39-
public:
40-
MOCK_CONST_METHOD0(error,const FirebaseError&());
41-
};
42-
43-
classMockFirebaseStream :publicFirebaseStream {
44-
public:
45-
MOCK_METHOD0(available,bool());
46-
MOCK_METHOD1(read, Event(std::string& event));
47-
MOCK_CONST_METHOD0(error,const FirebaseError&());
13+
MOCK_METHOD0(error,const String &());
14+
MOCK_METHOD1(getString, String (const String& path));
15+
MOCK_METHOD2(pushString, String (const String& path,const String& data));
16+
MOCK_METHOD1(remove,void(const String& path));
17+
MOCK_METHOD2(setString,void(const String& path,const String& data));
18+
MOCK_METHOD0(available,bool ());
19+
MOCK_METHOD0(readEvent, FirebaseObject ());
20+
MOCK_METHOD2(begin,void (const String& host,const String& auth));
21+
MOCK_METHOD1(stream,void (const String& path));
4822
};
4923

5024
}// modem

‎contrib/test/modem/Makefile

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,8 @@ CXXFLAGS += -g -Wall -Wextra -pthread -std=c++11
5555
# All tests produced by this Makefile. Remember to add new tests you
5656
# created to the list.
5757
TESTS = get-command_test set-command_test remove-command_test\
58-
push-command_test begin-command_teststream-command_test\
59-
serial-transceiver_test
58+
push-command_test begin-command_test\
59+
serial-transceiver_test stream-command_test
6060

6161
# All Google Test headers. Usually you shouldn't change this
6262
# definition.
@@ -130,6 +130,12 @@ arduino_mock_all.a : ArduinoMockAll.o
130130

131131
# Builds shared objects.
132132

133+
FirebaseArduino.o :$(FIREBASE_SRC_ROOT)/FirebaseArduino.cpp
134+
$(CXX)$(CPPFLAGS)$(CXXFLAGS) -c$(FIREBASE_SRC_ROOT)/FirebaseArduino.cpp
135+
136+
FirebaseObject.o :$(FIREBASE_SRC_ROOT)/FirebaseObject.cpp
137+
$(CXX)$(CPPFLAGS)$(CXXFLAGS) -c$(FIREBASE_SRC_ROOT)/FirebaseObject.cpp
138+
133139
Firebase.o :$(FIREBASE_SRC_ROOT)/Firebase.cpp
134140
$(CXX)$(CPPFLAGS)$(CXXFLAGS) -c$(FIREBASE_SRC_ROOT)/Firebase.cpp
135141

@@ -144,7 +150,7 @@ get-command.o : $(SRC_ROOT)/modem/db/get-command.cpp
144150
get-command_test.o :$(TEST_DIR)/get-command_test.cpp$(GMOCK_HEADERS)
145151
$(CXX)$(CPPFLAGS)$(CXXFLAGS) -c$(TEST_DIR)/get-command_test.cpp
146152

147-
get-command_test : get-command_test.o Firebase.o FirebaseHttpClient_dummy.o get-command.o gmock_main.a\
153+
get-command_test : get-command_test.oFirebaseArduino.oFirebase.o FirebaseObject.o FirebaseHttpClient_dummy.o get-command.o gmock_main.a\
148154
arduino_mock_all.a
149155
$(CXX)$(CPPFLAGS)$(CXXFLAGS) -lpthread$^ -o$@
150156

@@ -155,7 +161,7 @@ set-command.o : $(SRC_ROOT)/modem/db/set-command.cpp
155161
set-command_test.o :$(TEST_DIR)/set-command_test.cpp$(GMOCK_HEADERS)
156162
$(CXX)$(CPPFLAGS)$(CXXFLAGS) -c$(TEST_DIR)/set-command_test.cpp
157163

158-
set-command_test : set-command.o set-command_test.o Firebase.o FirebaseHttpClient_dummy.o gmock_main.a\
164+
set-command_test : set-command.o set-command_test.oFirebaseArduino.oFirebase.o FirebaseObject.o FirebaseHttpClient_dummy.o gmock_main.a\
159165
arduino_mock_all.a
160166
$(CXX)$(CPPFLAGS)$(CXXFLAGS) -lpthread$^ -o$@
161167

@@ -166,7 +172,7 @@ remove-command.o : $(SRC_ROOT)/modem/db/remove-command.cpp
166172
remove-command_test.o :$(TEST_DIR)/remove-command_test.cpp$(GMOCK_HEADERS)
167173
$(CXX)$(CPPFLAGS)$(CXXFLAGS) -c$(TEST_DIR)/remove-command_test.cpp
168174

169-
remove-command_test : remove-command.o remove-command_test.o Firebase.o FirebaseHttpClient_dummy.o gmock_main.a\
175+
remove-command_test : remove-command.o remove-command_test.oFirebaseArduino.oFirebase.o FirebaseObject.o FirebaseHttpClient_dummy.o gmock_main.a\
170176
arduino_mock_all.a
171177
$(CXX)$(CPPFLAGS)$(CXXFLAGS) -lpthread$^ -o$@
172178

@@ -177,7 +183,7 @@ push-command.o : $(SRC_ROOT)/modem/db/push-command.cpp
177183
push-command_test.o :$(TEST_DIR)/push-command_test.cpp$(GMOCK_HEADERS)
178184
$(CXX)$(CPPFLAGS)$(CXXFLAGS) -c$(TEST_DIR)/push-command_test.cpp
179185

180-
push-command_test : push-command.o push-command_test.o Firebase.o FirebaseHttpClient_dummy.o gmock_main.a\
186+
push-command_test : push-command.o push-command_test.oFirebaseArduino.oFirebase.o FirebaseObject.o FirebaseHttpClient_dummy.o gmock_main.a\
181187
arduino_mock_all.a
182188
$(CXX)$(CPPFLAGS)$(CXXFLAGS) -lpthread$^ -o$@
183189

@@ -188,7 +194,7 @@ begin-command.o : $(SRC_ROOT)/modem/db/begin-command.cpp
188194
begin-command_test.o :$(TEST_DIR)/begin-command_test.cpp$(GMOCK_HEADERS)
189195
$(CXX)$(CPPFLAGS)$(CXXFLAGS) -c$(TEST_DIR)/begin-command_test.cpp
190196

191-
begin-command_test : begin-command.o begin-command_test.o Firebase.o FirebaseHttpClient_dummy.o gmock_main.a\
197+
begin-command_test : begin-command.o begin-command_test.oFirebaseArduino.oFirebase.o FirebaseObject.o FirebaseHttpClient_dummy.o gmock_main.a\
192198
arduino_mock_all.a
193199
$(CXX)$(CPPFLAGS)$(CXXFLAGS) -lpthread$^ -o$@
194200

@@ -199,7 +205,7 @@ stream-command.o : $(SRC_ROOT)/modem/db/stream-command.cpp
199205
stream-command_test.o :$(TEST_DIR)/stream-command_test.cpp$(GMOCK_HEADERS)
200206
$(CXX)$(CPPFLAGS)$(CXXFLAGS) -c$(TEST_DIR)/stream-command_test.cpp
201207

202-
stream-command_test : stream-command.o stream-command_test.o Firebase.o FirebaseHttpClient_dummy.o gmock_main.a\
208+
stream-command_test : stream-command.o stream-command_test.oFirebaseArduino.oFirebase.o FirebaseObject.o FirebaseHttpClient_dummy.o gmock_main.a\
203209
arduino_mock_all.a
204210
$(CXX)$(CPPFLAGS)$(CXXFLAGS) -lpthread$^ -o$@
205211

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp