git://git.nikiroo.be
/
jvcard.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix makefile (default target Java version removed) + update TODO list
[jvcard.git]
/
src
/
be
/
nikiroo
/
jvcard
/
remote
/
Server.java
diff --git
a/src/be/nikiroo/jvcard/remote/Server.java
b/src/be/nikiroo/jvcard/remote/Server.java
index 962f2d00133069eee26205f97e23205373b86e44..ac29e972a562fe94685358c909221a9ffd38d119 100644
(file)
--- a/
src/be/nikiroo/jvcard/remote/Server.java
+++ b/
src/be/nikiroo/jvcard/remote/Server.java
@@
-17,6
+17,7
@@
import be.nikiroo.jvcard.Contact;
import be.nikiroo.jvcard.Data;
import be.nikiroo.jvcard.parsers.Format;
import be.nikiroo.jvcard.parsers.Vcard21Parser;
import be.nikiroo.jvcard.Data;
import be.nikiroo.jvcard.parsers.Format;
import be.nikiroo.jvcard.parsers.Vcard21Parser;
+import be.nikiroo.jvcard.remote.SimpleSocket.BlockAppendable;
import be.nikiroo.jvcard.resources.StringUtils;
import be.nikiroo.jvcard.resources.bundles.RemoteBundle;
import be.nikiroo.jvcard.resources.enums.RemotingOption;
import be.nikiroo.jvcard.resources.StringUtils;
import be.nikiroo.jvcard.resources.bundles.RemoteBundle;
import be.nikiroo.jvcard.resources.enums.RemotingOption;
@@
-323,7
+324,7
@@
public class Server implements Runnable {
switch (command) {
case GET_CARD: {
switch (command) {
case GET_CARD: {
- s
.sendBlock(doGetCard(name)
);
+ s
endCardBlock(s, name
);
break;
}
case POST_CARD: {
break;
}
case POST_CARD: {
@@
-405,10
+406,13
@@
public class Server implements Runnable {
switch (command) {
case GET_CONTACT: {
Contact contact = card.getById(cmd.getParam());
switch (command) {
case GET_CONTACT: {
Contact contact = card.getById(cmd.getParam());
- if (contact != null)
- s.sendBlock(Vcard21Parser.toStrings(contact, -1));
- else
+ if (contact != null) {
+ BlockAppendable app = s.createBlockAppendable();
+ Vcard21Parser.write(app, contact, -1);
+ app.close();
+ } else {
s.sendBlock();
s.sendBlock();
+ }
break;
}
case POST_CONTACT: {
break;
}
case POST_CONTACT: {
@@
-516,9
+520,9
@@
public class Server implements Runnable {
case GET_DATA: {
for (Data data : contact) {
if (data.getName().equals(cmd.getParam())) {
case GET_DATA: {
for (Data data : contact) {
if (data.getName().equals(cmd.getParam())) {
- for (String line : Vcard21Parser.toStrings(data)) {
-
s.send(line
);
- }
+ BlockAppendable app = s.createBlockAppendable();
+
Vcard21Parser.write(app, data
);
+ // note: we do NOT close 'app', since it would send an EOB
}
}
s.sendBlock();
}
}
s.sendBlock();
@@
-602,20
+606,19
@@
public class Server implements Runnable {
* @throws IOException
* in case of error
*/
* @throws IOException
* in case of error
*/
- private List<String> doGetCard(String name) throws IOException {
- List<String> lines = new LinkedList<String>();
-
+ private void sendCardBlock(SimpleSocket s, String name) throws IOException {
File vcf = getFile(name);
File vcf = getFile(name);
+ BlockAppendable app = s.createBlockAppendable();
if (vcf != null && vcf.exists()) {
Card card = new Card(vcf, Format.VCard21);
// timestamp + data
if (vcf != null && vcf.exists()) {
Card card = new Card(vcf, Format.VCard21);
// timestamp + data
-
lines.add(StringUtils.fromTime(card.getLastModified())
);
-
lines.addAll(Vcard21Parser.toStrings(card)
);
+
app.append(StringUtils.fromTime(card.getLastModified()) + "\r\n"
);
+
Vcard21Parser.write(app, card
);
}
}
-
return lines
;
+
app.close()
;
}
/**
}
/**