1 #include <../../nrnconf.h>
3 #if defined(__POWERPC__) && defined(__APPLE__)
21 #if !defined(HAVE_LOCKF)
27 #define NRNBBSTMP "nrnbbs"
28 #define NOTIFY "notify"
29 #define NRNBBS "nrnbbs"
30 #define LOCKFILE "lock"
31 #define TMPFILE "temp"
32 #define NOTIFY_SIGNAL SIGUSR1
38 bool equal(
const char*);
46 static const char*
fname(
const char*
name);
48 static void history(
const char* s1,
const char* s2,
const char* s3) {
51 if ((f =
fopen(
fname(
"history"),
"a")) != (FILE*) 0) {
52 fprintf(f,
"%5d %s |%s| |%s|\n", getpid(), s1, s2, s3);
61 static void history(
const char* s1,
const char* s2) {
77 #if !defined(HAVE_LOCKF)
78 while (flock(fileno(
lockfile_), LOCK_EX) != 0) {
80 while (lockf(fileno(
lockfile_), F_LOCK, 0) != 0) {
82 history(
"lockf returned non zero");
88 #if !defined(HAVE_LOCKF)
101 tmpdir =
getenv(
"TMPDIR");
106 d =
new char[strlen(
buf) + 1];
114 static char buf[2][256];
151 while (fgets(
buf, 256, f)) {
152 buf[strlen(
buf) - 1] =
'\0';
153 fscanf(f,
"%d\n", &
id);
183 pf = (pflag) ? pflag : &f;
210 while (fgets(
name, 256, f2) &&
n < 10) {
212 fscanf(f2,
"%d\n", &
i);
222 for (
i = 0;
i <
n; ++
i) {
238 b = (sscanf(
buf,
"%d\n", ipval) == 1) ?
true :
false;
248 if (f != (FILE*) 0) {
249 char name[256], val[256];
251 while (fgets(
name, 256, f)) {
253 if (
name[0] ==
'\0') {
257 val[strlen(val) - 1] =
'\0';
258 if (!b && strcmp(
name,
key) == 0) {
284 if (f != (FILE*) 0) {
285 char name[256], val[256];
286 while (fgets(
name, 256, f)) {
314 #if defined(SIGNAL_CAST)
327 cblist_ =
new NrnBBSCallbackList();
339 #if defined(SIGNAL_CAST)
354 return (strcmp(
s_.
string(), s) == 0) ? true :
false;
virtual ~NrnBBSCallbackItem()
NrnBBSCallbackItem(const char *, NrnBBSCallback)
const char * string() const
sprintf(buf, " if (secondorder) {\n" " int _i;\n" " for (_i = 0; _i < %d; ++_i) {\n" " _p[_slist%d[_i]] += dt*_p[_dlist%d[_i]];\n" " }}\n", numeqn, listnum, listnum)
void(* NrnBBSCallback)(const char *)
#define implementPtrList(PtrList, T)
char * getenv(const char *s)
int const size_t const size_t n
static void release_lock()
static const char * nrnbbsdir()
void nrnbbs_post(const char *key)
static void history(const char *s1, const char *s2, const char *s3)
bool nrnbbs_take(const char *key)
void nrnbbs_post_string(const char *key, const char *sval)
void nrnbbs_notify(const char *key, NrnBBSCallback cb)
declarePtrList(NrnBBSCallbackList, NrnBBSCallbackItem) implementPtrList(NrnBBSCallbackList
bool nrnbbs_look(const char *key)
static const char * fname(const char *name)
bool nrnbbs_take_int(const char *key, int *ipval)
static RETSIGTYPE nrnbbs_handler(int)
void nrnbbs_wait(bool *pflag)
void nrnbbs_exec(const char *cmd)
static NrnBBSCallbackItem NrnBBSCallbackList * cblist_
bool nrnbbs_take_string(const char *key, char *sval)
void nrnbbs_post_int(const char *key, int ival)